How to Shrink Your Arduino Projects: Making a Permanent Circuit Board

By Mayoogh Girish

Shrink Arduino


When you make a project using Arduino, it usually contains a lot of jumper connections on the breadboard and the project will not be a permanent one. If you want to make any other project using that Arduino, you will have to remove all the connections made on it and to rebuild the same project, you need to start over again.

Shrinking Arduino projects makes them smaller in size, appealing, and permanent. So in this post, I will be showing how to shrink Arduino projects and make life easier!

Required Materials

  1. Atmega8 or 16
  2. Arduino uno
  3. 16Mhz crystal
  4. Resistor 10K , 100K
  5. 22pf capacitor
  6. 10uf capacitor
  7. Jumper and connectors
  8. Breadboard

How Does it Work?

The basic idea of shrinking an Arduino project is to make a permanent circuit board for it. This is done by programming an Atmega chip using an Arduino. To program an Atmega using Arduino, first of all, we need to make a DIY programmer and burn bootloader. To use your Arduino to burn a bootloader onto an Atmega,  you need to follow a few simple steps.

Steps to Shrink Arduino:

  1. Open the Arduino IDE
  2. Open the ISP  sketch (from Examples) and upload the sketch to your board by selecting the  correct Board and Serial port


Shrink Arduino Shrink Arduino













3. After successful uploading of the sketch(ISP), wire your Arduino board to the target board(atmega8/16) as shown in the diagram below.

(Note for the Arduino Uno: you’ll need to add a 10 uF capacitor between reset and ground. After uploading the ISP sketch)


Shrink Arduino Shrink Arduino







    ARDUINO PIN                           ATMEGA8/16 PIN
SS       (Pin 10)                                 RESET (Pin 1)
MISO (Pin 11)                                  MISO (Pin 17)
MOSI (Pin 12)                                 MOSI (Pin 18)
SCK    (Pin 13)                                 SCK (Pin 1)
VCC    (Pin 7)                                   AVCC (Pin 20)
Gnd    (Pin 8)                                   Gnd (Pin 22)



4. Select the  Tools > Board menu that corresponds to the board on which you want to burn the bootloader. I am using Atmega8 as target microcontroller to shrink Arduino, so I will choose board as Arduino NG or older w/ Atmega8.

Shrink Arduino

5. Select Arduino as ISP from Programmer menu.

6. Check that everything is connected properly and click Burn Bootloader > Arduino as ISP command.


Shrink Arduino Shrink Arduino












7. After a while, you will see the message “Done burning bootloader”. Then you can upload your codes using the Arduino IDE to your Atmega8 chip.

8. Try uploading File>Examples>Basics>LED blink sketch to Atmega8 via Arduino and if the LED blinks then your board works properly.
NOTE: While uploading the sketch via ISP, instead of simply uploading the sketch, select upload using programmer(Ctrl+shift+U).


Shrink Arduino Shrink Arduino












9. Unplug the Arduino programmer and plug your standalone Arduino(Atmega8 chip) to an external power supply(5v).


Shrink Arduino


This is a breadboard version of the programmer. Here, you need to make all the connections on the breadboard again and again whenever you want to program your chip. So I made a permanent programmer board.


Shrink Arduino

PCB Layout for the programmer

Shrink Arduino


Here is one of my Arduino projects that I shrunk.





Shrink Arduino


Arduino boards are versatile tools for making electronics projects. Now you can shrink Arduino projects very easily. I hope you find this useful!!

Recommended Posts
Showing 3 comments
  • Abdulwahab

    Very helpful tutorial, it worked just like in the video. I just have one question/problem, do I need to plug in the crystal and capacitors on any other standalone projects? I presume the Atmega328p has an internally built crystal? Your immediate response would be greatly appreciated. Thank you

  • suhail

    hey guys i need make a custom pcb .i tried toner transfer but its not accurate means it joint two there any way iam in kerala.any shop or company provide pcb design in kerala

  • varun

    hi ,your tutorial seems very useful and I’m following each and every step provided above and I have also gone through your video . But it seems that I have a small issue i.e I’m unable to burn the bootloader and I get an error saying

    avrdude: stk500_getsync(): not in sync: resp=0xd9

    which changes to

    avrdude: stk500_getsyc(): not in sync: resp=0xc9
    avrdude: stk500_getsync(): not in sync: resp=0xe9

    after I try burning my program again.
    So I decided to put this problem in front of you experts. Please spare some time. Thanks in advance.
    we are using atmega 328p IC and we have selected arduino UNO board.

Leave a Comment

12 + = 15

Start typing and press Enter to search