Bus Pirate PIC programmer?

Last week we made the Bus Pirate into an AVR STK500v2 compatible programmer by porting some existing open source code. Now we’re looking for a similar code-base that programs PIC microcontrollers.

The PIC programmer landscape is a bit sketchy. As we understand, it’s not feasible to impersonate an existing programmer interface like the PICKIT2 or the ICD2. MPLAB actually bootloads a different firmware into these programmer for each chip family (though that makes it easy to clone the hardware). Microchip doesn’t make the protocol public (?), which is probably why there’s no existing code to port.

The only open source PIC programming toolchain we could find is Usbpicprog (GPL), with Windows and Linux clients. It supports PIC 12F- 16F- 18F- and DSPIC30, all 5volt parts. These chips require 13volts to enter programming mode, which would have to be generated and controlled via a small breakout board. There’s only two simple source files toport to the Bus Pirate hardware.

The big catch is that the PC-side software doesn’t support serial ports…yet. This is where you come in. If one of our talented readers can add serial port output to the Usbpicprog application, we’ll port the PIC firmware. We’re also up for alternative suggestions, open source projects we may have missed.

There’s some other 3rd party programming software out there with open hardware but no firmware source. WinPic800 (GTP-USB+ hardware) and USBURN (PIC Brenner8/Brenner9) have open hardware that can burn a number of PICs, but neither make firmware source available. Brenner9 is particularly interesting because it programs PIC24/ds33/32, which could all be programmed at 3.3volts from the Bus Pirate without an adapter.

Join the Conversation


  1. I was thinking the BP was approaching it’s limits but by the looks of it you’re not slowing down at all, excellent work Ian, would be great if you can get the PIC programmer up and running as well. I have a v2 and v3 BP and I’m hoping to get one of the logic analyzers as well when/if they ever see the light of day, guess I’m just a sucker for open source.

  2. I inherited a handful of PICs, mostly dsPIC33 and 18F’s. Sadly I have no way to program them. Yet. Especially not in Linux. I can’t wait to turn my BP into a PIC programmer. (AVRs are so much easier to deal with with their SPI-based ICSP ;-)

    BTW It looks like BPv4 will need a much bigger memory.

  3. i was under the impression that the source for the pickit2 was a single firmware not seperate for each pic type and i also thought that microchip had released the source.

    knowing microchip it wont be opensource

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.