Trouble with upload via serial interface under Linux...

Hi,

i am using an Odroid U3 (Ubuntu 14.04.1 armhf) with an I/O shield (Uno compatible with Optiboot) which is connected through a serial UART interface (/dev/ttyACM99).
Everything works fine with the Arduino version 1.0.5 i got with apt.

Now i tried a more recent version from Debian experimental (1.5.6). Installation works well after fulfilling some dependencies (some new java packages). The IDE works well and if i connect an Arduino UNO through USB, uploading works fine.
If i try to upload a sketch to my I/O shield i got some error messages, that the programmer is not responding. I can see, that the shield does no reset after getting the three ascii "0". With version 1.0.5 this works well, with version 1.5.6 and also 1.5.8-1 (i got from an Odroid community member) i get the error.

Could it be a timing problem? Maybe the bootloader fails to recognize the reset sequence correctly. Something seems to be changed between the versions. But not avrdude, same version, same calling parameters...

Any ideas? Has someone tried a real serial interface (instead of a VCP) with v1.5.x?

Regards, Thorsten

Further investigation:

The call of avrdude in 1.0.5 is the following:

/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyACM99 -b115200 -D -Uflash:w:/tmp/build7461407692120111235.tmp/Button.cpp.hex:i

where

/usr/share/arduino/hardware/tools/avrdude is a symbolic link to avrdude -> ../../../../bin/avrdude
/usr/share/arduino/hardware/tools/avrdude.conf is a symbolic link to avrdude.conf -> /etc/avrdude.conf

With this call everything works fine.

The call of avrdude in 1.5.6/1.5.8-1 is the following:

/usr/share/arduino/hardware/tools/avr/bin/avrdude -C/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyACM99 -b115200 -D -Uflash:w:/tmp/build5989151706807845990.tmp/Blink.cpp.hex:i

where

/usr/share/arduino/hardware/tools/avr/bin/ is a symbolic link to bin -> ../../../../../bin
/usr/share/arduino/hardware/tools/avr/etc/ is a symbolic link to etc -> ../../../../../../etc

With this call i got the following error:

avrdude: Version 6.0.1, compiled on Oct 21 2013 at 14:25:10
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf"
User configuration file is "/home/odroid/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM99
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done. Thank you.

Probleme beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .

In another test, i removed the link of /bin, created a directory bin and set all the nescessary symbolic links:

avr-ar -> ../../../../../../bin/avr-ar
avrdude -> ../../../../../../bin/avrdude
avr-g++ -> ../../../../../../bin/avr-g++
avr-gcc -> ../../../../../../bin/avr-gcc
avr-objcopy -> ../../../../../../bin/avr-objcopy
avr-size -> ../../../../../../bin/avr-size

Then i get the following log:
avrdude: Version 6.0.1, compiled on Oct 21 2013 at 14:25:10
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

System wide configuration file is "/usr/share/arduino/hardware/tools/avr/etc/avrdude.conf"
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: Send: 0 [30] [20]
User configuration file is "/home/odroid/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : /dev/ttyACM99
Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [10]
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x10
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [14]
avrdude: Send: 0 [30] [20]
avrdude: Recv: . [10]
AVR Part : ATmega328P
Chip Erase delay : 9000 us
PAGEL : PD7
BS2 : PC2
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
:
:
:
avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xff
avrdude: Send: B [42] . [86] . [00] . [00] . [01] . [01] . [01] . [01] . [03] . [ff] . [ff] . [ff] . [ff] . [00] . [80] . [04] . [00] . [00] . [00] . [80] . [00] [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
Probleme beim Hochladen auf das Board. Hilfestellung dazu unter http://www.arduino.cc/en/Guide/Troubleshooting#upload .

It's all the same installation of avrdude, just the symlinking differs a bit...strange.
Any ideas?

Regards, Thorsten