Arduino Knock-Off (Faberino)
by PlainOldAnders in Circuits > Arduino
487 Views, 4 Favorites, 0 Comments
Arduino Knock-Off (Faberino)
I created a handheld BASIC computer and was left with another Atmega1284-chip that I didn’t really have an actual use for. This is a shame, since the chip is pretty powerful, compared to the Arduino Uno’s Atmega328, but not AS powerful as the Atmega2560 (used for the Arduino Mega). A fine comparison can be found here (https://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/) and I will also be referring to this page later on in this instructable.
Because I was left with the chip and had already planned on ordering PCBs, I included a simple schematic for making it easier to develop with the Atmega1284 (as opposed to doing everything on a breadboard). The result was this “Faberino”. The name is a play on words with my middle name and Arduino. It’s difficult to come up with good names quickly, and the PCB of course needed some text. If you feel like, please comment better names, and I’ll get out a sharpie for my own board!
Parts I Used
- Atmega1284p-pu 40 pins
- 4 Pin Rows
- 1x5 (For the CP2102)
- 1x6 (For Power)
- 1x8 (For Analog Input)
- 1x25 (For GPIO, UART, ...)
- Push Button (As Reset Button)
- DC Jack (For Power Input)
- 16 MHz Crystal (For the Atmega-chip)
- 2x 22pF Ceramic Capacitor (For the Atmega-chip)
- 10K ohm Resistor (For the Atmega-chip)
- CP2102 (For uploading code via USB)
- L7805 Voltage Regulator (For Power to chip via DC Jack)
- 2x 0.1µF Electrolytic Capacitor (For L7805)
- 0.22µF Electrolytic Capacitor (For L7805) *I used a 0.1µF and 0.22µF in parallel instead of using a single 0.33µF capacitor. You could probably also use other values but I'm not strong with capacitors, and blindly followed the datasheet.
- LD1117V33 Voltage Regulator (For making a 3.3V pin available)
- 10µF Ceramic Capacitor (For LD1117V33)
- 2x 100nF Ceramic Capacitor (For LD1117V3 and for CP2102)
- 2x Set of Nuts and Bolts (For the Voltage Regulators)
- Thermal Paste (For the Voltage Regulators)
The Circuit
I've added an image of the circuit (exported from Eagle) and I have also added a .rar-file that contains the schematic, circuit layout and the gerber-files that I sent to JLCPCB for production. The circuit isn’t beautiful, so feel free to correct it in the comments!
The circuit is pretty much a standard Arduino-on-a-Breadboard circuit, but with a larger chip.
Downloads
The PCB
As mentioned above, the PCB is developed using JLCPCB and created in Eagle. The layout can be seen in the images included here and can also be found in the .rar above. The layout is supposed to somewhat resemble the Arduino Uno, but I have seen people creating mock-Arduinos like this one and placed the GPIOs exactly like the Arduino Uno. I should have done that…
I used auto-routing (you can just leave the death-threats in the comments) and a 2-layered PCB. I also regret not adding any LEDs for the Serial Communication or power.
Burning the Bootloader
I received my Atmega1284 without any Arduino bootloader (which is of course really common), so I burned it myself. This can be tricky the first time (it was for me), but the guides I found online were helpful! I use the Arduino IDE for this board, so I had to first install the hardware info for this chip. I got the files and installation guide from here (https://github.com/JChristensen/mighty-1284p/tree/v1.6.3).
Then it was time to actually burn the bootloader on the chip. The Arduino Homepage has a great guide (https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoToBreadboard) for doing this, but this is only for burning the bootloader for the Atmega328p. Luckily, burning for the Atmega1284 is almost the same procedure. When the Arduino ISP-sketch is uploaded to the burner Arduino, change the board in “Boards” to ‘“maniacbug” Mighty 1284p’, hook up the cables according to the image provided here. The FTDI in the image isn’t needed to burn the bootloader, so you can ignore that part. Another guide for this procedure can be found here (https://maniacbug.wordpress.com/2011/11/27/arduino-on-atmega1284p-4/).
If everyone worked correctly, you should now be able to upload code to the Atmega1284, like it shows in the Arduino Homepage guide, or using the CP2102 (like I do).
Assembly
Assembly was pretty much a standard soldering job. I only used parts I had lying around, and that did not include any SMD-components, making soldering relatively straight forward. You could also reverse Step 4 and 5, but this was the order I did. I also soldered pins on the CP2102, making it possible to use it for other projects, but this could also be soldered directly to the board.
My female jumpers were a bit difficult to work with and cutting them to size left ugly edges. I tried to sand them down, but I didn’t do a great job with it. I fastened the voltage regulators directly to the board, using nuts and bolts. This does make the board wobble, and I’m sure better solutions exist out there, or you could add some rubber feet.
Final Thoughts
Looking back, I’m pretty satisfied with how the board turned out (for my use case, at least). If I could make any changes to the board, there are a few things I would do:
- I’d make the board smaller. I decided on an arbitrary size in Eagle and just started doing the layout afterwards. I could have reversed this process.
- The name is silly, but I don’t really mind too much.
- I could have made a cooler cutout (like the Arduino Uno boards), instead of a boring rectangle.
- I would have liked to have USB to Serial-logic on the board itself, but that required a lot more parts and research (for me). This also goes for the voltage regulators.
In summary, I am satisfied with how this board turned out. I needed another order of PCBs quickly, and I think my main issues with the board, stems from the fact that I made it in a rush. If anyone would like a rushed Arduino Knock-off, let me know! I still have four (as of writing) boards I’m not using!