|Language:||English • Español • 中文(简体)|
- Bus Pirate v3 available now for $30.15, including worldwide shipping
- Bus Pirate v3 is also available at Adafruit Industries (USA) Open Source Control Systems (USA) EpicTinker (USA) Watterott Electronic (Germany) Evola (Europe) Hacromatic (USA) Phenoptix (UK)
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 is still the best choice for most people, but v4 is the way of the future.
- Bus Pirate v4 available now for $40.15, including worldwide shipping
- Bus Pirate v3 vs v4 comparison
- Bus Pirate v4 hardware overview
|Buy it:||Get one for $30 at Seeed Studio|
|Forum:||Bus Pirate Forum|
- Features overview (original)
- Hardware overview
- Bus Pirate Hardware SelfTest
- Bus Pirate 101 tutorial (original)
- Bus Pirate 102 tutorial (original)
- Bus Pirate forum
- Connecting with Mac OS X
- Bus Pirate and Mac OSX tutorial
- Using the Bus Pirate with Ubuntu
- Using the Bus Pirate with Arch Linux
- Create /dev/bus_pirate on Linux
- Using the Bus Pirate with Fedora 14
Download the latest firmware updates, source code, and more. Bus Pirate firmware update instructions are here.
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.
- Bus Pirate user interface
- Bus Pirate menu options guide
- HEX/DEC/BIN number entry and output display
- Bus modes (main firmware): 1-Wire, UART, I2C, SPI, raw 2-wire, raw 3-wire, HD44780 LCDs, MIDI
- Bus modes (bonus firmware, v5.9+): PC keyboard, DIO, JTAG
- BASIC script engine reference
- Bus Pirate self-test guide
Binary scripting mode
A guide to getting started with the pyBusPirateLite Python library: Bus Pirate Scripting in Python
I/O header and hardware
- Bus Pirate I/O Pin Descriptions
- Practical guide to Bus Pirate pull-up resistors
- Mixed voltage interfacing with the Bus Pirate
- LCD library and adapter
Various probe cable pinouts
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.
|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).
- Gonemad's Bus Pirate/OpenOCD walk through
- OpenOCD JTAG debugger
- Tutorial by the developer of OpenOCD support
- Bus Pirate OpenOCD walk-through
- Bus Pirate JTAG with OpenOCD
- JTAG posts
- Bus Pirate & OpenOCD forum
- Bus Pirate JTAG connections for OpenOCD
- Debricking Dockstar
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.)
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.
- See Bus Pirate AVR Programming - Instructions and resources for AVR programming with the Bus Pirate.
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)
- Python Oscilloscope script
- Python Oscilloscope script info
- miniscope v3
- miniscope info
- PirateScope in GIT (Python, Discussion)
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
- MMA7455L 3-axis accelerometer (SPI, IC2)
- 3EEPROM explorer board (original), DS2431 (1wire), 24AA (I2C), 25AA (SPI)
- Wii Nunchuck quick guide (original) (I2C)
- iButton serial number (original) (1-Wire)
- 2AA02E48 EEPROM with MAC address (original) (I2C)
- HD44780 LCD adapter v2 (LCD)
- DS1307 real time clock (original) (I2C)
- NA204SD02 Futaba VFD character display (raw2wire)
- SLE4442 (FedEx Kinko's) smart card update (original) (raw2wire)
- 25AA/25LC serial EEPROM (SPI)
- ShiftBrite with A6281 3 channel LED driver (SPI)
- PCF8563 real time clock calendar (I2C)
- Sure LED matrix (original) (raw3wire)
- AT45DB041D 4Mbit flash memory (original) (SPI)
- HMC6352 digital compass (original) (I2C)
- Parallax RFID reader (original) (UART)
- KS0074 serial LCD (original) (SPI)
- SURE DE-DP014 character matrix (raw3wire)
- 23K256 32K serial RAM (SPI)
- 74F138 binary decoder
- DS28EA00 temperature sensor (1-Wire)
- MCP9800 temperature sensor (I2C)
- DS18S20 temperature sensor (1-Wire) (Original)
- Servo driver demo
Bus Pirate v1a
- LTC2640 digital to analog converter (SPI, raw3wire)
- LTC2631A digital to analog converter (I2C)
- PC keyboard (PC Keyboard)
- DS1807 audio volume potentiometer (I2C)
- SparkFun 4×4 RGB button pad controller (raw3wire)
- DS1801 audio volume potentiometer (SPI)
- MCP6S26 programmable gain amplifier (raw3wire)
Bus Pirate v0a
- 24LC1024 EEPROM (I2C)
- EM406 GPS (UART)
- SLE4442 (FedEx Kinko’s) smart card (raw2 wire)
- DS1077 133MHz programmable oscillator (I2C)
- XC9572XL CPLD (JTAG)
- DS1822 temperature sensor (1-Wire)
- PCF8574 IO Expander (I2C)
- DS2431 1K EEPROM (1-Wire)
- SHT1x/7x humidity and temperature sensor (raw2wire)
- TC74 temperature sensor (I2C)
User submitted hacks and demos
- Wii Motion Plus controller (I2C)
- Nokia 3310 LCD (binary SPI)
- Hack the MD80 firmware to remove the date display (SPI sniffer)
- Program STM32 (raw2wire)
- I2C magnetic compass sensor (I2C)
- TK-1315LA GPS (serial UART)
- SparkFun LED Matrix
- MAX147 ADC (SPI)
- MMA7456L three-axis accelerometer (I2C/SPI)
- FSA03 GPS (serial UART)
- Wavecom GSM modem (serial UART bridge)
- Sure 8×32 LED matrix marquee
- Zeno zit zapper tip reset (I2C)
- 1-Wire iButton (1-Wire)
- Bus Pirate high voltage power supply (PWM)
- Sniffing between smartcard & terminal (serial UART at arbitrary baudrate)
- Bus Pirate BlinkM demo
- AK8975 magnetometer (I2C)
- TMP102 temperature sensor (I2C)
- MMA8453Q accelerometer (I2C)
- Thinkpad T30 password reset (I2C)
- BPv4 HD66717 I2C demo (I2C)
- Unbricking the Bullet2
- BPv3 blink MODE LED demo
- BPv3 ADC demo
- BPv3 FTDI UART demo
- BPv3 RFM12B radio data module demo
Bus Pirate Education Kit
- mentioned in Workshop Video 52, and a preliminary DIP and nylon breadboard friendly parts manifest, pending a formal webpage with lab experiment write-ups
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.
- Pirate-Loader console upgrade application (Linux, Mac, Windows) (original)
- ds30 Loader GUI (original) (Mono/.NET)
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.
Bus Pirate v3.x
v3.8 is intended for the Bus Pirate education kit, and includes some fixes to long standing issues like the botched pinout that’s haunted me since the first version with a 2×5 connector.
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.5 hardware overview
- v3b hardware overview (original)
- v3a hardware overview (original)
- v3a and v3b schematic and partlist
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.
Bus Pirate v2go was the first USB Bus Pirate. Around 1000 were sold as a fundraiser for Hack a Day. The PCB is black.
- User created cases
- 2K ohm MOSI pull-up resistor mod
- Modify the FTDI EEPROM, change serial name on OSX
- Create /dev/bus_pirate on Linux
- Bus Pirate v3 preorder 2 & 3 dead MODE LED fix
- Bus Pirate v2go preorder 2 shipped with v2 bootloader only
We maintain a combined bootloader/firmware flash image to assist in manufacturing.
- bpv3-BL44FW510-DUMP.hex is bootloader v4.4 with firmware v5.10
- Latest version in SVN
There is also an automated self-test utility, but it is generally slower than doing it manually
Cases and accessories
- LCD adapter v2 ($9)
- Probe cable ($4.99)
- Synthetos laser-cut acrylic case ($14.99)
- How-to: Assemble the Synthetos case
- User created cases
Bus Pirate LCD adapter v1deprecated
- Google Code page and SVN repository
- Compile the Bus Pirate firmware (original)
- Spanish, Italian translations