Bus Pirate

From DP

(Difference between revisions)
Jump to: navigation , search
(Download: added link to github repo)
m (Updating Bus Pirate v4)
Line 282: Line 282:
* [[Bus Pirate firmware change history]]
* [[Bus Pirate firmware change history]]
===Updating Bus Pirate v4===
===Updating Bus Pirate v4===
* [[Bus Pirate v4 firmware updates]]
* [[Bus_Pirate_v4_and_pirate_loader_(only_firmware_updates)]]
===Updating Bus Pirate v3===
===Updating Bus Pirate v3===
  With firmware v5.9 we ran out of space in hardware v3.
  With firmware v5.9 we ran out of space in hardware v3.

Revision as of 14:19, 19 September 2016

Language: English  • Español • ‪中文(简体)‬


Project Summary
Name: Bus Pirate
Buy it: Get one for $27.15 at Seeed Studio
Price: $27.15
Status: Mature
Manufacturing: Shipping
Forum: Bus Pirate Forum

The Bus Pirate is an open source hacker multi-tool that talks to electronic stuff. It's got a bunch of features an intrepid hacker might need to prototype their next project. This manual is an effort to link all available Bus Pirate information in one place.

An initial batch of Bus Pirate v4 is now available to early adopters and testers. We think v3.x is still the best choice for most people, but v4 is the way of the future.







Linux, OS X


Unfortunately it seems that Dangerous Prototypes have abandoned the Bus Pirate firmware development (and the Bus Pirate v4 also), despite that their official firmware has never reached a truly stable state: the quantity of bug report threads at forums, especially regarding flashrom, is a direct proof of that.

In attempt to change this desperate situation around BP v4, kallisti5 has started a Bus Pirate community firmware project: to include the important fixes and clean-ups, committed by several prominent community members, that Dangerous Prototypes still did not merge to official version of firmware (as of 09.09.2016) - and to continue its' future development.

Although the primary target of community is to significantly improve the user experience for Bus Pirate v4, the Bus Pirate v3 support will be maintained at all costs (despite the difficulties while compiling with the recent MPLAB XC16 compilers)

Here is the first release of the Bus Pirate community firmware v7.0:

Feedback and patches are welcome!

However, if for some reason you would like to install the official v6.1 firmware (almost 5 years old!), we wouldn't stop you. Here is a link to its' package:

Alternatively, you could get the sources for slightly newer (but still old) official v6.3 firmware:

but please note that you will need to compile it by yourself (cannot find a compiled hex file for it)


User terminal mode

The Bus Pirate is accessed from a command line in a serial terminal. The Bus Pirate always starts in high impedance mode (Hi-Z), a safe mode with all outputs disabled. It's intended to protect any connected devices from conditions beyond their specifications. From there, a bus mode can be selected to use the Bus Pirate with a specific protocol.

Binary scripting mode

The Bus Pirate has a binary access mode that can be used with software or scripts. There's example scripts in C, Python, Perl, and more in the GitHub repository.

Binmode protocol pages: bitbang, SPI, I2C, UART, 1-Wire, and raw-wire.

A guide to getting started with the pyBusPirateLite Python library: Bus Pirate Scripting in Python

I/O header and hardware

Various probe cable pinouts

Application guides

Several applications can use the Bus Pirate as a programmer or debugger.


The Bus Pirate is a slow serial port device intended for human-speed interaction. It was NEVER intended to do JTAG duties. Because it's open source, cheap, and versatile, the community hacked various JTAG features into it. They're great in a pinch, but no substitute for the real thing!

The Bus Pirate supports JTAG in three ways: with the OpenOCD debug application, as an XSVF player, and through a user-mode terminal interface.

JTAG and OpenOCD

The Bus Pirate is supported as a JTAG programmer/debugger by OpenOCD. If your target is supported by OpenOCD it may work. Slowly :) You will need to use a Bus Pirate firmware version which supports the binary JTAG protocol — not all do.

