An ATmega328P USB ICSP Programmer You Can Make Yourself

After years of use, hacker sjm4306 transformed his Arduino Nano ICSP programmer into a PCB.

Jeremy Cook
5 years ago

Getting started with boards like the Arduino Uno and Nano is great to get your feet wet with microcontrollers, but at some point you’ll want to program chips on their own using an ISP — in-system programmer. If you’re only going to do this once in a while, Arduino boards themselves can be used as ISPs, thanks to an ArduinoISP sketch included in the Arduino IDE under examples.

Hacker “sjm4306” had been using a Nano on perfboard solution for “a good six or so years,” and while it wasn’t pretty, it got the job done reliably. On the other hand, this rig requires a mini USB cable and is a bit unwieldy, so he decided to shrink everything down onto a keychain-sized custom PCB.

The resulting programmer board features both a full-sized USB-A (male) connector, as well as a socket for a micro USB cable, giving it a lot of flexibility in how it's connected to a computer. The board features an ATmega328P, along with a CH340G USB-to-serial adapter and color-coded LEDs to allow you to see what’s going on. Data transfer to the programmed chip takes place via a standard 6-pin ICSP header, and there’s also accommodations for a programming clip that has yet to be tested.

Check it out being assembled and demoed in the video below. It’s definitely more elegant than the previous iteration, and should provide for years — decades? — or use!

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Get our weekly newsletter when you join Hackster.
Latest articles
Read more
Related articles