Deep dive into MRRC system architecture, DSP processing pipeline and advanced feature implementations
| Component | File | Function |
|---|---|---|
| Main Program | MRRC |
WebSocket server, handles audio streams and control commands |
| Audio Interface | audio_interface.py |
PyAudio wrapper, supports multiple format decoding |
| DSP Processing | wdsp_wrapper.py |
WDSP library wrapper, NR2/AGC/ANF |
| Transceiver Control | hamlib_wrapper.py |
rigctld communication wrapper |
| Tuner Proxy | atr1000_proxy.py |
ATR-1000 independent proxy process |
| Voice Assistant | voice_assistant_service.py |
Whisper ASR + Qwen3-TTS |
| FT8 Integration | ft8/ultron.py |
ULTRON automation tool, DXCC tracking |
WDSP (Warren Pratt's Digital Signal Processing) is a high-performance DSP library from the OpenHPSDR project, widely used in professional amateur radio software.
| Module | Function | Effect |
|---|---|---|
| NR2 | Spectral Noise Reduction | 15-20dB noise reduction depth |
| NB | Noise Blanker | Eliminates impulse interference |
| ANF | Automatic Notch Filter | Removes single-tone interference |
| AGC | Automatic Gain Control | 4 selectable modes |
MRRC V4.9 introduces a complete CW real-time decoding system with a Browser-First AI design philosophy.
| Metric | Frontend Mode | Backend Mode |
|---|---|---|
| Model Size | 2MB (ONNX) | 160MB (PyTorch) |
| Inference Latency | <50ms | <100ms |
| Character Error Rate | <3% | <2% |
| Network Dependency | None | Required |
ULTRON is MRRC's FT8 digital mode remote console (introduced V4.9, overhauled V5.6), providing a full-featured browser-based interface to JTDX/WSJT-X/MSHV via WebSocket bridge.
| Feature | Description |
|---|---|
| Auto CQ | Automatically call CQ when idle |
| Smart Response | Automatically respond to incoming calls |
| DXCC Tracking | Entity whitelist, intelligent selection |
| Band Strategy | Different targets per band |
| Log Analysis | Automatically analyze worked entities |
# Enter FT8 directory
cd ft8
# Run ULTRON (Python version)
python run_ultron.py
# DXCC enhanced mode
python ultron_dxcc.py
# Analyze DXCC status
python dxcc_analyzer.py
| Command | Format | Description |
|---|---|---|
| Set Frequency | setFreq:14074000 | In Hz, syncs to ATR-1000 |
| Get Frequency | getFreq | Read from rig, broadcast response |
| Set Mode | setMode:USB | USB/LSB/CW/FM/AM |
| Get Mode | getMode | Read mode from rig |
| PTT TX | setPTT:true | Key transmitter (with retry) |
| PTT RX | setPTT:false | Release (with ACK protocol, 3x retry) |
| Get PTT | getPTT | Read actual PTT state from hardware |
| Tune | tune:true / tune:false | Start/stop tune tone (5% volume) |
| CQ | cq:true / cq:false | Start/stop CQ playback (cq.wav) |
| WDSP Toggle | setWDSPEnabled:true | Enable/disable WDSP processing |
| NR2 Level | setWDSPNR2Level:2 | 0=OFF, 1=LOW, 2=MED, 3=HIGH, 4=MAX |
| Noise Blanker | setWDSPNB:true | Toggle NB (pulse interference) |
| Auto Notch | setWDSPANF:true | Toggle ANF automatic notch filter |
| Add Notch | addWDSPNotch:1500,200 | Manual notch (center_hz, width_hz) |
| AGC Mode | setWDSPAGC:3 | 0=OFF, 1=LONG, 2=SLOW, 3=MED, 4=FAST |
| Bandpass | setWDSPBandpass:300,2700 | Low Hz, High Hz |
| Recording | startRecording / stopRecording | Stereo WAV β MP3 recording |
| Memory | memLoadAll / memSaveAll:{json} | Per-user memory channels (6 slots) |
| Ping | PING | Latency check, responds PONG |
Check the installation guide or join community discussion