This is a header board for 28 pin ATmega microcontrollers. It works with ATmega48, ATmega88, ATmega168 and ATmega328. It is designed to occupy the least space on a bread board. It is Arduino compatible and can be programmed with an FTDI cable.
First check, if you have all parts:
- ATmega328P microcontroller, 32kB flash RAM, Digikey
- Resonator, 8 MHz, Digikey
- 2 * 100 nF capacitor, Digikey
- 100 uF electrolytic capacitor, Digikey
- 100 kOhm resistor, Digikey
- LED, blue, SMD, size 1206, Digikey
- LED, red, SMD, size 1206, Digikey
- Header, straight, single row, Digikey
- 220 Ohm resistor, SMD, size 1206, Digikey
- 470 Ohm resistor, SMD, size 1206, Digikey
- Header, straight, double row, Digikey
- Header, right angle, single row, Digikey
- Precision 28 pin socket, Digikey
- Push button, Digikey
- Printed circuit board, Tinker Store
Most parts are generics, you can buy than at any shop. Digikey parts are here most as reference. Be sure to use the precision kind of socket if you want the LEDs to shine through.
To assemble everything, the following tools are required:
- Soldering iron and solder
- Solder wick (optional)
- Additional flux (optional)
- Third hand or panavise. Not really required, but very helpful
- Diaglonal cutters
To run the board, you will need:
- ISP programmer with 6 pin connector, or
- FTDI cable, programming via the Arduino IDE
If you want to use the header board as a simple and easy way to program ATmega*8 controllers, you will need the ISP programmer. If you want to program it Arduino-style, you will need the FTDI cable to upload your sketches. If you bought the kit from Tinker Store, your controller is already pre-loaded with the bootloader.
Solder it, the SMD part
Some words before we are going to solder the SMD LEDs and resistors.
If you have done one or two through hole kits already, then you can do this too. It is not that hard and nothing to be scared of. The parts are so called 1206 parts, which means they are 3.2 mm × 1.6 mm or 0.126″ × 0.063″. They are relatively big for SMT parts and a good way to learn SMT hand soldering.
If you are not willing to take the challenge, not a big deal. The only things you will loose are the power LED and the LED on pin PB5 (digital 13 on Arduino). The rest of the board will still work without the LEDs and the resistors. But I would suggest, that you try it at least.
Now take a look at this great video on soldering surface mount devices, done by Curious Inventor.
Watched it? OK, great.
Examine the board. The tiny pads in the middle are the pads for two SMD LEDs and two SMD resistors. The left one is LED 1, the red one, and its resistor R2 (470 Ohm). The red LED has two tiny green dots on one side, that denotes the cathode (-). The blue LED has only one green dot on the cathode. If you can’t say which one is which, you can wire up a supply (5V) with a 1k resistor and hook it up with the LED.
Now heat up one pad of the R2 pads and put a bit of solder on it. If you put too much onto it, use solder wick to suck up the solder.
Then take the 470 Ohm resistor, it’s the one with a 4700 on the label, with your tweezers and place it with one side over the pad. Now re-heat the pad and press down the resistor gently. It should lie flat on the PCB.
Move on to the other pad. Heat it up and add some solder. Use it sparingly.
Next solder the red LED (the one with two green dots) just like you did with the resistor. Place it so, that the green dots point away from the little plus sign on the PCB. Then some solder on one pad, place the component, re-heat, then solder the other pad.
Now proceed with the blue LED and the 220 Ohm resistor.
If you followed along, congratulations! You’ve mastered SMD hand soldering.
Solder it, the through hole part
Now comes the easy part. Insert the small 100 nF capacitors. Orientation does not matter. Then insert the electrolytic 100 uF capacitor. This one has a positive (long) and a negative (short) lead. The negative is marked with a white stripe. On the PCB is a tiny plus (+) sign that gides you how to insert the capacitor. Bent the leads of all components slightly apart so that they don’t fall off if you swap the board.
Turn the board over and solder the capacitors.
Cut off the leads. Be aware that the leads may jump off, right into your eye.
Now insert the resistor and the push button.
And solder them.
Now you have to cut different length of the header. We need: 2 pins (jumper), 7 and 4 pins for the left side and 14 pins for the right side.
Next place the 6 pin ISP header and solder it. Take care if you hold it with your bare hand. Be sure to solder one pin that you don’t touch on the other side.
The jumper is a bit tiny hold from the other side. You may want to lay it flat on the surface and solder it. Solder only one pin and check if you got it straight before soldering the second one.
Go on with the FTDI connector. That is the right angle header.
Now insert the 8 MHz resonator. Bent the leads slightly to keep the resonator on the PCB.
And solder it. And cut off the leads.
Next insert the socket. Check that the small notch points to the FTDI header (to the right).
Swap the board and solder it. First solder one joint on one corner. Then solder another joint on the diagonal opposite corner. Then solder all other pins.
To make it easier to solder the headers, you can stick them into a breadboard and place the header board on top. Then solder all headers.
To make the controller fit into the socket, take it between your two thumbs with one row of pins placed flat on the surface. Then bent the pins slightly inwards. Proceed with the other side.
Now insert the microcontroller carefully into the socket. Be sure that all pins are aligned and that the small notch points to the FTDI header as the notch of the socket does.
The controller has an Arduino bootloader pre-programmed.
If you want to use the header baord as an Arduino board, then you can apply the sticker. That way it’s easy to see whitch cable connect to which pin.
OK, great, you’re done!
Before we are going to program anything, look again at your board. There is a jumper between the two capacitors. This jumper is used to select the power supply for your board. If you want to power your board via the bread board, then pull the jumper off. If you want to power your board via your programmer or an FTDI cable, then insert the jumper. Be sure you don’t pull to much current out of the programmer or FTDI cable (max. 75 mA).
You can check if everything is working by connecting the FTDI cable to the right angle header. Check that the green and black cable aligns with the marks on the PCB. The red LED should light up to indicate that the board is connected to power. The blue LED should blink. Now open up the Arduino IDE and select the blink sketch. Select the board (Arduino Pro Mini (3.3V @ 8 MHz) w/ ATmega328) and your serial port. Now compile and upload the sketch. The blue LED should be blinking, one second on, one second off.
If you want to use the Mega328 header board without the Arduino IDE, then you have to download an AVR toolchain. I suppose you take a look at CrossPack (Mac) or WinAVR (Windows). Now connect your ISP programmer to the 6 pin ISP header. Download the zip below and extract it. On the command line, type make install. That should compile, burn the fuses and upload a simple test program. The blue LED should be blinking by now.
Links and Downloads
- Buy a kit at Tinker store (sorry, closed)
- Eagle files and test program, header328.zip
- GCC toolchain for Windows, WinAVR
- GCC toolchain for Mac OSX, CrossPack