Introduction: How to Build an Arduino Uno on a BreadBoard
If you are like and me and enjoy building electronic projects then you might have worked with the Arduino Uno. The Arduino uno is the most popular micro controller of the series and has a large collection of libraries which make working with it very easy. So there would be times where you may need more than one Uno for the project, I like to make my own micro controller rather than buying a new one, as this saves me some money which may be helpful for other such projects.
In this tutorial I'm going to show you how to, build your own Arduino Uno clone, so you can use it along side with circuits. This is a breadboard tutorial so no soldering skills are required.
You can check out my video tutorial above.
Step 1: Components Required
The components required for this project are fairly simple and all the parts can be purchased at a local hardware store or on eBay.
USB to Serial module (you can also use an Arduino Uno if you have one)
- Atmega328 IC
- 16 Mhz Crystal
- 22pF Capacitor
- L7805 Voltage regulator
- 10uf Capacitor
- LED
- Breadboard
- Connecting Wires
- 6V or 9V or 12V Power supply
- Soldering Iron
Step 2: Atmega328
The Arduino is based on the Atmega328 IC and it is also the heart of the circuit. All the processing and everything else is done by the IC. The Atmega328 has to have a arduino boot loader flashed on to it to program it using the Arduino IDE.
The arduino uno is made of three parts
- Atmega328 IC
- Voltage Regulators
- Serial Programmer
You can purchase an Atmega328 IC with the Arduino boot-loader pre-installed or you can also install it yourself but you will need an Arudino uno to install the boot-loader. So it is recommended to get a Atmega328 with a pre-installed boot-loader.
Step 3: Voltage Regulator
The first step will involve building a voltage regulator, the atmega328 is a 5V micro controller so is the arduino Uno. So we need a regulated power supply to power the Atmega328 IC. For this we will be using a L7805 voltage regulator this is a popular voltage regulator and is cheap and serves the purpose of building an Arduino uno. This voltage regulator gives a voltage of 5V and a maximum load current of 1A.
You can also use a better efficiency regulator if you need more power output. You may also use a breadboard power supply as an alternative.
Step 4: Circuit
The circuit is fairly simple and the connections from the Arduino to any external circuit may vary depending on the external circuits. It would be recommended to try it out on a breadboard first. Follow the circuit above and assemble it on the breadboard. You can also add a led on digital pin 13 if you want to replicate the on board led as on the Arduino uno.
I am assuming you got an arduino with a preinstalled boot-loader if you got one without the bootloader you can use an Arduino uno to flash the boatload on the IC.
Step 5: Serial Connection
In the atmega328 IC the pins 2 and 3 act as a serial port and to program the board all you have to do is connect these pins to the USB to serial converter. You can also use an arduino as an programmer to program the board. But using a USB to serial converter is much simpler to work with.
After you are done with the connections plug the USB end of the converter to a computer, and install the necessary drivers if you are on windows.
Step 6: Uploading Code
Before you can upload code to the board you need to download and install the Arduino IDE from the arduino official website. Then select the suitable serial port, board and you should now be ready to program your home made Arduino. To test the board you can try out the blink program you can find in the examples section of the Arduino IDE.
And you should now see the led connected to the digital pin 13 blink at an interval of every one second.

