Ethernet Gateway problem
-
Did get in my W5100 Ethernet Module yesterday and checking some documentation I think the key to get things working is:
- Check if the Slave Select signal is connected to the SPI_EN pin (pin 31) of the W5100 or the /SCS pin (pin 29).
- If connected to /SCS pin (pin 29) sharing the SPI bus will not work
- If connected to SPI_EN pin (pin 31) sharing the SPI bus should work but SPI_EN is active high where /SCS is active low
- Make sure the wires connecting the module are not too long or clock down the SPI clock
I ordered the W5100 Ethernet Module as on the website from alice1101983 and got a red board with funduino on it with pinning:

Checked the board but I see no invertor IC on it so I think NSS is connected to /SCS pin (pin 29). Too bad.
I think the shopping list should be updated to a board that has SPI_EN pin (pin 31) connected.
-
Hm. But I ordered my W5100 modile from the "store" and it has the SPI_EN signal. But I do not think it has POE on the other hand. I think it since then has been replaced with a different module on the store though.
This is the one I got. -
Did get in my W5100 Ethernet Module yesterday and checking some documentation I think the key to get things working is:
- Check if the Slave Select signal is connected to the SPI_EN pin (pin 31) of the W5100 or the /SCS pin (pin 29).
- If connected to /SCS pin (pin 29) sharing the SPI bus will not work
- If connected to SPI_EN pin (pin 31) sharing the SPI bus should work but SPI_EN is active high where /SCS is active low
- Make sure the wires connecting the module are not too long or clock down the SPI clock
I ordered the W5100 Ethernet Module as on the website from alice1101983 and got a red board with funduino on it with pinning:

Checked the board but I see no invertor IC on it so I think NSS is connected to /SCS pin (pin 29). Too bad.
I think the shopping list should be updated to a board that has SPI_EN pin (pin 31) connected.
@daulagari I have seen HW patches that solves the SPI_EN problem by putting an inverter on the SCS signal, thus automatically enables the SPI bus on the W5100 if SCS is asserted. That should have been put on the module in the first place, but for those who are unfortunate to have a W5100 module without the SPI_EN and no "management" of SPI_EN, that might be a option to consider. A description for how to modify the "standard" shield is here.
-
@Anticimex : Yes, the module I got is definitely different.
A hardware patch will be very difficult I think because the pins of the devices are spaced very close to each other and I do fear the SPI_EN pin (pin 31) is not going to a net. Will have a look Monday in the office where we have a magnifying binocular.
But, suppose I have access to the SPI_EN pin, then I would hope an additional invertor would not be needed, Arduino should be able to invert the select signal I hope.
-
@Anticimex : Yes, the module I got is definitely different.
A hardware patch will be very difficult I think because the pins of the devices are spaced very close to each other and I do fear the SPI_EN pin (pin 31) is not going to a net. Will have a look Monday in the office where we have a magnifying binocular.
But, suppose I have access to the SPI_EN pin, then I would hope an additional invertor would not be needed, Arduino should be able to invert the select signal I hope.
@daulagari Yep, if you can get SPI_EN on a pin, the Arduino can manage it. That is what my fix has implemented. But it "cost" one Arduino pin and adds some complexity to the sketch (if one does not pay attention, moving around stuff in the sketch might break the signal management with ethernet vs rf).
-
Did get in my W5100 Ethernet Module yesterday and checking some documentation I think the key to get things working is:
- Check if the Slave Select signal is connected to the SPI_EN pin (pin 31) of the W5100 or the /SCS pin (pin 29).
- If connected to /SCS pin (pin 29) sharing the SPI bus will not work
- If connected to SPI_EN pin (pin 31) sharing the SPI bus should work but SPI_EN is active high where /SCS is active low
- Make sure the wires connecting the module are not too long or clock down the SPI clock
I ordered the W5100 Ethernet Module as on the website from alice1101983 and got a red board with funduino on it with pinning:

