I Built SoftLA: A Software-Only Logic Analyzer for UART & I2C Debugging (No Hardware Required)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • MyrinNew
    Senior Member
    • Feb 2024
    • 5168

    #1

    I Built SoftLA: A Software-Only Logic Analyzer for UART & I2C Debugging (No Hardware Required)

    Embedded and firmware debugging often becomes a guessing game.


    UART data gets corrupted.

    I2C devices don’t respond.

    Code looks correct.

    And most of the time, a hardware logic analyzer is not available.


    To solve this exact problem, I built SoftLA.


    πŸš€ What is SoftLA?


    SoftLA is a software-only logic analyzer that helps debug UART and I2C communication issues using simple pin-level trace logs, without requiring any hardware logic analyzer.


    It is designed for:


    Embedded developers


    Firmware engineers


    IoT teams


    Students learning real protocol debugging


    πŸ”§ What Problems Does SoftLA Solve?

    UART Debugging


    Detects START bit


    Decodes UART byte (LSB first)


    Validates STOP bit


    Detects framing errors


    Example:


    UART 1100 0x41 'A' OK


    I2C Debugging


    Detects START condition


    Detects STOP condition


    Helps identify bus hang issues


    Example:


    I2C 1200 START

    I2C 2200 STOP


    🧠 Why SoftLA is Different


    ❌ No hardware required


    ❌ No waveform guessing


    ❌ No expensive tools


    βœ… Works from plain text logs


    βœ… Command-line based (CLI)


    βœ… CI-friendly


    βœ… Works on Windows and Linux


    This makes SoftLA ideal for automation, regression testing, and CI pipelines.


    πŸͺŸ Windows SmartScreen Warning (Important)


    When downloading softla.exe on Windows, you may see:


    β€œWindows protected your PC”


    This happens because the binary is unsigned (common for open-source tools).


    How to run:


    Click More info


    Click Run anyway


    Open terminal in the folder


    Run:


    .\softla.exe samples\uart.log


    SoftLA is a CLI tool, not a GUI app, so double-clicking will not show any window.


    πŸ› οΈ Build & Usage


    Build:


    gcc src/*.c -Iinclude -o softla


    Run:


    softla samples/uart.log

    softla samples/i2c.log


    πŸ”— GitHub Repository


    πŸ‘‰ https://github.com/Manish112233/SoftLA


    πŸ‘€ About the Author


    Hi, I’m Manish Joshi, a software engineer working at the intersection of embedded systems, firmware, and developer tooling.

    SoftLA was built to solve real-world debugging problems I personally faced.


    🏁 Final Thoughts


    SoftLA is not a replacement for hardware analyzers β€”

    it is a practical, lightweight, and automation-friendly alternative when hardware is unavailable.


    If you work with UART or I2C, I’d love your feedback.




    More...
Working...