Quickly Build a 100MHz Logic Analyzer Using μLA

μLA (Micro Logic Analyzer) is a SUMP/OLS compatible logic analyzer firmware based on the RP2040 board. By using this firmware, you can quickly turn a Raspberry Pi Pico (or any RP2040 board) into a simple logic analyzer.

Quickly Build a 100MHz Logic Analyzer Using μLA

Github Link:

https://github.com/dotcypress/ula

Features:

  • 16 Channels

  • 100 MHz Sampling Rate, 1 sample per second tick

  • 200KB Sampling Storage

  • Fast trigger function implemented using PIO

  • Directly compatible with sigrok (a portable, cross-platform, free, and open-source signal analysis suite that supports commonly used protocols such as I2C, SPI, CAN, 1-Wire, UART, SD, IR) and the ready-to-use GUI PulseView.

Supported Hardware

  • Raspberry Pi Pico

  • RP2040-Zero

  • Most RP2040 development boards with USB connection and emulated GPIO 0-15 functionality

  • Of course, it also includes custom-designed RP2040 hardware

Quickly Build a 100MHz Logic Analyzer Using μLA

Installation

  • Download the latest firmware version from the release page

  • While connecting the development board to the computer, hold down the BOOTSEL button and copy the downloaded firmware file to the RPi-RP2 disk

  • Finally, users can connect the probe for data analysis using PulseView or SigrokCli.

Software

  • PulseView is a logic analyzer graphical interface based on the Qt framework for sigrok protocols. When connecting μLA with PulseView, select “Openbench Logic Sniffer” and “SUMP compatible protocol”.

  • SigrokCli is a command-line interface used to scan devices and collect data samples.

Quickly Build a 100MHz Logic Analyzer Using μLA

Quickly Build a 100MHz Logic Analyzer Using μLA

Firmware Compilation (Source code is written in Rust)

  • Follow the instructions at https://rustup.rs to install rustup

  • Install Cortex-M0, M0+, and M1 (ARMv6-M architecture) targets: rustup target add thumbv6m-none-eabi

  • Install LLVM tools: rustup component add llvm-tools-preview

  • Install cargo-binutils: (Note: On some Linux distributions (like Ubuntu), you may need to install build-essential, gcc-arm-none-eabi, libssl-dev, and pkg-config packages before installing cargo-binutils) cargo install cargo-binutils

  • Install elf2uf2: cargo install elf2uf2-rs

  • Clone this repository: git clone [email protected]:dotcypress/ula.git && cd ula

  • Hold down the BOOTSEL button while connecting the mainboard to the computer

  • Flash microcontroller: cargo run –release

Now, turn your Raspberry Pi into a logic analyzer!

Follow the WeChat public account “Embedded Talk” for more interesting embedded project information.

Leave a Comment