Build Your Own Arduino From Scratch
by anthonyorloff in Circuits > Microcontrollers
507 Views, 7 Favorites, 0 Comments
Build Your Own Arduino From Scratch
Building your own Arduino Uno not only allows for a better understanding of the working of a microcontroller but also provides a cheaper yet functional model of your own! Although it may not be as easy to reprogram the board itself each time it allows a smaller form factor that the Arduino Uno and is perfect to use when reprogramming the MCU often is not necessary.
Supplies
Schematic
As for the working schematic of the Arduino you can find many configurations online by simply searching the ATMEGA328-p schematic but I provided for you my own schematic that I drew with a separate header for the ISP pins which I used to burn the bootloader and program the Arduino along with the schematic that I used as a reference to layout my own.
TIPS
- Lay out your components on the through-pin bread board before you start soldering to make sure you have enough space before you begin soldering
Construction
- To begin construction, I found it to be the easiest to solder on you 28-pin IC socket first and begin adding the components accordingly
- Make sure to not insert the ATMEGA328-P IC until after you have finished soldering all components to make sure you do not accidently damage the IC from the heat produced from the solder wick and soldering iron
- If you have it available, you can use Kapton tape to hold down your headers/components since it resists heat very well and will not melt or leave residue onto the components
- Try to avoid soldering the majority of your wires on the bottom of the through hold breadboard as the wire can melt easily and can potentially cause a short circuit and damage the board
Burning the Bootloader
There are multiple ways to burn the bootloader onto the ATmega328. For instance, through installing computer applications such as Mini-core or using an AVR ISP shield. Although all will be able to successfully burn the bootloader, the simplest way is through using another microcontroller (such as an Arduino Uno or Mega) and using the ISP to communicate between the two devices; as documented in the link below provided by Arduino.
https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoToBreadboard
Enjoy the Fruits of Your Labor :)
Although it is not as easy to reprogram the board each time compared to a prebuilt microcontroller, the process of constructing an ATmega328p from scratch allows for a deeper understanding on the additional circuitry that supports and allows a microcontroller to behave the way it does.