Bus Pirate

{{Short description|Microcontroller programmer and debugger}}

{{Infobox information appliance

| name = Bus Pirate 5

| image = BP5 PCB render.png

| caption = Bus Pirate 5 PCB

| developer = Dangerous Prototypes

| type = Debugger

| releasedate =

| website = {{URL|buspirate.com/}}

| predecessor = Bus Pirate v4.0

| successor = Bus Pirate 6

}}

The Bus Pirate is a universal bus interface device designed for programming, debugging, and analyzing microcontrollers and other ICs. It was developed as an open-source hardware and software project.{{Cite web|url=https://www.seeedstudio.com/Bus-Pirate-v3-6-universal-serial-interface-p-609.html|title=Bus Pirate v3.6 universal serial interface|website=www.seeedstudio.com|date=July 2022 }}{{Cite web|url=https://www.seeedstudio.com/Bus-Pirate-v4.html|title=Bus Pirate v4|website=www.seeedstudio.com|date=12 August 2022 }}

Overview

The Bus Pirate was designed for debugging, prototyping, and analysing "new or unknown chips". Using a Bus Pirate, a developer can use a serial terminal to interface with a device, via such hardware protocols as SPI, I2C and 1-Wire.

The Bus Pirate is capable of programming low-end microcontrollers, such as Atmel AVRs and Microchip PICs. Programming using more advanced protocols such as JTAG and SWD is possible but limited due to hardware speed. Support for JTAG version 5 is in progress.{{Cite web |date=2024-12-01 |title=JTAG Support on Bus Pirate v5 |url=https://forum.buspirate.com/t/jtag-support-on-bus-pirate-v5/116/35 |access-date=2025-04-13 |website=Bus Pirate |language=en}}

The Bus Pirate 5 was designed by Ian Lesnet of [http://dangerousprototypes.com Dangerous Prototypes] and Sjaak of [https://smdprutser.nl SMD Prutser].{{Cite web|url=https://www.sparkfun.com/products/12942|title=Bus Pirate - v3.6a - TOL-12942 - SparkFun Electronics|website=www.sparkfun.com|language=en|access-date=2017-03-29}}{{Cite web |date=2023-08-02 |title=The Bus Pirate v5 Saga |url=https://buspirate.com/coming-soon/ |access-date=2025-04-15 |website=Bus Pirate |language=en}}

Feature list

The Bus Pirate v3.6 can communicate via the following serial protocols, with line levels of {{nowrap|0–5.5 volts}}: 1-Wire, I²C, SPI, JTAG, asynchronous serial, and MIDI.

It can receive input from a keyboard, and can output to a Hitachi HD44780 LCD controller.

Other features:

  • UART
  • 2- and 3-wire libraries with bitwise pin control
  • {{nowrap|0 – 6 volt}} measurement probe
  • {{nowrap|1 Hz – 40 MHz}} frequency measurement
  • {{nowrap|1 kHz – 4 MHz}} pulse-width modulator, frequency generator
  • On-board multi-voltage pull-up resistors
  • On-board {{nowrap|3.3 volt}} and {{nowrap|5 volt}} power supplies with software reset
  • Macros for common operations
  • Bus traffic sniffers (SPI, I²C)
  • A bootloader for easy firmware updates
  • Transparent USB -> serial mode
  • {{nowrap|10 Hz – 1 MHz}} [http://www.sump.org/projects/analyzer/client/ SUMP] compatible low-speed logic analyzer
  • AVR STK500 v2 programmer clone, supported in AVRDude programmer software

Generational differences

class="wikitable" style="text-align:center"

|

! scope="col" | Bus Pirate v3.6

! scope="col" | Bus Pirate v4.0{{Cite web|url=http://dangerousprototypes.com/docs/Bus_Pirate_v4_vs_v3_comparison|title=Bus Pirate v4 vs v3 comparison - DP|website=dangerousprototypes.com}}

! scope="col" | Bus Pirate 5

! scope="col" | Bus Pirate 5XL

! scope="col" | Bus Pirate 6

{{rh2|align=right}} scope="row" | Development status

|Mature

|{{dropped|Discontinued}}

|{{active}}

|{{active}}

|{{active}}

{{rh2|align=right}} scope="row" | Dimensions {{small|({{abbr|mm|millimetres}})}}

|60×37

|60×37

|60x60

|60x60

|60x60

{{rh2|align=right}} scope="row" | Microcontroller

|[https://www.microchip.com/wwwproducts/en/pic24fj64ga002 PIC24FJ64GA002]

|[https://www.microchip.com/wwwproducts/en/pic24fj256gb106 PIC24FJ256GB106]

|[https://www.raspberrypi.com/products/rp2040/ RP2040]

|[https://www.raspberrypi.com/products/rp2350/ RP2350A]

|[https://www.raspberrypi.com/products/rp2350/ RP2350B]

{{rh2|align=right}} scope="row" | Clock Frequency {{small|(MHz)}}

|32

|{{unknown}}

|125

|133

|133

{{rh2|align=right}} scope="row" | Program Flash {{small|({{abbr|kB|Kilobytes}})}}

|64

|256

|16,384

|16,384

|16,384

{{rh2|align=right}} scope="row" | Storage Flash {{small|({{abbr|MB|Megabytes}})}}

|—

|—

|128

|128

|128

{{rh2|align=right}} scope="row" | SRAM {{small|({{abbr|kB|kilobytes}})}}

|8

|16

|264

|520

|520

{{rh2|align=right}} scope="row" | I/O pins

|5

|7

|8

|8

|8

{{rh2|align=right}} scope="row" | Main Header

|5×2 pin header

|6×2 pin header

|10×1 pin header

|10×1 pin header

|10×1 pin header

{{rh2|align=right}} scope="row" | Auxiliary Header

|—

|—

|9×1 pin header

|9×1 pin header

|9×1 pin header

{{rh2|align=right}} scope="row" | USB Interface

|FTDI [http://www.ftdichip.com/Products/ICs/FT232R.htm FT232RL]

|PIC24-integrated

|RP2040-integrated

|RP2350-integrated

|RP2350-integrated

{{rh2|align=right}} scope="row" | USB Connector

|USB Mini-B

|USB Mini-B

|USB-C

|USB-C

|USB-C

{{rh2|align=right}} scope="row" |Logic Analyser

|{{partial|Low-speed}}

|{{unknown}}

|{{partial|Inputs Only{{Cite web |title=Available Logic Analyzers {{!}} Bus Pirate 5 Firmware |url=https://firmware.buspirate.com/logic-analyzer/logicanalyzer |access-date=2025-04-14 |website=firmware.buspirate.com |language=en}}}}

|{{partial|Inputs Only}}

|{{yes|Yes}}

{{rh2|align=right}} scope="row" | JTAG

|{{partial|Limited}}

|{{partial|Limited}}

|{{coming soon | In Progress}}

|{{no}}

|{{no}}

The size of the circuit board was changed to 60 mm x 37 mm in the Bus Pirate v3.6 and up so it would match the mounting holes for the "Sick of Beige" DP6037 case.{{Cite web|url=http://dangerousprototypes.com/docs/Bus_Pirate_v3.6|title=Bus Pirate v3.6 - DP|website=dangerousprototypes.com}}{{Cite web|url=http://dangerousprototypes.com/docs/Sick_of_Beige_compatible_cases|title=Sick of Beige compatible cases - DP|website=dangerousprototypes.com}}

The Bus Pirate v3.6 is based on an PIC24 MCU (SSOP), and communicates with a host computer with either a USB interface with a FT232RL (SSOP) or an on-chip USB module.

The Bus Pirate 5 was in development for many years, initially developed with an ARM based STM32 microcontroller. An FPGA was then added to give flexibility over pin assignments and a fast logic analyser. Due to supply chain issues with the STM32s, the release was delayed for an additional 2 years until the release of the RP2040 when the board was redesigned around it, forming the modern day design.{{Cite web |date=2023-08-02 |title=The Bus Pirate v5 Saga |url=https://buspirate.com/coming-soon/ |access-date=2025-04-15 |website=Bus Pirate |language=en}}

The Bus Pirate 5, 5XL and 6 have a 320x240 IPS display that allows seeing the voltage of IO pins, status and current draw at a glance.

See also

References

{{Reflist}}