Third Prize in the
Makerspace Contest
19 Comments
3 years ago
You can make your own brand Arduino very helpful post but I face a problem
If You are using At mega IC first time you have to install a bootloader on it.
If you want to make your own brand Arduino try nextPCB
They have premium quality PCB, no minimum Quantity, worldwide express delivery.
and Custome color i higly recomend try once.
4 years ago
hi,i have done as instructed in the tutorial, but it is not working .i loaded the blink sketch from the arduino board, removed the chip and placed it on the breadboard , made the necessary connections,but the sketch is not working .when i place the atmega328 back on the arduino board ,the sketch works just fine but it refuses to work on the breadboard
please advice thank you
6 years ago
good job
6 years ago
the boards are made from pcbway?
6 years ago
I want to make one
6 years ago
I want to make one
7 years ago
Great instructable. Building an 'Arduino' from the ground up so to speak is a good way of learning and I have done so many times
Nevertheless -and i usually get flamed for this- if you 'just want an arduino' self building is not economical with a UNO clone available for about 3 USD.
A bare Atmega328P-pu chip can be had for 1.30 USD, but then u still need to add crystal, 7805, capacitor, LED, breadboard and then you dont even have USB input yet
If you want to go small and low power and therefore want to ditch the FTDI part, take a pro mini for about 1.50 USD.
So to summarize, great instructable, great way to learn, but if you just want an arduino cheap, just buy one
Reply 7 years ago
You're correct as far as it goes, but there are certain situations where having a DIY board would be advantageous. For example I was working on a project last year with several motors, a high-power LED, and a bunch of relays. I must have burned out 4 Arduino boards by the time I had the thing properly designed and electrically protected. With a breadboard design I could have swapped out the controller and only lost $1.50 instead of a $10 board each time.
Reply 7 years ago
very true, not that I want to drive my point home.. but could also just swap a pro mini for $1.50 ;-)
If you still buy $10 Arduino's you are shopping at the wrong place :-)
Reply 7 years ago
I fully agree--I was going to leave a similar comment before I saw yours. I'd add the cost of the mounting board (breadboard or perfboard) as well as just the plain reliability of a purchased Arduino nano, etc. just doesn't justify the expense or bother of a DIY. For just $2 you can get an amazing deal from one of the ubiquitous Chinese Ebay vendors (and usually with free shipping, to boot)!!!.
Reply 7 years ago
True enough if saving money is the motivation. But, it's possible to customize a DIY Hackduino in all sorts of useful ways, such as adding sockets for displays, etc.
7 years ago
A way to use a more diverse range of microcontrollers and clocks:
https://github.com/sleemanj/optiboot/tree/master/d...
It's basically a configuration file that includes the correct fuse settings for each chip. This way you can omit the crystal if your application does not need the high/accurate clock of a crystal but the internal oscillator is good enough.
Also about the bootloader. It is also possible to use an ISP programmer to burn a bootloader onto a chip yourself without the need for an arduino board. Actually, if you have one it's probably more intelligent to do something else.
Some explanation first:
In simple terms think of the bootloader as the little piece of extra software on the chip that makes it possible to load your program onto the chip via the serial interface. It uses up a little extra space. And, what might be actually critical for some applications, it delays startup of your program since it first checks for a serial connection before launching your program. As far as I know there is a 3 second delay.
So if you have an ISP programmer like a usbtinyisp, which is pretty cheap too, you can load your program onto the chip directly without the need of a bootloader and without the Serial/USB Converter. This gets rid of the aforementioned downsides of a bootloader. Instead of wiring the two wires to the Serial pins you will now have to wire the ISP pins. (An ISP breakout might be useful: https://www.adafruit.com/product/1465)
Then (after making sure the drivers for the programmer are installed on your PC) in the arduino software you need to select your programmer under Tools->Programmer. Then upload your code with Sketch->Upload using Programmer (or Ctrl+Shift+U).
This way you are not reliant on any arduino hardware (arduino board or buying chips that have an arduino bootloader installed) and can basically program any chip with the universal ISP programmer.
7 years ago
Pin 2 and 3 are TTL serial. I believe a standard RS232-C cable you can get for USB will damage the inputs. You really need a Arduino Uno to program since it already does the USB to TTL conversion plus the Arduino IDE has all the functions to load the bootloader and program the chip.
Reply 7 years ago
indeed can do it with an UNO, but it is much more convenient to get a USB <->FTDI converter. These cost about 1-1.50 USD at aliexpress, free shipping. Just search fir FTDI in their search bar, make sure you get one with the DTR broken out (6 pins version)
7 years ago
Thank you, sir! I'm in the process of building a complete project and needed the schematic on building an arduino from scratch.
7 years ago
Thanks for sharing. Indeed, it is the best way to develop stand-alone applications. Have a look at
https://www.instructables.com/id/Arduino-UNO-as-AtM...
to assist in programming the ATMega328p on the breadbord.
7 years ago
u use atmega 328p or pu
Reply 7 years ago
Atmega328p and Atmega328-pu are practical the same, the p stands for picopower. So if you are going to build a battery powered device and want to save power you can go with Atmega328p or if saving a few milliamps is not a big deal you can go with the Atmega328.
7 years ago
Thanks for sharing! I've seen this done before but not with such clarity!