In the last two days, two Arudino UNOs have died on me as I was working with the Roomba. By died I mean both will not accept any program, even Blink. One reports a verification error at 0c0000 and the other reports programmer is not responding. In both cases I had successfully run many iterations and modifications of several programs which controlled the Roomba. Then, after an apparently minor code change, each bombed and stayed that way. So my basic question is: can a program cause these kinds of problems on the UNO? I find it hard to believe this is the case but would like to rule it out. I have tried to rule out electrical problems. After the first one bombed, I put double sided tape on the bottom of the second UNO, even though it sat atop a completely plastic top of the Roomba. I also put shrink wrap around the solder joints I made between the wires coming from the Roomba mini-din port. Can anyone think of anything else I should do to make sure that the problem isn't electrical? (i.e., I'm somehow shorting it out, or something else.) (BTW both boards show the power light. One has the pin 13 led on, the other does not.)
Thanks for any suggestions.
Do the Roomba's create a lot of static electricity as they move around? I'm thinking stiff bristles, synthetic material carpet. May need to add more ESD protection on the Uno IO pins.
Interesting idea, however I am not using the vacuum, brushes. Just using it as a programmable robot platform (because I have it.) Still, when I try again I'm thinking of putting the Arduino in a cardboard box on top of the Roomba. Any other thoughts re how to do this?
Also, it would be helpful to know if the errors the boards are reporting do indeed indicate they've been fried in some way. Is that so, or could such errors result from programming mistakes or some other source?
What was the software change? Driving an output High into a low impedance load? Or vice versa? Does anything feel hot on the card?
I believe in the second board all I did was add a delay statement, I don't remember the specifics on the first. But in both cases all I was doing was sending software serial info to the Roomba as bytes for its ROI to interpret. Like drive forward at this (low) speed, stop, etc.
I didn't notice anything hot but I didn't specifically check either. There was no smoke or burning insulator smell or anything though. They both seemed to just stop doing what they had been doing a minute before, absent even my touching them.
This isn't an installation problem, right?
I had successfully run many iterations and modifications of several programs which controlled the Roomba.
I'll move this to General Electronics.
Plastic wheels, plastic body on carpet or flooring can generate a -lot- of static electricity.
May need to add more ESD protection on the Uno IO pins.
ESD seems the most likely culprit at this point. I placed the Arduino on top of my empty iPhone box AND added a 9 volt battery so as to power it independently of the Roomba battery. So far this seems to be working (about an hour of testing.) But I am interested in anything else that could be done to protect from ESD on the IO pins. What would that consist of?