3. Project Definition (ENG 343)

3.1 Project Attributes

Attribute Value
Project Name MRRC FT-710
Project Type Web remote control for Yaesu FT-710 transceiver
Primary Users HAM operators using phone or desktop browsers
Primary Radio Yaesu FT-710 (HF/50MHz superheterodyne transceiver)
Server Platform macOS/Linux with Python 3.12+
Client Platform Modern browser (Safari 15+, Chrome, Firefox)
Runtime Framework FastAPI + Uvicorn
Frontend Stack HTML/CSS/vanilla JavaScript/Web Audio API/Canvas
Radio Interface Serial CAT (USB Enhanced COM Port, 38400 baud)
Scope Interface FTDI FT4222 SPI via standalone Python subprocess
Audio Interface PyAudio sound card capture/playback + libopus codec

3.2 In Scope

3.3 Out of Scope

3.4 Success Criteria

ID Criterion Verification
SC1 Serial CAT connection establishes Server log shows “Connected to FT-710 (ID=…)”
SC2 All radio controls work via Web UI Frequency, mode, filter, PTT, gains, etc. respond correctly
SC3 RX audio arrives at browser /WSaudioRX receives tagged frames; audio plays through speakers
SC4 TX audio reaches radio PTT + mic → audible RF output on monitoring receiver
SC5 Spectrum waterfall renders Canvas shows 120-row history with frequency scale
SC6 FT4222 scope works when available Real 850-point FFT data at ~21fps
SC7 S-meter fallback works without FT4222 Synthetic Gaussian spectrum from CAT SM0 readings
SC8 PTT cannot stick Touch release always returns radio to RX
SC9 Memory channels persist across restarts Save channel, restart server, channel still present

3.5 Major Milestones

Milestone Date Deliverable
M1 2026-06 CAT serial protocol + basic WebSocket control
M2 2026-06 Spectrum scope (FT4222 + S-meter fallback)
M3 2026-06 Multi-meter + S-meter visualization
M4 2026-06 PTT safety architecture (triple verify + dead-man)
M5 2026-06 Memory channel API
M6 2026-07 Audio pipeline: PyAudio capture/playback + Opus codec + /WSaudioRX + /WSaudioTX
M7 2026-07 AudioWorklet RX playback + TX mic capture in browser
M8 2026-07 SDD documentation baseline