To quote the Arduino website:

"Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments."

I got one a while ago and life has never been the same. Here is the official website for Arduino: http://www.arduino.cc/

There are a bunch of tutorials that show you how to build your own Arduino on a breadboard, called Hack-duinos or something similar. While these are handy, I prefer to use more solid electronic devices. So I build them with a home made PCB and solder all the components on there myself.

Some may say, "This task seems time consuming and a tad expensive... Why not just kerplunk the 30-some-odd bucks for an REAL Arduino?" Well, some of us enjoy the craziness of making something completely from scratch -- and in doing so, learning more about the device you are using.

This tutorial will take you through all the steps of making your own printed circuit board(PCB), building an Arduino or "DIY-Duino" and loading your own programs/sketches onto the board you have built.

Step 1: Materials List -- for All Steps

You will find detail on these materials throughout the specific steps of this instructable.

// ------- PCB MATERIALS LIST ------- //
Copper Board: 12" x 12"
You can buy a smaller board, if you want.
I buy the 12x12 because I use it for a lot of projects.

DIY-Duino Pattern sheet
Click here to download the Pattern file
You must use this file to ensure the proper resolution and size of the image.

Photo Paper
High-quality photo paper with a glossy finish is the best to use.

Laser Printer
Or copies from a place like Kinkos or Staples.

Fine grain sandpaper
To rough up the board and make it able to absorb the pattern better.

Common, houshold tape
For securing the pattern to the copper board

Piece of scrap cardboard
This will be your makeshift ironing board.

Paper towels
To put over your board before ironing.

Clothes Iron
Use one you don't mind being ruined.
Chances are, it will get funky.

Plastic container
To bathe your board in warm water after ironing.

Not necessary, but can be helpfull for peeling off transfer remnants.

//------- ETCHING MATERIALS LIST -------//
Jug of Muriatic Acid
You can get this at the hardware store.

Container of Laquor Remover
Removes the toner once the pattern is etched.
Also useful if you make mistakes on transfering your pattern.
You can remove the toner and try again.
You can get this at the hardware store

Container of Hydrogen Peroxide
Any Grocery Store

Standard kitchen paper towels
Use for the ironing, agitating the acid solution, and removing the toner with the lacquer remover

(2) Plastic containers
(1 for the acid mixture, one to rinse, one to bathe the PCB in hot water)

Acid disposal container
Size this, depending on how much you're using.

Pair of plastic dishwashing gloves
You can often find a better, more durable pair of gloves at the hardware store -- right near the muriatic acid oddly enough.

Other Protection
Breathing and eye protection.

Package of photo paper
I if you have access to a laser printer or laser copier. Otherwise, skip this.

1/4 Cup Measuring Cup
Use one that you don't mind being destroyed. Once you use this to measure out the Muriatic Acid, It should only be used for this purpose. NEVER use it to measure food again.

//------- DIY-DUINO COMPONENTS LIST -------//
(3) Little bits of wire

DIP Sockets Solder Tail - 28-Pin 0.3"

ATmega328 with Arduino Bootloader

Basic LED - Green (or whatever color tussles your vessel)

Resistor 330 Ohm 1/6th Watt PTH
-- 220 Ohm will work fine too if you have one

Resistor 10k Ohm 1/6th Watt PTH

Mini Push Button Switch

(2) Electrolytic Decoupling Capacitors - 10uF/25V

Voltage Regulator - 5V

(1) Crystal 16MHz

(2) Capacitor Ceramic 22pf

(3) Female Headers
You'll need to cut them, and it's a little trickey...

(4) Standoffs
From Radio Shack or
From Sparkfun

FT232RL USB to Serial


A breadboard
4 short wires
4 longer wires
An LED-- to test if your upload was a success

//------- TOOLS LIST-------//
Dremel or Hacksaw
I suggest buying a Dremel or other rotary tool for this instructable, you will probably need a Dremel to drill the holes.

1/32" Drill bit
I don't know of one of these for a normal drill, neither did the lady at Lowes -- again... Dremel

Metal-cutting disc for Dremel
To cut out the copperboard

Desoldering braid -- for errors!
Soldering Iron
Soldering Gripper

Awesome Instructable. I am already planning my own one.!!!
<p>While going through the various articles on Arduino, DIY<br>Arduino, Makeyour own Arduino, Christmas Light Controller etc. I decided to<br>finally go ahead and make my own &ldquo;Arduino Uno&rdquo; so to say.</p><p>I was particularly encouraged and inspired by two other<br>contributors to the Instructibles Forum, ROBONERD &amp; HIGGS BOSON and would<br>like to express my gratitude towards them. Actually my build is a combination<br>and modification of both their ideas.</p><p>The Arduino PCB is very much a liftoff of the PCB design submitted<br>by ROBONERD and some modifications have been made, I have included the<br>programming headers directly on to the PCB, other modifications are the<br>inclusion of de-coupling capacitors between pins 7 &amp; 8 and 21 &amp; 22 and<br>20 &amp; 22 of the ATMEGA328 and the inclusion of the power supply input jack,<br>I used a 12V DC Barrel Jack Connector. Also included is the LED on PIN 13</p><p>Also, I spray painted my boards, it makes them look nice and<br>added 4mm ply wood bases to the boards so that they wouldn&rsquo;t short and fry the<br>board.</p><p>The included pictures are self explanatory.</p>
Awesome! I'm glad the instructable was useful to you. Thanks for your comments and sharing your photos.
Hey,<br>I'm going to build one. Yet I have two questions.<br>1)I have an orginal arduino. Im going to desolder the chip and solder a 28pin socket and plug the chip to it. So can I just programme that arduino and swap the chip to the diyduino?<br>will it work?<br><br>2)I have a chip without the bootloader. Can I plug that chip to my arduino and upload the bootloader? or is there any easy way to do it?<br><br>Many thanks. Great instructable
<p>Hello,sd****.</p><p>i have answers to your question.</p><p>1)yes it will work,but it is not smart.if you always move the chip,the chip pin will broke.you can do like this: remove chip from uno,connect chip D0pin (2) to uno D0 ,connect chip D1pin (3) to uno D1.</p><p>the normal way to program the uno works.</p><p>you can program the chip without a chip on the uno.</p><p>oh,connect reset(1)to a 10K(brown,black,orange)to +5v,and connect reset to (RESET ON UNO)uno can help you reset the chip.when you are finished upload,remove reset line(reset-reset),data lines(d0-d1)(d1-d0).WORKS WELL,AND AS EASY AS PROGRAMMING A UNO.</p><p>2)yeah you can,or use the way above.</p><p>i knew it from here.</p><p>because it is Chinese ,i translated for you,you are welcome! (I am from Taipei) </p><p> | </p><p>V</p>
<p>Hello, sorry for the delay in response. Yes you can swap the chips. Depending on which version of the Arduino you have, you can likely just pop the chip out of the socket. As far as the bootloader, you will need to load the bootloader onto the chip. This can be somewhat of a pain in the butt if you haven't done it before. However, there are plenty of tutorials out there that will show you how to do it. I always just spend a little extra to get the chips with the bootloader on them.</p>
<p>hey man, i did this and im having a bit of a hiccup</p><p>Arduino: 1.6.5 (Windows 7), Board: &quot;Arduino Nano, ATmega328&quot;</p><p>Sketch uses 1,030 bytes (3%) of program storage space. Maximum is 30,720 bytes.</p><p>Global variables use 9 bytes (0%) of dynamic memory, leaving 2,039 bytes for local variables. Maximum is 2,048 bytes.</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x43</p><p>avrdude: stk500_recv(): programmer is not responding</p><p>avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x43</p><p>what do you think i should do?</p>
<p>You will probably need to select the Nano board from the list under &quot;Tools&quot;. And not the 328. Go to &quot;Tools&quot; &gt;&gt; Boards and pick the Nano. I hope this helps.</p>
<p>Hi Robonerd! I'm a frustrated in learning electronics so I'm just have only a basic idea about it. I was inspire by your and I want to make it one for my self to but Im in short funds. I have just a few question. Is there any available ATmega328 without Arduino bootloader? if theres any can I still use it? How about the FT232RL USB , is there any other option to use aside from it? cause it just pretty expensive for me. Sorry for my dumb questions and for my bad english. Hope I can get respond to you soon. Thank you!</p>
Hi there, I get my chips from Sparkfun, they are about $5 US including the bootloader. Without the bootloader is only $1 less - about $4. You want to get the ones with the bootloader. Basically, you need a bootloader in order for your chip to know it's getting programmed. Without the bootloader, you will have to load the bootloader on the blank chip yourself. And this can be a little complicated if you're just starting up. FT232 is one of the cheaper ways to load a sketch on the chip. You can make one yourself, but again it's trickey for a beginner. Now a days, I just load my sketch onto an actual arduino and then swap the chips to my DIY board. Hope this helps.
<p>Thank you so much for your reply! Now Im here at Chiayi city Taiwan. Trying to look for electronic store nearby hope I can find one to get an arduino. There one store in taipei who selling all kinds of arduino its cheap cause it china made but unfortunately far from my place.</p>
<p>Why no decoupling capacitors on your processor chip. It will be very unreliable without them. Just because you got it working with I suspect very limited testing does not mean it will work every time, especially when you start adding things to it.</p>
I've been using this setup for years and never had so much as a hiccup. But I generally only use it for simple fun projects. Since you feel this is such a necessity, how about you give us a tip and let us know where you would put them to make it more reliable? cheers
Lack of decoupling is the number one reason why amateur designed electronics are so unreliable. Just because you made one and you have not noticed the poor noise margin is no excuse for inflicting that poor design on people who do not know better.<br>You should use a 0.1uF ceramic capacitor between pins 7 &amp; 8, another one between pins 20 and 22 and finally one between pins 21 and 22. They should be wired as close to the chip as possible with the leads as short as possible. With your PCB you would be better off soldering some surface mount capacitors directly across these pins on the back of the board.
<p>Thanks for sharing your knowledge. I'm definitely not a pro at electronics. I use it as a relaxing break from applications programming. I mostly make tone-generating projects to give away to friends. And I've honestly never had any problems with any of them. One that I made 4 years ago that plays the blues scale still works just fine. But I have noticed some twitchyness in some projects that involve the use of servos. I wonder if this is related to the noise you mention. I'm going to be putting another tone-generator together this weekend and will add the capacitors as you suggested and see what it does. Back when I wrote this four years ago, there was really no &quot;all-inclusive&quot; online how-to for building your own. So after I gathered a bunch of info together, and built a bunch of working ones, I figured I'd add it all here. This page was one of three or four that were out there that I used for the setup: http://www.arduino.cc/en/Main/Standalone -- I wonder why there was no mention of using decoupling capacitors on these pages I learned from? I surely would have added them way back when if there was. Anyhow, thanks again for sharing your knowledge. Cheers.</p>
<p>There is quite a lot of bad stuff out there, remember the Arduino people are not professionals in electronics they are only educators. It is very likely that servo twitchyness is caused by noise. It is a sort of elephant in the room topic, all the professionals know about it and few of the amateurs. I do a lot of point this out on the Arduino forum, which is why I can here as some one was not getting your circuit working. If you want the full low down I wrote this page on the topic. </p><p><a href="http://www.thebox.myzen.co.uk/Tutorial/De-coupling.html" rel="nofollow">http://www.thebox.myzen.co.uk/Tutorial/De-coupling...</a></p><p>Good luck.</p>
<p>Thanks Robonerd great tut...I added the header for the reset pin as you mention in one comment...works a blinking treat (pun intended). Regarding my earlier question about powering it straight from 5 v source...I could just connect the power to any of the DIYduino's pwr and Gnd headers cant I? That would give the board power and bypass the 7805, yes? Anyway, here's a pic of my 'duino running the blink sketch. Cheers again &lt;thumbsup&gt;</p>
<p>I'm glad you got it to work. Thanks for sharing the photo too. I suppose if you are just running 5V it may work without a regulator. I have never tried it, so I'm not sure. I have a large surplus of 9V batteries. So I've always just used the regulator. If you try it out, please post back your findings here for others to see. Cheers!</p>
<p>Very nice tutorial! Check out my proto board design, with this DIY-Arduino / Arduino-shield is piece of cake https://hackaday.io/project/3859-zuc-protoboard</p>
<p>Hi there, thanks for the tut, great stuff. One question regarding power and the 5v regulator(drop out voltage)...if I wanted to power it with USB should I add a connection to the +v and ground AFTER the regulator part to avoid problems with dropout voltage from regulator?</p>
<p>Awesome! :-)</p>
<p>Thanks Robonerd. I just built the DIY-duino and I'm pretty pleased. Now all I have to do is make something with it!</p><p>Great instructions!</p>
My pleasure, I'm glad you found it useful.
<p>Actually ... when I tried to actually do something with it ... I got nada. I originally used your design &quot;as is&quot; and I got a pretty LED :) I then re-vectored the design in Fritzing, transferred, etched and populated the board. Again, pretty LED. I then pulled the ATMEGA328P from my Uno and stuffed it in the DIP, powered it up and ... nothin'.</p><p>Can you see what I may have done wrong?</p><p>I've built a bunch of ATTiny84 and ATTiny85 breakouts, no problems. But this one has me stumped.</p><p>Any help would be appreciated. I suspect that I have done something stupid :) But, Hells ... how else do you learn?</p><p>Thanks robonerd</p>
<p>The setup looks good. I know you probably did this, but did you make sure to put the chip in with the notch facing toward the button? Check soldering - make sure it's clean and thorough. If the V and Ground were NOT complete, then you would not have your pretty LED. So we know that at least these are complete. So just look at some of the other traces and soldering. Pins 6-7-8 look like they may need some more work. Check the copper on the board. If there's some spots where it's thin or grainy, it may not be completing. Then you will have to either patch it with solder or make a new board. Did the sketch work when it was on your Arduino?</p>
<p>Thanks for taking the time to have a look at the images. The notch is facing the button. I'll paint on some more solder on 6-7-8 and recheck the connection points. When I do a continuity test from the other side, socket to socket, I get a strong response ... but who knows, it could be a problem still. The sketch works fine in the Arduino, which is one reason that the problem is a little vexing. I'll persist with getting the circuit to work! Thanks again for your time, I appreciate it.</p>
<p>I'm glad to help. If the power LED is coming on, then the current is making it all the way around the board. It may be that there are some issues with the copper coming from the board to the female sockets you have for PWM analog etc. Load the basic &quot;Blink&quot; sketch and see if pin 13 is working. If pin 13 is working, then change the pins for the LED to go all the way down. This may help you to pinpoint if there is something not connecting. Best of luck. Don't give up, eventually you will figure it out. Post back when you have more info. Cheers.</p>
<p>Thanks robonerd ... I'll do a more thorough test and get back to you :)</p>
<p>Did you use a continuity tester to check for shorts and to check if all your traces conduct?</p>
<p>Hi ThijssjihT, yep, I continuity test everything ... even my toast in the morning ;) I'm a bit pedantic like that. Thanks for the suggestion :)</p>
<p>Next stupid questions, but better safe than sorry:</p><p>Is the voltage on the power rails, and voltage on the chip enough?</p>
<p>G'day again ThijssjihT, yep, I also tested the power with the multimeter and got consistent values all around (@5V after the 7805 and @9V before it). Again, thanks for the suggestion, I appreciate your thoughts</p>
<p>The link to PCB123 is broken. Here is a more current link :</p><p>http://www.sunstone.com/docs/pcb123/pcb123v5-2-0allinstaller.msi?sfvrsn=6</p>
<p>i really love reading this tutorial but don't have money to buy this stuff needed. wish to do this someday.</p>
<p>first thank you to share your knowledge with us ,i know to how to resize ur image to my board bcoz i print out you image but i cant set ic base properly</p>
you shouldnt resize the image, because this will change the size of the components. you need to print it at 100 %.<br>before you etch the board, lay the IC on the points to be sure they match up. hope this helps you! best of luck!
<p>I made this Arduino. Power light turning on when connect to power. I use a atmega328 with blink LED but it is not working. But when I connect to PL2303 usb-to-serial it just turn on the LED and when I press the switch it turn off that LED. Everything seems same as the project but I don't know why it is not working correctly. (I can't upload sketch from PL2303 to the chip it gives </p><blockquote>avrdude: stk500_getsync(): not in sync: resp=0x00 - I used my original uno board to burn sketch to the chip and put that chip into the DIY Ardduino <br> <br> </blockquote><p>)</p>
hey, check the soldering around the chip. if you load from arduino and still not working some is crossed ovr somewhere in my experience. <br>
<p>Thank you very much. This is my first time I made a circuit board and DIY arduino..You explain everything very nicely..Please check my soldering and connection to PL2303, may be you will be able to identify what went wrong..I made two of these and both have same problem..</p>
<p>I used isopropyl alcohol and brush to clean all the flux but still didn't work.Please give your suggestions..</p>
<p>Ah cCrud, I just noticed there was an error in the instructions. I thought I fixed a while back when another commented. But must have never saved the changes. The ceramic capictors tou need are actually .22pf (NOT .1uf) sorry, if you try this, it should work. I have edited the Instructable to show this. Hope this works!!</p>
<p>I changed the capacitors to 22PF and it works..yeeeeee. Everything perfect. Now I can upload sketches too. So happy...Thank you very much for your nice work..Good luck</p>
<p>Glad it finally worked! I'm so sorry about the error in the tutorial. I thought I had corrected this a loooong time ago. *facepalm* :-) Take care my friend!</p>
<p>What is the software you used to design the circuit? Is it EAGLE?</p>
<p>i used &quot;PCB123&quot; not sure if it's still around. but there is a link to it in the Instructable on step 30.</p>
<p>Ok, now it is night I will try change to that tomorrow night after work...Thank you very much.</p><p>Just to tell you, I have little confuse on Step 18 capacitor orientation(real board).</p>
<p>thanks for letting me know. I appreciate it. I fixed the graphic.</p>

About This Instructable




Bio: I'm preparing for the zombie outbreak.
More by robonerd:Clothespin Trip Wire Alarm Easy Home Surveillance DIY Arduino or "The DIY-Duino" 
Add instructable to: