Ardunio Duemilanove; Ubuntu 11.04; Programmer not responding

Good evening (well, here anyway)!

I've been working on my Arduino for the past couple of hours trying to get a project with the LoL Shield to work, and twice the device has started refusing to program. I have been able to upload to it today, but it just sort of...stopped working. The project does involve writing to the serial port, but I don't think that would have anything to do with it.

I am using Ubuntu 11.04 on a Dell XPS 15z. I have been programming with /dev/ttyUSB0 until now. I notice when I remove the shield that the "L" led (I believe that's the one hooked up to pin 13) is blinking at an incredibly fast rate, faster than I can count. Here's the verbose output from the terminal (which I started the IDE from): Binary sketch size: 3388 bytes (of a 30720 byte maximum) /usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyUSB0 -b57600 -D -Uflash:w:/tmp/build7426162321833633659.tmp/fonttest.cpp.hex:i

avrdude: Version 5.10, compiled on Jun 29 2010 at 21:09:48 Copyright (c) 2000-2005 Brian Dean, Copyright (c) 2007-2009 Joerg Wunsch

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

Using Port : /dev/ttyUSB0 Using Programmer : arduino Overriding Baud Rate : 57600 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 done. Thank you.

I've gone through the upload section of the troubleshooting guide and nothing seems to help. If this has been answered in the past, I apologize for asking again and would like to know where I can find the solution, a google search didn't return anything that seemed relevant. Any help you could provide would be appreciated! I'd like to have this thing running in the next couple of days as I need it for an exhibition next week, but if that's not possible it's not a big deal, I'm sure I can figure something else out.

Thanks again!

Just an update for those who read this:

I came up with nothing, so I just bought another ATMega (along with another arduino, because you can never have too many, right? right?). Unfortunately it didn't arrive until they day after the event, but that's not a big deal.

However, the only one I could find came pre-loaded with the Uno bootloader, but after a little bit of research, I discovered the uno and the duemilanove don't differ much at all. I went ahead and bought it, and what do you know? It works, except now my computer thinks my duemilanove is an uno. I guess that's not really a surprise, is it? Ah, well.

So, now I have two Unos (and a netduino)!

kuroshi: avrdude done. Thank you.

Hey, at least it's polite!

My only question is whether your USB port name changed. Mine sometimes does, if I unplug it, then plug it back in. I'm running Ubuntu 9.10, and maybe the USB naming conventions have changed (yet again) since then, but my USB serial device for Arduino is an ACM name.

Aug 18 19:53:48 robinson kernel: [4700999.044520] usb 3-1: new full speed USB device using uhci_hcd and address 22
Aug 18 19:53:48 robinson kernel: [4700999.242159] usb 3-1: configuration #1 chosen from 1 choice
Aug 18 19:53:48 robinson kernel: [4700999.245150] cdc_acm 3-1:1.0: ttyACM2: USB ACM device

Usually, it comes up as ACM0, then ACM1, etc. But sometimes it stays at the same number. Used to be there was an effort going on to somehow remember the USB device, and give it the same name each time (I think that was the udev project, which actually extended to more than USB devices). I don't know what's happening these days, as it hasn't been something I've needed to care about. As you can see from the above syslog entries, right now it's coming in as ttyACM2. I guess I'd use the -P switch when invoking avrdude to override the /dev/ttyUSB assignment in the config file. If you're using the IDE, then you can select the correct one from the menu.

I don't believe the port changed, but I don't have the old ATMega chip anymore so I can't be certain (I should have kept it! Blah). I noticed when I was testing between my old duemilanove with the new chip and my new uno, the duemilanove still showed up as /dev/ttyUSB0 despite having a new uno atmega, while the uno showed up as /dev/ttyACM0. I didn't close the IDE while testing (used the same sketch), and when I unplugged the duemilanove and plugged in the uno it stopped being able to program until I selected the new port. The old one was not there.

I don't know if that sheds any light or not, but that's what I discovered this evening.

Just a guess, but I suspect that's due to the duemilanove using the FTDI USB chip, while the Uno has the ATmega8U2. Nosing around in the HAL config stuff would probably reveal that.

Perhaps, but the IDE thinks it's talking to an uno both times. I'm too lazy to go searching through my HAL files to confirm this right now, though. I may do it sometime tomorrow if you're really interested.

kuroshi: Perhaps, but the IDE thinks it's talking to an uno both times. I'm too lazy to go searching through my HAL files to confirm this right now, though. I may do it sometime tomorrow if you're really interested.

I'm pretty new to Arduino, but I think the board ID has to do with what firmware you're running, not which USB controller. But how the Linux kernel (via HAL) identifies the port is dependent on the USB controller ID. I'm not too concerned about it, and if it becomes something of interest to me, I'll dig through HAL on my box. At some point, I think I will be interested in figuring out how to lock the ACMn identifier, if it's at all possible.