Hi,
I'm trying to burn a bootloader onto a factory-new Atmega644PA using '
ArduinoISP' running on a Duemilanove with an Atmega168. Using the 'Burn Bootloader' option from the GUI, I get:
avrdude: Expected signature for ATMEGA644P is 1E 96 0A
I got avrdude talking to ArduinoISP from the commandline to see what signature it *is* receiving: it is 1E 94 06 (the valid signature of the '168 on the host Duemilanove!!)
Just for fun, I disconnected the MISO line from the target '644P and re-ran avrdude... it still reports 1E 94 06.
Output of avrdude:
J:\arduino-0018\hardware\Sanguino\bootloaders\atmega644p>avrdude -b 19200 -p atm
ega644p -C J:\arduino-0018\hardware\tools\avr\etc\avrdude.conf -c stk500v1 -P CO
M4 -n
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9406
avrdude: Expected signature for ATMEGA644P is 1E 96 0A
Double check chip, or use -F to override this check.
avrdude done. Thank you.
I had a quick look at the ArduinoISP code, but didn't see anything that would support reading from its own self. The only explanation I can think of is if a) the Arduino bootloader itself follows the identical stk500 protocol and b) 'burn bootloader' / avrdude is somehow resetting the host Arduino as it starts, and erroneously talking to the host's bootloader.
Has anyone seen this before? Is there a good way to rule in/out this hypothesis without a scope handy, or otherwise get to the bottom of it?
(PS. Will the avrdude output line showing the signature it DID read ever be added to the GUI error message, pretty please?)