Pages: [1] 2   Go Down
Author Topic: Arduino on Debian box - suddenly unable to upload sketch to Uno.  (Read 7057 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I have encountered a problem using my Uno with my PC, which is a Debian Lenny box. Please let me know if any further information will help diagnose it (I am not sure where to start with details) but here goes:

1. Installed IDE (version 0021, I think) and plugged in my new Uno. Was able to upload sketches without any problems. Did so for several weeks.

2. A while later (after upgrading to IDE 0022 in the meantime and some Debian automatic updates which included a kernel update, I think, to 2.6.26-2-686), I found that I suddenly could not upload sketches. I also noticed that the IDE Tools menu was very slow to open, and only one port is available to select (/dev/ttyS0), and when I try to upload a sketch I get

Binary sketch size: 3212 bytes (of a 32256 byte maximum)
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

If I start the IDE as root, I get two ports to choose from , /dev/ttyS0 and /dev/ttyACM0. Uploading to /dev/ttyACM0  responds with

Binary sketch size: 3212 bytes (of a 32256 byte maximum)

and then just sits there, with no error message

 
I looks like either the IDE upgrade or the kernel update has introduced a problem (although that may be two red herrings) but I am not a Linux expert so I don't quite know where to turn.

Can any one offer any help? Are there any logs, for example, that may offer more information? The other USB devices appear to be working normally - in fact I am temporarily plugging my Uno onto what is usually the printer USB cable, and the printer works fine off it.

TIA
Logged

Colorado
Offline Offline
Full Member
***
Karma: 2
Posts: 220
Arduino 0022 and Ubuntu 11.10 64bit.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The following commands will gather some information about your system.  Run them in a terminal as a normal user (not root) with the Uno plug in and post the result. The avrdude command should be ran in the top directory of wherever you untared arduino-0022

added: checkout post #34 http://arduino.cc/forum/index.php/topic,38112.msg282438.html#msg282438
added: tutorial - http://arduino.cc/forum/index.php/topic,111.msg749.html#msg749

uname -a
dpkg -l openjdk*jre|grep ii
dpkg -l gcc-avr|grep ii
dpkg -l avr-libc|grep ii
arduino-0022/hardware/tools/avrdude -v
id
ls -l /dev/ttyACM*
« Last Edit: February 13, 2011, 09:39:48 am by mrtaylor » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Here are the responses:

uname -a

      Linux debian 2.6.26-2-686 #1 SMP Thu Jan 27 00:28:05 UTC 2011 i686 GNU/Linux

dpkg -l openjdk*jre|grep ii

   ii  openjdk-6-jre                        6b18-1.8.3-2                         OpenJDK Java runtime, using Hotspot JIT

dpkg -l gcc-avr|grep ii

   ii  gcc-avr                              1:4.3.5-1                            The GNU C compiler (cross compiler for avr)

dpkg -l avr-libc|grep ii

   ii  avr-libc                             1:1.6.8-2                            Standard C library for Atmel AVR development

arduino-0022/hardware/tools/avrdude -v

   avrdude: Version 5.4-arduino, compiled on Oct 22 2007 at 13:15:12
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/usr/local/etc/avrdude.conf"
   avrdude: can't open config file "/usr/local/etc/avrdude.conf": No such file or directory
   avrdude: error reading system wide configuration file "/usr/local/etc/avrdude.conf"


id

   uid=1000(neil) gid=1000(neil) groups=20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),103(scanner),110(netdev),115(powerdev),1000(neil),1002(neilandmolly)

ls -l /dev/ttyACM*

   crw-rw---- 1 root dialout 166, 0 2011-02-14 20:35 /dev/ttyACM0

Does that help?

Neil
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've noticed this in the trouble shooting guide:

If, however, you're using the RXTX package from your distribution, you may need to symlink from /dev/ttyACM0 to /dev/ttyUSB0 (for example) so that the serial port appears in the Arduino software.

Is that something that I need to do? If so, how?

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

More info: if I hold down Shift when I upload a sketch, this is what I see:

Binary sketch size: 3198 bytes (of a 32256 byte maximum)
/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude -C/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P/dev/ttyS0 -b115200 -D -Uflash:w:/tmp/build7241444130185108937.tmp/sos_photo_2.cpp.hex:i

avrdude: Version 5.4-arduino, compiled on Oct 22 2007 at 13:15:12
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude.conf"
         User configuration file is "/home/neil/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port            : /dev/ttyS0
         Using Programmer      : stk500v1
         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: Send: Q [51]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

Logged

