I have cut the jumper for software reset that uses DTR on the serial port.
I am using windows XP on an Arduino 2009.
I can still upload if I make a tempory connection across the jumper.
However what ever I do to reset the board. Long before, just before ,
just after, 2 seconds after upload - I get an upload error.
avrdude: stk500_getsync(): not in sync: resp=0x00
Is there some way to upload without having to make a tempory connection.
Duemilanove is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the FT232RL is connected to the reset line of the ATmega168 or ATmega328 via a 100 nanofarad capacitor.
This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload.
The Arduino bootloader is designed to program the ATmega328 via the serial port.
A parallel programmer is necessary if you have a ATmega328 which has not been
preloaded with the boot program.
There are many reasons why we might wish to disable the auto reset see for example:
My reason is that I want to leave the working Arduino connected to the computer. The computer is turned off then restarted.
Windows during the restart procedure sets the DTR to low for reasons know only to itself.
During the computer off period my Arduino has been collecting data for me.
The reset disrupts the program and makes the stored data harder (not impossible) to retrieve.
I have a feeling its a timing problem with the reset and sketch upload.
I cannot think how to solve this problem.
The Seeeduino Arduino clone board series has a manual slide switch where one can turn on or off the auto DTR reset function. Other Arduino type designs have had jumper option to do the same. Most present designs have a place where one can cut the trace for the DTR option and resolder it at a later time.
There are reasons one may want to disable auto reset, so it's nice to have the option.
carl47: OK, I see. I would suggest that you solder a simple switch to where you cut the connection, to get the same option as on the Seeeduino and other clones to have the auto reset option when you want it and can turn it off when you do not need it.
Personally I would disconnect it from my computer and let it run on external power, unless it is collecting data over the USB/serial link, but that is a matter of taste and I will not argue with you about which way would be better.
Lets see if I have this right....please correct or expand.
When the processor gets reset the program counter is set to zero.
Starting there in ROM is the bootstrap program.
It waits (2 seconds would be nice) to receive an arduino sketch.
The arduino sketch will be proceeded by a password say "AVR ISP"
so the boot knows it is a program.
This new program will be loaded above the bootstrap and then the program counter will be set to its start.
The arduino sketch repeats until a new reset.
If no password is received (nothing_respose()) during the wait period the bootstrap will look to see if a sketch has been loaded into ROM.
If a sketch exists control is past to it and it will run as before.
If no sketch exists the pc will be set to zero and the bootstrap runs again.
My question is... Can I time my physical reset with the sketch upload
so that the sketch is loaded into ROM.