Sunday, November 17, 2013

Build Your Own Arduino Board

Need more Arduino board? Do not spend more money for another one. Why not try to build your own DIY Arduino board? It is easy and simple.



DIY Arduino Step 1
Get an Atmega328–PU or Atmega328P-PU (with bootloader inside).
A brief introduction on the Atmega328 chip:
  • 8-bit MCU
  • 32kB Flash Memory
  • 1kB EEPROM
  • 2kB SRAM
  • 23 general purpose IO lines
  • 6-channel 10 bit ADC
  • SPI and I2C capabilities
Make Your Arduino Step 2
Connect the circuit as below:

arduino breadboard schematic

In this post, I will talk about uploading sketches using FTDI programming port. In the next post, I will talk more about uploading sketches and burning bootloader using the ICSP programming port. Get one FTDI programmer here.
Build Your Arduino Step 3
Using FTDI programmer:
Now I will address one of the issues of making your own Arduino. On the Uno boards, there’s an IC which is responsible as a USB to serial converter and it makes it possible to program the Arduino and also communicate with it from the computer.
The problem here is the IC is an SMD (Surface Mounted Device). The R3 uses an ATmega 16U2 while the older revisions uses the 8U2. So, we need an FTDI programmer for the purpose of uploading the code/sketch into the chip.
FTDI programmer
FTDI programmer
When you first plug in your FTDI programmer into your laptop, you have to install the driver file. Get the driver file here.
Once installed, just connect the FTDI programmer to the FTDI programming port of DIY Arduino accordingly.
Finally just click on upload to upload the code into the chip!
If you don’t have the extra 16 MHz crystal and 18-22 picofarad capacitors used in the above examples, you can configure the ATmega328 to use its internal 8 MHz RC oscillator as a clock source instead. You don’t really need the 10K pullup resistor on the reset pin either, so we remove it to get a truly minimal configuration.
You’ll need to install support for an additional hardware configuration:
  • Download this hardware configuration archive:
  • Create a “hardware” sub-folder in your Arduino sketchbook folder (whose location you can find in the Arduino preferences dialog). If you’ve previously installed support for additional hardware configuration, you may already have a “hardware” folder in your sketchbook.
  • Move the “breadboard” folder from the zip archive to the “hardware” sub-folder of your Arduino sketchbook.
  • Restart the Arduino software.
  • You should see “ATmega328 on a breadboard (8 MHz internal clock)” in the Tools > Board menu.
Once you’ve done this, you can burn the bootloader and upload programs onto your ATmega328 as described above. Be sure to select “ATmega328 on a breadboard (8 MHz internal clock)” when burning the bootloader.
If you select the wrong item and configure the microcontroller to use an external clock, it won’t work unless you connect one.
Finally, you have success in making your own DIY Arduino, meaning that you can upload arduino coding into your chip!
VINduino on stripboard
VINduino on stripboard



  1. exactly this is a best and useful working circuit ...

  2. Hi, this is my article on

    Could you please link it back to my blog ? Or at least some reference ?

    Thank you.

  3. this blog is not found you can check this


    This is my article here.

    Thank you.