Problems with avrdude from Sheevaplug [SOLVED]


I am working on a project where my Arduino Duemilanove is connected to my Sheevaplug, accessed via SSH.

Since I would like to develop locally and upload directly from Sheevaplug, I simply copy the hex file to the plug and then runs these commands:

#reset the board
perl -MDevice::SerialPort -e 'Device::SerialPort->new("/dev/ttyUSB0")->pulse_dtr_on(1000)';

#upload with avrdude
avrdude -V -F -C avrdude.conf -p atmega328p -P /dev/ttyUSB0 -c stk500v1 -b 57600 -U flash:w:Blink.cpp.hex

But unfortunately it doesn't work. I get these errors:

avrdude: parallel port access not available in this configuration avrdude: error at avrdude.conf:531: programmer type not specified

I have installed avrdude using apt-get and then copied avrdude.conf from the arduino/hardware/tools folder.

I can't figure out why it complains about the parallel port.

I have checked that /dev/ttyUSB0 is present.

What is wrong here? I should perhaps note that the same procedure works perfectly from my desktop linux box.

Thanks, Martin

Are there any other /dev/ttyUSB* devices present?

IIRC the sheevaplug has a serial console, with a built-in USB/rs232 adapter. If that is the case, I'd expect the arduino to be /dev/ttyUSB1.


I just checked and it is /dev/ttyUSB0. If I remove the board, the port disappears.

Besides, I just tried writing some rubbish for the serial port in the avrdude command line and I still get the error. So obviously it never comes so far as to address the port.

To me it looks like a configuration problem, I just can't figure out how and why it complains about the parallel port. I use the same config file that works on my desktop pc.

Also, I tried with my Uno instead. Now the port is /dev/ttyACM0, but the error is unchanged.

Got it working!!!

It is explained here:

Incidently, I already found that page before asking here, but I did not fully understanding the implications.

I realized that the config files contained a lot of pre-configured board types of which many of them was of type parallel, having this line:

type  = par;

Now, what was certainly not obvious to me was that avrdude failed when reading these config lines because of the missing system parallel port, even though I did not specify any of the programmers in question!

I think this behaviour is downright silly, but well, I replaced all occurences of par; with serbb; and then it worked.

I have even found that I don't need the reset line which is necessary on my desktop pc.

Thanks for your reply, kg4wsv; even though your suggestion did not help in itself, you made me look once again at the problem with fresh eyes ;)