General AVR ISP Programmer
This device is a programmer for AVR-based controllers, such as our Orangutan robot controllers and the 3pi robot. The programmer emulates an AVRISP v2 on a virtual serial port, making it compatible with standard AVR programming software. Two additional features help with building and debugging projects: a TTL-level serial port for general-purpose communication and a SLO-scope for monitoring signals and voltage levels.
The Pololu USB AVR Programmer is an extremely compact, low-cost in-system programmer (ISP) for Atmel’s AVR mirocontrollers, which makes this device an attractive programming solution for AVR-based controllers like Pololu Orangutan robot controllers. The USB AVR programmer connects to your computer’s USB port via an included USB A to mini-B cable and communicates with your programming software, such as AVR Studio or AVRDUDE, through a virtual COM port using the AVRISPV2/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 adapter).
The programmer should work with all AVRs that can be programmed by an AVR ISP, but it has not been tested on all devices (it has been tested with all Orangutan robot controllers and the 3pi Robot). The programmer features upgradable firmware, allowing updates for future devices. It does not currently work with Atmel’s XMega line of microcontrollers.
The programmer is powered by the 5V USB power bus, and it is intended for programming AVRs that are running at close to 5 V (note that the programmer does not deliver power to the target device).
Supported Operating Systems
The programmer has been tested under Windows XP, Windows Vista, Windows 7, and Linux. It is not compatible with any version of Mac OS or with older versions of Windows.
Bonus Feature: TTL-level serial port
Like our original Orangutan USB programmer, the USB AVR programmer doubles as a USB-to-serial adapter, but with a few key improvements. The programmer installs as two virtual COM ports: one for communicating with programming software and one for the general-purpose USB-to-serial adapter. 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 pins A and B as serial handshaking lines. The programmer’s configuration utility allows you to select which handshaking line is assigned to which pin, and both input and output handshaking lines are supported. The programmer also gives you access to the USB’s regulated 5V power bus through the VBUS pin.
Bonus Feature: SLO-scope
This device can also act as a two-channel, severely limited oscilloscope (SLO-scope) using the A and B pins as analog voltage inputs and the Pololu SLO-scope application for Windows. The SLO-scope can measure voltages between 0 and ~5 V (the maximum is limited by the USB bus voltage), or higher if you use an external voltage divider, and it supports two sampling modes: 10 kHz sampling of two 8-bit analog inputs or 20 kHz sampling of one 7-bit analog input and one digital input. This feature can help you debug your circuits and firmware by seeing what the voltages are doing at various nodes. (Please note that the SLO-scope feedback is quite limited and is not intended as a substitute for a real oscilloscope or a good multimeter, which will have much higher input impedance, better resolution and range, and higher sampling frequency.)
The Pololu USB AVR Programmer ships with a 12″ (30 cm) 6-pin ISP programming cable and a 6’ (1.8 m) USB A to mini-B cable. It does not ship with software or documentation, but software (including drivers) and documentation can be found below.
Note: This programmer supports standard in-system programming (ISP), which is also sometimes called in-circuit serial programming (ICSP). It does not support JTAG, DebugWire, or High-Voltage programming, and it does not support the Mac OS at this time.
Documentation and other information
Pololu USB AVR Programmer User’s Guide
The complete guide to using the Pololu USB AVR programmer. This guide covers programming AVR microcontrollers, communicating via the USB-to-TTL-serial adapter, and measuring voltages using the SLO-scope.
Pololu USB Software Development Kit
The Pololu USB SDK contains the code you need for making your own applications that use native USB to control the USB AVR Programmer, Jrk Motor Controller, or the Maestro Servo Controller.
- USB AVR Programmer Windows Drivers and Software release 121114
This ZIP archive contains the installation files for the Pololu USB AVR Programmer drivers, configuration utility, and SLO-scope application.
- Firmware version 1.01 for the Pololu USB AVR Programmer (pmg03a)
Use this file to upgrade your programmer’s firmware. This update contains two bug fixes relating to the TTL serial port. This update is recommended if you use the TTL serial port and have a device with an earlier firmware version number (including all devices shipped before December 17, 2009). If you do not use the TTL serial port (you only program AVRs and run the SLO-scope), then you do not need this upgrade. See the instructions in the “Upgrading Firmware” section of the user’s guide for more information. [Note: Unzip before uploading!]