Intro: One More Small Footprint Barebone Arduino
Instructables, and the internet, are so full of of barebone arduino projects that I hesitated to post this one. I mean I am not inventing something new here. I have received a good shipment of components from AliExpress yesterday and the first thing I made is one using a 2x8 cm pcb board and it actually came out quite neat. It was a soldering nightmare given the small size of the board and my insistence on having all the pins next to each other, something that I haven't seen (although I'm sure I haven't done anything new. someone somewhere must've done this before).
The total cost came to US $3.7 and it took about one and a half hours to do given the amount of soldering work involved, and while it isn't the smallest creation out there, it's a pretty good sized one.
So if you are interested to find out how did I manage to do this one, read on, and if you think to yourself "God not another one of those!" I won't blame you if you navigate away :)
Step 1: Components and Tools
To make one of these, you will need the following items:
based on the suggestion of Absolutelyautomation the components are mentioned with their links in Ali Express and prices. Most of them come as a bundle, so the unit price is calculated based on the total price of the item.
- Patience, lots of patience. It's a small board so it will get tricky.
- ATMega 328P-PU x 1
- 16 MHz crystal x 1
- 22pf ceramic disc capacitor x 2
- 0.33 uf capacitors x 2
- L7805CV voltage regulator x 1
The above items I get in kit form, they cost US $3.14 (Link)
- 3 mm LEDs - Red x 1, Orange x1 (cost is US $0.01) (Link)
- USB female header x 1 (cost is US $0.18) (Link)
- Tactile Push Button Switch x 1 (cost is US $0.01) (Link)
- 2 Pin screw terminal x 1 (cost is US $0.06) (Link)
- 2x8 PCB board x 1 (cost is US $0.08) (Link)
- 220 ohm 1/4 watt resistors x 2 and 10k ohm 1/4 watt resistors x 1 (cost is US $0.015) (Link)
- Female pin headers. 54 (cost is US $0.2) (Link)
The total cost of the build is US $3.705
A shopping list is attached here.
I deal with this store in AliExpress, their prices are very reasonable and the quality of there products is excellent.
I am not affiliated with them though. They provide a good service and price so I almost always buy from them. I buy items in bulk so my calculation is based on what I actually paid.
You will need some wire, wire stripper, diagonal cutters, and of course, a soldering iron and solder.
Step 2: Layout
This is important. You are dealing with a small board so layout everything well. Fit your components well and try different arrangements. Try to place all power components (USB header, screw terminals, voltage regulators) on one end so that you can have as much space to the pins as possible.
In this layout, the Crystal and Ceramic capacitors are all the way up next to the power components.
The female pin headers are arranged to house the ATMega 328P-PU instead of the dip socket that comes with the kit in order to save board space. Headers are also used on the side to be used as digital pins (14 Headers), Analog pins (6 headers), with the addition of 3 5v and 3 ground pins.
Step 3: Soldering Components
The ATMega328P-PU pin out is readily available online. I have added one just in case.
Once I was comfortable with the way the power components were placed, I soldered them. The screw terminals were tight so be careful not to damage the board. The USB female header is enough to power the whole setup, and you may not actually need the voltage regulator. But since I have a couple of projects in mind that may need to use a car battery as a power source, it was added.
If you will use the screw terminals, please note that the minimum voltage required is 7v.
After soldering the power components, solder the LEDs. The red LED is used as a power indicator, and it is connected to 5v through a 220 ohm resistor, It is not a critical component, but it is handy to check if there is power going through the wires.
The orange LED is connected to pin 13 through a 220 ohm resistor. I connected ground next to the red LED ground.
Next add the push button. Connect one leg to ground and the other leg to 10k ohm resistor. This will be used with the reset pin of the ATMega.
After this I soldered the female pin headers. 2 rows of 14 pins will be used to place the chip, one row of 14 pins for the digital pins, one row of 6 pins for the analog inputs, 3 pins for 5v and 3 pins for ground.
Once these are soldered, determine the way you want to place your chip (I used top towards the power terminals) and use insulated wire to connect the pins to their respective headers.
Connect pin 0 of the ATMega the 10K resistor that was attached to the push button.
Lastly, place your Crystal and 22pf capacitors on your board, and connect them to pins 9 and 10 of your ATMega.
Use your multimeter to check your connections using the continuity function so that you won't have to desolder anything. belive me, with a board this size and this congested, it will not be pleasant :)
Step 4: Powering It Up and Some Thoughts.
Once all is soldered, power up your barebone arduino and check if it's working the way it should.
I have created a weird variation of the blink sketch and uploaded it to the ATMega before placing it on the new board. It works fine and it should work for you too!
Once this was done, I started looking and I realised that I could have done a couple of extra things to make this better. I thought I should share them with you.
Beneath the ATMega there is 2 rows of pins that are not used, I could have used them to create a voltage divider to have 3.3v output pins. That would have been very useful. I also forgot to add a pin header for the reset pin of the ATMega, that would have been very helpful to program the arduino without having to remove the IC whenever a new sketch is about to be uploaded. So both are on my list for the next build.
The size of this barebone arduino is quite decent, comparing it to my other builds and the uno it's less than half the size, with the same purpose and performance.
If you reached this far I would like to thank you for reading one of many tutorials dealing with the same thing. I hope this was different and useful!