Picture of How to make your own Arduino board
If your are like me which I am guessing you are, then ever since you got into doing stuff with arduino you have wanted to make your own arduino board. You may be surprised to find out that making the prototyping board is actually very easy, and can have several advantages over using the commercially sold board. For one thing, All the components together cost a little over 15 US dollars as opposed to the $30 that the Uno board sells for. second, you may not actually want a board, but may simply want the atmega chip as the heart of the project, like if you are making a synthesizer or even a robot. In that case, you can just attach the  hardware necessary to use the chip, and solder to the pins you need to use without needing the board. Another advantage is making shields. You have probably noticed that digital pins 7 and 8 are not the standard distance apart, which makes it difficult to make your own custom shields without paying the $15 dollars for a protoshield every time you make one. But if you make your own board on perfboard, the headers will be the standard distance apart and you can make your own shields with ease. Also, you may need to permanently add the board to your project, and for that you may not want to use the more expensive arduino boards. This board however is half the price, and easy to add to custom projects.

The only down side is that some parts of the arduino are kind of hard to build on perfboard. Most notably the Serial to usb adapter chip, which allows the microcontroller to interface with the computer through usb. You could use a good old RS232 jack, but they are not on a lot of newer computers. So to program your homemade board you will either need a break out board which does have the chip (get one here:, or an arduino Uno or clone board to program the chip ( I used the former.)

Either way it is a fun and informative project.
Remove these adsRemove these ads by Signing Up

Step 1: Materials

All of these materials can be purchased as a bundle here (except for the power jack and female headers:

 otherwise here is the parts list:
-two 10 uf electrolytic capacitors
-two 10 uf tantalum capacitors
-7805 voltage regulator (5v)
-LM1117T-3.3 voltage regulator(3.3v)
-green LED
-red LED
-two 150 ohm resistors
-10k resistor
-one 0.1 uf capacitor (ceramic disk)
-two 22 pf capacitors (ceramic disk)
-16 MHz crystal oscillator
-momentary push button switch
-jumper wires
-female headers (I used three rows of eight)
-row of 6 male headers
-female wall wart power jack
-ATmega328 with bootloader
-28 pin DIP IC socket

Step 2: Install the socket

Picture of install the socket
The first step is after finding a good sized perfboard is to find a good place for the chip, and place the IC socket where you want it paying attention to the notch witch will be matched with the notch on the chip. also find where you want your power jack. You should place it on the edge of the board probably in the corner. I widened the holes on the board with a 1/16 inch drill bit, but still had to fold the leads on the jack using needle nosed pliers to get it to fit through. On the jack, the pin on the back connecting to the post on the inside is positive, and the one on the bottom connected to the metal on the inside is ground (the pin on the side is not needed. You could solder it for extra support, but I just broke it off). Remember this when connecting the regulators.

Step 3: Adding the 5v regulator

Picture of Adding the 5v regulator
Now it is time to add the five volt regulator. This is technically the only regulator you need to power the chip, but if you want a 3.3v pin (some breakout boards or sensors require 3.3v so the pin is nice to have), you will need to add the 3.3v regulator. These regulators require two decoupling capacitors each. Holding the 7805 printed side facing you, and the pins pointing down, the one furthest left is the input, the center is ground and the furthest right is the output. connect one 10 uf electrolytic capacitor to between the output and ground and the input and ground, being sure to connect the smaller leg to ground. connect the positive from the power jack to the furthest input pin, and ground from the power jack to the center pin.

Step 4: Adding the 3.3v regulator

Picture of adding the 3.3v regulator
It is very important to remember that 3.3v regulator does not have the same pinout as the 7805. With the printed side towards you and the pins down the one furthest to the left is ground, the center is the output, and the furthest right is the input. Again you will need two decoupling capacitors. connect one of the 10 uf tantalum caps between output and ground and the other between input and ground paying attention to polarity. the positive lead should be labeled on the front of the cap, the other is negative, and be sure negative leads on these caps get connected to the furthest left pin on the regulator.

Step 5: Indicator LED

Picture of indicator LED
Next you are going to connect the green LED to the output of the 7805 regulator to indicate when power is connected to the board. Connect the anode of the LED (longer leg) to the 150 ohm resistor, and then connect the resistor to the output pin of the 7805. connect the cathode (shorter leg, also indicated by being next to the flat side of the LED) to the center pin of the 7805. Once you do this it would be a good idea to plug it in to make sure you made all of the right connections. Once you are sure everything is right, you can move on.

Step 6: Connecting power and ground pins

Picture of Connecting power and ground pins
Now, you will begin making connections on the chip. connect pins 7, 20 and 21 to five volts and pins 8 and 22 to ground.

Step 7: Reset button

Picture of Reset button
On pin 1 (reset pin) connect the 10k resistor from the pin to 5v. Then connect one contact on the momentary push button switch to pin 1, and the other contact to ground.

Step 8: Adding the crystal oscillator

Picture of Adding the crystal oscillator
solder the 16 MHz crystal oscillator to pins 9 and 10 on the chip. Then connect 1 leg of a 22pf cap to pin 9, and the other to ground. do the same with the other 22pf cap and pin 10.

Step 9: LED on pin 13

Picture of LED on pin 13
Connect the red LED's anode to pin 19 on the chip (pin 19 is digital pin13 on the arduino, refer to pin diagram on next step) and the cathode to ground through a 150 ohm resistor 

Step 10: Connecting the female headers

Picture of Connecting the female headers
For starters you should probably label each pin on your female headers to avoid confusion later. then solder the headers to the board and connect them to the respective pin on the chip, according to the pin diagram above.

This process is very tedious, so just have some patience and you should be fine. Also planning out how you are going to connect everything before hand will go a long way. You will probably have a lot of wires intersecting. after a while I was forced to start connecting pins on the bottom of the board to prevent this.

Step 11: ICSP headers

Picture of ICSP headers
On the opposite end of the board from the power jack, solder the row of 6 male headers. connect the first pin on these to pin one on the chip through a 0.1 uf capacitor, the second to pin 3, the third to pin 2, the fourth to five volts, the fifth does not get connected, and connect the sixth to ground. 

You can use these pins to program the chip using the breakout board mentioned earlier.

Step 12: Programming with the arduino uno

Picture of Programming with the arduino uno
To program the chip with the uno board, I simply pried the chip on the arduino board off, and replaced it with the new chip. I then uploaded whatever sketch I wanted to use the same way you would any other. Once program I pried it out again and placed it in the new arduino board. 

Anything you can do with the arduino (except serial read, and other things that require constant interface with the computer) can be done on the Homemade arduino in this way.

Step 13: Finished

Now you are finished, and can use your new homemade arduino prototyping board for any project you want. As always if you have any questions comments, of problems leave a comment and I will do my best to help you. Also please rate this instructable.

Have fun!
1-40 of 160Next »

Hey what can you use as a substitute for the two 10 uf tantalum capacitors? I have all the materials except for that.

hi. do i need atmega328 p-pu with optiboot for aduino ( or it s ok atmega328 p-pu without optiboot ( and what is the difference. Thank you!

bootloader allows you to re-program your arduino using uart bus, instead of spi. you can get plain atmega328 and burn the bootloader using spi, just for the first time. btw i havn't done this before, but i just can predict it. so anyone else sees i'm wrong in something, just let me know

tanvirfakir2 months ago

can i use 8051controller in aurdino

im not understood what exactly aurdino board it is like a starter kit of 8051?

arduino = atmel microcontroller + bootloader + improved IDE , i don't think arduino has released kit supporting 8051

shreyask13 months ago

can someone say me the schematic to build an arduino using max232 and type-b usb socket


pkgdelion4 months ago

Help! help!! help!!!

Hello Guys, I am trying to manage the
movement of four(4) bit binary code over an Optical Link using Arduino
Board but am stucked, I don't know how to start.

Please I need Help

pkgdelion4 months ago

Help! help!! help!!!

Hello Guys, I am trying to manage the
movement of four(4) bit binary code over an Optical Link using Arduino
Board but am stucked, I don't know how to start.

Please I need Hel

Xuân HợpT4 months ago

thank you

robobot31128 months ago

could i mix a deumilanove's chip in that way with the uno's. i mean like chip exchange.

Higgs Boson (author)  robobot31128 months ago

I don't see why not.

it would not get damaged would it?

Higgs Boson (author)  robobot31124 months ago

At worst you might get a programming error, but the duemilanove uses the atmega168 I believe, which is identical to the 328 except it has 16k of program flash instead of 32k. But yeah, they have the same pinout and operating voltage so it should be fine.


Cubytus made it!6 months ago

I actually made two of them. The first one was the square one. It is rather ugly and messy. No polarity protection, dissimilar regulators, mostly salvaged parts. The programming LED is the big yellow one, and I used a resistor too small (150 ohms), meaning using pin 13 would be problematic because of the high current draw. I made errors installing the headers, so there are extra, unconnected pins on both sides. Both units sought to fit the most complete Arduino clone compatible with FTDI interface. Unlike the one presented here, I chose to add the 1Kohm resistors on the FTDI interface. Obvious defect: the headers are the small machined round type, which can't fit square male pins. Both use free wires to feed them, a rather personal choice as I have an old stabilized power supply fitted with screw connectors. Think about replacing that if you intend to use it with a wall wart. Both feature the standard 10-pin AVR programming interface present on the USBASP, as I didn't want to make an adapter.

The second one took it further, on a 15x25 perfboard, and designed to use in projects where space may not be large. As you can see, I had to fit some bulky components under the Atmega socket, itself made from female headers to allow for more space, and still doesn't use first-choice components but what I could find locally. It has dual regulators, polarity protection diode (1N4004, an OK replacement for the MBR0520 - telling from memory - in this application), and the 3.3V is a SMD unit that happened to be large enough for regular pitch, fed from the 5V from the 78L05 to save on space. I know it only gives 100mA, and if you attempt to make your own, try using the 78M05, which gives 500mA in the same footprint. I just have a lot of 78L05 in the parts bin. To keep a low profile, I used small LEDs: green for power (connected to the 3.3V regulator), white for pin 13. Unlike other common colors, it still gives a very powerful light with a 1Kohm resistor yet calculated current is only 3 or so mA.

Headers are unlabeled but thanks to the paler material this should be easier, and they do respect proper separation between them. The solder side is filled to the brims, and I don't think you could go any smaller using single-side board and through-hole components. With Atmega inserted, notch to the right, pinout is identical to original Arduino. I discovered a bit later that the design I used, as well as the one presented here, is closer to the 2009 version of Arduino.

Approximate cost for one unit: $7.50 You can make them even cheaper buying from Chinese or Thai vendors. They typically sell 100-packs of 2% precision resistors for $1 or $2. Salvaging used electronic boards from TVs or stereos usually is usually messy, but can yield appreciable amounts of small, through-hole resistors, capacitors, etc. Just don't forget to check them against their specs. I trashed carbon-based resistors as well as capacitors because they were out of their 10 or 5% tolerances.

proto board: 25¢
Atmega 328 (no P, had to modify Arduino's IDE config file): ~2$
Headers: 15¢ for 40, probably 60¢ worth of them here.
LEDs: 30¢ each.
crystal: 50¢
capacitors: 15¢ each, so 1.35$ (not cheap!)
resistors: same, so 90¢
Regulators: 80¢ each.
Thin wire: I used phone wires, but wire-wrap style should be better. Cost unknown.

Cheap doesn't mean quick. Assembling a board from scratch and planning the routing in your head is a tedious process taking many hours, especially if, like me, you regularly unplug the soldering iron to relieve the tip.

Higgs Boson (author)  Cubytus4 months ago

Nice! Looks good!

pardeep kumar4 months ago
I made it, but just getting problem in programming it because I don't have any arduino board by which i can replace the ic....

Is there any alternative way to programme it......
Higgs Boson (author)  pardeep kumar4 months ago

You can get an FTDI breakout board, and connect that to the programming header. Set the the board to duemilanove (or any that use the ftdi converter chip) in the IDE and program as you normally would.

hakeeqjavid5 months ago

but how to program the atmega ic .... ?? just help me.....

Higgs Boson (author)  hakeeqjavid5 months ago

The 6 pin header is for hooking up to an FTDI breakout board which allows you to program it with the arduino IDE.

and is it atmega328pu or atmega328p-pu ???
Higgs Boson (author)  hakeeqjavid4 months ago



can i use 10uf electrolytic capacitor instead of tantalum capacitors?

I don't see why not.

pardeepvik6 months ago
please can you provide a video for how to program the arduino board...
paddy99756 months ago

Is this own created board interface with android OS?

OR Can we able to use all these features which are provided by Arduino board?

Hi, I found this project very interesting and useful, but I had a crazy idea before, is it possible to build a complete arduino from scrap electric pieces ( resistors capacitors transistors etc... ) I know it will require much higher power but is it possible? How big will the board be?

You can't build the Atmega in the arduino boards from junk.

The others parts can be found in scrap, but the atmega can be almost impossible.

Hi, if i already have an ATmega328 with bootloader on it i dont need to get an arduino pcb, right?

It depends.

You will need a device to upload the codes, I generaly use a USB-Serial converter, you will need it because the Atmega don't talk directly to the PC.

You can use the serial from a arduino board to upload the codes too.

My converter is based on the CP2102 chip, but the ft232 is popular between the Arduino folks.

dcoptimum7 months ago

For a really easy Arduino design check out ours:

Simple Arduino.PNG
enxp7 months ago


I didn't test this homemade solution yet but i guess it has the same HW settings and

characteristics like the original arduino board. If so, then tell me, would it be possible to use your board for purposes like this:

?. Thank you in advance !

dharm78 months ago
where is the usb plug port in the homemade circuit board , how to imply digital i/o pins ? how to connect the rx and tx ? can we program parallely to the board kindly reply to this question
Higgs Boson (author)  dharm78 months ago

For a USB connection you can plug an FTDI breakout board to the programming header and program it normally from the arduino IDE.

bwills49 months ago

Potentially stupid question from a newbie...what do I need to connect the breakout board to the arduino, and then to my pc?

Higgs Boson (author)  bwills48 months ago

The breakout board and a USB cable.

ualbuquerque8 months ago

I use a crystal oscillator 27 MHS?

Higgs Boson (author)  ualbuquerque8 months ago

I think 16MHz is the maximum clock speed. Unless you wanted to overclock it...

lucianorueda9 months ago

Hi! great project! thanks!
Do you know anything about RC brusless motors?
How would you modify the circuit so you could use the arduino as an ESC (electronic speed controler) of a brushless motor?

I get lost when I try to handle the volts and amps hight velues that you have to handle with RC motors... (middle/big ones like 90A 24V)
I would like to build that arduino board!

Any thoughts?

Anyway, thaks!!! I will start with this and see next anyways!

1-40 of 160Next »