Pololu USB AVR Programmer v2.1


Description

Overview

The Pololu USB AVR Programmer v2 (bottom) connected to an A-Star 32U4 Prime SV for programming.

The Pololu USB AVR Programmer v2 (bottom) connected to an A-Star 32U4 Prime SV for programming.

The Pololu USB AVR Programmer v2.1 is a compact, low-cost in-system programmer (ISP) for AVR microcontrollers from Atmel (now a part of Microchip). The programmer provides an interface for transferring a compiled AVR program from your computer to the target AVR’s non-volatile memory, allowing it to run the program. It is a good solution for programming AVR-based controllers like our A-Star 328PB Micro and Orangutan robot controllers. It can also be used to update, replace, or remove the bootloader on Arduino boards and our Arduino-compatible A-Star controllers. This programmer is designed to work well with both 3.3 V and 5 V devices, and it can even be configured to provide power to the target device in low-power systems.

The programmer connects to your computer’s USB port via a standard USB A to Micro-B cable (not included) and communicates with your programming software, such as Atmel Studio, AVRDUDE, or the Arduino IDE, through a virtual COM port using the STK500 protocol. The programmer connects to your target device via an included 6-pin ISP programming cable (the older, 10-pin ISP connections are not directly supported, but it’s easy to create or purchase a 6-pin-to-10-pin ISP adaptor). The programmer also acts as a USB-to-TTL serial adaptor, providing a TTL-level serial port that can be used to communicate with other serial devices from your computer. It ships fully assembled with connectors soldered in as shown.

The Pololu USB AVR Programmer v2.1 is a drop-in replacement for the older Pololu USB AVR Programmer v2 with several hardware improvements that are described in the “Comparison to previous AVR programmers” section below.

This product requires a USB A to Micro-B cable to connect to a computer.

Pololu USB AVR Programmer v2.1, labeled top view.

Pololu USB AVR Programmer v2.1, labeled top view.

Pololu USB AVR Programmer v2.1, bottom view with dimensions.

Pololu USB AVR Programmer v2.1, bottom view with dimensions.

Features and specifications

  • Connects to a computer through USB via a USB A to Micro-B cable (not included)
  • Emulates an STK500 programmer through virtual COM port interface
  • Works with standard AVR programming software, including Atmel Studio, AVRDUDE, and the Arduino IDE
  • Configuration software available for Windows, Mac OS X, and Linux
  • Supports both 3.3 V and 5 V devices; can automatically switch operating voltage based on detected target VCC
  • Can optionally power the target at 3.3 V or 5 V in low-power systems
  • USB-to-TTL serial adaptor functionality for general-purpose serial communication
  • Provides a 100 kHz clock output, which can be useful for reviving misconfigured AVRs
  • All I/O pins are protected with 470 Ω resistors
  • 6-pin ISP cable and a 1×6 double-sided male header included
  • Comprehensive user’s guide

Supported AVR microcontrollers

The programmer should work with all AVRs that can be programmed with the AVR ISP (in-system programming) interface, which is also known as in-circuit serial programming (ICSP), serial programming, or serial downloading, but it has not been tested with all devices. We expect it to work with most AVRs in the megaAVR (ATmega) family, and it works with some members of the tinyAVR (ATtiny) family, but it does not support the Tiny Programming Interface (TPI), and it does not work with the XMEGA family or with 32-bit AVRs. The programmer features upgradable firmware, allowing updates for future devices.

The programmer is designed for use with AVR microcontrollers running at either 3.3 V or 5 V. By default, the programmer expects the target to be self-powered, but it can be configured to deliver power to the target device in low-power systems.

Supported operating systems

We support using the Pololu USB AVR Programmer v2.1 and its configuration software on desktop versions of Windows (7, 8, and 10), Linux, and Mac OS X 10.11 or later. Older versions of Windows are not supported.

The Pololu USB AVR Programmer v2 (top) connected to an Adafruit Pro Trinket for programming.

The Pololu USB AVR Programmer v2 (top) connected to an Adafruit Pro Trinket for programming.

Bonus feature: TTL-level serial port

This programmer doubles as a USB-to-serial adaptor. The programmer installs as two virtual COM ports: one for communicating with programming software and one for general-purpose serial communications. This means that you can seamlessly switch between programming an AVR and debugging it through the TTL serial port without having to open and close your terminal program. In addition to the serial transmit (TX) and receive (RX) lines, the programmer lets you use A and B as serial handshaking lines that can be configured using our software.

The six pins on the serial header (GND, A, VCC, TX, RX, and B) are arranged to be similar to the pinout of commonly-available FTDI USB-to-serial cables and breakout boards. In the default configuration, pin B is used as the DTR output (and pin A is an unused input), which allows you to plug the programmer directly into a variety of Arduino-compatible boards (including our A-Star 328PB Micro) and use it to upload programs to the board via a serial bootloader.

Included accessories

The Pololu USB AVR Programmer v2.1 ships fully assembled with ISP and serial connectors soldered in, and it includes the accessories shown in the picture below. The 6-pin ISP cable can be used to program AVRs. The 1×6 double-sided male header can be plugged into the serial header to effectively reverse its gender (making it possible to connect that header to a breadboard or female jumper wires).

Pololu USB AVR Programmer v2 or v2.1 with included hardware.

