Breadboard Arduino!22 Feb 2017
Think about this situation: you need to create your own interactive object and you need to keep costs at minimum. We ourselves faced this very question and, after a few considerations, we came out with this resolution: we need to free ourselves from using the Arduino board.
If you think at this for a moment you will understand that it is far from nonsense. Take the Arduino UNO board for example. We know it uses an Atmega328p MCU (micro controller unit) and it also mounts a slew of components that make it easy to use the board for genaral purpose projects: it has sockets for connecting up to 6 analog inputs, 14 digital signals, a USB cable and a dc power supply adapter.
The point is that in many cases this whole setup is just extra stuff in comparison to your project needs. In addiction, there could be circumstances where you plan to exploit the Arduino UNO MCU capabilities, but you would like to create your own pcb layout.
In these situations it’s convenient pondering the purchase of only the parts actually needed instead of the entire prefabricated Arduino board and then the realisation of what we call the standalone Arduino board.
We finally managed to realise one self-made board and here we are sharing the walkthrough of our experiment.
We bought a kit with all the necessary parts from Just-Honest, this nice vendor we found on Amazon (we have seen that he has a lot of other interesting stuff on his website so we think we will turn to it again in the future).
The kit arrived in a little plastic container, inside of which we found the components to build the circuit and a paper showing the circuit schematic.
Let’s review the components of the kit (click on the component description if you want to see its image, directly from the Just-Honest website):
|1x||ATMEGA328P-PU microcontroller. This microcontroller already had the Arduino UNO bootloader loaded in its memory so it would have been easy to upload sketches on it using another Arduino UNO board (see below).|
|1x||DIP 28 pin Socket|
|2x||22 pF Ceramic Capacitor|
|1x||16 MHz Crystal Low Profile|
|1x||TACT Switch 2 pins 66 5 mm|
|1x||10 KOhm Resistor 0.25W|
|1x||7805 1.5A 5V Regulator|
|2x||0.1uF / 100nF Ceramic Capacitor|
|1x||10uF Electrolytic Capacitor|
|1x||100uF Electrolytic Capacitor|
|1x||Green LED 3mm|
|1x||Red LED 3 mm|
|2x||330 Ohm 0.25W Resistor|
To create the circuit we followed the instructions included within the kit; we obtained the schematic below (if you think it can be useful you can download it from here):
While we were building the circuit we double-checked it using other sources of informations like this interesting tutorial from the ITP which has a lot of useful photos (Here’s a similar version from the Arduin website).
We found other resources on this topic online, like this illustration by Pighixxx:
Here’s our final circuit (as you can see we marked the microcontroller with a tiny red dot):
Time to make some test!
We decided to run a test using the original ATmega328P chip from our Arduino UNO board; in this way we would have been able to catch errors and detect issues due to mistakes made in building the breadbord circuit.
First, we connected the Arduino UNO board to the computer and uploaded the blink sketch to it usign the Arduino IDE.
- We removed the “just-honest” chip from the breadbord to create space for the other one;
- Then we extracted the Arduino UNO chip from its socket and
- we inserted it on the breadboard.
We connected the power supply and… Great! Everything worked fine:
- the red LED from the voltage-regulator section lighted-up;
- the green LED started to blink as expected;
- the reset button worked as well;
In the moment we knew the circuit worked, it was time to test the new ATmega328P but first we had to figure out how to load a program inside it.
We could do it easily putting the new ATmega chip on the Arduino UNO board and loading a program on it using the Arduino IDE as usual. In fact the “just-honest” chip came with the bootloader already installed!
The most important thing to pay attention to is the chip orientation: you have to insert the chip in the socket keeping their groove aligned.
Once we had the chip inserted we tried to upload the blink sketch onto it and it worked!
Maybe the diode placed between Vcc and GND isn’t necessary, in fact there are schematics that seems not to consider it.
We’re going to make another experiment usign this Arduino-breadboard circuit very soon. We will use an external programmer and try to upload software directly into the microcontroller without any help from the USB connection or the bootloader.
Stay tuned for more to come.