Reconsidering the ethernet shield - alternatives?

Hi all,

I have been using various ethernet shields on my flight simulator projects for a while now. I am beginning to fear that the ethernet shield, as it stands now, is not up to my needs.

I see all these examples of webservers, data loggers, etc (and apparently this is so common that manufacturers decided we needed an SD card slot onboard the ethernet shield....), often with very elaborate functionality. I don't need that. What I am using the shield for is basic I/O between my host computers and various simulator components. In many cases, communication is (effectively) one-way: the PC listens while the Arduino transmits, or vice versa. All communication is via UDP, and IPs are static.

My initial experience with the Seeed Studio Wiznet 5100 (version 1.x) shield was highly encouraging: I used it to receive simulated altitude data, and the Arduino drove the altimeter. I did this maybe 2 or 3 years ago. That particular instrument has been 100% rock-solid: of all the times I've used it (including hauling it to Texas for a demo), the shield has NEVER failed to communicate, not once. That is the kind of reliability I'm looking for.

Unfortunately, subsequent experiences have not been so positive. I put several shields in another sim project for someone, and random shields fail to fully initialize unless I physically hit the reset button. Sometimes swapping the shield for another one gets rid of the problem, though all models of shields I've tried have been affected by the issue at various times. I ended up wiring an "init" button (wired to the reset pins of the troubled shields) for the instrument display, which must be pressed when first turning on the sim. I read about this reset issue, and it sounds like a lot of folks have run into it, and that there's no sure fix. I contacted SeedStudio, and they basically said "yep it's a problem with the Wiznet, no solution, sorry". I've tried their v2 shield also, and a few of the Chinese cheapo shields out of desperation....no real change. A few folks online will even mention from time to time "oh yeah, you have to hit the reset button on startup". That's not going to work for me.

I found that powering the Arduino and shield with 12vDC through the voltage regulator vs running a direct 5vDC regulated source to the 5v pin helps a lot, but even since doing that I've seen the issue pop back up a few times. Now tonight I just started having an issue with two of the three Uno+ethernet combos that are running in my current project (after several months of working perfectly). Yesterday they simply failed to communicate: no ping, no data. Tonight, without me changing a single thing, they both worked. Then after a few minutes, those same two shields mysteriously went offline again. Killing all power for a few seconds, then powering back up, brought ONE of the two problem-shields back online. The other one stayed offline, and is offline right now. I suspect if I opened up their enclosure and hit the reset button, it would start working.

I get the impression there is a lot of experimentation and "hey let's see if this will work" type stuff going on with some of the tutorials and usages I read about, but not so much long-term, real-world usage that would manifest these sorts of reliability problems. There's a world of difference (as I'm sure many of you here know) between something that fires up and runs OK a few times "in the lab" vs something that gets put into harsh "daily duty" and actually has to get work done. I'm going to have dozens of I/O controllers talking to all sorts of gauges, switches and controls, simulated GPS and radio units, hydraulic control loaders, etc.

I need something that ALWAYS works, 100% of the time....I can't have a single failure, ever (not counting actual hardware damage from age or unusual environmental conditions, of course). I could try powering the shields separately so they're always on before the Arduinos, I could purchase the ethernet-enabled Uno board, I could continue trying other manufacturers' shields or different models....and maybe I would, if this were some sort of consistently repeatable issue where I could sit down one night, try a bunch of different things, and clearly see a fix and an end to the problem once and for all. But as I said, the issue is very random, and sometimes I don't see a problem with a shield for months.

So, before I start burning money on random shields that may not solve a thing, I wanted to ask the community: have you seen these sorts of problems with the ethernet shield, and did you find an alternative? Is there one specific board/manufacturer that is more reliable? Does the Arduino with built-in ethernet work better? Am I going nuts?

Matt

Matt

I cant give you guidance, I'm starting to see the same types of issues with different W5100 boards. I've noted the W5100 boards with 09/44 on the ethernet jack seem to work ok, I bought 3 news ones marked 15/10 on the jacks and they just wont work, they start to initialise and then blink their lights in unison.

I've been told to buy original authentic Arduino ethernet boards and those kinda work but not wholly.

You arent going nuts...I'm trying to get serious with a home automation project and I cant have things randonly dropping of my network....

Pete

The problem is it UPD protocol, it is a fire and forget. Simple but not reliable. You need to switch to the TCP/IP protocol for reliable small package communications.

