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