DEV Community

Manish Joshi
Manish Joshi

Posted on

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.

Top comments (0)