I've wanted to make an Arduino on a breadboard for a while now, and finally found some time to do it. My Computer Engineering class at school will be making and using this kit, that I am selling here, to build their own Arduinos, and then make some cool projects with them. For me, this was a pretty straightforward project (except for an invisible 1 on a capacitor that gave me a fair bit of frustration when trying to burn the bootloader), but required a lot of time and learning some new skills - PCB design.
Creating the schematic
The first step was to create a schematic. Using the official Arduino schematic, Arduino's version of a breadboard / standalone Arduino, and a simplified version of the schematic that I found online, as references, I created my own schematic for the Arduino using EasyEDA. I wanted to keep all of the components through-hole components so that it is easy even for beginners to solder it (for the PCB version), and it fits in breadboards. Given that condition, I had to forego a built-in USB to serial converter because all the ones I could find were SMD components (if you know of a TH USB-serial converter, let me know). I am using an external USB-Serial converter to program it.
Wiring it all up
All the wiring was pretty simple, and just requires following the schematics. There are very few jumper connections required to make the Arduino function, but more if you add all the regulators, LEDs, and resistors, there is a bit more wiring.
Burning the Bootloader
Once all the components were correctly connected, all the I had to do was to burn the bootloader. The easiest way that I found to do this is to use the excellent program written by Nick Gammon that can be found here. A fully working Arduino is needed to connect to the ATMega328 chip, and will burn the bootloader to it very easily.
First program - blink!
After the bootloader is on the chip, uploading the first program is as easy as plugging it in, and pressing upload. The classis blink sketch is an easy test program to upload. Once it resets, the LED should start blinking at 1 second intervals.
Designing the PCB with EasyEDA
Once I confirmed that everything was working, I started making it in to a PCB using EasyEDA. I arranged all the components on the board, using the Arduino shield template on EasyEDA as the board outline. Once arranged, I used the autorouter to make all the traces. After looking over the board, I could see a few issues that I fixed manually, and then ordered my first batch of 10 PCBs through JLCPCB (amazing prices by the way).
PTC Fuse and USB Port
After assembling the first prototype board and using it for a while, I found it really annoying that there was not a USB port onboard, so it was harder to power. Back EasyEDA again to add a though-hole mini USB port, and accompanying PTC fuse to the circuit, which will protect against drawing too much current from USB ports.
You can buy the Arduino as a kit from us here. If you want to build your own Arduino, while learning a little more about all the components required for it, and practicing your soldering skills, this is an amazing project. Once completed, it is exactly the same as a regular Arduino, with an external USB to Serial adapter.