Using Arduino as ISP programmer for 3pi

I don’t have the Pololu USB AVR Programmer. I do have a couple of Arduino’s.

Is it possible to use an Arduino as a programmer for the 3pi, using a procedure such as the one on this Sparkfun tutorial: ? Is it just a straight across connection to the 3pi’s programmer pins from the Arduino’s ICSP pins?


Well I gave it a shot and yes it does work! Successfully uploaded my first program.


Thank you for letting us know that it works. The 3pi gives you direct access to the integrated AVR’s programming lines, so any standard AVRISP programmer (or MCU programmed to act as one) should work. One thing to beware of, however, is one of the programming lines is also used to control the 3pi’s motor drivers, so it is important that you have the target AVR’s reset asserted when the programming lines are being driven (the target reset line also disables the motor drivers). Otherwise, your 3pi might unexpectedly drive off the table when you try to program it!

- Ben


I just wanted to add a few things:

I haven’t read the Sparkfun tutorial thoroughly, but I did notice one thing: they recommend connecting the Arduino’s 5V line to the target’s VCC. This is a bad idea because then you would be shorting together the outputs of two different regulators. I suggest that you do NOT make that connection.

Also, please be careful to never attempt programming while the 3pi’s power is off or when the batteries are low, because that could break the microcontroller permanently. Our USB AVR Programmer has protections against programming under-powered devices that your Arduino does not have.


Thanks for the tips! I was really just using the Arduino as a short term solution and am ordering the Pololu programmer.