Background - I've been using an Uno R3 as a USB joystick, by uploading a sketch to the ATmega328P & then replacing the standard firmware on the ATmega16u2 with a USB HID joystick firmware based on LUFA using DFU mode. Each time I wanted to make a change to the sketch, I would do the following;
- put the board into DFU mode
- restore original firmware to 16u2
- upload new sketch to 328p
- put board into DFU mode
- upload USB HID joystick firmware to 16u2
This wasn't very convenient so I bought an Olimex AVR ISP500-TINY hoping that it would let me upload new sketches directly to the 328p whilst the 16u2 still had the joystick firmware on it.
To get to grips with the Olimex unit I put the original firmware back on the 16u2 using DFU mode, downloaded & compiled the Blink example & tried to upload it to the 328p using the Olimex unit. The upload seemed to go successfully, however the LED was not blinking & I am now left with what appears to be a bricked Uno.
Current status - When I connect the Uno via USB the ON LED & the L LED light & remain lit; the L LED does not switch off after a moment as it should. Pressing the reset button on the board has no discernible effect whatsoever. I can still successfully change the firmware on the 16u2, as I just erased it & flashed the normal firmware once again.
The Uno appears in lsusb;
Bus 004 Device 007: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
& as a serial device at the usual place of /dev/ttyACM0 that is recognised in the Arduino IDE. If I try to upload Blink to the Uno using the IDE (with the correct Board & Serial Port selected in the Tools menu) it fails with the following (verbose) output, the important bit probably being at the end - "programmer not responding";
/array_flatline/PhD/Arduino/arduino-1.0/hardware/tools/avrdude -C/array_flatline/PhD/Arduino/arduino-1.0/hardware/tools/avrdude.conf -v -v -v -v -patmega328p -carduino -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build5950306848241325424.tmp/Blink.cpp.hex:i
avrdude: Version 5.11, compiled on Sep 9 2011 at 16:00:41
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch
System wide configuration file is "/array_flatline/PhD/Arduino/arduino-1.0/hardware/tools/avrdude.conf"
User configuration file is "/home/cj/.avrduderc"
User configuration file does not exist or is not a regular file, skipping
Using Port : /dev/ttyACM0
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 done. Thank you.
Question - Is it likely that the bootloader is just fried? Can I replace the bootloader & rescue the board, or is it junk?
I tried connecting the Olimex to the ICSP header & using the IDE to burn the bootloader, however whatever settings I try just results in 'programmer is not responding'. Does anybody have experience with this particular programmer (in Linux)?