You might know that I am currently building a complete home automation system using open-source hardware. And one of the key part of this project is to build wireless sensors based on Arduino. Maybe you also have an idea and you want to build your own autonomous sensor or system based on Arduino. And for that, it is just unrealistic to use an official Arduino board like the Arduino Uno. Why ? Simply because there are many things you don’t need when building your own system: the USB port, LEDs, the reset button, the extension headers …
All these parts just take extra space and consume power for nothing when you want to build a system that does a specific task. So in this article, I will show you how to build a fully functional Arduino system on a breadboard, with the minimum amount of components. Of course, there are many tutorials on the topic around the web, but I had to put several of them together to end up with a functional Arduino system, so I wanted to write down my version. Here we go!
You need several components to build you own Arduino system on a breadboard. The main piece of this project is of course the microcontroller that will run your Arduino sketches. There are many microcontrollers that can run Arduino sketches, but we will keep it simple and use the chip from the Arduino Uno board: the Atmel ATmega328. You will need a chip with the Arduino bootloader. A bootloader on a microcontroller is some code that is written (“burned”) into the chip’s ROM. Nowadays it is easy to buy a chip with the Arduino bootloader, so buy it with it, it will make your life easier.
You will also need several components around the chip. You will need two 10uF capacitors, two 22pF capacitors, one 10K Ohm resistor, two 220 Ohm resistors, one red LED, one green LED, and one 16MHz crystal clock. You will also need a FTDI breakout board to program the Arduino chip directly on the breadboard. If you are using another Arduino board to program the microcontroller, you can just skip this part.
Finally, you will need a breadboard and some jumper wires.
The focus of this article is mainly on the hardware configuration, but you need some software as well. Of course, you need the usual Arduino IDE. But you also need something that is missing from many other tutorials on the web: the FTDI drivers for the FTDI breakout board. It might be already installed on your system, but it was missing from my computer. You can find them on this page, I personally chose the Virtual COM Port (VCP) drivers.
This project is quite complex to build, so be with me. You have to place the microcontroller in the upper part of the breadboard, so you still have some place for the FTDI board. You should end up with something like this:
The next step is to take care of the power. You have to connect power lines together on the breadboard, for the ground and the positive power supply. Then, connect the Arduino Vcc, AREF and AVCC to the positive power supply line, and the two GND pins to the ground lines. I also added a 220 Ohm resistor in series with a red LED between the two power lines to see if the power is correctly connected. Finally, add a 10 uF capacitor between the two power lines to stabilize the voltage supplied to the microcontroller. This is the result:
Now, we will focus more on the microcontroller. You have to connect a 10K Ohm resistor between the reset pin and the positive power supply line, so the chip doesn’t reset itself. Then, connect the crystal clock between the X1 and X2 pins. Finally, connect each of these pins to the ground line via 22pF capacitors.
You can also connect a green LED in series with a 220 Ohm resistor on Pin 13 of the microcontroller, because this is the pin connected to an LED on the Arduino Uno board, so it will allow you to easily see if your project is working:
If you are programming your chip via another board, for example with the Arduino Uno board, you can just stop there. Just connect some power supply (even a set of batteries) to the power lines and your project will work. You can use a voltage range from 1.8 to 5.5V to power the microcontroller.
But if you want to program the chip in place, you need a final step. First, place the FTDI breakout board at the bottom of the breadboard. Then, connect VCC and GND of the breakout board (we’ll power the project with USB in this case) to the corresponding power lines. Then, connect the TX and RX pins from the breakout board to RX and TX on the microcontroller (pin 1 and 2). Finally, connect the DTR pin of the breakout board to the reset pin of the microcontroller via a 10uF capacitor. This should be the (really messy) result:
Finally, to help you out, this is the complete schematics:
Testing your Arduino system
Now we are ready to test what you’ve just built. Let’s assume that you want to program your microcontroller on the breadboard, using the FTDI breakout board. You can now just plug your computer to the board via a USB cable. If you wired the power lines correctly, the red LED should turn on. You can now open the Arduino IDE as usual, and select the correct serial port (in my case it was something beginning with usbserial). For the board, I just selected Arduino Uno. To quickly see if the project is working, you can chose the “Blink” sketch which is included by default in the IDE. Upload the sketch, and if everything is ok, the green LED should now blink! Congratulations, you now know how to build your own Arduino system from scratch!