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. Troubleshooting
  3. Ethernet gateway troubleshooting advice

Ethernet gateway troubleshooting advice

Scheduled Pinned Locked Moved Troubleshooting
w5100nrf24l01+ethernetveragateway
69 Posts 14 Posters 38.8k Views 6 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 Offline
    J Offline
    jkbrowne
    wrote on last edited by
    #8

    Gotcha.. Thanks Anticimex, keep us posted on what you find out with the logic analyzer, that will be very interesting for sure.

    1 Reply Last reply
    0
    • AnticimexA Offline
      AnticimexA Offline
      Anticimex
      Contest Winner
      wrote on last edited by
      #9

      Sure. I will try to get some time to look into it tomorrow evening. What I really would like though is a debugger. But I guess prints have to do.

      Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

      1 Reply Last reply
      0
      • AnticimexA Anticimex

        I'm on a clone. I have not heard of anybody that have managed to run the W5100 module with RF reliably actually. And googling W5100 and SPI is...discouraging as well...there are all sorts of HW patches and workarounds circling. But I agree, we should try to boil down to the gritty details on this matter. My current status is that I can get the "Gateway startup complete." message with my W5100 and RF module connected (using soft SPI) but then the W5100 does not respond to ping. But running a webserver sketch on the same HW wireing works just fine, so is is a MySensor/Sketch issue, possibly relating to W5100 lib vs RF lib.
        Also, running a serial gateway sketch on the same HW works (with issues on ACKs but that is believed to be caused by yet-to-be-identified changes in the RF lib).
        I need to stabilize my hw a bit more, and then I will try to use my logic analyzer and try to get a grip on this.

        AtomicGrogA Offline
        AtomicGrogA Offline
        AtomicGrog
        wrote on last edited by
        #10

        @Anticimex said:

        I'm on a clone. I have not heard of anybody that have managed to run the W5100 module with RF reliably actually.

        Am using a Jaycar EtherTen (http://www.jaycar.com.au/productView.asp?ID=XC4216) with RF fine. Its based on the ATmega328P.

        Couldnt get a mega working with the ethernet shield, couldnt get the mega working with ethernet module, nor a mini or micro clone.

        Am wondering if there's more to it than the context of SPI hogger but will happily take any fix. I'd rather be using the mega as the extra memory will allow me to evolve my gateway somewhat.

        1 Reply Last reply
        0
        • AnticimexA Offline
          AnticimexA Offline
          Anticimex
          Contest Winner
          wrote on last edited by
          #11

          Alright, my findings so far:
          I have had some success in getting my ethernet GW to work. I had to make some minor changes to the sketch.
          Most importantly, I had to bring in the SOFTSPI support in the RF24 lib (how to do this is described here.
          I also had to disable the debug feature (in MyConfig.h).
          And I had to move gw.begin in setup() to be done after the delay(1000).
          Now I have a ethernet GW executing which is self-powered from my Vera (using USB) and running with a PA enhanced RF module on maximum PA level.

          I will now move on to picking up where I originally left off; checking if it is possible to manipulate SPI_EN signal in the sketch to allow RF module to share bus with W5100 which would be ideal. It should be easier to confirm this now, when I have a known good setup.

          Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

          1 Reply Last reply
          0
          • Z Offline
            Z Offline
            Zeph
            Hero Member
            wrote on last edited by Zeph
            #12

            Brainstorming.

            There would seem to be a number of solutions to the issue of the W5100 not releasing the MISO line when the slave is deselected and thus being incompatible with other SPI devices.

            1. Use SoftSPI for one (or more) of the devices
            2. Use the USART SPI master mode for one device
            3. Use a host with more than 1 SPI interface
            4. Modify a shield or module to allow SPI_EN to be controlled by another uC pin & change libs to use it
            5. Use a shield or module designed to drive SPI_EN as the inverse of NSS (slave select)
            6. Modify a shield or module to do so

            The SoftSPI (for nRF) seems to work for some people. For the low-bandwidth usage of MySensors that may be adequate.

            The Wiz811 and Wiz812 modules appear to be in category 5, as are a few shields. The Wiz810 breaks out SPI_EN so it could be controlled by another uC pin.

            I haven't seen nRF or W5100 libs modified to use the USART in SPI mode but it should be possible (one would need to NOT use the hardware serial port for debugging or program loading while using it for SPI of course).

            I do not know if the W5200 or W5500 chips have the same problem.

            Note: since the W5100 does not tristate the MISO line when deselected but SPI_EN is still high, that means it's output will be fighting with whatever other slave is trying to drive MISO. Sometimes the other device may win, sufficiently. Thus the possibility of using both W5100 and nRF without any of the compensations -sometimes working for some people. Not good practice and not reliable!

            hekH 1 Reply Last reply
            0
            • AnticimexA Offline
              AnticimexA Offline
              Anticimex
              Contest Winner
              wrote on last edited by
              #13

              I am going for option 4. I tried it once and failed, but I have since made a small change to the sketch which allowed me to use the W5100 using softSPI (changing order of some calls during setup()).
              Once I have confirmed if this will be possible without totally tearing up the libs I'll post it here.
              Someone else is of course welcome to investigate alternative options but my options are limited. I really would like to make it work with what I have, which rules out option 3 and 5-6. I prefer option 1 before option 2 as 1 is more flexible.

              Option 4 actually needs little to no hw modification. The MySensors building description does not mention it but W5100 does have SPI_EN on a pin, and this pin should also be connected to the host (I have connected it to D4).
              So with that small adjustment to the build instructions, and some appropriate changes to the sketch and possible the libraries, <should> get the ethernet GW back on track.

              Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

              1 Reply Last reply
              0
              • Z Zeph

                Brainstorming.

                There would seem to be a number of solutions to the issue of the W5100 not releasing the MISO line when the slave is deselected and thus being incompatible with other SPI devices.

                1. Use SoftSPI for one (or more) of the devices
                2. Use the USART SPI master mode for one device
                3. Use a host with more than 1 SPI interface
                4. Modify a shield or module to allow SPI_EN to be controlled by another uC pin & change libs to use it
                5. Use a shield or module designed to drive SPI_EN as the inverse of NSS (slave select)
                6. Modify a shield or module to do so

                The SoftSPI (for nRF) seems to work for some people. For the low-bandwidth usage of MySensors that may be adequate.

                The Wiz811 and Wiz812 modules appear to be in category 5, as are a few shields. The Wiz810 breaks out SPI_EN so it could be controlled by another uC pin.

                I haven't seen nRF or W5100 libs modified to use the USART in SPI mode but it should be possible (one would need to NOT use the hardware serial port for debugging or program loading while using it for SPI of course).

                I do not know if the W5200 or W5500 chips have the same problem.

                Note: since the W5100 does not tristate the MISO line when deselected but SPI_EN is still high, that means it's output will be fighting with whatever other slave is trying to drive MISO. Sometimes the other device may win, sufficiently. Thus the possibility of using both W5100 and nRF without any of the compensations -sometimes working for some people. Not good practice and not reliable!

                hekH Offline
                hekH Offline
                hek
                Admin
                wrote on last edited by
                #14

                @Zeph said:

                I haven't seen nRF or W5100 libs modified to use the USART in SPI mode

                @TMRh20Projects actually also incorporated the option to use USART as SPI in the latest commit (see defines in RF24_config). But you'll lose the debug-print possibility when using this option.

                1 Reply Last reply
                0
                • AnticimexA Offline
                  AnticimexA Offline
                  Anticimex
                  Contest Winner
                  wrote on last edited by Anticimex
                  #15

                  My "option 4" attempt is progressing well.
                  True-to-the-topic a good troubleshooting advice is to lower the speed of the SPI bus. When working on a breadboard, and having multiple devices on the SPI bus, the capacitive load starts to affect the clock and data lines.
                  Patching

                    SPI.setClockDivider(SPI_CLOCK_DIV2);
                  

                  to

                    SPI.setClockDivider(SPI_CLOCK_DIV4);
                  

                  lowers the clock speed and provides a more reliable signalling (confirmed with logic analyzer).
                  I do not think the change is needed on "sharp" boards, but it seem indeed to help when having a bread-board that resembles something from greek mythology :)

                  Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

                  1 Reply Last reply
                  0
                  • AnticimexA Offline
                    AnticimexA Offline
                    Anticimex
                    Contest Winner
                    wrote on last edited by Anticimex
                    #16

                    My fix for W5100 is now available on the development branch.

                    Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

                    1 Reply Last reply
                    0
                    • daulagariD Offline
                      daulagariD Offline
                      daulagari
                      Hero Member
                      wrote on last edited by
                      #17

                      @Zeph:

                      I do not know if the W5200 or W5500 chips have the same problem.

                      Checked the W5500 datasheet and read:

                      TCHZ - SCSn High to Output Hi-Z - 2.1 ns

                      So it looks like the W5500 does not have this problem.

                      since the W5100 does not tristate the MISO line when deselected but SPI_EN is still high

                      If this is true then even using SPI_EN instead or in combination with /SCS does not really enable using another SPI slave in combination with the W5100 ...

                      AnticimexA 1 Reply Last reply
                      0
                      • daulagariD daulagari

                        @Zeph:

                        I do not know if the W5200 or W5500 chips have the same problem.

                        Checked the W5500 datasheet and read:

                        TCHZ - SCSn High to Output Hi-Z - 2.1 ns

                        So it looks like the W5500 does not have this problem.

                        since the W5100 does not tristate the MISO line when deselected but SPI_EN is still high

                        If this is true then even using SPI_EN instead or in combination with /SCS does not really enable using another SPI slave in combination with the W5100 ...

                        AnticimexA Offline
                        AnticimexA Offline
                        Anticimex
                        Contest Winner
                        wrote on last edited by
                        #18

                        @daulagari said:

                        So it looks like the W5500 does not have this problem.

                        since the W5100 does not tristate the MISO line when deselected but SPI_EN is still high

                        If this is true then even using SPI_EN instead or in combination with /SCS does not really enable using another SPI slave in combination with the W5100 ...

                        Yes it does, since driving SPI_EN low makes W5100 release MISO.
                        SPI_EN is not a signal to be used "instead of" SCS. It is a completly independent signal that enables or disables the use of the SPI bus on the W5100. SCS is used "in" the SPI bus for selecting W5100 as sender/receiver.

                        So a solution to the problem is to make sure SPI_EN is driven low, every time another SPI slave is being used.

                        Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

                        1 Reply Last reply
                        0
                        • Z Offline
                          Z Offline
                          Zeph
                          Hero Member
                          wrote on last edited by
                          #19

                          Some designs fix this issue for the W5100 by driving SPI_EN from SCS via an inverter - I've seen circuits with a nand gate and with a FET and resistor. I believe the WizNet folks suggested that option. It could also be handled with a modified library by driving SPI_EN from another uC pin and disabling SPI_EN (low) whenever driving SCS high.(say if you were using a WIZ810 which has both W5100 pins exposed). Most shield tie SPI_EN to Vcc tho, so you'd have to cut a trace to fix them.

                          1 Reply Last reply
                          0
                          • N Offline
                            N Offline
                            niccodemi
                            wrote on last edited by
                            #20

                            Anticimex, thanks, your fix works. I am using uno R3 with Wiznet5100 shield. I am able to control relays and receive sensors data. I can also ping ethernet gateway.
                            There seems to be just a minor glitch. though. When I connect uno via usb cable to computer to monitor serial messages I never get "0;0;4;11;Arduino startup complete" message.

                            Has this been removed? It doesn't seem to affect functionality anyway.

                            AnticimexA 1 Reply Last reply
                            0
                            • N niccodemi

                              Anticimex, thanks, your fix works. I am using uno R3 with Wiznet5100 shield. I am able to control relays and receive sensors data. I can also ping ethernet gateway.
                              There seems to be just a minor glitch. though. When I connect uno via usb cable to computer to monitor serial messages I never get "0;0;4;11;Arduino startup complete" message.

                              Has this been removed? It doesn't seem to affect functionality anyway.

                              AnticimexA Offline
                              AnticimexA Offline
                              Anticimex
                              Contest Winner
                              wrote on last edited by
                              #21

                              @niccodemi nice to hear. DEBUG might be switched of in MyConfig.h

                              Do you feel secure today? No? Start requiring some signatures and feel better tomorrow ;)

                              1 Reply Last reply
                              0
                              • karenbobivK Offline
                                karenbobivK Offline
                                karenbobiv
                                wrote on last edited by
                                #22
                                This post is deleted!
                                1 Reply Last reply
                                0
                                • karenbobivK Offline
                                  karenbobivK Offline
                                  karenbobiv
                                  wrote on last edited by
                                  #23

                                  Howdy. Been trying to follow/implement the Soft SPI fix for this. I appreciate everything so far. I'm not a coder, so try to follow instructions closely, but seem to have messed this up. I'm using a R3 Uno with Ethernet Shield. There seems to be several parts to this fix, but I'm getting error messages now. Did get the original to work, but it would freeze up as described.

                                  First what I did to fix, perhaps I missed something. This is all I did, so please don't assume I would know to do something:

                                  1. Installed Arduino 1.5.8 IDE
                                  2. Installed Anticimex's "fix for W5100" from the "development branch" into my Arduino folder on computer
                                  3. Opened RF24_config.h in a text editor. Uncommented the line #define SOFTSPI
                                  4. In Gateway sketch, added #include <DigitalIO.h>
                                  5. Disabled the debug feature in MyConfig.h
                                  6. Moved the gw.begin after the delay(1000) (not sure if I got this right since I don't code. Here is snippet of what I have now in sketch:

                                  // give the Ethernet interface a second to initialize
                                  delay(1000);

                                  // Initialize gateway at maximum PA level, channel 70 and callback for write operations 
                                  

                                  gw.begin(incomingMessage, 0, true, 0);
                                  w5100_spi_en(true);

                                  However, I now get the following errors:

                                  Arduino: 1.5.8 (Windows 7), Board: "Arduino Uno"

                                  In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:0:
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:39:28: error: 'DEFAULT_CE_PIN' was not declared in this scope
                                  MyGateway(uint8_t _cepin=DEFAULT_CE_PIN, uint8_t _cspin=DEFAULT_CS_PIN, uint8_t _inclusion_time = 1, uint8_t _inclusion_pin = 3, uint8_t _rx=6, uint8_t _tx=5, uint8_t _er=4);
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:39:59: error: 'DEFAULT_CS_PIN' was not declared in this scope
                                  MyGateway(uint8_t _cepin=DEFAULT_CE_PIN, uint8_t _cspin=DEFAULT_CS_PIN, uint8_t _inclusion_time = 1, uint8_t _inclusion_pin = 3, uint8_t _rx=6, uint8_t _tx=5, uint8_t _er=4);
                                  ^
                                  In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:0:
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:42:36: error: 'RF24_PA_LEVEL_GW' was not declared in this scope
                                  void begin(rf24_pa_dbm_e paLevel=RF24_PA_LEVEL_GW, uint8_t channel=RF24_CHANNEL, rf24_datarate_e dataRate=RF24_DATARATE, void (dataCallback)(char )=NULL);
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp: In constructor 'MyGateway::MyGateway(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:27:167: error: no matching function for call to 'MySensor::MySensor(uint8_t&, uint8_t&)'
                                  MyGateway::MyGateway(uint8_t _cepin, uint8_t _cspin, uint8_t _inclusion_time, uint8_t _inclusion_pin, uint8_t _rx, uint8_t _tx, uint8_t _er) : MySensor(_cepin, _cspin) {
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:27:167: note: candidates are:
                                  In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:15:0,
                                  from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:79:2: note: MySensor::MySensor()
                                  MySensor();
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:79:2: note: candidate expects 0 arguments, 2 provided
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:70:7: note: MySensor::MySensor(const MySensor&)
                                  class MySensor
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:70:7: note: candidate expects 1 argument, 2 provided
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp: In member function 'void MyGateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (
                                  )(char
                                  ))':
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:76:39: error: no matching function for call to 'MyGateway::setupRadio(rf24_pa_dbm_e&, uint8_t&, rf24_datarate_e&)'
                                  setupRadio(paLevel, channel, dataRate);
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:76:39: note: candidate is:
                                  In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:15:0,
                                  from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:238:7: note: void MySensor::setupRadio()
                                  void setupRadio();
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:238:7: note: candidate expects 0 arguments, 3 provided
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:77:36: error: 'BASE_RADIO_ID' was not declared in this scope
                                  RF24::openReadingPipe(WRITE_PIPE, BASE_RADIO_ID);
                                  ^
                                  C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:79:23: error: cannot call member function 'void RF24::startListening()' without object
                                  RF24::startListening();
                                  ^
                                  Error compiling.

                                  Welcome any help. Thanks much.

                                  Dan S.D 1 Reply Last reply
                                  0
                                  • karenbobivK karenbobiv

                                    Howdy. Been trying to follow/implement the Soft SPI fix for this. I appreciate everything so far. I'm not a coder, so try to follow instructions closely, but seem to have messed this up. I'm using a R3 Uno with Ethernet Shield. There seems to be several parts to this fix, but I'm getting error messages now. Did get the original to work, but it would freeze up as described.

                                    First what I did to fix, perhaps I missed something. This is all I did, so please don't assume I would know to do something:

                                    1. Installed Arduino 1.5.8 IDE
                                    2. Installed Anticimex's "fix for W5100" from the "development branch" into my Arduino folder on computer
                                    3. Opened RF24_config.h in a text editor. Uncommented the line #define SOFTSPI
                                    4. In Gateway sketch, added #include <DigitalIO.h>
                                    5. Disabled the debug feature in MyConfig.h
                                    6. Moved the gw.begin after the delay(1000) (not sure if I got this right since I don't code. Here is snippet of what I have now in sketch:

                                    // give the Ethernet interface a second to initialize
                                    delay(1000);

                                    // Initialize gateway at maximum PA level, channel 70 and callback for write operations 
                                    

                                    gw.begin(incomingMessage, 0, true, 0);
                                    w5100_spi_en(true);

                                    However, I now get the following errors:

                                    Arduino: 1.5.8 (Windows 7), Board: "Arduino Uno"

                                    In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:0:
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:39:28: error: 'DEFAULT_CE_PIN' was not declared in this scope
                                    MyGateway(uint8_t _cepin=DEFAULT_CE_PIN, uint8_t _cspin=DEFAULT_CS_PIN, uint8_t _inclusion_time = 1, uint8_t _inclusion_pin = 3, uint8_t _rx=6, uint8_t _tx=5, uint8_t _er=4);
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:39:59: error: 'DEFAULT_CS_PIN' was not declared in this scope
                                    MyGateway(uint8_t _cepin=DEFAULT_CE_PIN, uint8_t _cspin=DEFAULT_CS_PIN, uint8_t _inclusion_time = 1, uint8_t _inclusion_pin = 3, uint8_t _rx=6, uint8_t _tx=5, uint8_t _er=4);
                                    ^
                                    In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:0:
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:42:36: error: 'RF24_PA_LEVEL_GW' was not declared in this scope
                                    void begin(rf24_pa_dbm_e paLevel=RF24_PA_LEVEL_GW, uint8_t channel=RF24_CHANNEL, rf24_datarate_e dataRate=RF24_DATARATE, void (dataCallback)(char )=NULL);
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp: In constructor 'MyGateway::MyGateway(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:27:167: error: no matching function for call to 'MySensor::MySensor(uint8_t&, uint8_t&)'
                                    MyGateway::MyGateway(uint8_t _cepin, uint8_t _cspin, uint8_t _inclusion_time, uint8_t _inclusion_pin, uint8_t _rx, uint8_t _tx, uint8_t _er) : MySensor(_cepin, _cspin) {
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:27:167: note: candidates are:
                                    In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:15:0,
                                    from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:79:2: note: MySensor::MySensor()
                                    MySensor();
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:79:2: note: candidate expects 0 arguments, 2 provided
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:70:7: note: MySensor::MySensor(const MySensor&)
                                    class MySensor
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:70:7: note: candidate expects 1 argument, 2 provided
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp: In member function 'void MyGateway::begin(rf24_pa_dbm_e, uint8_t, rf24_datarate_e, void (
                                    )(char
                                    ))':
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:76:39: error: no matching function for call to 'MyGateway::setupRadio(rf24_pa_dbm_e&, uint8_t&, rf24_datarate_e&)'
                                    setupRadio(paLevel, channel, dataRate);
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:76:39: note: candidate is:
                                    In file included from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.h:15:0,
                                    from C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:12:
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:238:7: note: void MySensor::setupRadio()
                                    void setupRadio();
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MySensor.h:238:7: note: candidate expects 0 arguments, 3 provided
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:77:36: error: 'BASE_RADIO_ID' was not declared in this scope
                                    RF24::openReadingPipe(WRITE_PIPE, BASE_RADIO_ID);
                                    ^
                                    C:\Users\Robert\Documents\Arduino\libraries\MySensors\MyGateway.cpp:79:23: error: cannot call member function 'void RF24::startListening()' without object
                                    RF24::startListening();
                                    ^
                                    Error compiling.

                                    Welcome any help. Thanks much.

                                    Dan S.D Offline
                                    Dan S.D Offline
                                    Dan S.
                                    Hero Member
                                    wrote on last edited by
                                    #24

                                    @karenbobiv When I redid my gateway, I just downloaded the latest version of the regular my sensors library which already includes all that is need for soft spi and used the ehternet gateway sketch from the library. Did not use the "fix for W5100." Did not move the gw.begin. Need to include Digital.IO in gateway sketch as you did. Also make sure you define the include statement for using the W5100 version of the ethernet (if I remember right the other one is the default). Also note that the some of the wiring of the radio to the UNO is different in soft spi--see anticmex's directions which include some numbers that need to be changed in the radio file plus defining soft spi as you did.

                                    1 Reply Last reply
                                    0
                                    • Dan S.D Offline
                                      Dan S.D Offline
                                      Dan S.
                                      Hero Member
                                      wrote on last edited by
                                      #25

                                      At any rate, those are library errors so that's why suggested you download and use the latest basic library.

                                      1 Reply Last reply
                                      0
                                      • karenbobivK Offline
                                        karenbobivK Offline
                                        karenbobiv
                                        wrote on last edited by
                                        #26

                                        Thanks for the help Dan. I've been at this for almost 12 solid hrs. I reloaded the IDE environment and the mysensors library, so all that is fresh. I've got the sketch loading without error, but don't think I'm getting the wiring of the radio and the radio file right at all. Can't get to ping either. I'm using the Uno R3 and the shield. Could you provide more detail please on how you did it? Thanks.

                                        1 Reply Last reply
                                        0
                                        • Dan S.D Offline
                                          Dan S.D Offline
                                          Dan S.
                                          Hero Member
                                          wrote on last edited by
                                          #27

                                          I used these instructions from anticimex:

                                          Patch RF24_config.h to enable softspi, uncomment
                                          //#define SOFTSPI
                                          and select pins to use with
                                          const uint8_t SOFT_SPI_MISO_PIN = 15;
                                          const uint8_t SOFT_SPI_MOSI_PIN = 14;
                                          const uint8_t SOFT_SPI_SCK_PIN = 16;
                                          The setting above mean MOSI on A0, MISO on A1 and SCK on A2 on an Arduino Nano.

                                          So when you use soft spi and and change the statements in RF24_config.h as above, the wires for mosi, miso and sck as shown in the ethernet radio diagram are changed and go to A0, A1 and A2 respectively on the UNO (be careful not getting miso and mosi mixed). you need to get the gateway started message from the serial monitor rather than the check wires message to proceed. Recommend you take a break and hit it tomorrow--I know how I got when going though this. Mine is still working going on over 3 days now without a hitch. Also make sure you have the ip and port address entered in the advanced tab of the plugin on the vera when you are ready to finally hook it up, otherwise vera will give you a luup error.

                                          karenbobivK 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          15

                                          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