How-to: Bus Pirate bootloader v4 upgrade
See the latest version in the documentation wiki.
Bus Pirate firmware v4+ requires a bootloader upgrade. The upgrade frees space for more features, eliminates verify errors in the last page of memory, and fixes the bootloader speed limitation on some PICs. The new bootloader is available to everyone through an upgrader firmware that is loaded using the existing bootloader.
Thanks to the developers and testers who contributed to the bootloader update. You caught two major bugs prior to wider user trials. We’re now cautiously optimistic that the upgrade will go smoothly.
We’d like to invite most Bus Pirate v2go and v3 users to upgrade. If you’re in the middle of a project, don’t upgrade yet, wait and see how it goes. The upgrade has gone smoothly for twenty lots of users, and we tested the latest updater on every version of the Bus Pirate chip and hardware prior to release.
A v1a upgrade will follow if the v2go and v3 deployment goes smoothly. No further support is planned for v0a or v2a hardware. Upgrade instructions follow.
What we’re going to do is use the existing v2 bootloader and P24QP.exe application (or Python 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 v4 Bus Pirate firmware.
***STOP*** DO NOT UPLOAD A V4 FIRMWARE TO A V2 BOOTLOADER WITH P24QP.PY!!! The Python utility erases the entire chip, including the ‘configuration words’ that determine how the pic behaves on start-up. The v4 firmware does not contain replacement configuration words, so the Bus Pirate won’t start from the correct clock after programming a v4 firmware to a v2 bootloader with p24qp.py. Only Upload v2 firmware or BPv3-v2blupdaterVa3-v4.1.hex with P24QP.PY.
The Windows utility does not have this issue – it preserves the config words on erase – so accidental v4 uploads don’t damage the configuration words.
Despite this warning, some will still be tempted – don’t do it, it’s the only significant source of upgrade failures. Read all the steps here first, before you upgrade. Heed the warnings in the firmware archives – please don’t try to upload v4 firmware to a Bus Pirate with a v2 bootloader.
Step 1. Download the upgrade package for v2go & v3
The upgrade package (v4.1-va3) includes:
- Bootloader updater (BPv3-v2blupdaterVa3-v4.1.hex)
- V4 Bus Pirate firmware compatible with the new bootloader (BPv3-firmware-v4.1.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
Upload ‘ BPv3-v2blupdaterva3-v4.1.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
Run the upgrader to program the new bootloader to the correct parts of the PIC flash memory.
- Remove any jumper between the PGD and PGC pins used for the previous step and plug in the Bus Pirate.
- 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.
- 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 or the Pirate-Loader command line utility. Only firmware v4+ is compiled to work with the v4 bootloader.
- 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.
- Start the ds30 Loader application, it works on Windows with .NET, and Linux and Mac with Mono (or you can try the Pirate-Loader command line utility). It will start preconfigured for the Bus Pirate based on the default settings in settings.xml.
- Set the correct serial (COM) port for your Bus Pirate. The available ports on your system may be auto-detected.
- Select ‘BPv3-Firmware-v4.1.hex’ with the ‘Hex-file’ dialog box.
- Press the ‘Download’ button to flash the new firmware to the Bus Pirate. The update should only take a few seconds.
- 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 section.
Pirate-Loader console utility: The ds30 Loader GUI requires .NET or Mono, and doesn’t work for everyone on Linux or MaxOSX. Pirate-Loader is a simple command line utility for firmware upgrades on all platforms that doesn’t need .NET or Mono.
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
Connect with a terminal and print the information menu (i). Firmware v4+ reports the bootloader version. Bootloaders installed with the upgrade utility will report v4.1. Bootloaders installed from the v4.1 firmware download (using a PIC programmer) will report v4.2. There’s no functional difference, it’s just a way to better handle support requests.
Please let us know if you attempted the upgrade and how it went. It’s really important to know if the upgrade is successful before we expand it to all users.This entry was posted in Bus Pirate and tagged bootloader, upgrade.