Colorado
Offline Offline
Full Member
***
Karma: 2
Posts: 220
Arduino 0022 and Ubuntu 11.10 64bit.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I would try to update the 8u2 firmware
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you explain a bit further?
Logged

Forum Administrator
Cambridge, MA
Offline Offline
Faraday Member
*****
Karma: 12
Posts: 3538
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you post the verbose output when you try to upload to /dev/ttyACM0 as root?
Logged

Colorado
Offline Offline
Full Member
***
Karma: 2
Posts: 220
Arduino 0022 and Ubuntu 11.10 64bit.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
More info: if I hold down Shift when I upload a sketch, this is what I see:
Was Reply #4 done as root or a normal user?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

When I upload to /dev/ttyACM0 as root, there is no response at all. I do get a dialog box inviting me to select a diferent port, ttyS0.

When I carry on and upload to /dev/ttyS0 as root, this is what I get:


Binary sketch size: 990 bytes (of a 32256 byte maximum)
/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude -C/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -cstk500v1 -P/dev/ttyS0 -b115200 -D -Uflash:w:/tmp/build7735780557643392549.tmp/Blink.cpp.hex:i

avrdude: Version 5.4-arduino, compiled on Oct 22 2007 at 13:15:12
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

         System wide configuration file is "/media/data_neil/Downloads/arduino/arduino-0022/hardware/tools/avrdude.conf"
         User configuration file is "/root/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port            : /dev/ttyS0
         Using Programmer      : stk500v1
         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: Send: Q [51]   [20]
avrdude: ser_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding

I notice also that if the Arduino is connected, the Tools menu is much slower to appear than when the Arduino is not connected at all.
Logged

Colorado
Offline Offline
Full Member
***
Karma: 2
Posts: 220
Arduino 0022 and Ubuntu 11.10 64bit.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If nothing else works update the firmware on atmega8u2 chip on the uno:
I did this three times and it works all three times. I used cut & paste

You need the dfu-programmer utility:
sudo apt-get install dfu-programmer
 
Then follow these instructions to get the Uno into DFU mode.  (added) Plug the usb cable into your computer and your Uno board.  I did not notice any visual indications if Uno was in DFU mode but when I ran the dfu-programmer erase command I got the following error when Uno was not in dfu mode: dfu-programmer: no device present.

*** Warning Warning ***
Be careful with the second wire as the capacitor is quite near a 5v track. You can try using a low-value resistor instead of a wire if you are worried about blowing up your     board.
 
See picture: picture is good.  look closely at picture and then look again closely at picture.  Repeat until you are sure you know which wire goes where.  
  
The sequence is, hold the first wire on the top left 8u2 ICSP pad, then touch the second wire against the left side of the capacitor below the RX LED. Then remove both wires    .
  
Then to flash the firmware, do this:
cd arduino-0022/hardware/arduino/firmwares/arduino-usbserial
  
sudo dfu-programmer at90usb82 erase
note - RX light is on
  
sudo dfu-programmer at90usb82 flash --debug  9 ./Arduino-usbserial-uno.hex
note - last two lines should say:
Validating...
4058 bytes used (49.54%)
  
sudo dfu-programmer at90usb82 reset
note RX light is off
 
Finally unplug the USB plug, wait a minute, plug back in.
 
start arduino software with blink example sketch
 
select board as Arduino Uno
 
select serial port /dev/ttyACM0
 
upload blink sketch
 
(added) Thanks to stimmer for the great picture and dfu instructions


* arduinodfu.jpg (105.41 KB, 1024x738 - viewed 275 times.)
« Last Edit: February 18, 2011, 09:52:10 pm by mrtaylor » Logged

Forum Administrator
Cambridge, MA
Offline Offline
Faraday Member
*****
Karma: 12
Posts: 3538
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Also see the tutorial here: http://arduino.cc/en/Hacking/DFUProgramming8U2
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks. It looks a bit scary though.  Can I check that I have the latest firmware (or not) before embarking on this?
Logged

Forum Administrator
Cambridge, MA
Offline Offline
Faraday Member
*****
Karma: 12
Posts: 3538
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

You probably don't, because I don't think we've started shipping it on new boards yet (we still need to test it thoroughly on all operating systems).  But the original firmware was version 0, and the new one is version 1 (which you can see in some programs that show information about connected USB devices).  (Note that this is different from the VID/PID.)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks. In the end I took the coward's way out and removed the 0022 IDE, and reverted to the 0021 IDE and that fixed the problem.

Does that means there's a bug in the 0022 IDE, or just that it relies on the firmware being updated in order to work??
Logged

Pages: [1] 2   Go Up
Jump to: