SunSDR2 DX
Remote Control Server

SunMRRC is the SunSDR2 DX server route in the VLSC remote radio ecosystem. Server-side IQ demodulation, real-time 512-bin FFT waterfall, dual-codec Opus/PCM audio, TX SSB voice modulation via Hilbert transform, and 5 WebSocket endpoints for web and native clients.

GitHub Explore Features Join WeChat Group
5
WebSocket Endpoints
4 days
First Commit → V1.0
512-bin
IQ FFT Waterfall
0
Server Changes for iOS

Where SunMRRC Fits

Use SunMRRC when your hardware is SunSDR2 DX and you need server-side UDP IQ demodulation with stable client APIs.

MRRC

General CAT HF route
Hamlib/rigctld based

FT-710

FT-710 direct USB route
CAT + FT4222 SPI

SunMRRC

SunSDR2 DX route
UDP IQ + server demodulation

iOS

SunsdrMobile route
Native iPhone client

Complete SDR Server

From UDP IQ streaming to browser-based FFT waterfall — every layer reverse-engineered and rebuilt.

IQ Demodulation

Server-side IQ demodulation via numpy/scipy. DDC + fractional resampler + overlap-save Hilbert SSB modulator. WFM hi-fi mode with cubic resampling.

  • numpy/scipy DSP pipeline
  • Hilbert SSB modulator
  • 48kHz RX audio pipeline

512-bin FFT Waterfall

Real-time spectrum from IQ samples. 512-bin FFT with dynamic frequency scale (39k/78k/156k/312k IQ bandwidth). Exact sample rate lookup for pixel alignment.

  • 39k-312k IQ bandwidth options
  • xScale = W/n pixel alignment
  • Multi-client state sync

Dual-Codec Audio

Tagged dual-codec transport: Opus 64kbps + Int16 PCM fallback. WDSP NR2/ANF/SNB at IQ level (before demodulation). Full WDSP settings panel with persistence.

  • Opus/PCM tagged binary transport
  • WDSP IQ-level processing
  • NR2/AGC/NB/ANF panel + persistence

5 WebSocket Endpoints

/WSCTRX (bidirectional cmd:val), /WSaudioRX (tagged Opus/PCM), /WSaudioTX (mic uplink), /WSspectrum (512-bin binary), /WSATR1000 (tuner). Protocol-as-contract enabled SunsdrMobile with zero server changes.

  • cmd:val JSON protocol
  • Tagged dual-codec audio transport
  • Stable contract → SunsdrMobile V1.0 in single commit

Reverse-Engineered Protocol

100% unknown protocol surface. 40+ Wireshark sessions to decode 12 command types, 30-packet boot sequence, and proprietary binary UDP protocol. PROTOCOL.md with 22 sections.

  • 12 decoded command types
  • PROTOCOL.md (22 sections)
  • 0x0017 DRIVE + 0x1F00 telemetry

8 MRRC Assets Reused

PTT safety model (ACK × 3, watchdog), WDSP integration pattern, multi-instance architecture, design tokens, AudioWorklet RX pipeline — inherited from MRRC, not re-solved.

  • PTT ACK × 3 + watchdog + touch-move release
  • WDSP integration + multi-instance architecture
  • COEP credentialless for SharedArrayBuffer

Software Design Description

15-chapter SDD covering business direction, system context, architecture decisions, service model, component model, operational model, and PTT safety architecture.

15
SDD Chapters
Verified against live code
40+
Git Commits
Jun 21 – Jul 3, 2026
4 days
V1.0 Speed
First commit → production
Read the SDD View Source

Join the Conversation

Scan the QR code with WeChat to join the MRRC-HAM group.

WeChat QR code for MRRC-HAM group

QR code valid until Aug 29, 2026. Will be updated when refreshed.

Division of Work and Contracts Left Behind

What this project loads before editing, what a human still signs off, and what stays readable afterwards.

01 · Loaded before editing
CLAUDE.md and AGENTS.md Loaded, No Registry
This project carries AGENTS.md, CLAUDE.md and the SDD/ source tree, all read before editing. There is no machine-readable constraint registry, so no automated pre-edit gate is claimed.
02 · Human sign-off
Reverse-Engineered Protocol and PTT
Every inference about the SunSDR2 protocol, and every PTT closure on hardware we do not own, is signed off by a human. A guess is labelled a guess.
03 · Contract left behind
PROTOCOL.md and SDD Chapters
PROTOCOL.md and the SDD chapters remain as the durable, reviewable description of the link.