AVR ATMega328 Target Board

Like most contemporary electronics hobbyists, I got my initial start on the Arduino four years ago.  Of course, after about a year playing around with their bulky blue PCBs, you want to start being able to put Arduinos in projects without paying $30 a piece for the whole development platform.
The trick is that the Arduino platform essentially boils down to an ATMega328 running a bootloader, which lets you reprogram the chip through a serial port instead of needing an in-circuit AVR programmer.  You can then buy just the ATMega328 chip online for a few dollars, and then build around it only the parts of the Arduino board you truly need. The problem is that when you buy the AVR from a chip supplier, it doesn't usually have the Arduino bootloader preloaded on it, so using the Arduino IDE there is no way to reprogram it. (Note: you can buy preprogrammed chips, but you pay a $2 premium)

I opted to buy a tube of 25 blank AVRs, which saves me money as I continually drop Arduinos into projects, but I need some way to burn the bootloader the first time before I can start reprogramming it.  Of course, burning the bootloader uses a different six pin header than the serial port, so you need to either wire both headers into every project or have a separate board which you can use just for the initial burn. One board you can use for this is actually the original Arduino board, because they have the ICSP header and are often at hand, but trying to get more than a few new chips into and out again from a normal DIP socket gets tired fast. New DIP chips come with their pins bent out 20-30 degrees, so to get one into a regular DIP socket requires bending pins and a light hand as you put it in and pull it out to prevent breaking off pins.
Meet the Zero Insertion Force (ZIF) socket! There are most commonly used on computer motherboards to allow users to replace the hella-high-pin-count CPUs, but you can get them for DIP parts as well.  Mine happens to be designed for 40 pin 0.3" or 0.6" DIPs, which I got on eBay for $2. Ideally, I would have gotten a 28 pin version to match the ATMega328 28 pin package, but this one happened to be cheaper, and I plan to add in ATtiny85 programming capability at the bottom of the socket.
Grabbing a random piece of perf board and all the components shown in the schematic, it only took me about an hour to solder this target board together.  Now, I can sit down with a new tube of 25 ATMega328s, an ICSP programmer, and easily burn all of them with the Arduino bootloader without running the risk of breaking any pins off.
I first plotted out about where I wanted all of the connectors; ICSP in the middle, serial port on the left, and reset button between.  I left space on the right for a DC jack and 5V regulator to allow this to be programmed independent of the programmer, and will eventually wire up the right 8 slots of the ZIF to support the ATTiny85 AVR as well.
Most of the wiring was done on the bottom using 32 gauge wire-wrap wire.  Feel free to use any technique you like, as it suits you and your perf board.
One thing to notice is that I've started using mostly 0603 surface mount passives, even when I'm working on through-hole projects on 0.1" perf board.  Removing the need to figure out where to fit a 0.2" capacitor when you can just tack it between pins makes layout quite a bit easier and cleaner.  Can you spot the four capacitors in the bottom view of the board? :-P
In the end, this is a very useful little piece of kit to have rubber banded to your programmer, such that any time that you just need to program an AVR one time real quick, it's just a matter of dropping in the chip, pushing down the ZIF lever, running avrdude, and then lifting out the programmed chip and installing it in your project.

In my next post, I'll show you one of these applications of the Arduino which profited both in size and price from not using the entire Arduino board. I'll also eventually post an update to this post showing the power supply section built (which you won't normally need, but I will need it for a future project) and the wiring to program ATTiny85s on this target board as well, but I'm looking to be rather busy for the next few weeks.

Popular Posts