Skip to content

EngineerAbdullahBinZafar/universal-debugger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛠️ Universal Debugger

A High-Performance, Protocol-Agnostic Debugging Suite for Embedded Systems

CI Status License: MIT Language: Python/C++ MCU: All

Debug anything, anywhere, on any hardware. The ultimate Swiss Army Knife for embedded engineers.

FeaturesInstallationArchitectureUsageContributing


⚡ Why Universal Debugger?

Debugging embedded systems is often fragmented between specialized tools (STM32CubeIDE, Arduino Serial Monitor, Logic Analyzers). universal-debugger bridges this gap by providing a single, high-performance interface that talks to any hardware over any protocol.

Whether you're debugging a custom STM32 control loop, a Raspberry Pi GPIO state, or an Arduino sensor array, this suite provides:

  • 🏎️ Extreme Performance: Low-latency data streaming and real-time visualization.
  • 🧩 Modular Architecture: Easy to add support for new protocols (UART, SPI, I2C, CAN).
  • 📈 Real-time Plotting: Built-in waveform visualizer for PID tuning and sensor fusion analysis.
  • 📦 Standalone Binary: Zero-dependency executable for field debugging.

✨ Key Features

Feature Description
📡 Multi-Protocol Support for UART, SPI, I2C, and CAN (via SocketCAN).
📊 Logic Analyzer Interactive timeline view of digital signal states.
🎛️ PID Tuner Dedicated mode for real-time constant adjustment and response plotting.
📝 Smart Logging Auto-timestamping, CSV export, and regex-based filtering.
🛠️ Memory Inspector View and modify MCU memory registers on the fly (requires J-Link/ST-Link).

🚀 Installation

# Clone the repository
git clone https://github.com/EngineerAbdullahBinZafar/universal-debugger.git
cd universal-debugger

# Install dependencies
pip install -r requirements.txt

# Run the suite
python3 -m universal_debugger

📐 Architecture

graph TD
    A[💻 Universal Debugger UI] --> B{🛠️ Protocol Engine}
    B -->|UART| C[USB-to-Serial]
    B -->|SPI/I2C| D[FT232H / MCP2221]
    B -->|JTAG/SWD| E[ST-Link / J-Link]
    
    C --- F[MCU Target]
    D --- F
    E --- F
    
    F -->|Telemetry| A
    A -->|Live Graphing| G[📊 Waveform Viewer]
    A -->|Register View| H[📑 Memory Map]
Loading

📖 Usage

Real-time Sensor Monitoring

python3 -m universal_debugger --port /dev/ttyUSB0 --baud 115200 --plot "sensor_val"

Logic Analysis

python3 -m universal_debugger --protocol spi --mode monitor --frequency 10MHz

🤝 Contributing

We welcome contributions from the embedded community!

  • Read CONTRIBUTING.md.
  • Join our [Discord/Slack] (Placeholder).
  • Report bugs via [GitHub Issues].

👤 Author

Developed by Engineer Abdullah Bin Zafar. If this tool saved your hardware from the magic smoke, consider dropping a ⭐!

LinkedIn GitHub

About

A world-first, domain-agnostic 60-step diagnostic protocol for complex system failures.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages