Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Hardware
  3. Iboard - Cheap Single board Ethernet Arduino with Radio

Iboard - Cheap Single board Ethernet Arduino with Radio

Scheduled Pinned Locked Moved Hardware
iboard
74 Posts 27 Posters 59.0k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J jtm312

    @ServiceXp Just added a new version of the box with LEDs and include button.
    http://www.thingiverse.com/thing:483676

    RJ_MakeR Offline
    RJ_MakeR Offline
    RJ_Make
    Hero Member
    wrote on last edited by
    #28

    @jtm312
    Love It!! You ship to the US? :-)

    RJ_Make

    J 1 Reply Last reply
    0
    • J jtm312

      @ServiceXp Just added a new version of the box with LEDs and include button.
      http://www.thingiverse.com/thing:483676

      blaceyB Offline
      blaceyB Offline
      blacey
      Admin
      wrote on last edited by
      #29

      @jtm312 :+1::+1::+1:

      1 Reply Last reply
      0
      • hekH hek

        @jtm312

        Ohh... sweet!

        I might add a link on www.mysensors.org if that is ok.

        J Offline
        J Offline
        jtm312
        wrote on last edited by
        #30

        @hek sure, if you want. I hope people find the design useful.

        1 Reply Last reply
        0
        • RJ_MakeR RJ_Make

          @jtm312
          Love It!! You ship to the US? :-)

          J Offline
          J Offline
          jtm312
          wrote on last edited by
          #31

          @ServiceXp Sorry, I can only do the design. Free to download and print though :-)

          1 Reply Last reply
          0
          • T Offline
            T Offline
            tbully
            wrote on last edited by
            #32

            I know it's a bit off topic but does anyone have a good idea of a general purpose printer? It seems like the 3D forums are full of people that love their own purchase/decision but have little constructive feedback.

            @jtm312 - What do you use for small projects like this? Do you like it?

            J 1 Reply Last reply
            0
            • T tbully

              I know it's a bit off topic but does anyone have a good idea of a general purpose printer? It seems like the 3D forums are full of people that love their own purchase/decision but have little constructive feedback.

              @jtm312 - What do you use for small projects like this? Do you like it?

              J Offline
              J Offline
              jtm312
              wrote on last edited by
              #33

              @tbully I'm using a Flashforge Creator. It's a Chinise clone of the original Makerbot GPL version. I have made a few minor mods to it and upgraded the firmware to the latest Sailfish version. It came mostly assembled, so I was up and running quickly. There are better printers on the market, but you get a lot for your money. Overall I have been happy with the investment, and it has been great to learn with.

              1 Reply Last reply
              0
              • greglG Offline
                greglG Offline
                gregl
                Hero Member
                wrote on last edited by
                #34

                Anyone using the iBoard with 1.4, see: http://forum.mysensors.org/topic/466/ethernet-gateway-problem/61#

                Adding the line to setup gave me stability.

                SPI.setClockDivider(SPI_CLOCK_DIV2); //to assist with gateway stability.
                
                1 Reply Last reply
                0
                • greglG gregl

                  IBoard: An ethernet gateway for about $20

                  As mentioned this is a really cheap all in one WizNet based Ethernet board. What makes it ideal for MySensors use is that it also includes a header for NRF24 radio..although an easy hardware modification is needed so we can use the sketches and libraries direct from Hek largely unmodified.

                  The designer of the iBoard used different pins rather than the standard MISO(D5), MOSI(D5) and SCK(D7)...

                  So you have two options...Either make the hardware mods described below or make the changes to the RF24 libraries.
                  If you want to go the software method, see the links to the modified RF24 libs at the bottom of the Wiki - http://wiki.iteadstudio.com/IBoard

                  I chose the HW changes largely as i didnt fancy changing the library and mySensors has made some improvements to this library and I would need to modify them each time this is updated...not so interested in doing this!

                  So..the Hardware mod:

                  You need to cut the existing traces from the atmega going to the RF24 header ( D5,D6,D7) and then solder three short wires from the ISP header to the RF24 header.
                  We're lucky.. the ISP header is located right next to the RF24 header and this has the three pins we need to feed the radio.

                  Cutting the traces:
                  Again some more luck. The three pins are together and on a corner of the Atmega so use a sharp Exacto knife of similar and cut these three traces.
                  If your nervous then use your multimeter to check you have the correct pins.

                  Once cut, verify using your multimeter that they are now isolated nor shorted to GND.

                  In this image ive marked the pins to cut in RED http://i.imgur.com/2ztgmXS.jpg
                  And here is a bad photo of my cuts : http://i.imgur.com/KVARYqx.jpg

                  Then you need to solder three wires:
                  Using some nice short wires connect the pins from the ISP header to the RF24 header
                  A picture tells 100 words so...http://i.imgur.com/jQoQLkS.jpg

                  Ok now some small changes to the sketch - still use this guide:
                  http://www.mysensors.org/build/vera#building-an-ethernet-connected-gateway

                  1. As the board has WIZNET ( the sketch default is ENC28J60)

                    //#include <UIPEthernet.h> //Use this if you have attached a Ethernet ENC28J60
                    #include <Ethernet.h>   // Use this fo WizNET module and Arduino Ethernet Shield

                  2. Change the PINS assigned as the iboard is set to use D3 for CE and D8 for CSN:

                    #define RADIO_CE_PIN        3  // radio chip enable
                    #define RADIO_SPI_SS_PIN    8  // radio SPI serial selectThis will also require changing the LED pins to free ones like so:
                    #define RADIO_ERROR_LED_PIN 7  // Error led pin
                    #define RADIO_RX_LED_PIN    6  // Receive led pin
                    #define RADIO_TX_LED_PIN    9  // the PCB, on board LED

                  I dont use Include button or LED's so if you do want to , then post back with your solution.

                  1. Set the IP and MAC as you need to. I have multiple ethernet arduinos on my LAN so i always change from the default DEADBEEFFEED to something else...just change a few of the existing HEX.

                  2. Connect it to your USB programmer - ENSURE ITS SET TO 3.3V ( dont let the smoke out!! )

                  3. Set Arduino IDE to "Duemilanove" - and upload away!!

                  Testing:
                  You should be able to ping the IP address, and if your radio is working you will see any messages from your mySensors sensors in the serial console.

                  Other notes:

                  • I'm using a NRF24l01+PA+LNA which have higher power requiremnts than the non ampified radios. - working great! I didnt need a decoupling capacitor either.
                  • The Iboard does have some non-standard support for POE. One of the customer reviews on the product page talks about this...im yet to try this. I do have some passive injectors ready to go..just haven't done it yet ;-)

                  Good luck.

                  F Offline
                  F Offline
                  Firestarter
                  wrote on last edited by
                  #35

                  @gregl Thank you for your guide how to do the hardware changes. I'm more of a software guy, so I would like to try that route. You mentioned the software changes to the RF24 library in the wiki, but where should I change this library? I'm would like to use the EthernetGateway.ino on the iBoard, but I'm missing something and I can't figure out what it is. Just started with MySensors.

                  I hope you can give me some pointers.
                  Thanks a lot!
                  Firestarter

                  1 Reply Last reply
                  0
                  • greglG Offline
                    greglG Offline
                    gregl
                    Hero Member
                    wrote on last edited by
                    #36

                    @Firestarter said:

                    ges to the RF24 library in the wiki, but where should I change this library? I'm would like to use the EthernetGateway.ino on the iBoard, but I'm missing something and I can't figure out what it is. Just started with MySensors.

                    I hope you can give me some pointers.

                    Hi Firestarter...Welcome! MySensors is very cool and keeps getting better all the time from community ideas/projects... and of course Hek keeps improving and adding great stuff all the time too!
                    The "wiki" i made reference too is here:http://wiki.iteadstudio.com/IBoard
                    at the bottom is some "Useful Links" two of which are to forks of the RF24 library. So you could go this route, but as i think i said before, if you do then you need to repeat if/whenever there is a change to the RF24 lib used by the other sensors you create...or you need to have 2 diff versions of the lib....
                    Imho, doing the hardware hack is best as its a one off job ( and its easy )and then you can load newer versions without needing to worry about lib changes!

                    Good luck and enjoy!

                    1 Reply Last reply
                    0
                    • H Offline
                      H Offline
                      Hacker007
                      wrote on last edited by
                      #37
                      This post is deleted!
                      1 Reply Last reply
                      0
                      • AtomicGrogA Offline
                        AtomicGrogA Offline
                        AtomicGrog
                        wrote on last edited by
                        #38

                        I have just received 2 of these devices and will be making the mods posted over the next week or so but I am intrigued. Is the iBoard a valid product or are we trying to do something unintended with the mysensor software?

                        What I mean is this... how can someone manufacture and sell a duino which requires hardware modifications for it's unique selling characteristics to work? if you sell an Ethernet/RF24 (Header) duino shouldnt it work out of the box?

                        1 Reply Last reply
                        0
                        • nneeooN Offline
                          nneeooN Offline
                          nneeoo
                          wrote on last edited by
                          #39

                          Hi. I just used MySensors library with the iBoard without any HW modifications. All You have to do is to edit utils/RF24_config.h.

                          uncomment the following line:

                          #define SOFTSPI   // Requires library from https://github.com/greiman/DigitalIO
                          

                          and modify SOFT SPI PIN definitions to

                          const uint8_t SOFT_SPI_MISO_PIN = 6; 
                          const uint8_t SOFT_SPI_MOSI_PIN = 5; 
                          const uint8_t SOFT_SPI_SCK_PIN = 7;
                          

                          And it all "just works" ;) Of course you have to have the DigitalIO library, too.

                          1 Reply Last reply
                          2
                          • greglG Offline
                            greglG Offline
                            gregl
                            Hero Member
                            wrote on last edited by
                            #40

                            Nice one!

                            1 Reply Last reply
                            0
                            • H Offline
                              H Offline
                              Hacker007
                              wrote on last edited by
                              #41

                              Hi. I have tried nneeoos' solution fot SOFTSPI, but the code only compiles if I use DigitalIO library in my main INO file too (I tried MQTTGateway ethernet on Iboard). I have the latest librarys. After uploading I get "check wires".

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                tbully
                                wrote on last edited by
                                #42

                                Hello. I too tried @nneeoo 's edits and am getting check wires.

                                Here's my relevant RH24_Config settings:

                                  const uint8_t SOFT_SPI_MISO_PIN = 6; 
                                  const uint8_t SOFT_SPI_MOSI_PIN = 5; 
                                  const uint8_t SOFT_SPI_SCK_PIN = 7;  
                                  const uint8_t SPI_MODE = 0;
                                

                                And here's my setup in my gateway sketch:

                                 #include <Ethernet.h>   
                                
                                
                                 #define INCLUSION_MODE_TIME 1 // Number of minutes inclusion mode is enabled
                                 #define INCLUSION_MODE_PIN  3 // Digital pin used for inclusion mode button
                                
                                 #define RADIO_CE_PIN        5  // radio chip enable
                                 #define RADIO_SPI_SS_PIN    6  // radio SPI serial select
                                 #define RADIO_ERROR_LED_PIN 10  // Error led pin
                                 #define RADIO_RX_LED_PIN    8  // Receive led pin
                                 #define RADIO_TX_LED_PIN    9  // the PCB, on board LED
                                
                                 #define IP_PORT 5003        // The port you want to open 
                                 IPAddress myIp (192, 168, 34, 169);
                                
                                T 1 Reply Last reply
                                0
                                • T tbully

                                  Hello. I too tried @nneeoo 's edits and am getting check wires.

                                  Here's my relevant RH24_Config settings:

                                    const uint8_t SOFT_SPI_MISO_PIN = 6; 
                                    const uint8_t SOFT_SPI_MOSI_PIN = 5; 
                                    const uint8_t SOFT_SPI_SCK_PIN = 7;  
                                    const uint8_t SPI_MODE = 0;
                                  

                                  And here's my setup in my gateway sketch:

                                   #include <Ethernet.h>   
                                  
                                  
                                   #define INCLUSION_MODE_TIME 1 // Number of minutes inclusion mode is enabled
                                   #define INCLUSION_MODE_PIN  3 // Digital pin used for inclusion mode button
                                  
                                   #define RADIO_CE_PIN        5  // radio chip enable
                                   #define RADIO_SPI_SS_PIN    6  // radio SPI serial select
                                   #define RADIO_ERROR_LED_PIN 10  // Error led pin
                                   #define RADIO_RX_LED_PIN    8  // Receive led pin
                                   #define RADIO_TX_LED_PIN    9  // the PCB, on board LED
                                  
                                   #define IP_PORT 5003        // The port you want to open 
                                   IPAddress myIp (192, 168, 34, 169);
                                  
                                  T Offline
                                  T Offline
                                  tbully
                                  wrote on last edited by
                                  #43

                                  To be clear, I'm not afraid to do the hardware modification but it appears that @nneeoo got it to work without doing so. If that's true, I'd like to go that route........

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    tbully
                                    wrote on last edited by
                                    #44

                                    As an update....I gave up on the software method and just did the hardware modification.

                                    All is well now.

                                    One question: How did you guys do the LED and inclusion buttons? Did you carefully solder right to the Atmega chip or is there a better place to grab the needed pins?

                                    What pins did you use for TX/RX/ERR/Inclusion?

                                    1 Reply Last reply
                                    0
                                    • greglG Offline
                                      greglG Offline
                                      gregl
                                      Hero Member
                                      wrote on last edited by
                                      #45

                                      Hi @tbully - i personally never bothered with leds/inclusion button.

                                      My gatway is underneath my staircase near vera and my wifi router, so other than when i make a change, i never see it - so leds wouldnt help me.

                                      When i do an inclusion i do so via software..so no button needed either...

                                      I would like a nice 3d printed case for it one day...still havent boxed the iboard up!

                                      T 1 Reply Last reply
                                      0
                                      • greglG gregl

                                        Hi @tbully - i personally never bothered with leds/inclusion button.

                                        My gatway is underneath my staircase near vera and my wifi router, so other than when i make a change, i never see it - so leds wouldnt help me.

                                        When i do an inclusion i do so via software..so no button needed either...

                                        I would like a nice 3d printed case for it one day...still havent boxed the iboard up!

                                        T Offline
                                        T Offline
                                        tbully
                                        wrote on last edited by
                                        #46

                                        @gregl said:

                                        Hi @tbully - i personally never bothered with leds/inclusion button.

                                        My gatway is underneath my staircase near vera and my wifi router, so other than when i make a change, i never see it - so leds wouldnt help me.

                                        When i do an inclusion i do so via software..so no button needed either...

                                        I would like a nice 3d printed case for it one day...still havent boxed the iboard up!

                                        Same here, @gregl . I appreciate your write-ups above. They really helped out. I'd like to find a printer and user @jtm312 's design but would like to know how he got the LEDs and Button wired up. Soldering directly to the chip could be difficult without a steady hand.

                                        1 Reply Last reply
                                        0
                                        • H Offline
                                          H Offline
                                          hugob
                                          wrote on last edited by hugob
                                          #47

                                          I am using the Itead iBoard as a gateway to a Vera Light for a few days now. Without any hardware modifications, only a few changes in header files required. I think the main issue is that you should map the inclusion button and led's to the Ax pins and use the full constructor (with 7 parameters). Beware of the last line in the first snippet. If you use the shortcut constructor (with three parameters), it will use defaults for the other parameters and your defs will be ignored.
                                          To verify my assumptions above, I included a led to the A2 pin and it is blinking as expected on arrival of a packet.
                                          The code below may look intimidating. But I posted the whole thing for easy reference. You can do the software changes in one minute.

                                          Hugo

                                          Snippet from EthernetGateway.ino:

                                          #define INCLUSION_MODE_TIME 1 // Number of minutes inclusion mode is enabled
                                          #define INCLUSION_MODE_PIN  14 //A0 // Digital pin used for inclusion mode button
                                          
                                          #define RADIO_CE_PIN        3 // radio chip enable
                                          #define RADIO_SPI_SS_PIN    8  // radio SPI serial select
                                          #define RADIO_ERROR_LED_PIN 15 //A1 // Error led pin
                                          #define RADIO_RX_LED_PIN    16 //A2 // Receive led pin
                                          #define RADIO_TX_LED_PIN    17 //A3 // the PCB, on board LED
                                          
                                          #define IP_PORT 5003        // The port you want to open 
                                          IPAddress myIp (192, 168, 178, 66);  // Configure your static ip-address here    COMPILE ERROR HERE? Use Arduino IDE 1.5.7 or later!
                                          
                                          // The MAC address can be anything you want but should be unique on your network.
                                          // Newer boards have a MAC address printed on the underside of the PCB, which you can (optionally) use.
                                          // Note that most of the Ardunio examples use  "DEAD BEEF FEED" for the MAC address.
                                          byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  // DEAD BEEF FEED
                                          
                                          // a R/W server on the port
                                          EthernetServer server = EthernetServer(IP_PORT);
                                          
                                          // No blink or button functionality. Use the vanilla constructor.
                                          //MyGateway gw(RADIO_CE_PIN, RADIO_SPI_SS_PIN, INCLUSION_MODE_TIME);
                                          
                                          // Uncomment this constructor if you have leds and include button attached to your gateway 
                                          MyGateway gw(RADIO_CE_PIN, RADIO_SPI_SS_PIN, INCLUSION_MODE_TIME, INCLUSION_MODE_PIN, RADIO_RX_LED_PIN, RADIO_TX_LED_PIN, RADIO_ERROR_LED_PIN);
                                          

                                          Snippet from \Arduino\libraries\MySensors\utility\RF24_config.h

                                          #define MINIMAL
                                            //#define SPI_UART  // Requires library from https://github.com/TMRh20/Sketches/tree/master/SPI_UART
                                            #define SOFTSPI   // Requires library from https://github.com/greiman/DigitalIO
                                            /**********************/
                                            
                                            // Define _BV for non-Arduino platforms and for Arduino DUE
                                          #if defined (ARDUINO) && !defined (__arm__)
                                          	#if defined(__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__) || defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
                                          		#define RF24_TINY
                                          		#define _SPI SPI
                                          	#else
                                          	  #if defined SPI_UART
                                          		#include <SPI_UART.h>
                                          		#define _SPI uspi
                                          	  #elif defined SOFTSPI
                                          	  // change these pins to your liking
                                          	  //
                                          	  const uint8_t SOFT_SPI_MISO_PIN = 6; 
                                          	  const uint8_t SOFT_SPI_MOSI_PIN = 5; 
                                          	  const uint8_t SOFT_SPI_SCK_PIN = 7;  
                                          	  const uint8_t SPI_MODE = 0;
                                          	  #define _SPI spi
                                          		  #else	    
                                          		#include <SPI.h>
                                          		#define _SPI SPI
                                          	  #endif
                                          	#endif
                                          #else
                                          
                                          1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          19

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular