Saturday, October 21, 2017

Arduino Nano as a ISP programmer - Part 2 && PCB Giveaway

I did it! A young boy's dream has become true :).. as a kid whenever I dismantled all sorts of electronics devices, mostly to remove the small motors and lights, I always looked at the "green part" (or the circuit board) as something mysterious that I had no idea what it was or how it worked.
Now I've built one myself.

Doing the design was oddly simple, I had already the breadboard setup (see part 1 of this post) and found this great tutorial on KiCad. KiCad is a tool to draw the schematics and the PCB, it's opensource and although it takes a couple of hours of getting used to, it is very powerful and there are many online resources to help you use it.

Besides the tutorial, I learned a couple things the hard way (read through only if you're interesting in learning Kicad):
  • In schematics view: connections with the same label, means they are connected to each other. (I innocently thought that labels were just to give you some guidance and was about to go crazy with wires all over the place when somehow it finally clicked)
  • Connecting the things in the PCB can take a long long time, unless you make it easier with an auto-router which does it automatically for you. The one that comes by default with Kicad is not the best, but you can easily use FreeRoute (just follow this tutorial) which I found to be awesome.  
  • Zones.. what are they exactly? Well.. towards the end of the tutorial I pointed above by Windsor Schmidt, he defines zones and selects an associated net. I had not idea what that meant until my office mate explained me that it basically fills in the rest of the zone/pcb with copper and then connects it on to the net you selected. (I'm not fully sure why is that but maybe it has something to do with turning the PCB space space into a capacitor by having one side with net VCC and the other with GND. If anyone knows better please let me know).

The PCB design

It's actually two PCBs, one for the programmer, and another for the optional clock.

R1  = 1KOhm
R2  = 10KOhm
C1 = 10µF (black is negative)
C2 = 0.1 µF (decoupling capacitor)
D1 = RGB Led (I bought these)
SW1 = Atmega reset button
SW2 = Disables/Enables C1 so you can program the Arduino or the Atmega respectively. (I've used these)

Ordering the PCB
I ordered the PCB from Elecrow, it was quite cheap, roughly 50 Euros total and it arrived quite fast.
  • ~10 Euros PCB printing
  • ~20 Euros Post
  • ~20 Euros Customs

Lessons learned

  • Reset button through holes were too small, had to solder it onto the top layer
  • I thought it good to place the resistors below the Arduino. Don't think the same anymore. Next time will use SMD LEDs and a more standard placement on the board.
  • Panelizing.. it's an option I should have taken it. For a small extra fee they will insert a small cut between the different PCBs and it will make it easy to cut/break throw. To save money I said I'd do that myself, but now I have to cut through each PCB with a carving blade.. and it takes forever and its prone to error. Next time..

Quantity: As paid for 10 PCBs got 12 instead :)

PCB give away (limited)! 
If you read it this far and you feel like building one yourself, just tweet me and I'll send you one PCB free of charge.
Naturally a photo once you get it working would be much appreciated. ;)

PS: In case you noticed, yes, the PCB says 2016 and I'm posting this in later 2017. I had written most long time ago, but never really finished it ready to post until now. Been busy with other things, will post about it soon (I hope).


  1. Very nice articles. I found many information about PCB component. If anyone wants for custom PCB design, then visit at PCB Headers Inter Connectors

  2. Dear Feiteira,
    very usefull PCB. I feel like building one by my self but I do not know how to contact you for the PCB..
    Thank you and Best Regards


  3. You made such an interesting piece to read, giving every subject enlightenment for us to gain knowledge. Thanks for sharing the such information with us to read this... peter web designer

  4. Commenting on a blog is an art. Good comments create relations. You’re doing great work. Keep it up. printed circuit board assembly services


  5. Hello,
    can you share the wiring diagram and files?

    Thank you very much.

  6. There are certain important things that a programmer needs to know in order to carry out the function properly. A programmer needs to have the expertise in diverse field of web application. best keyboard for typing

  7. Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with extra information? It is extremely helpful for me. Bethlehem Website Development