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.
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 ;)