The I2C/SPI Tap for IO Ninja is an affordable sniffer for monitoring I2C and SPI communications. Our sniffer allows you to tap into the lines of I2C and SPI links and immediately view the captured data bytes in IO Ninja software — in real time and using our innovative dual-hex view tailor-suited for the inherently full-duplex SPI data.

All inputs of the I2C/SPI Tap are available on a convenient quick-release terminal block. The board also features LEDs for the I2C and SPI line status indication (SCL, SDA, CLK, MOSI, MISO, SS), which helps with quick troubleshooting of wiring issues.

Self-test Procedure

I2C and SPI firmware (FPGA configurations) for this Tap include test generators producing sustained test traffic at 400KHz and 24MHz respectively.

Test I2C signals are generated on D14 (SDA) and D15 (SCL).

Test SPI signals are generated on D12 (SS), D13 (MISO), D14 (MOSI), and D15 (SCLK).

To receive the test traffic, connect two or four wires as shown on the diagram below:

I2C/SPI Tap self-test

Key Features

  • USB-powered, no additional external power necessary;
  • Supplied with a USB-C cable;
  • Based on Inter MAX10 FPGA;
  • Incorporates an I2C and SPI test sequence generator for self-testing the Tap;
  • Has 16 buffered IO lines D0..D15 connected to a quick-release terminal block;
  • All buffers act as level shifters allowing the Tap to work with logical signals as high as 5V and as low as 1.8V;
  • Eight LEDs onboard:
    • Green READY LED;
    • Two general-purpose green LEDs M0 and M1 for mode and status indication;
    • Four yellow LEDs for indicating the state of IO lines D0..D3 (sufficient for I2C and SPI);
    • Blue POWER LED;
  • Product functionality may be expanded in the future:
    • Onboard FPGA is reconfigurable via the USB interface;
    • Sixteen IO lines provide ample room to grow;
    • It is envisioned that the product's abilities may be expanded to handle such protocols as...
      • Quad-SPI;
      • SDIO;
      • Single-wire bus;
      • ...and more!

Hardware Specifications

USB:USB 2.0, high-speed (480MHz), USB-C connector
Maximum I2C speed:Up to 700KHz
Maximum SPI speed:Up to 24MHz
Operating temperature:0 to +60 degrees C
Operating relative humidity:10% to 90%
Mechanical dimensions:82 x 74 x 30 mm
SPI Max Speed Note

This number depends on the host PC's performance and its workload. Captured data may be lost if PC's USB channel is unable to receive it in a timely manner. Our tests have shown that an average i7-based desktop PC that is not performing other time-critical tasks easily captures sustained SPI traffic with clock speeds up to 24MHz.


Open the I2C/SPI Tap plugin in IO Ninja and select a tap device in the Tap dropdown. Then select the protocol (in case of SPI, be sure to select the proper SPI mode (0..3), data bits (4, 8, 12 or 16) and endianness — MSB (most-significant-bit) first or LSB (least-significant-bit) first. After that hit the Capture button and you shall see all the ongoing communications (including data, the SPI SS line changes and I2C start/stop conditions) in real time.

In the SPI mode you can flip the MOSI/MISO roles without re-wiring, simply by adjusting the Flip SPI MOSI/MISO setting.


Hardware Manual (HTML)

This is the I2C/SPI Tap chapter in the IO Ninja hardware manual.

Hardware Manual (PDF)

This is a PDF rendition of the above online HTML manual for downloading and printing.