Small Footprint ATMega328P Board




Introduction: Small Footprint ATMega328P Board

About: I have been working in IT since the mid 1980's. Most of that has been database and application development. I've been working on Internet application development since the late 1980's. And, we're back in Tass…

For my Word Clock project, for which I built a custom 8 x 8 LED Matrix with controller, I needed a much smaller footprint DIY-Duino (board for an ATMega328P microprocessor), one that would have all of the main functionality of my previous DIY-Duino boards (such as the Arduino Uno I2C Master board). As I'm not going to include I2C in the Word Clock, I can get rid of that without compromising the board and secondly, I can add an ICSP sub-board without it taking up any space in the clock.

So, that's it, the design brief. A smaller custom Arduino that can be served by an add-on ICSP sub-board to make programming the microprocessor easy.

The parts:

Barebones Arduino

• 1 x ATMega328P
• 2 x 10 uF Electrolytic Capacitors
• 2 x 0.01 uF Ceramic Capacitors
• 1 x LM7805 Voltage Regulator
• 1 x 16 MHz Crystal
• 1 x Tactile Momentary SPST switch
• 1 x 1K ohm resistor
• 1 x 28 pin DIL socket
• 2 x 6 pin female headers
• 2 x 8 pin female headers
• 1 x 30 mm x 62 mm PCB (Single Sided)

ICSP Sub-Board
• 4 x 3 pin male headers
• 1 x 6 pin male headers
• 1 x 27 mm x 48 mm PCB (Single Sided)

I had made the board with connection for my USB Serial Adapter, but that doesn't seem to work ... here are the parts if you are interested.

• 1 x 6 pin male headers
• 1 x 0.01 uF ceramic capacitor

Well, it turns out that the reason that the USB Serial Adapter connection didn't work is that my Freetronics USB Serial Adapter is fried. So, it wasn't my ICSP Sub-board that wasn't working.

Step 1: Barebones Arduino No FTDI

I started with the Barebones Arduino Breadboard - No FTDI that comes with Fritzing and did some tinkering as I noticed that, for one thing, the 10 uF capacitors were around the wrong way. Next, I moved parts around a little and made some changes to the layout and traces.

Normally, I don't bother with the reset button ... I decided to keep the button "in" for this project.

As there is very little space on the board for labels, I made up two small labels in MS-Word for the pins and glued them directly onto the female pin headers.

As usual, solder the lower parts first, resistors, crystal, ceramic capacitors and then the taller parts, electrolytic capacitors, DIL socket, female headers, power socket and then the LM7805.

Once these are in place, the two jumpers are connected between the switch and reset (pin 1) and between pins 8 and 22 (GND).

At this point, you should get out your multimeter and test trace continuity across the board and then, with the power connected (but without the ATMega328P chip installed) test the functionality of the voltage regulator. When you've tested the board and it is all OK ... put the ATMega328P chip into the socket.

Step 2: ICSP Sub-board

This is a very simple sub-board that is used to upload sketches onto your ATMega328P and is removable so that it doesn't take up valuable real-estate in your enclosure.

The sub-board simply connects the ICSP pins to the ATMega328P.


There are a couple of ways to arrange the connections of the ICSP pins to their corresponding Arduino pins, all of them require jumpers for a single sided board. On my design, there are two jumpers, 1 for MISO and one for SCK.

The header pins used for interconnecting the sub-board to the main board are done by pushing the plastic header block all the way up the pin so that they are at the top. Under the plastic header is a u-shaped channel that is usually flush to the board. The pins are then inserted into the holes in the board and soldered from the copper side. You want to make sure that you don't end up with solder going up the pin, otherwise you won't be able to insert the pin into the female socket. If you do end up with some solder going up the pin, use some copper braid to remove it and a small file.

Step 3: Putting It All Together

The boards fit very snugly together with the front edge of the sub-board hard up against the LM7805. If you aren't going to use the USB Serial Adapter, you can trim the board so that it fits a little easier (without touching).

The sub-board is connected with the two 3 pin blocks at the top left, the 1st pin connection on the board is RESET. The single 6 pin block should be at the bottom right.

With the chip in place, the sub-board should just make contact with the ATMega328P, don't worry, there isn't anything that can short there!

Connect your favorite ICSP programmer and you are away.

Apart from the lack of USB Serial Adapter connection, I am pretty happy with the small footprint board with it's ICSP sub-board.

Next ... it'll be connecting the control switches and the Real Time Clock module to the smaller 'Duino board and I'll be playing with my clock.

Be the First to Share


    • Fiber Arts Challenge

      Fiber Arts Challenge
    • On a Budget Challenge

      On a Budget Challenge
    • Sculpt & Carve Challenge

      Sculpt & Carve Challenge



    6 years ago

    can i use it for atmega 8 sir?


    Reply 6 years ago

    Hi PadlanA, A comparison of the pins of the ATMEGA8 with the ATMEGA328 shows that they are pin compatible, meaning that you can drop in an ATMEGA8 in an ATMEGA328 socket without any problems. The differences are internal. Apart from the obvious differences (memory, speed, signature, etc.) you should be able to use the board as a breakout for an ATMEGA8.


    6 years ago

    what i use atmega328p or atmega328p-pu


    Reply 6 years ago

    Hi spanda12, I'm using a atmega328p-pu, however, the differences between the P and the P-PU are not significant for this board. You could happily use either with no change to the layout and components. The main differences would be in how you use your board, rather than in the board itself.

    AFAIK ATMEGA328P describes the "family" of chip, with the P denoting pico-power. Whereas the -PU (AU, AUR, MMH, MMHR, MU, MUR and PU) describes the ordering code for the package. The P-PU is a 28P3 package (28-lead, 0.300” Wide, Plastic Dual Inline Package (PDIP)) ... according to the datasheet.

    Wrrr 10-G
    Wrrr 10-G

    6 years ago

    A lovely personal swing you gave your 'Duino version. I really like it.


    Reply 6 years ago

    Thanks for the comment :)