Bus Pirate
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.

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 is discouraged due to hardware speed limitations. 

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 was designed by Ian Lesnet of Dangerous Prototypes.

Feature list

The Bus Pirate can communicate via the following serial protocols, with line levels of : 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
  measurement probe
  frequency measurement
  pulse-width modulator, frequency generator
 On-board multi-voltage pull-up resistors
 On-board  and  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
  SUMP compatible low-speed logic analyzer
 AVR STK500 v2 programmer clone, supported in AVRDude programmer software

Generational differences 

v3.x models uses a 5×2 header for ribbon cable, whereas the v4.x models uses a 6×2 header.

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.

References

External links 
 
 Source code for Bus Pirate software at GitHub

Open hardware electronic devices
Single-board computers