# Methods to test/debug I2C protocols? [closed]

I've been working on some digital designs with I2C command & control and need a PC-based tool to test my interfaces. -- In the past, I've used iPorts (MCC) to do these tasks but the price tag of approx $500 each has always seemed steep. What are some other available (hopefully cheaper / more robust) tools to help with this task? • It is a shame this "community wiki" question has been closed. These are a niche products that have very few working solutions. – Nate Sep 29 '14 at 18:15 • Well, the answers are fine, and visible for all to see, but I agree. I took a quick stab at editing to make the language acceptable and nominated for reopening, but I'd be surprised it that goes over well. – Scott Seidman Sep 29 '14 at 21:11 ## 4 Answers To me, robust means: throwaway price, comes with schematics and software and I could build or fix it at home. Here are two favourites, both around the$20 mark, exposing USB serial and PC scriptable:

The Bus Pirate is a universal bus interface that talks to most chips from a PC serial terminal. Lots of serial protocols are supported: I2C, SPI, 1-Wire, JTAG etc. as well as a bit of AVR/PIC programming and EEPROM dumping. It has a low speed logic analyser and sniffers for I2C and SPI. There's an active forum with good support.

(It's a PIC24 with a USB serial port and some bus switches for open-drain pullup trickery. Windows only MPLAB needed for firmware development. ds30 serial bootloader pre-installed for "field upgrade".)

USerial is an I2C, SPI and GPIO bridge, using an Atmel AVR. It'll also run on any AT90USBxxx board, eg. Teensy, Benito, Nanduino. Compiles with gcc. Well documented.

• Bus pirate is an excellent tool, +1 – SingleNegationElimination Sep 15 '10 at 4:21
• I have heard a lot of good things about the Bus Pirate, including the place I'm doing my Senior Project at buys a bunch of them and uses them all over the place. – onaclov2000 Sep 21 '10 at 4:49
• The BusPirate works relatively well for hobbyist use but has demonstrated some quirky behavior (would crash intermittently) when used in a manufacturing environment. Older versions had limitation in the number of bytes they could transmit or receive but rumor has it that they may have fixed this in newer revisions. – Nate Sep 29 '14 at 18:19

The Diolan U2C-12 is what I use

Probably not the cheapest, but i've been very happy with it for I2C/SPI and GPIO work, their ready to go linux library was the real reason I chose this part.

If you want to send I2C commands from the PC to an I2C slave device you will need something that will act as a I2C master. In the past when I've wanted to do this I wrote a simple program that converts USART to I2C. Then use a PC terminal program to send data to the I2C master via RS-232. You should be able to do this using a breadboard, PIC, and RS-232 transceiver.

• Yep you're right. It does not allow communication from PC-to-Device. – mjh2007 Jul 2 '10 at 14:39

The FTDI USB-MPSSE cables are promising (approx \$30 each).

It took a lot of effort and a few emails to their customer support to get them to work though. In September 2014, their published DLLs (v0.3 and v0.4) did not work for I2C communication. We had to get unreleased, beta flavors of their DLLs just to achieve basic I2C read/write capabilities.