If I have a sketch compiled to hex, is it be possible to upload this sketch to an Arduino board using avrdude directly from command line?
Pekkaa figured out that arduino ide executes the following command when uploading the sketch:
./hardware/tools/avrdude -Chardware/tools/avrdude.conf -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex
1 Answer 1
The arduino IDE resets the attached arduino before running avrdude. It does this by telling the FTDI device to pulse the DTR line which is attached to the arduino's reset pin. Pekkaa found the example perl code which does this and updated the thread on the Arduino forums.
For completeness here is the command they used to upload the .hex file:
perl -MDevice::SerialPort -e 'Device::SerialPort->new("/dev/ttyUSB0")->pulse_dtr_on(1000)'; \
./hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm328p -cstk500v1 -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/home/pekka/sketchbook/Blink2/applet/Blink2.hex;
There is also a python script for reseting arduinos which can be used in place of the perl one if you have trouble getting it to work on your system.
-
\$\begingroup\$ Correct URL for the python code from University of Kent: projects.cs.kent.ac.uk/projects/kroc/trac/browser/kroc/trunk/… \$\endgroup\$Dave– Dave2012年09月10日 18:58:35 +00:00Commented Sep 10, 2012 at 18:58
-
\$\begingroup\$ Intergated your suggestion into the @Adam's answer; it will be updated soon. Thanks! \$\endgroup\$boardbite– boardbite2012年09月10日 19:04:09 +00:00Commented Sep 10, 2012 at 19:04
-
\$\begingroup\$ IIRC you can do accomplish the reset using stty without needing python or perl. \$\endgroup\$Chris Stratton– Chris Stratton2012年10月08日 15:08:06 +00:00Commented Oct 8, 2012 at 15:08