diff --git a/PROJECT_PLAN.md b/PROJECT_PLAN.md index 400137a..6df64fd 100644 --- a/PROJECT_PLAN.md +++ b/PROJECT_PLAN.md @@ -2,14 +2,15 @@ ## 1. Mission -Create a Go-based UKW/FM stereo transmitter with RDS that can run on standard Linux systems and, where feasible, on Raspberry Pi / SBC-class hardware. +Create a Go-based UKW/FM stereo transmitter with RDS that can run on Windows, Linux, and, where feasible, on Raspberry Pi / SBC-class hardware. Primary design goals: - reliable CPU implementation first +- Windows-first bring-up and development ergonomics - clean architecture for real-time DSP - optional CUDA path for selected heavy DSP blocks - practical control interfaces for audio, RDS, frequency, and TX settings -- portability across x86_64 Linux and ARM Linux +- portability across Windows x86_64, Linux x86_64, and ARM Linux --- @@ -23,7 +24,8 @@ Primary design goals: ### Technical - Go as the primary implementation language. -- Linux is the primary target. +- Windows is the initial bring-up target. +- Cross-platform portability must be preserved from day one. - Raspberry Pi / ARM compatibility must be preserved for the CPU path. - CUDA is optional and must be runtime-detectable, never mandatory. @@ -87,7 +89,11 @@ Tasks: - SDR IQ output - direct MPX/composite output - both +- freeze first backend direction: + - SoapySDR as preferred abstraction for hardware flexibility + - optional vendor-native backend later if required for performance/features - shortlist hardware targets: + - Windows PC + SDR - Linux PC + SDR - Raspberry Pi 4/5 + SDR - other ARM SBC @@ -162,7 +168,7 @@ Tasks: Acceptance criteria: - generated composite can be decoded by reference analysis tools - RDS PS and RadioText can be recovered reliably from recorded output -- CPU use acceptable on x86 Linux for real-time operation +- CPU use acceptable on Windows x86 and Linux x86 for real-time operation --- @@ -177,7 +183,7 @@ Deliverables: - underrun/overrun telemetry Backend options to evaluate: -1. **SoapySDR backend** for broad SDR support +1. **SoapySDR backend** as the preferred first backend for broad SDR support and flexibility 2. **Vendor-native backend** for selected hardware where latency/control is better 3. **Composite audio backend** for hardware exciters that accept MPX input @@ -319,7 +325,7 @@ Be careful with naming: ## 7. Recommended MVP definition Ship this first: -- Linux CLI daemon in Go +- Windows-first CLI daemon in Go, kept cross-platform from the start - CPU-only path - stereo MPX generation - basic RDS (PS + RT + PI + PTY) diff --git a/README.md b/README.md index 4220a91..a7149f5 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Build a software transmitter pipeline for a licensed short-term VHF/FM broadcast - configurable carrier frequency, deviation / MPX levels, and TX chain settings - CPU implementation first - optional CUDA acceleration where it actually helps -- target platforms: Linux first, with Raspberry Pi / SBC viability in mind +- target platforms: Windows first during initial bring-up, then broad cross-platform support including Linux and Raspberry Pi / SBC targets ## Important note