Skip to content
Buy 10+ on select items — save 10% auto-applied
Free US shipping on orders $35+
Order by 3pm ET — ships same-day from the US
Skip to main content

Arduino 24MHz Logic Analyzer: Decode I2C SPI UART | ShillehTek

May 15, 2026 36 views

Arduino 24MHz Logic Analyzer: Decode I2C SPI UART | ShillehTek
Project

Capture and decode Arduino I2C traffic with a 24MHz USB logic analyzer in PulseView, so you can verify SPI, UART, and sensor communications fast with ShillehTek.

25 min Beginner / Intermediate3 parts

Project Overview

Arduino + 24MHz USB Logic Analyzer: In this guide, you use an Arduino (Nano) and a 24MHz 8-channel USB logic analyzer to capture an I2C transaction and decode it in PulseView, so you can stop debugging SPI, I2C, UART, or 1-Wire blind.

The 24MHz / 8-channel USB analyzer is a low-cost option that works with PulseView/sigrok and Saleae Logic.

  • Time: ~25 minutes
  • Skill level: Beginner / Intermediate
  • What you will build: An Arduino I2C transaction captured live and decoded in PulseView.
24MHz 8-channel USB logic analyzer used to capture Arduino I2C, SPI, and UART signals
The 24MHz USB logic analyzer - 8 channels, USB powered, $10.

Parts List

From ShillehTek

External

  • A computer running PulseView (free) or Saleae Logic
  • A target circuit to probe (any Arduino + I2C sensor works)

Note: 24MHz is fast enough for SPI up to ~10MHz, I2C at any speed, UART up to ~115200 baud, and most slow digital protocols. Not enough for high-speed SDIO or 100MHz QSPI.

Step-by-Step Guide

Step 1 - Inspect the Analyzer

Goal: Identify the connector and channel pins so you know what to hook up.

What to do: Locate the USB-Mini connector and the 10-pin header. The header typically provides 8 channels plus two ground pins.

Top view of a 24MHz USB logic analyzer showing USB-Mini connector and 10-pin header for 8 channels and ground
USB-Mini on one side, 10 pins on the other: 8 channels + GND + GND.

Expected result: You can point to the channel pins and at least one GND pin before wiring anything.

Step 2 - Install PulseView

Goal: Install capture software and the firmware support needed for the analyzer.

What to do: Download and install PulseView from sigrok.org. It includes the fx2lafw firmware needed by the CY7C68013A chip inside many of these analyzers.

PulseView software capturing digital traces from a 24MHz USB logic analyzer
PulseView decodes I2C / SPI / UART out of the box.

Expected result: PulseView launches and is ready to connect to the logic analyzer.

Step 3 - Probe an I2C Transaction

Goal: Capture SDA and SCL while your Arduino talks to an I2C device.

What to do: Wire any I2C sensor (BME280, MPU6050, OLED) to your Arduino. Then connect the analyzer leads:

  • Analyzer GND to Arduino GND
  • Channel 0 to SDA (Arduino A4)
  • Channel 1 to SCL (Arduino A5)

In PulseView, set the sample rate to 8 MS/s and set total samples to 1 M, then click Start. Run your Arduino sketch to generate I2C traffic.

Expected result: You see two digital traces toggling (SDA and SCL) during I2C activity.

Step 4 - Decode

Goal: Turn the raw SDA/SCL waveforms into readable I2C bytes.

What to do: In PulseView, right-click on the channels and choose Add decoder → I2C. Assign which channel is SDA and which is SCL. PulseView will annotate addresses and data on top of the captured signals.

PulseView displaying decoded I2C address and data bytes from an Arduino captured with a 24MHz USB logic analyzer
Each I2C address byte, register byte, and data byte appears decoded above the raw lines.

Expected result: You can read every byte your Arduino writes or reads over I2C directly in the capture timeline.

Step 5 - Where to Take It Next

Goal: Apply the same capture-and-decode workflow to other digital protocols.

What to do: Use the analyzer on other buses and modules you work with:

  • Capture SPI traffic to confirm a sensor library is sending what you think
  • Decode UART at the wire level when Serial Monitor lies
  • Verify NEC IR remote codes by probing the IR receiver output
  • Reverse-engineer cheap modules whose datasheets are wrong

Expected result: You have a repeatable workflow for validating digital communications with real signals.

Conclusion

A 24MHz USB logic analyzer paired with PulseView makes it practical to inspect Arduino I2C, SPI, and UART signals and decode real traffic in minutes. Once you can see the bus, debugging turns from guesswork into verification.

Want the exact parts used in this build? Grab them from ShillehTek.com. If you want help customizing this project or need embedded debugging and reverse-engineering support, check out our IoT consulting services.

Credits: The USB logic analyzer photos and PulseView screenshots in this tutorial are credited to Instructables.