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 
share|improve this question

1 Answer

up vote 4 down vote accepted

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.

share|improve this answer
Correct URL for the python code from University of Kent: projects.cs.kent.ac.uk/projects/kroc/trac/browser/kroc/trunk/… – Dave Sep 10 '12 at 18:58
Intergated your suggestion into the @Adam's answer; it will be updated soon. Thanks! – boardbite Sep 10 '12 at 19:04
IIRC you can do accomplish the reset using stty without needing python or perl. – Chris Stratton Oct 8 '12 at 15:08

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.