MRRC FT-710 SDD — Software Design Description

Yaesu FT-710 Web Remote Control
IBM Team Solution Design (TeamSD) v2.3.2 aligned documentation set

Purpose

This SDD is the canonical design record for the mrrc_ft710 codebase — a Python FastAPI server that bridges a browser to a Yaesu FT-710 HF/50MHz transceiver via serial CAT protocol. It captures requirements, architecture, design decisions, component boundaries, operational model, capability inventory, known gaps, and evolution history.

Runtime facts are derived from server.py, cat_controller.py, audio_handler.py, radio_state.py, poll_scheduler.py, scope_handler.py, scope_pipe.py, config.py, opus_rx.py, static/index.html, static/ft710_main.js, static/ft710_ui.js, and static/modules/*.

Document Index

# Chapter ART Code File
1 Executive Summary - 01-executive-summary.md
2 Business Direction BUS 411 02-business-direction.md
3 Project Definition ENG 343 03-project-definition.md
4 System Context APP 011 04-system-context.md
5 Non-Functional Requirements ART 0507 05-non-functional-requirements.md
6 Use Case Model ART 0508 06-use-case-model.md
7 Subject Area Model APP 408 07-subject-area-model.md
8 Architecture Decisions ART 0513 08-architecture-decisions.md
9 Architecture Overview ART 0512 09-architecture-overview.md
10 Service Model ART 0582 10-service-model.md
11 Component Model ART 0515 11-component-model.md
12 Operational Model ART 0522 12-operational-model.md
13 Feasibility Assessment ART 0530 13-feasibility-assessment.md
14 Version History - 14-version-history.md
15 PTT Safety Architecture ART 0535 15-ptt-safety-architecture.md

Quick Facts

Attribute Value
Document ID SDD-MRRC-FT710-2026-001
SDD Version V1.6
Baseline Date 2026-07-18
Status Production release (documentation synchronized with runtime)
Project MRRC FT-710
Primary Radio Yaesu FT-710 (HF/50MHz Transceiver)
Runtime Python 3.12+, FastAPI, Uvicorn, NumPy, PyAudio
Frontend HTML5, CSS3, vanilla JavaScript, Web Audio API
Transport HTTP/WS for browser, Serial CAT for radio, FT4222 SPI for scope
Default Entry http://localhost:8888

System at a Glance

Browser (iPhone / Desktop / Tablet)
  | HTTP + WebSocket: /WSradio /WSaudioRX /WSaudioTX /WSspectrum
  v
FastAPI/Uvicorn MRRC FT-710 Server (server.py)
  | Serial CAT (USB Enhanced COM Port, 38400 baud) → Yaesu FT-710
  | FT4222 SPI (scope_pipe subprocess) → real spectrum data
  | PyAudio (USB Audio device) → RX/TX audio capture/playback
  | Opus codec (libopus) → compressed audio transport
  v
Yaesu FT-710 Radio

Capability Summary

Area Status Notes
Mobile UI Implemented static/index.html, ft710.css, ft710_main.js, ft710_ui.js
Radio control Implemented Full CAT command set: frequency, mode, filter, PTT, gains, etc.
Spectrum waterfall Implemented FT4222 SPI real + S-meter fallback dual-mode
RX audio Implemented PyAudio capture → Opus/PCM → /WSaudioRX → browser playback
TX audio Implemented Browser mic → /WSaudioTX → Opus decode → PyAudio → radio
S-meter + Multi-meter Implemented PWR, ALC, SWR, Id, Vd from CAT RM3-RM8 polling
Radio telemetry (RI) Implemented Hi-SWR, recorder, RX/TX, tuner, scan, squelch-open status from RI0;
Meter display + AMC Implemented MS/AO commands exposed in state and control path
Memory channels Implemented /api/mem_channels GET/POST with JSON persistence
Session authentication Implemented Shared-password login; _auth_tokens + ft710_auth cookie; all WS gated
PTT safety Implemented Touch-and-hold, PTT watchdog, dead-man switch, unload beacon
Scope visualization Implemented 850-point FFT waterfall, frequency scale, S-meter bar