Intro: Make Your Own Custom Arduino Compatible
This open source hardware project is licensed Creative Commons CC-BY. Part of my philosophy of open source hardware means I don't consider a design released without detailed build instructions. Instructables is my favorite place to release those Instructions.
Why don't I just stick with an Arduino, some shields, a breadboard and components like people usually do?
Take a look through some Arduino projects with LCDs. A lot of those projects are still on breadboards. They do amazing things, but they have some challenges.
- Delicate connections may not survive long in the real world
- Hard to move
- Hard to duplicate
- Development board is now trapped in the project
- Your friend wants one, but you don't want to give them something that needs fixing all the time
- Your Mom looks at it wrong and it breaks. (True story. [Hi Mom!])
Follow along and you can make your own Arduino Compatible in an enclosure with on board screen, controls, speaker, USB and some other goodies.
Cool, I want to make one! How hard will this be?
This is a somewhat challenging project that involves surface mount soldering. If you ever built an Arduino from components on a bread board or made your own circuit board you probably have all the skills you need. These instructions include all the parts lists and design files you need to create an Arduino compatible board.
I still want one but I'm not sure I have the time or skills.
We have a Kickstarter running until Monday July 2nd, 2012.
Step 1: Gather Tools and Software
- Basic familiarity with Arduino environment and programming.
- Enough electrical engineering know-how to read instructions and put together circuits.
- Basic Soldering skills and a willingness to and ability to work with surface mount soldering.
- Electric skillet or griddle
- Good ventilation
- Fine tweezers that are not even a little magnetized. Plastic is OK.
- Big tweezers/hemostat or some other way of moving circuit boards that can take 400 degrees F. Magetized is OK, clearly plastic is not.
- Magnifying glass and/or loupe.
- Solder paste
- Syringe or heavy duty zip top bag with a needle hole in the corner for applying paste
- Sewing needle
- Soldering Iron (Adjustable if at all possible)
- Fine solder wick
- Sharp knife (hobby knife)
- Wire strippers
- Multi Meter
- Any arduino compatible or ISP known to work with Atmega chips. These instructions assume an Arduino loaded with ArduinoISP
- Some male to female breadboard jumpers.
- A PC, these instructions assume windows. Linux will also work for sure.
- (Optional) Helping hands or a vice for holding the PCB while you solder it.
Step 2: Get the Circuit Boards
You may choose to DIY (Here is how I did it for my prototypes) or send it to a "fab house." Fab services require design files in a compatible format. "Gerber" is a common format just about every board manufacturing service accepts.
Here are the Gerber files. Alternatively, You can also get the Eagle Files from GitHub and make your own Gerbers (or whatever). You can send the Gerbers to a fab house like BatchPCB or www.sunstone.com. I have used both. Sunstone's prototype service costs about twice as much and you will have boards in half the time. The quality of the Sunstone boards is great. The price at Sunstone is the same for one or two boards so go ahead and get two and consider getting two sets of electronics.
The first and third photos are boards from Sunstone and the second photo is one I did at home with a toner transfer method.
Step 3: Gather Components
Here are the parts you need and the digeykey part numbers. For items that don't have a minimum of 10, I recomend you get at least 2 and possibly more. If you have 2 good boards, you can make two Ardunio Compatibles. The small parts are really, really easy to lose so having extras is great. Consider ordering extras of the cheaper components. Be careful with them when you open the packages. You can get all the parts from Digikey. Try to salvage some 14 conductor ribbon cable from an old computer if you can, unless you need 5 feet of the stuff.
Some parts are only available in quantities greater than you need for this project. You'll have to buy extras. At the time of this writing these parts will cost about $35 US.
|1||668-1110-1-ND||BUZZER PIEZO 5.0V 16MM SMD|
|1||754-1131-1-ND||LED 2X1.2MM 568NM GN WTR CLR SMD|
|1||ED2992CT-ND||CONN USB MINI B R/A SMD|
|1||WM26814-ND||CONN HDR DUAL 14POS .100 SRT AU|
|1||OR914-ND||CONN SOCKET 16POS FLAT CABLE IDC|
|1||MC16G-5-ND||CABLE 16 COND 5FT FLAT GRAY*|
|1||CP-002APJCT-ND||CONN POWER JACK 2.1X5.5MM SMD|
|1||LM2594M-5.0-ND||IC REG SIMPLE SWITCHER 8-SOIC|
|1||565-2476-1-ND||CAP ALUM 68UF 35V 20% SMD|
|1||493-4380-1-ND||CAP ALUM 120UF 25V 20% SMD|
|1||445-1369-1-ND||CAP CER 4.7UF 16V Y5V 0805|
|1||641-1325-1-ND||DIODE SCHOTTKY 1A 40V MINI-SMA|
|1||475-1278-1-ND||LED CHIPLED 633NM RED 0805 SMD|
|1||401-2012-1-ND||SWITCH SLIDE SPDT 12V 100MA GW|
|1||987-1194-ND||ENCODER 12MM ROTARY SW TOP ADJ|
|1||ATMEGA328-AU||IC MCU AVR 32K FLASH 32TQFP|
|1||587-2048-1-ND||INDUCTOR 100UH 0805|
|1||490-1198-1-ND||CER RESONATOR 16.0MHZ SMD|
|1||RHM10.0KAECT-ND||RES 10.0K OHM 1/4W 1% 0805 SMD|
|5||478-1395-1-ND||CAP CER 0.1UF 50V 10% X7R 0805*|
|1||240-2399-1-ND||FERRITE 500MA 600 OHM 0805 SMD|
|1||478-1383-1-ND||CAP CER 10000PF 50V 10% X7R 0805|
|1||67-1781-ND||LCD MODULE 16X2 CHARACTER|
|1||490-4611-1-ND||TRIMMER 10K OHM 0.1W SMD|
|1||768-1007-1-ND||IC USB FS SERIAL UART 28-SSOP|
|2||RHM220AECT-ND||RES 220 OHM 1/4W 1% 0805 SMD|
The 11 I/O pins along the left side will need some headers. You have some choices.
- Pin Headers You'll need at least 6 of these no matter what for the SPI header. Get 14 more if this is how you want to connect to your off board electronics. 90 degree headers are what I used in the video.
- Screwless terminals are in some of the photos and are a great choice. Get a pack of 6's and a pack of 2's and you can pry them apart and make a 14. The holes are spaced for these.
Step 4: Put Solder Paste on the First Components
Note: I have successfully soldered every component on this board at least once with a regular soldering iron with a wide tip with the exception of the trim pot. I find hot plate reflow to be faster and easier, but if you like you can probably do the whole thing with a regular soldering iron. I hear you can just drag a big solder blob around components like the trim pot, but I haven't tried it yet.
This board needs two passes with the solder paste. Large components take a lot longer to soak up enough heat to solder. It's easiest to do them first and then go back for the small stuff in a second pass.
If you want, you can follow the process outlined at Spark Fun here. I didn't find the need for a solder mask.
Eat a snack, scratch your nose, rub your eyes, go potty and get any other eating, drinking and face touching out of the way for a while. Once you start with the solder paste, you won't want to do any of that 'til you get a chance to wash up.
Clean the board(s). I like to use isopropyl alcohol. Use the flux on every pad. I've skipped the flux and had it work out OK too, but I think it helps.
This solder paste is lead based. It's great because it melts at a low temperature and is pretty easy to work with. It's bad because it's lead and because it will get on things. Have some paper towels handy. Wash your hands well when you are done. Gloves might be a good idea, but I find they make me slightly clumsier and this is fine work.
If you aren't near sighted get your magnifier(s) set up so you can use both hands under magnification.
Look at the picture to see the four big components you will do in the first pass.
If you have a syringe that is big enough to pass the solder paste but small enough to be accurate, you can put some paste on each pad using that. The syringe will work best when the paste is 70 degrees F. or warmer. Colder and it won't come out or stick well.
This method worked as well as the syringe for me. Put some solder paste in the corner of a heavy duty zip top bag and put a needle hole in the very corner. Then just use the bag like you are frosting a (very small) cake. Concentrate on getting some paste on each pad. Don't worry if you are a little sloppy.
Step 5: Place the First Components
The two caps have angled corners and fit right inside the markings on the board. Polarity matters. The barrel connector and USB port should be obvious and they have guide posts.
Just gently place them on the paste and them push down gently. They will stick a little to the paste. Move it around gently until the solder is melted.
The photo only shows one of the big caps. See the second photo for why that was a mistake.
Step 6: Reflow the First Pass
Heat your hot plate up to about 375 on the dial. My remote thermometer said the surface was closer to 400-425.
Once it's hot gently put the board on and watch it until it all gets shiny. About 2-5 minutes. Once the barrel connector solders it should be done.
Gently remove the board and place it on a wooden board or some other heat resistant surface to cool for about 5 minutes.
Step 7: Solder Paste the Rest of the Pads
See the diagram; It highlights all the pads. There are some pad looking areas that don't need paste. They are marked. Don't panic if you paste them. No harm done.
Concentrate on just getting some solder on every pad. Surface tension will suck the solder into the center of the pads pretty well. You can fix it up with some wick and soldering iron if there are bridges. Go very sparse on the Atmega and FTDI footprints and more generous for the other components.
Use the sewing needle to touch up or clean up any spots where the paste didn't go quite right. Be gentle with it, but you can clean up the paste with it pretty well. You have a really wide tolerance for the amount of paste that will work.
Use a magnifier and inspect your work. Gently use the needle to clean up any messes or bridges. Don't worry too much about perfection. You can clean up problem areas with a soldering iron later.
Step 8: Place the Smaller Components
The following components have polarity that is important.
- Chips. Align the dots with the marks on the board.
- LEDs (see diagram and photo)
- Schottkey Diode. It has a line on one edge that matches the mark on the board.
- Trim cap. It's got 3 legs so it's easy.
- 0.1uf caps
- 0.01 uf cap
Step 9: Back to the Hot Plate
This time move the board around every 10 or 20 seconds so everything heats evenly. It should take about 2-3 minutes to solder everything.
Be very gentle when removing the board. Let it cool, then gently tap each component to be sure it soldered. The LEDs say you can reflow them 3 times. I've done 5 or more and still used them. :)
Step 10: Inspect Your Work
Using strong magnification inspect the soldering. Pay close attention to the two chips. Watch out for bridges. See the third picture for some bridges that needed fixing.
Step 11: Fix Any Problems
If you had components that didn't solder you can put the whole thing back on the hot plate or just solder them with an iron. Use some solder wick to fix up bridges on the chips. Just push it down with the soldering iron and soak up the excess.
Don't overheat stuff with the solder wick. If you accidentally solder the wick to the board, just heat it while pulling very gently on the end and pull it back up.
Step 12: Solder on the Through Hole Components
- Solder a 6 pin header on the bottom left for the SPI port.
- Solder the 14 pin header on the top
- Solder the terminal block or header pins along the left
- Solder in the rotary encoder. You have to squeeze the tabs a little. I like to push them down with a screwdriver from the back side to really lock it on.
Start with the red one in pin one (see photo). There are 16 pins but only 14 are connected to the board. 15 and 16 are unused on this particular LCD.
Use a knife to separate the wires then strip 14 wires starting with red. Remove about 1/4inch (5mm) of the last two wires to keep it out of the way. (If you take them all the way off, the snap connector is harder to put on.) Tin the ends, then solder them in order to the LCD board. Cut the ribbon cable to about 4 inches and crimp on the connector. Pin 1 (red wire) is lower left of the LCDCON header and marked on the board. The Cable should come out towards the board and may end up with a twist to orient the LCD the way you want.
(It's possible to substitute a backlit LCD, but you need to jumper GND and VCC yourself from pins 1 and 2 to the appropriate pins for the backlight.)
Step 13: Burn the Bootloader
The simple method is to burn the standard bootloader from the IDE. Here is how to do that.
Setup and ISP and connect the wires
- Flash the ArduinoISP sketch to your existing Arduino.
- Connect at least the heartbeat led on pin 9. Don't forget to use a resistor. a 220 or 330 ohm resistor works fine with most LEDs. If it stops flashing when you aren't uploading, reset the board with the ISP program.
Connect the SPI header. (See diagram)
- Reset goes to pin 10 on the programming Arduino
Check the power LED on the board comes on. If not double check your power polarity and that of the LED. If the Atmega chip gets hot you have the power backwards and need to unhook it as soon as possible.
Apply the bootloader
- Open the Arduino software.
- Select "Uno" for your board and the serial port of your existing arduino.
- Select the correct programmer (ArduinoISP)
- Select Tools->Burn Bootloader
You can tell you have solder bridges, crossed jumpers or other problems if the device signature is 0xFFFFFF, 0x000000 or a randomly different number each time. Double check the jumper wires, then re-inspect the Atmega. Use a soldering iron to apply some more solder and then clean it up with a wick.
If you get the same signature each time, but the Arduino environment doesn't like it you have an Atmega328 chip that's not recognized. You can easily burn the bootloader with WinAvr.
Step 14: Burn the Blink Sketch
- Connect the serial cable
- Wait for windows to install the FTDI driver.
- Open the blink sketch in Arduino
- Select the new serial port. If you are unsure, unplug and re-plug the board. A lot of computers have one port no matter what. So don't assume that's the new board.
- Upload the blink sketch.
If you get "out of sync" errors, make sure the serial port and atmega chip soldered well.
- The USB port is hard to solder by hand and I had to repair all the ones I did this way at this point.
- Power down the board check the USB port connections with a meter. You might need a needle in some alligator clips to reach the pins inside the connector.
- Power back up and check across the LED above the encoder for voltage. If it's pulsing, but the LED won't light you may have gotten the polarity wrong. It's possible to remove it with a soldering iron and fix it if you are careful.
Step 15: Burn the Menu Example and Test the Power Connector
Connect the LCD if you haven't already. Make sure the red wire is on the left side of the main board. Using a small screwdriver turn the contrast pot until you just see blocks on half the display like the photo. It's going to be almost all the way clockwise.
Download David Andrews' LCD library and example sketch from Github. Burn the example sketch to the board and you should have the LCD working.
Plug in a 9 volt battery with a barrel connector, or a 5v "wall wart". Slide the switch to the left and ensure the light comes on. You should be able to use up to 12v safely, but test with a lower voltage first just in case. :)
Note: it's probably best not to power the board from the barrel at the same time you hook to USB. Just slide the switch over to off or remove the connection.
- Power down and back up. If the LCD isn't connected when you start the sketch, it won't be properly initialized.
- Adjust the trim pot some more.
- Try the LCD plug the other way around.
Step 16: Create an Enclosure
Consider cutting the LCD hole smaller than the bezel so just the screen shows and it's below the level of the top of the enclosure.
We hot glued the board down and left the LCD "floating" on top of the cable.
Other good choices include these cool Instructables.
Consider making a super awesome custom enclosure and write an Instructable on how you did it.
Step 17: Go Make Something Great
Please take a photo and add the them to comments on this step! We would love to see what you do with it.