Bus Pirate high voltage programming adapter

Posted on Saturday, February 13th, 2010 in Bus Pirate by Ian

Today we’re giving away an assembled Bus Pirate high-voltage programming adapter. It has a 5pin PIC programming header, a 6pin AVR programming header, and a small 13volt boost-converter power supply. A 13volt supply is needed to program PIC 12/16/18F microcontrollers, and clear the RESET fuse in AVRs. It’s doesn’t do much right now though, because there’s no support for it in any programming apps.

This will eventually be available at Seeed Studio, but you can get a preview of the hardware by leaving a comment below. Let us know what you want to do with it, on Monday we’ll send the adapter to a commenter with an interesting idea.  If you don’t have any ideas you can endorse another comment, we’ll take popularity into account when we give it away.

This entry was posted on Saturday, February 13th, 2010 at 8:13 am and is filed under Bus Pirate. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.

21 Responses to “Bus Pirate high voltage programming adapter”

  1. Duncan Margetts says:


    I’d love one please!


  2. Gavin S says:

    Taking an embedded systems class my last semester in college and would would love to mess around with more platforms.

  3. David says:

    Yippeee! My V1 AVR Dragon bit the dust. I hear V2 Dragons are almost bullet-proof, but I’m still gun-shy when it comes to the Dragon. This adapter would fill that void. But I have the previous version Bus Pirate. Will they mate?

  4. haley0918 says:

    OMG! I’m having a weird and funny thought about this board.

    The BusPirate will be connecting to this board to program PIC via ICSP and BusPirate itself has an ICSP.

    What would happen if the BusPirate connect to this adapter and then loop the adapter ICSP to BusPirate ICSP?


  5. Michal says:

    I promised to add support for this board to AVRdude, haven’t I? Hmm… should do something about it.

    How does this thing work? When +5V goes up on BusPirate then +13V appears on /RST here? MISO, MOSI, SCK and GND are pass through and GND and V+ is +5V, correct?

  6. tayken says:

    I’ll try to write an app for programming PIC’s through BusPirate. I have a “no-name” programmer with a custom written app, I can reverse-engineer it and use my findings in this project.

  7. Ian says:

    @Michal – no problem, I just got the extra M34063A chips for your board this week and mailed it on Monday.

    The Bus Pirate 5volt supply powers the booster circuit.
    ADC measures the 13volt supply through an additional 39K resistor.
    The Vpu measures the target supply voltage (and can be used to program in Hi-Z mode with mixed voltages)
    The AUX pin enables (H) and disabled (L) the 13volt supply to the RESET/VPP pin of the AVR/PIC.
    The CS pin grounds the RESET/VPP of the AVR/PIC for resets (when the BP pin is high), this is probably the opposite of the existing programming routines that ground the RESET pin by taking the Bus Pirate pin low.

    @tayken – No need for reverse engineering. There’s already USBPICPROG that programs a ton of PICs and is open source, there’s also a partial port of the firmware in the SVN.

  8. Ian says:

    pppd just pointed out in the forum that this might not actually work for AVR HVP because it actually uses a different pin count than ISP.

  9. Gav Reid says:

    I bought a bunch of kits to play with and none the the avr’s came programed
    and now seed are out of avr programmers :(

    I would could really use the programer to make all my kits work

    • Ian says:

      The Bus Pirate can already program AVRs through normal ISP using AVRDUDE or the STK500v2 replacement firmware that works right in WinAVRStudio.

  10. Julius says:

    Reset the chip when I accidently fused the reset pin…

  11. W1N9Zr0 says:

    I built a high voltage programming adapter using a A23 battery (newer PICs only use the +13 for reference and generate their own programming voltage) and an opto-isolator. Also slapped together a C# programmer for it using the binary 2-wire interface, works great for my PIC16F628A’s so far.

    The pins are wired like so: AUX to the opto to switch the 13v, clock/2-wire-data to the PIC clock/data, passive outputs, pullups on and connected to +5, the chip is reset by turning vregs off/on.

    The PIC16 programming commands are usually a 6 bit command and 14 bit data padded on both sides to 16, though some commands don’t take any data and are just the 6 bit command.
    I send the bits by just setting the data pin and cycling the clock.
    The reads are usually a 6 bit command and then you read 14 bits padded to 16 using two read byte command.
    You have to fiddle with the bytes you get because PIC’s 14 bit words are LSB first.

    The memory addresses are programmed sequentially by using the increment address command and you can go back to 0x0000 by resetting the PIC.

    There is only about 7 programming commands in PIC 16. PIC 12 have similar commands to 16, sometimes even fewer. PIC 18 uses a pretty different programming model and commands, you need to do more work than write/incaddr/repeat, and you get more fancy commands, moving around address space, etc.

  12. The Ideanator says:

    dammit, im too late arent i?

  13. Michal says:

    Seems like AVR HVP needs parallel programming, +13V on RST is not enough. However with a couple of shift registers it may be possible to do ;-)

  14. brett says:

    fuses on AVRs are great when you get them right, not so when you don’t :( Would love a way to “fix” that!

  15. George says:

    Wonderful device :)

  16. charudatt says:

    It would be interesting if this interface could provide AVR-HVP, which is the only way out to reset blown fuses in AVR.

    Looking forward to hearing news on that.

    Further could this also be used to program PSoC from Cypress ?

  17. Zar says:

    A very useful adapter. When will it be available?
    I want to buy one. Would use it to program NXP KMA200 angle sensor. So far I managed to read and write to it using Bus Pirate (raw3wire) but it needs 12-13v to write to EEPROM.
    By the way, thanks for BP – a great tool indeed.

  18. D.G. says:

    I would like to get one of these babies.
    With such I would like to try to make a nut-cracker, i.e. blown-fuse eraser and disassembler all-in-one. I need to “work out” some of AVRs and PICs, (competitor’s, of course). Can you provide step-up programming i/f of that 13V boost-supply, so I can change that voltage in 0.1 V increments or so, with programmable duration, sort of PWM, but all three of impulse length, duty-cycle ratio and voltage level?

  19. Andrew Kohlsmith says:

    That’s a nice little board, but unless you modify the AVR pinout it won’t work for high voltage programming. High voltage programming mode doesn’t just use MOSI, MISO and SCK; it uses a stranger algorithm which uses an additional port pin.

  20. Oliver says:

    I was looking at the exact same thing, 3 years after the first post. Why wasn’t this idea refined? I use my bus-pirate almost exclusively as a AVR programmer, but can’t reset any fuses with this. Was looking for a high-voltage shield/programmer or BP extension, and here it is! too bad it doesn’t work (nor is for sale). Nobody wants to take my money? :)

Leave a Reply

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

Recent Comments

  • Joe Desbonnet: Ya, I can recommend the low melting point solder. I used brand 'ChipQuik' and it's amazingly easy to use.
  • Jerome: I need a new BusPirate for the Fablab ;) Many thanks!
  • Max: Seems like an unexpectedly violent way to remove the chip indeed. A hot air station should of course do the job just fine, but in...
  • jose: Part removal described here is pure butchery, the cheapest hot air station will do a fast and clean job removing the QFP, heat air to...
  • Cody: Yes please