How haohanhe/mbdsdr works
MBDSDR is an AI-operated SDR and measurement system spanning a native C++ desktop, a mobile companion, and a Python research kernel. The main workflow is an external agent connecting over MCP, invoking tools to control real radio/VNA hardware, and retrieving measured signal, decode, or sweep results; write operations are gated for human approval. The graph also preserves receiving/decoding, satellite processing, and the desktop HTTP control path. Source excerpts are partial, so some subsystem links are documented by the README rather than inferred from unsampled implementation.
Main entry points: spectrum_engine.cpp Spectrum engine · sat_pipeline_runner.py Satellite pipeline runner · nanovna_client.cpp NanoVNA client · controller.py Python controller
Components 23
Agent Control
- MCP server
cpp/src/agentapi/mcp_server.cpp - AI tool surface
cpp/src/ai/agent_tools.cpp - LLM worker
cpp/src/ai/llm_worker.cpp - LLM transport
cpp/src/ai/llm_client.cpp - HTTP control hub
cpp/src/control/control_hub.cpp - Control HTTP server
cpp/src/control/control_http_server.cpp - Mobile companion
mobile/android/app/src/main/kotlin/mbdsdr/app/MainActivity.kt
Radio Runtime
- Spectrum engine
cpp/src/dsp/spectrum_engine.cpp - SDR source backends
cpp/src/dsp/rtl_sdr_source.cpp - Demodulation
cpp/src/dsp/demod.cpp - Spectrum analysis
cpp/src/dsp/power_spectrum.cpp - Protocol decoding
cpp/src/dsp/adsb_decoder.cpp
VNA Measurement
- NanoVNA client
cpp/src/vna/nanovna_client.cpp - VNA analysis
mbdsdr_ai/vna_pipeline.py
Satellite Processing
- Satellite pipeline registry
mbdsdr_ai/sat_pipeline_params.py - Satellite pipeline runner
mbdsdr_ai/sat_pipeline_runner.py - Satellite demodulation
mbdsdr_ai/meteor_sat.py - Satellite image decoding
mbdsdr_ai/gk2a_lrit.py
Python Kernel
- Python controller
mbdsdr_ai/core/controller.py - Workflow engine
mbdsdr_ai/workflow_engine.py - Python web control
mbdsdr_ai/web/server.py
Other components
- External AI agent
- SDR / VNA hardware
Connections 21
- External AI agent → MCP server: controls via MCP
README.md - MCP server → AI tool surface: dispatches tools
- AI tool surface → Spectrum engine: controls radio
README.md - LLM worker → LLM transport: sends chat requests
cpp/src/ai/llm_worker.cpp - LLM transport → External AI agent: calls model API
- Mobile companion → Control HTTP server: reads via HTTP
README.md - Control HTTP server → HTTP control hub: routes controls
- HTTP control hub → Spectrum engine: controls engine
README.md - Spectrum engine → SDR source backends: reads IQ
cpp/src/dsp/spectrum_engine.cpp - SDR source backends → SDR / VNA hardware: receives samples
README.md - Spectrum engine → Spectrum analysis: computes spectrum
cpp/src/dsp/spectrum_engine.cpp - Spectrum engine → Demodulation: demodulates signals
- Spectrum engine → Protocol decoding: decodes protocols
cpp/src/dsp/spectrum_engine.cpp - Spectrum engine → NanoVNA client: exposes VNA access
- NanoVNA client → SDR / VNA hardware: measures RF
README.md - VNA analysis → NanoVNA client: analyzes sweep data
- Python controller → Workflow engine: runs workflows
- Python controller → Python web control: serves controls
mbdsdr_ai/core/controller.py - Satellite pipeline runner → Satellite pipeline registry: uses stage registry
mbdsdr_ai/sat_pipeline_runner.py - Satellite pipeline runner → Satellite demodulation: dispatches demodulation
mbdsdr_ai/sat_pipeline_runner.py - Satellite pipeline runner → Satellite image decoding: dispatches image decoding
mbdsdr_ai/sat_pipeline_runner.py