I have been reading everything I can find on the forum about the Uno's inability to auto-reset on powerup. I thought an Uno was a replacement for a Duemilanove, but apparently that is not so.
I need the thing to powerup and start running my program. I can't be there to press the reset button when the power goes off/on. Very frustrating.
Yes, I have read about the gymnastics required to make the Uno into a Duemilanove (install bootloader, resistors, capacitors, etc). I'm not able to do that now, so I ordered a new Duemilanove. I hope the supply of real Duemilanoves does not go to zero before the Uno is fixed or upgraded to include the option for auto-reset on powerup.
I guess it was my mistake for believing web sites which indicated the Uno is a replacement for the Duemilanove.
If there is a valid program loaded into flash, then powering up a uno should result in the sketch running after a short bootloader time out period. If your application is not doing that then something is not working correctly. Not knowing what external components you might be using or what your sketch is doing it's hard to give you any pointers for your difficulties. I'm sure there are many many thousands of users of Uno that have no problem with power-up running of programs, however not owning a Uno (yet) I can't speak from direct experiance.
So share more details if you really want help with this.
Code execution begins when the reset clears. The reset is generated by an RC network. If your code is not starting without manual reset, you probably have inadvertantly knocked a smd cap off the board that was in the timing cuircuit or you have external hardware connected to the reset pin that is keeping it in an ambiguous state (somewhere between 0.5 and 3.5 volts). The only boot and/or program issues I have had with my UNO have been caused by regulator overload from hardware connected to the Arduino.
[quote author=Bob Pigford link=topic=85657.msg641476#msg641476 date=1325628108]
I have been reading everything I can find on the forum about the Uno's inability to auto-reset on powerup. I thought an Uno was a replacement for a Duemilanove, but apparently that is not so.[/quote]
Are you actually looking for help? Or just want to pointlessly rant about issue very few people have? Obviously this isn't the correct behavior.
How old is the Uno you are using? Early on the bootloader did have issues with power-up. The latest version of the bootloader doesn't. Do you have a programmer you can use to flash your Uno's bootloader? Or you can wait until your Duemilanove shows up and use it to re-program the Uno. Or, you can return it to the vendor you purchased it front since it is defective.
Are you actually looking for help? Or just want to pointlessly rant about issue very few people have? Obviously this isn't the correct behavior.
You are absolutely right, I just ranted. I was wrong to do so. I have resolved my issue by using the Duemilanove, but if I ever have to use the Uno on auto-reset, I promise to only lurk, study & learn.
Again, I am sorry for wasting everyone's time. Won't happen again.
Bob Pigford
[quote author=Bob Pigford link=topic=85657.msg650944#msg650944 date=1326403907]
I promise to only lurk, study & learn.[/quote]
I think you missed the intent of my comment. You are welcome to rant. Heck, sometimes a little bit of rant with a solid question helps everyone understand where you are at in an issue. However, only a very (very) small fraction of the people who read this board are in a position to help you when you do rant. When it comes to solving a problem, the members of this community fight over who can post a helpful suggestion first.
So when I read a reply like this (in a line of posts with a sour attitude), I read that you are demonstrating a sincere non-interest in troubleshooting issues. This is a key piece of information and other members of the community will take note.
I must have half a dozen Unos and they all power up and run my programs. I never hit the reset button unless I want to, well, reset it after running it for a while. I have a couple of them in slightly inaccessible spots, doing useful things. If the power ever goes off they recover when it comes back on. Every time.
My tone was that of an embarrassed newcomer to the community of Arduino users. Nothing more. I post on other forums and follow protocol and try to follow respectful etiquette.
With regard to the post by Nick Gammon:
I first started using a Duemilaove 328 on somewhat simple projects about 1 year ago. After a learning curve, I was successful with those projects.
My current project is to build an CNC controlled "printer" (Y = large moving paper, X = traversing mechanism, Z = pen up/down). I needed another Arduino and the Uno was indicated as the successor to the Duemilanove, so that is what I bought. I was using this Uno with a SD Card Shield. The job of this Arduino is to take PS/2 keyboard input, select files from the SD Card, and send their text contents (Gcodes) one byte at a time to another Arduino (a Duemilanove I already had) which intreprets these Gcodes and sends step and direction commands to stepper motor driver boards, which, in turn operate their associated stepper motors.
The serial port output of the Uno uses pins 0 and 1, and the second Arduino (a Duemilanove) receives these as a serial input on pins 1 and 0 respectively.
Note: In order to Upload to the Uno (or the replacement Duemilanove) from my PC, I have to disconect at least one of the two serial wires and pull the Vin power supply and ground wires or it will not communicate with the PC. This makes sense with regard to possible back feeding power to the second Arduino somehow and messing up the shared serial port (USB connection). I think I also read about that on the forum.
So, in normal operation, after a power dip, my machine system has to come back up and start all over again without operator assistance. With the Uno, this would not happen. It would just hang and not completely start unless I hit the reset button. Schedule pressures forced me to do something. When I replaced the Uno with a Duemilanove it all worked just fine. That was the only change.
I had read on the forum about problems with auto-restarting an Uno upon serial port connection, and that some people wanted to disable that. While not directly related to my issue, it seemed to me that there were, possibly, some important design differences (that I did not understand) between the Uno and the Duemilanove that were coming into play. That is why I allowed my emotions to get the best of me and I posted negative words about the Uno on this forum. After realizing my bad behavior, I was just trying to apologise to you all. I was not trying to be disrespectful to anyone. Afterall, I highly value the wealth of information that you and others possess and your willingness to help newcomers (as I also try to help others on other forums related to other computing platforms).
Since I have my machine working now, and I do not have the capability to troubleshoot the Uno's power-up system, I thought it best to "back out" and go back to reading the forum and trying to learn. I hope that was the right decision. If you think it would be helpful to others, and after this project is totally finished, and if I can get the machine back for a while, I will try the Uno again, and report (probably next fall).
Good luck with the project, it sounds interesting.
In order to Upload to the Uno (or the replacement Duemilanove) from my PC, I have to disconect at least one of the two serial wires and pull the Vin power supply and ground wires or it will not communicate with the PC.
This makes me wonder a bit about your wiring. Your system sounds more complex than the original post hinted at.
Can you (whenever you have the time free) confirm that you have problems with the Uno resetting stand-alone? Or is it some combination of the way you have connected everything together? Conceivably there is some race condition where the normal auto-reset pulse is being defeated by the way power is being applied to it.
Nick - I think you are on to something. I never thought about that because I had always used just Duemilanove's talking to each other. I had planned to add diodes to the Vin power wires to help prevent back feeding +5 to the other Duemilanove, but even that may not be sufficient. Now I am charged up again. But I will not be able to test and report until the fall. Thanks again for pointing me in a possible direction for resolution. But I WILL get back to this as I want to figure it out (and learn and share any findings). Sorry about the upcoming long delay to respond.
Thank you again,
Bob
The other possibility here is a race condition between processors. Since you are using multiple ones in your design it is possible the Uno is booting faster (or slower) than the Duemilanove used to. So it may be sending something, or waiting for something, a few mS sooner or later than the Duemilanove used to do. Leaning over and hitting the reset button could put the sequence back into the expected order.
So maybe just adding a delay(10) into the setup code on one (or the other) machine might help. I don't know enough about your design to say more.
Gang the reset pins together as well, You may also be going into brownout on the UNO if one board is providing power for both on startup, in which case a dedicated 5V supply to provide power for both independant of the on board regulators. Linear regulators do not parallel well, one will always hog all of the load.