Version Banner Works?
6.1 Firmware v6.1 r1676 enabled
6.0 Firmware v6.0 r1625 enabled
5.10 Firmware v5.10 (r559) disabled
5.9-extras Firmware v5.9 (r529) [HiZ 2WIRE 3WIRE KEYB LCD DIO] disabled
5.9 Firmware v5.9 (r539) disabled
5.8 Firmware v5.8 (r504) enabled
robots custom Firmware v6.0RC (r572) enabled

Note that the above is about binary JTAG / OpenOCD support. JTAG terminal mode is not enabled in any of the above firmwares (not even 5.9-extras, even though it was advertised to be enabled in there at some point).

FPGA and CPLD programming

As a stand-alone XSVF player to program CPLDs/FPGAs. This requires a simple firmware swap.

JTAG terminal mode

The -extras firmware has a the old user terminal JTAG mode from the Hack a Day demo. This was removed from the main firmware because nobody used it - it isn't particularly useful to enter JTAG commands manually. (OpenOCD uses the binary JTAG mode, which is different from the user terminal JTAG mode.)

AVR programming

The Bus Pirate can be used to program Atmel AVR microcontrollers. AVRDUDE version 5.8 and later support the Bus Pirate as a programmer directly. AVRDude is the most common software for programming AVR microcontrollers. Many packages such as WinAVR and the Arduino IDE bundle a version of AVRDude.

There is also an alternate firmware that can be installed on to Bus Pirate to make it an STK500 v2 AVR programmer clone.


A flash chip programmer for Linux and Windows.

Logic Analyzer with SUMP

The Bus Pirate can act as a low speed logic analyzer using a SUMP-compatible protocol. Jawi's latest OLS client includes extended support for the Bus Pirate.

Oscilloscope (very low speed)


Chip demonstrations

Here's a comprehensive list of Bus Pirate chip demonstrations. It includes Ian's old demonstrations from Hack a Day, and the most recent demos from Dangerous Prototypes. Tutorials are arranged by Bus Pirate hardware version.

Bus Pirate v4

Bus Pirate v2&v3

Bus Pirate v1a

Bus Pirate v0a

User submitted hacks and demos

Bus Pirate Education Kit

Firmware upgrades

Instructions for changing the firmware in a Bus Pirate over USB.

Updating Bus Pirate v4

Updating Bus Pirate v3

With firmware v5.9 we ran out of space in hardware v3.
We can't fit all the new goodness in one firmware.
Firmware release v5.9+ includes a bonus firmware with some extra modes.
Bootload the BPv3-Firmware-vx.x-extras.hex file to try the new modes.
Currently: digital IO mode (DIO), JTAG, PC keyboard, more

This section is for Bus Pirate v3.x with bootloader version 4+. See the next section for more bootloader information.

Follow these instructions to load new firmware, older firmware (v4+ only), the extras firmware, or the XSVF player firmware.

Bus Pirate v3 bootloader upgrades

The bootloader is a small program in the Bus Pirate that installs the firmware upgrade. The bootloader itself can also be upgraded with a small amount of effort. This is not normally required.

Program with a programmer

How to put the bootloader in a new chip or replace a damaged bootloader.

Hardware documentation

Bus Pirate v3.x


v3.6 is a minor update to v3 available from June 2012. All changes are cosmetic, v3.6 works exactly the same as previous v3s.

v3a, v3b, and v3.5 were available from October 2009 to June 2012. A similar version is sold by SparkFun.

v3.x is based on the original v2go circuit using a PIC24FJ64GA002 microcontroller.

Bus Pirate v4.x


v4 is currently in development. The first batch is available, but the hardware is still experimental.

Legacy hardware

Bus Pirate v2go was the first USB Bus Pirate. Around 1000 were sold as a fundraiser for Hack a Day. The PCB is black.

v1a and v0a were serial port Bus Pirate prototypes. Fundamental Logic briefly sold a through-hole kit for v1a.


Known Defects

Manufacturing resources

We maintain a combined bootloader/firmware flash image to assist in manufacturing.

There is also an automated self-test utility, but it is generally slower than doing it manually

Cases and accessories




  • PCB art: CC-0
  • Bootloader: GPL (from ds30 Loader project)
  • Firmware: CC-0
  • The Bus Pirate pinout, menu, and command tables are released into the public domain.