What are some of the issues with running an arduino (or any of the same family of atmel chips) for a long time - say ballpark of years?
I'm coming from a Basic Stamp II background, and I recall an interesting thread on the the Parallax forums that had several people who had a BSII running for years and years.
What are some of the issues you might run into running an OEM Arduino w/bootloader either as the "off the shelf board", or as a one-off design with an atmel chip in a custom PCB running the bootloader?
Pretty much the same with any electronics, to be honest. Extreme temperature swings, electrostatic discharge, or passing too much current for the components' designs will kill the circuit over time. Barring that, the next major risk is the spoilage of some kinds of capacitors, but you're talking ten years or so for that kind of breakdown.
Just FYI - I searched and searched to try and find that thread about the BSII's long time installs on that forum, no luck. IIRC it was an interesting read.
Just off of memory, one guy has a BS2 hooked up to a driveway entry gate that he claimed was running for more than 5 years, non-stop.
I hope you know I'm not asking this question to start a ruckus. The arduino and the Basic stamp are like apple and oranges.
To further refine my question - I was just wounding about if anyone had any industrial or long term installs of a boot loaded ATmega168/328 that was taken out of a arduino, and then placed into work.
No there was a thread less than a year ago, search for that.
The arduino and the Basic stamp are like apple and oranges
Not as regards this issue they are both grapes.
Pretty much the same with any electronics, to be honest
Very true, note that as a rule of thumb for every 10 degrees C hotter electronics run the lifetime half's.
major risk is the spoilage of some kinds of capacitors, but you're talking ten years or so
Not quite true, depending on the temperature you could be talking about two years. (Running at 80C) But the failure of a capacitor is defined as the loss of capacitance of 20% and an increase in the ESR (effective serial resistance).
millis() rolls after something like 49 days. Isn't that hard to tweak it so that it keeps time longer. Essentially, you need to use two longs to track millis rather than one. If replacing the built in millis function isn't your cup of tea, then just write your own called LongMillis(), or whatever.
Another thing to consider for long term robustness is connectors - and eliminating them! Where they can't be eliminated, carefully choose appropriately resilient connectors.
Corrosion/tarnish on pins and sockets usually makes soldered chips a better idea.
Socketed chips are just fine so long as you don't remove them and reseat them a bunch of times. I have a CNC mill with chips, some of which are almost 20 years old, still working. Plenty of those chips are dip modules in sockets. Soldering chips really sucks if you ever have to remove the chip for any reason (upgrade, failure, etc)
But, it is a good idea to reduce loose connections wherever they are found.
I've had an Arduino-based ATmega168 running an RFID garage door entry system for over a year now. It's been rock-solid even when the outside temperature was -10F.
One of the key things to remember is that a programmed chip starts running its program on power-up (after a short bootloader delay). So even if you have a power outage or some other kind of "reset", your device should automatically return to a functional state. The only exception to this would be time-critical or real-time types of needs. In this case your biggest concern is power stability, not the ATmega168.