Update: Thanks to our testers we caught an early bug, a new update is now available for testing.

Last week we identified a shortcoming in the Bus Pirate bootloader. We’ve been working on an upgrade that will free space for more features, eliminate verify errors in the last page of memory, and fix the bootloader speed limitation on some PICs.

Three fantastic programmers contributed to the bootloader upgrade, going from bug identification to release candidate in about one week. Sjaak helped port the new bootloader to the Bus Pirate, and wrote an installer to make the upgrade process as safe as possible. Alexdresko made extensive updates to the bootloader GUI so we can release the firmware with pre-configured settings. Mikael Gustafsson, author of the ds30 Loader toolchain we’re using, added custom bootloader placement, error messages, and distribution configuration to the project for us.

We’re confident the bootloader upgrade will go smoothly, and don’t plan additional changes, so it’s time for a release candidate. We’d like to invite alpha testers with PIC programmers and Bus Pirate v2go or v3 to try the bootloader upgrade. Until we complete some initial testing, please do not upgrade unless you can restore the old bootloader with a PIC programmer. Upgrade instructions follow.


What we’re going to do is use the existing v2 bootloader and P24QP.exe application (or Python upload script) to upload a bootloader upgrader. The upgrader will erase and reprogram the correct parts of the PIC flash memory with the new bootloader. After the new bootloader is programmed, we’ll erase the installer and old bootloader by uploading a new Bus Pirate firmware.

Step 1. Download the upgrade package for v2go & v3

Please do not upgrade unless you can restore the old bootloader with a PIC programmer!!!

The upgrade package (v4.1) includes:

  • Bootloader updater (BPv3-blupdater-v4.hex)
  • V4 Bus Pirate firmware compatible with the new bootloader (BPv3-firmware-v4.hex)
  • Application for v2 bootloader (P24QP.exe or P24qp.py)
  • Application for v4 bootloader (ds30Loader.exe)

Note that Bus Pirate v2go and v3 now use the same bootloader and firmware. Do not use this upgrade with v2a, v1a, or va.

Step 2. Load the bootloader upgrader

Please do not upgrade unless you can restore the old bootloader with a PIC programmer!!!

Upload ‘ BPv3-blupdater-v4.hex’ to the PIC with the existing v2 bootloader. The v2 bootloader is programmed in every Bus Pirate ever sold by Seeed, Fundamental Logic, Sparkfun, and eBay sellers. Use your normal upgrade procedure for the v2 bootloader (Windows, Linux, OSX).

Step 3. Run the updater

Please do not upgrade unless you can restore the old bootloader with a PIC programmer!!!

Run the upgrader to program the new bootloader to the correct parts of the PIC flash memory.

  1. Remove any jumper between the PGD and PGC pins used for the previous step and plug in the Bus Pirate.
  2. Open a terminal and press <enter> to see the updater greeting. Type ‘yes’ to start the upgrade, any other key cancels and repeats the updater greeting.
  3. The update will only take a fraction of a second, but be sure the Bus Pirate doesn’t lose power or it could be bricked.

The upgrader will erase and write a few memory locations. When the update is complete, the MODE LED will blink and the upgrader will prompt you to upload a v4+ firmware with ds30 Loader.

Step 4. Upload v4+ firmware with ds30 Loader

To complete the upgrade, install a v4+ firmware with the ds30 Loader application. Only firmware v4+ is compiled to work with the v4 bootloader.

  1. Unplug the Bus Pirate (if connected), place a jumper between the PGC and PGD pins, and plug it in. The MODE LED should be on.
  2. Start the ds30 Loader application, it should work on Windows, as well as Linux and Mac with Mono. It will start preconfigured for the Bus Pirate based on the default settings in settings.xml.
  3. Set the correct serial (COM) port for your Bus Pirate. The available ports on your system may be auto-detected.
  4. Select ‘BPv3-Firmware-v4.hex’ with the ‘Hex-file’ dialog box.
  5. Press the ‘Download’ button to flash the new firmware to the Bus Pirate. The update should only take a few seconds.
  6. When the update is complete, remove the programming jumper and reset the Bus Pirate (unplug and plug it in again).

The upgrade is complete. For future firmware upgrades, repeat this step.

V2go note: after the upgrade to bootloader v4, placing the upgrade jumper between PGC and GND will also activate the bootloader.

Step 5. Verify the upgrade

If the upgrade went without errors, connect with a terminal and verify that the upgrade was successful. The version string should report v4+.Please let us know if you attempted the upgrade.