GitHub

LogicAnalyzer

Project Description

What is the project about?

The LogicAnalyzer project is a low-cost, 24-channel logic analyzer built around the Raspberry Pi Pico microcontroller. It's designed to capture and analyze digital signals. It includes both hardware (the analyzer itself and an optional level shifter) and custom software for visualization and analysis.

What problem does it solve?

It provides an affordable and accessible way to debug and analyze digital circuits. It addresses the need for a logic analyzer without the high cost of commercial options. It's particularly useful for hobbyists, students, and makers working with electronics. The project also addresses specific limitations of the Raspberry Pi Pico, such as the 3.3V logic level, by providing a level shifter board. Later versions address issues with the Pico 2's GPIO behavior. The project also aims to be more user-friendly than some existing open-source logic analyzer software.

What are the features of the project?

  • High Channel Count: Up to 24 digital channels (expandable to 120 by daisy-chaining up to 5 devices).
  • High Sampling Rate: Up to 100 Msps (Megasamples per second), with some configurations reaching 400 Msps in "blast mode".
  • Adjustable Sampling Depth: Up to 131,071 samples in 8-channel mode, with varying depths depending on the number of channels used.
  • Triggering:
    • Simple edge trigger.
    • Fast pattern trigger (up to 5 channels).
    • Complex pattern trigger (up to 16 bits).
    • External trigger output for triggering oscilloscopes or chaining multiple analyzers.
  • Pre/Post Trigger Sampling: Configurable number of samples captured before and after the trigger event.
  • Level Shifting (Optional): A separate level shifter board allows analysis of signals between 1.65V and 5.5V.
  • Custom Visualization Software: A Windows application (with Linux, macOS, and Raspberry Pi versions) provides a graphical interface for viewing and analyzing captured data. Features include:
    • Channel naming.
    • Region highlighting.
    • Data export (including compatibility with Sigrok/PulseView).
    • Protocol analyzers (SPI, I2C, RS-232, and support for custom analyzers).
    • Measurement tools (period, frequency, pulse counts).
    • Signal Description Language (SDL) for creating custom capture files.
    • Adjustable on-screen sample display (up to 1024 samples).
  • Burst Mode: Captures blocks of data and rearms immediately, improving memory usage.
  • Daisy Chaining: Connect multiple analyzers for increased channel count.
  • WiFi Support (Pico-W): Allows wireless connection to the analyzer.
  • Command-Line Interface (CLI): A multiplatform command-line application (CLCapture) for capturing data to CSV files.
  • Terminal Capture Application: A terminal-based application for configuring captures.
  • Sigrok Protocol Decoder Support: The analysis software supports Sigrok protocol decoders.

What are the technologies used in the project?

  • Hardware:
    • Raspberry Pi Pico (and Pico-W) microcontroller.
    • TXU0104 level shifters (for the optional level shifter board).
    • Custom PCB designs.
  • Firmware:
    • C/C++
    • Raspberry Pi Pico SDK.
    • PIO (Programmable Input/Output) units of the RP2040.
  • Software:
    • C#
    • .NET 6.0 (and later versions).
    • Avalonia UI (for the cross-platform GUI).
    • CMake (for build system).

What are the benefits of the project?

  • Affordable: Significantly cheaper than commercial logic analyzers.
  • Open Source: The hardware and software are open source, allowing for customization and community contributions.
  • Extensible: Supports custom protocol analyzers and has a modular design.
  • Cross-Platform: The software runs on Windows, Linux, macOS, and Raspberry Pi.
  • Easy to Use: The custom software provides a user-friendly interface.
  • Versatile: Suitable for a wide range of digital circuit analysis tasks.
  • High Performance: Offers a high sampling rate and channel count for its price point.

What are the use cases of the project?

  • Debugging digital circuits.
  • Analyzing communication protocols (SPI, I2C, RS-232, etc.).
  • Reverse engineering.
  • Education and learning about digital electronics.
  • Monitoring and analyzing embedded systems.
  • Triggering external devices (like oscilloscopes) based on digital signal patterns.
  • Analyzing signals from various devices, including old computers, car ECUs, and more.
logicanalyzer screenshot