Arduino Bootloader Flash

About four years ago when I placed an order with sparkfun.com I was given the option to order a "Ding and Dent" board, sadly it doesn't look like they offer these anymore :( I received an Arduino Pro Mini in the ding and dent order.

Arduino Pro Mini

When I inspected the board a solder bridge on the micro controller was obvious. I immediately fixed the solder bridge and tried to upload a program to the board, no luck. I figured that the board never got a bootloader flashed because of the solder bridge. The bootloader is special software that runs when power is applied to the microcontroller. The program tells the micro how to set it's self up, and what to do once it has finished that process. Its required to run the programs on the Arduino. More about that here.

At the time I didn't have an immediate use for the board and so it went into my own ding and dent bin. Recently I was thinking about using a board like this for a project so I decided to dig it out and see if I could get it working. If you take your time and read the instructions the process is pretty simple. I got a little anxious to see if this would solve the issue and so it took me a little longer to find and correct my mistakes.

Arduino Uno as ICSP

A few snags I ran into:

  • Silk screened pin numbers match the standard Arduino wiring
    I wasn't sure the wiring on the Pro Mini, turns out, it has standard "Arduino" wiring, makes sense but wasn't sure initially. Fortunately Sparkfun made this handy visual guide of the pins on the Pro Mini. We can see the numbering on the on the Pro Mini has been silk screened to match the Arduino numbering scheme.

  • D10 on the programmer goes to RST on the target
    I didn't pay close enough attention to notice that D10 gets connected to RST. I connected the programming device RST to the target RST.

  • Old UNO bootloader may have been a little glitchy
    I noticed that when I went back to re-record the bootloader process I was having some trouble with the UNO as the programmer. It did not want program the Pro Mini I double and triple checked everything and it just did not want to program. I kept getting a "can not communicate" error from avrdude. Eventually I figured I would try flipping the roles, I used the Pro Mini as the programmer and flashed the UNO bootloader. That worked and I was able to go back and fourth with no issues. My UNO is a Rev 2 board. Its pretty old, ~8 years I think. Don't think the bootloader was ever updated. Not sure if this was the issue or not, but worth mentioning.

Once all that was sorted out the process to flash the bootloader was pretty easy. After the bootloader was loaded the board communicated with the IDE via an FTDI cable no problem and took a sketch. Looks like I paid $3 for the Pro Mini in its non-working state, now they sell for $10. I am guessing they cost a little more four years ago. The time spent on it definitely is probably worth more but it was a great chance to learn about the Arduino bootloader and it's always nice to have the sense of accomplishment from fixing something.

Files

Arduino Uno Schematic
Arduino Pro Mini Schematic
Arduino Pro Mini Pin Reference