So my first Arduino Pro Mini got messed up the other day. I think I downloaded a program that was too big and that somehow messed up the boot loader image.
So it doesn’t respond to download requests. The power light comes on, and the ftdi breakout goes through its initial handshakes, but avrdude just gives up after a while. It doesn’t even seem to be responing to the reset button. But nothing traumatic happened, other than this possibly overlarge program getting downloaded into flash. No smoke, no one accidentally stepped on the board.
So, how do you reprogram the boot loader on an Arduino Pro Mini? There’s no ICSP header to connect the programmer.
Ah, the ICSP is just +5, GND, RESET, MISO, MOSI, and SCK in a grid of six pins. The easy way, as I see it, is to take one of my Adafruit Prototype Shield boards, jumper the necessary pins from the Pro Mini to the Shield, and then plug the programmer into the ICSP header on the Shield.
So, is this going to work? Or have I overlooked something obvious?
program download via the serial port bootloader would not overwrite the bootloader area. Only an in-system programmer can do that. Seems to be that there’s a different problem than loss of bootloader code or fuse settings, as those are almost impossible to honk up via downloading mistakes.
I would think that the board has some solder pads where they temporarily attach an ISCP. Or the AVR chip is in a socket and they program it before inserting. If the latter, you can just get a new chip, or beg someone to reprogram the chip.
There aren’t any spare pads on the Pro Mini and the processor is a 32 pin TQFP package which is not coming unsoldered easily.
I expect you’re probably right that the bootloader is still there, but I’m not seeing any evidence that it’s going to save the MCU from whatever my overlarge program is doing. I’ve recovered from some other bad programs by fiddling with the timing of the download request after a reset. But that isn’t working here.
When I release reset on the Pro Mini as a download starts, I see three flickers of the TX led, followed by a long pause and then another flicker, followed by avrdude telling me that “programmer is not responding.” If I fuss with the timing, I can lose the TX led flickers.
LED flashes? Doesn’t that mean that the bootloader is alive?
perhaps the serial to RS232 or serial to USB that you’re using has a broken connection, power problem, or some such. Worst case, the TXD or RXD of the AVR chip is zapped due to static or overvoltage. Gotta use process-of-elimination troubleshooting.
The usb/serial connection works fine on another Arduino – no, I take that back, I haven’t yet tried to download any programs onto that Arduino, so there’s a chance that only the power connections work.
(pause for empirical tests)
I’ll be danged, exactly the same symptoms with the new Arduino, so the FTDI breakout is broken, and it magically broke while something else was going wrong.
rec:
The usb/serial connection works fine on another Arduino – no, I take that back, I haven’t yet tried to download any programs onto that Arduino, so there’s a chance that only the power connections work.
(pause for empirical tests)
I’ll be danged, exactly the same symptoms with the new Arduino, so the FTDI breakout is broken, and it magically broke while something else was going wrong.