Checked the board but I see no invertor IC on it so I think NSS is connected to /SCS pin (pin 29). Too bad.
I think the shopping list should be updated to a board that has SPI_EN pin (pin 31) connected.
On:
I think the shopping list should be updated to a board that has SPI_EN pin (pin 31) connected.
Looking at ebay I think for now the Ethernet Shield W5100 is a better option:
- SPI_EN pin (pin 31) connected to the /SCS pin (pin 29) using an invertor
- Additional micro-SD card slot
- Even cheaper
Drawback is the size but that should not be a problem for a gateway I think. It is a pity shipment takes long.
I you want the same form factor, the WIZnet W5500 Ethernet Module - WIZ550io seems a better choice. Can not find it on ebay but at Antratek the price is reasonable.
@Anticimex : Thanks! Good to know what exactly your fix is doing, did not have a look it yet.
-
@Dan-S. I checked again, and I actually think you mixed two things here. I use pin 10, it is the slave select signal for the ethernet shield/module.
It is not to be confused with the SPI_EN signal, which is more of a free-standing GPIO. It could be that having that signal on D4 makes it incompatible with certain shields, but you cannot use pin 10, because that is reserved for SPI slave select on the ethernet shield (and therefore the library).
SPI_EN and SS is not the same thing. And on a Nano D4 is the only one left unless you want to use an analog pin, one of the UART pins or one of the interrupt-pins. I picked D4 since I use a Nano (and the MySensors site reports the Nano as the "officially supported" option). But I did try to make it possible to change this without having to hack the code, so I hope you can still make use of the patch (or create a new pull request for @hek to consider).@Anticimex Thanks for correcting me, still learning all the hardware idiosyncrasies. I always thought I had some hardware issue since my gateway would work for about an hour and then quit. Yesterday my radio (with antenna) died completely. Replaced it with a standard radio and the gateway has been working continuously since last night. So I must be one of the lucky ones to have a ethernet shield that works with the standard sketch (which I reverted back to)
-
I take that back. Looks like the radio not working again--just lasted longer this time. Will make another try at soft spi.
-
My soft spi version is up and running. Didn't work at first (Vera lua errora) till I read that you moved gw.begin in setup() to be done after the delay(1000). After doing that I was up and running. Will keep my fingers crossed for long term reliability.
-
Hm. But I ordered my W5100 modile from the "store" and it has the SPI_EN signal. But I do not think it has POE on the other hand. I think it since then has been replaced with a different module on the store though.
This is the one I got.@Anticimex Was wondering how you knew/diagnosed that it was necessary to move the gw begin to after the delay to get the soft spi to work
-
@Anticimex Was wondering how you knew/diagnosed that it was necessary to move the gw begin to after the delay to get the soft spi to work
@Dan-S. I actually stumbled upon that when I was experimenting with the SPI_EN signal and temporarily disabled ethernet or rf24 to see which interfered with what. I never went into why this had to be done because after I went back to HW SPI and rebased my library to get the latest updates, I got it to work without switching the order as well.
-
Well if it wasn't for that stumble, my softSpi Ethernet gateway wouldn't be humming along like it is right now. If the softSpi is a solution for all Ethernet shield users, regardless of the version and SPI_EN hookup, would recommend a more formal documentation of the procedure. Maybe a whole separate softspi version of the library only for creation of the ethernet shield gateway that can then be discarded and replaced with the normal library for all the sensors. Those doing breadboarding or with known compatible shields can opt for the hard wire version.
-
I suspect the re-ordering is only necessary for soft-SPI variants, possibly due to some unclear dependency in the init of the IO. I agree that a soft-SPI alternative RF solution could be a useful complement to the library.
-
After 24 hours of continuous operation with the softSPI version of my ethernet shield based gateway with no hiccups, I'm ready to declare victory and move on!! A special thanks to Anitcimex, without whose help it would not have been possible.
-
Great news Dan :)
I have also verified my gw on breadboard and am now working on the final product. I'll publish both HW and SW design on the forum. It will feature a new twist on the gateway I don't think anyone have done before ;) -
Hate to keep this thread going but although I focused mostly on the SPI end of the problem here, I found out I also had a radio problem--in fact all of my problems may have been related to the radio. I thought I was doing good in powering the antenna version of the radio using the AMS117 to supply 3.3 v rather than the board supplied 3.3V. Found out that when I did this the radio would quit working after a while. When connected directly to my UNO 3.3v supply (and the uno has enough power for the radio) it works flawlessly. If anyone has any insights on this would appreciate a response.
-
Hate to keep this thread going but although I focused mostly on the SPI end of the problem here, I found out I also had a radio problem--in fact all of my problems may have been related to the radio. I thought I was doing good in powering the antenna version of the radio using the AMS117 to supply 3.3 v rather than the board supplied 3.3V. Found out that when I did this the radio would quit working after a while. When connected directly to my UNO 3.3v supply (and the uno has enough power for the radio) it works flawlessly. If anyone has any insights on this would appreciate a response.
Noise? Ripple? Overheating? What kind of circuit did you build around it.?
Looking at the datasheet; pages 4 and 5 may be of some help.
-
Using the AMS117 module shown in mysensor store. Vin connected directly to the same power line powering the Uno, ground to uno ground and Vout to the radio whose ground is also to Uno (common ground for uno, AM117 module and radio). Power supplied by 5volt, 2amp wall wart.
-
Using the AMS117 module shown in mysensor store. Vin connected directly to the same power line powering the Uno, ground to uno ground and Vout to the radio whose ground is also to Uno (common ground for uno, AM117 module and radio). Power supplied by 5volt, 2amp wall wart.
-
Noise? Ripple? Overheating? What kind of circuit did you build around it.?
Looking at the datasheet; pages 4 and 5 may be of some help.
@ServiceXp
I believe the part that is at the store already has the supporting circuitry on the board as described in those pages. I don't think there is any external components necessary.
Edward