Pololu USB AVR Programmer v2 or v2.1 with included hardware.

From left to right: the original Orangutan USB Programmer, the Pololu USB AVR Programmer, and the Pololu USB AVR Programmer v2.

From left to right: the original Orangutan USB Programmer, the Pololu USB AVR Programmer, and the Pololu USB AVR Programmer v2.

Comparison to previous AVR programmers

The Pololu USB AVR Programmer v2.1 (product #1372) is a drop-in replacement for our older Pololu USB AVR Programmer v2 (product #3170) with three hardware improvements:

  • The optional VCC output feature of the v2 programmer (which allows you to power your AVR target from the programmer) was not designed to power loads with more than a few microfarads of capacitance. The v2.1 programmer has better VCC output circuity, so it can power higher-capacitance boards that would have caused the v2 programmer to continually experience brown-out resets. While there is still a limit to how much capacitance it can handle, we expect the v2.1 VCC output feature to work with most small AVR target boards that have less than about 33 µF of capacitance on VCC, and we have tested it with the A-Star 328PB Micro.
  • Plugging a v2 programmer into a 3pi robot could cause one of the motors to briefly run at full speed because the programmer’s circuitry for measuring VCC could inadvertently pull up one of the 3pi’s programming pins (which doubles as a motor driver input) before the GND connection was established. The v2.1 programmer has improved circuitry for measuring VCC which limits the duty cycle of this effect to about 0.2%, so the motor won’t move (but it might make a 25 Hz clicking sound).
  • The v2 programmer would typically brown-out if a 5 V signal was applied to its RST pin while it was operating at 3.3 V. The v2.1 programmer does not have this problem.

Compared to the original Pololu USB AVR Programmer (product #1300), the Pololu USB AVR Programmer v2.1 features a number of improvements:

  • Support for devices operating at 3.3 V (in addition to 5 V)
  • VCC pin can be configured to provide 3.3 V or 5 V power to target in low-power systems
  • Protection resistors on all I/O lines
  • More accurate emulation of the ISP frequencies provided by the STK500; you can use the user interfaces of Atmel Studio and AVRDUDE to set your ISP frequency more easily
  • Usability enhancements for serial interface, such as a more standard pin arrangement (similar to FTDI) and a pre-populated female header

This v2.1 programmer does not include a USB cable, and it does not have the SLO-scope bonus feature. In addition to these changes, many other details are different between the v2.1 programmer and the original; please be sure to refer to the user’s guide for the v2.x programmers to familiarise yourself with this programmer.


Specifications

Identifying markings

PCB dev codes: pgm04b
Other PCB markings: 0J11125

Resources

Documentation and other information

Pololu USB AVR Programmer v2 User’s Guide (Printable PDF)

User’s manual for the Pololu USB AVR Programmer v2.

Pololu AVR Programming Quick Start Guide (Printable PDF)

This guide explains how to get started programming your Orangutan or 3pi Robot in Windows, Linux or Mac OS X. It covers setting up an AVR development environment (Atmel Studio for Windows users), installing the Pololu AVR C/C++ Library, and setting up the Pololu USB AVR Programmer.


File downloads

Pololu USB AVR Programmer v2 Software and Drivers for Windows (12MB msi)
This installer contains the drivers and software for the Pololu USB AVR Programmer v2 for Microsoft Windows.
Pololu USB AVR Programmer v2 Software for Mac OS X (9MB pkg)
This installer contains the software for the Pololu USB AVR Programmer v2 for Mac OS X.
Pololu AVR Development Bundle for Windows (12MB exe)
This bundle contains all the Pololu software you need to get started programming AVRs in Windows: the Pololu AVR C/C++ Library, the Pololu USB AVR Programmer drivers and software, and the Pololu Orangutan SVP drivers. We recommend installing Atmel Studio 7.0 before installing this bundle.

Recommended links

Pololu USB AVR Programmer v2 software source code
Source code for the Pololu USB AVR Programmer v2 software on GitHub.
Atmel Studio 7
Free integrated development environment (IDE) for AVRs.
Atmel Web Page
Web page of Atmel Corporation, manufacturer of AVR microcontrollers and other advanced semiconductors.
WinAVR
A free, open-source suite of development tools for the AVR family of microcontrollers, including the GNU GCC compiler for C/C++.
CrossPack for AVR Development
Distribution of AVR development libraries and tools for Mac OS X.
AVRDUDE
AVRDUDE is a cross-platform command-line utility for programming the flash memory on AVR microcontrollers.
Arduino Software
Arduino integrated development environment (IDE) software
AVR Libc Home Page
The web site for AVR Libc, which is the standard library of functions that you can use with C and C++ on the AVR.
GCC, the GNU Compiler Collection
Documentation for GCC, including the AVR GCC C/C++ compilers.
Pololu Robotics Forum
Pololu Robotics and Electronics forum — get technical support, share your project, or just drop in to say hi.
AVR Freaks
AVR community with forums, projects, and AVR news.

FAQs

Can I make the Pololu USB AVR Programmer v2.x program my AVR faster?
Yes. The programmer ships with a low default programming speed so that you can program AVRs that have clock speeds as low as 1 MHz. You can configure your programmer to use a higher ISP Frequency to make it faster as long as your AVR can handle the frequency you select. See the Programming faster section of the user’s guide for more information.

Related Products