“The well known USBasp programmer, with PCB redesigned to fit better on a breadboard, switches instead of jumpers, and an Arduino ISP header.
The well known open world AVR programmer needs no introduction. It’s easy, cheap, open source, fast and of course, it as a USB. So no wonder that a lot of cheap designs pop up from everywhere.
But I had a few problems with them:
The whole main board should be connected to a USB port. I preferred using a USB cable with my desired length
It uses jumpers for various modes (e.g. slow clock). I preferred a simple DIP switch to do so.
It relies on an standard but ancient connector used on original Atmel programmers. it’s not breadboard nor arduino friendly.
After a few tries, I made my own design which:
Uses a micro USB connector which is widely popular. you can always find a cable in your bag.
Fixes the jumper problem with using a proper DIP switch.
Lies easily on a breadboard with straightforward pin indications.
Has an Arduino-compatible ISR header to upload the firmware on many Arduinos or fast programming.”