Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

New firmware (v1.3) for the Orangutan USB Programmer PGM02B


In support of our upcoming 3pi robot, we have released a firmware update (version 1.3) for our Orangutan USB programmer revision PGM02B. This update fixes a problem that would cause one of the motors connected to the 3pi, Orangutan LV-168, or Baby Orangutan B to briefly kick during programming. It also causes the programmer to abort programming more rapidly if the target’s power dips to unsafe levels during programming, which decreases the potential for corruption of the target AVR’s fuses. If you have a revision PGM02B programmer, we recommend you upgrade your firmware to this version, even if you don’t plan on getting a 3pi.

You can find firmware update instructions here.

- Ben


Hi, Ben:

I only recently found time to work with my 3pi and was delighted to have my first program successfully downloaded, using the PGM02A USB programmer. I noticed, however, that the 3pi jerks each time the programmer sends an inquiry (e.g. read fuses). Although your documentation suggests that the firmware on the 02A cannot be updated via the mechanism designed for the 02B, there is a programming header on the 02A board. Is it possible to update the firmware for the 02A using a temporary connection to this header, i.e. “press fit”? If so, can you supply a suitable hex file?

Are there any other known problems using the 02A, for example excess current draw as noted for the 02B?

Shortly I’ll post a very simple charger circuit, where the 3pi monitors and controls the charging of its own NiMH battery supply.

Thanks, Jim


Hello, Jim.

Unfortunately the mega48 used on the 02A does not have enough room to fit the new 02B firmware, and on top of that the 02B firmware relies on revisions to the board itself. The excess current draw problem was caused by the bootloader on the 02B, so it isn’t an issue on the 02A. There aren’t any known problems with the 02A other than its inability to monitor the power of the target device. Because of this, you can often use it to program an unpowered device, which in turn can change that device’s fuses unpredictably and cause the device to become unresponsive. Make sure you always turn on your 3pi before trying to program it with the 02A, and note that because of the 3pi’s unique power system, the unit will continue to function normally until the batteries run out of juice, at which point it will just abruptly shut off. It can be bad if this happens right in the middle of programming, so I recommend you don’t try programming if you suspect your batteries are low.

- Ben