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:
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.