xplanematt:
I put several shields in another sim project for someone, and random shields fail to fully initialize unless I physically hit the reset button.

Oh, yeah, I have that problem with a 5100 shield. I think the Arduino reset pulse is too short to reset the Ethernet chip. I haven't done it yet, but my plan is to attach an improved reset circuit (or just a cap to begin with) to the reset pin.

Hi again folks,

I got frustrated and sidetracked myself with other tasks on the simulator (there are plenty!). Good to know I'm not going crazy and other folks are seeing this. I've tried many of the reset hacks that are discussed online, so far NONE of them actually solve the problem. I did run across another tip last night that, unlike the others, involves waiting on the ethernet shield to init. That looks promising. The "problem" now is that the particular shield that was giving me problems is mysteriously working fine.....makes it kinda hard to diagnose.

I've also noticed my master Arduino/ethernet assembly randomly freezes, and sometimes resets now and then. I'm starting to believe that expecting 100% reliability out of these shields is impractical, and that some sort of separate watchdog device is needed. I can't be resetting the master Arduino, because it will cause the entire cockpit to power off for a second. This is obviously distracting and unrealistic for the pilots, but it also means flight plans in the GPS, and other nav system settings, get nuked. But if the shield is the only thing freezing/resetting, I may be able to cut the Wiznet's pin that goes to the Arduino reset pin, and manually reset the Wiznet with another Arduino and relay...I know it sounds weird, but when I tried the "published" reset pin hack, the Arduino could NOT reset the Wiznet by pulling its reset pin to ground....no idea why. The ONLY way to reset the Wiznet has been with the reset button, or manually connecting the reset pin to ground for a second.

I also ran across some discussions about bugs in the Ethernet library. I've already made one small change in W5100.cpp that is suppose to correct a bug.

Mike, I've considered switching to TCP, but I've been using UDP for years in other sim projects (non-Arduino) and it has been an awesome solution. I'm going to have a ton of devices talking at various speeds at the same time...they all need little bits of data quickly, and none of them really care if a packet is dropped or corrupted here or there. I can't imagine it would help my reset issue, but maybe it would fix the freezing/resetting issue with my master Arduino. I haven't noticed the other two Arduinos doing it, but they are only running engine tachometers, so I might just not be noticing it. Could even be hardware....I'm going to try the easy stuff first and swap both the Arduino and the ethernet shield and run it like that for a while.

I'll post if I find some good workarounds for all this. Thanks for the replies!

Matt

Have you looked into the ESP8266 wifi modules (if you don't need a hard-wired ethernet solution)? For many projects, they can be used "standalone", with no Arduino necessary (if you pin needs are modest). It's also possible to communicate with them serially; given the amount of processing power, memory, etc the modules have, you can offload a lot of the work onto them that you might have originally put on the Arduino (like an externally accessible web page, or code to push data to a web server, or any number of other things). Or, you could tie on other chips to the module to expand it's capabilities, if you wanted. They are also very, very low cost. Just another option to think about.

I hadn't heard of that particular module. I'd hate to give up the toughness of a hardwired connection just for the sake of ditching a finicky ethernet chip. Sticking a wifi module behind every panel and display is very tempting (think of the wiring I would not have to do!) but I don't want to have to rely on wifi for anything.

Thanks though, I'll keep that chip in mind for future projects (I do actually have another project in mind that will require some sort of wireless interface).

Matt

HI all,

I have a project of getting data from a Master Controller, that collects and process all the alarms and sensors output values,via an Ethernet port (the only available output port of Master Controller).I have the idea to import the data through Arduino Ethernet Shield connected to Arduino controller.So please anyone help me in this regard because I totally new to such project and also suggest me an Arduino projects Simulator that includes Ethernet and GSM modules.

BR,
Sikandar

Sorry to resurrect this ancient thread. It looks like this problem still exists, and I want to follow up with some more observations. We had some 50+ shields from different manufactures running in parallel. They do in fact fail semi-randomly, and become unresponsive. Only physical reset helps. With 50 shields, we can expect about one to become unresponsive per day. Scheduled power-cycling every few hours can keep failures to a minimum that most people will find acceptable. Like the OP, we needed 100% up-time. Ultimately, we ended up ditching the shields in favor of Azulle PCs, connected to Arduino via serial port. Costly, but effective.