Bus Pirate
The Bus Pirate, created by Ian Lesnet and featured on Hack a Day, is a troubleshooting tool that communicates between a PC and any embedded device over most standard serial protocols, which include I2C, SPI, and asynchronous serial - all at voltages from 0-5.5VDC. This product eliminates a ton of early prototyping effort when working with new or unknown chips.Working with the Bus Pirate is simple and effective - type commands into a terminal on your computer, those commands are interpreted by the Bus Pirate and sent via the proper protocol. The Pirate will also interpret data sent from your embedded device back to your computer terminal. A big bonus is the bootloader installed on the PIC, which allows you to easily update the firmware and change the functionality of the board.The main components of the Bus Pirate are PIC24FJ64 processor and an FT232RL USB-to-Serial chip. A Mini-B USB connector is populated on the board, and when you plug it into your computer it will come up as a virtual COM port.Supported protocols:1-WireI2CSPIJTAGAsynchronous serialMIDIPC keyboardHD44780 LCD2- and 3-wire libraries with bitwise pin controlScriptable binary bitbang, 1-Wire, I2C, SPI, and UART modes0-5.5volt tolerant pins0-6volt measurement probe1Hz - 40MHz frequency measurement1kHz - 4MHz pulse-width modulator, frequency generatorOn-board multi-voltage pull-up resistorsOn-board 3.3volt and 5volt power supplies with software resetMacros for common operationsBus traffic sniffers (SPI, I2C)A bootloader for easy firmware updatesTransparent USB->serial mode10Hz - 1MHz low-speed logic analyzerScriptable from Perl, Python, etc.Translations (currently Spanish and Italian)Enumerates as a virtual COM port over USBCan operate as AVR STK v2 clone programmerAccess to PIC24FJ64 ICSP programming port