This is 'The Unbricker', based on the Arduino™ ISP programmer that I can use to program an ATMega328p AVR CPUs directly, by inserting it into the ZIF socket, or via an ISP cable. The firmware for it is a slightly modified version of the sample program that is included with the Arduino™ IDE, and with a ZIF socket wired up as if it's connected directly to an ISP header (along with a ceramic resonator for the ZIF socket device - this lets me program the fuses correctly). With this (simply constructed) device I can flash an AVR that has no bootloader on it [I have been using a modified version of the Adafruit bootloader since it works so well] by inserting it into the ZIF socket. Or, I can unbrick' a unit that has a CPU already soldered in place by use of the ISP header.
You will notice that the ZIF socket has its own ceramic resonator. This is necessary to create a proper circuit for an AVR processor. Additionally I've populated it with some LEDs to indicate programming activity and status. At the top you will see a 6 pin male header. This mates up with Adafruit's 'FTDI friend' and FTDI USB cable. It is the same type of USB/serial interface that you would use with the 'Boarduino' (also from Adafruit).
The 16.000 Mhz ceramic resonator is basically the same as what the Boarduino uses. Thankfully Adafruit open sourced their device, and the schematic is trivially simple, like a reference design. Though I would definitely recommend using the Boarduino for prototyping, I would prefer to use a CPU + resonator (or crystal) for a final design, mostly because of cost. But I think the Adafruit people knew this. Arduino™ itself is open sourced, after all.
One key feature of the 'unbrick' unit is the 'reset' jumper, next to the regulator. By disabling the 'reset on open' that happens when AVRDUDE opens the serial port, you will flash whatever firmware or bootloader you choose onto the ZIF or SPI connected device. However, if you ENABLE the 'reset on open', you'll be able to re-flash the programmer itself with new firmware. It is a much simpler solution than the ones offered on the 'Arduino ISP' web page, though it requires building your own device (soldering, etc.). If nothing else, it's a nice proof of concept for how to use an AVR processor directly within your design, without the 3rd party device. [Still, for breadboarding, I would prefer the Boarduino or an Arduino - they're designed for that]
©2013-2018 by Stewart~Frazier Tools, Inc. - all rights reserved
Last Update: 8/4/2018
Arduino™ is a trademark of Arduino AG