Shrink Arduino Projects: The best way to shrink your Arduino

From our STAR Maker: Mayoogh Girish

Shrink Arduino

When you make a project using Arduino, it usually contains a lot of jumper connections on the breadboard. Also 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 back again, you need to start from level 0.

Shrink Arduino projects to make them small in size, appealing and permanent. So in this post I will be showing how to shrink Arduino projects and make life easier!! :)

What are the stuff required to do this?

  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 the arduino project is to make a permanent circuit board for it. This is done by programming an Atmega chip using and 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 everything is connected properly and click Burn Bootloader > Arduino as ISP command.

Shrink Arduino Shrink Arduino











7. After a while you will see a 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 very versatile tools for making many electronics projects. Now shrink Arduino projects very easily using this tutorial. I hope you find this useful!! :D

Mayoogh Girish

Mayoogh Girish – STAR Maker at DIY Hacking

– I am a 17 year old Maker from India and a big Arduino fan and Founder of Avishkar
Recommended Posts
Showing 2 comments
  • 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

6 + 2 =

Start typing and press Enter to search