Summary of Choosing right programmer for AVR microcontrollers
This article discusses the evolution and challenges of building DIY programming adapters for AVR microcontrollers. Initially, programmers used RS232 and LPT port interfaces compatible with software like PonyProg and AVRDude. However, as these ports became obsolete, USB-based programmers like the popular USBASP emerged, offering better compatibility with AVRDude but sometimes facing driver stability issues. The author shares personal experience building various adapters, highlighting the balance between cost, ease of construction, and reliability.
Parts used in the DIY AVR Programming Adapters:
- RS232 interface components
- LPT (parallel) port interface components
- USB interface circuit (for USBASP)
- Microcontroller chip (for USBASP programmer)
- Connectors for RS232, LPT, or USB
- Supporting passive components (resistors, capacitors)
- Crystal oscillator (for timing circuits)
Once you start building something with microcontrollers, one thing you need to take in to account is programming adapter. This is a device which allows to upload compiled code in to chip. I don’t know if this is still a fun to build your own DIY programming adapter which is not guaranteed to support all chips nor it will be safe and reliable. AVR microcontroller niche is one of most interesting when talking about programmers. If you take a look at AVRDUDE configuration file you will find that there is about 50 of them. Many of them are DIY while other are official.
When I started with microcontrollers I also was looking for cheap and easy to build programming adapter. So I have built several if few years.
First of them was RS232 based programmer that worked with then popular PonyProg software. Later followed LPT port programmer:
They both worked well either with PonyProg or AVRDude. But then COM and LPT ports became obsolete, so next logical move was USB interface. Probably most popular USB based DIY programmer was USBASP – originally developed by Thomas Fischl. Again it works with AVRDude software. But problem was with clumsy updates and driver stability. For some people it works, for some they claim it won’t. I have built mine and it worked pretty well.
for more detail: Choosing right programmer for AVR microcontrollers