gr-apollo/grc/apollo_sco_mod.block.yml
Ryan Malloy cd3a8cc6be Add SCO modulator, external audio input, and demo scripts
- sco_mod: 9-channel FM subcarrier oscillator modulator (inverse of sco_demod),
  with round-trip tests proving voltage recovery across all channels
- fm_voice_subcarrier_mod: add audio_input parameter to accept external float
  streams (e.g., Apollo mission voice recordings) instead of internal test tone
- loopback_demo.py: streaming TX->RX round-trip with CLI for noise/voice/frames
- agc_loopback_demo.py: full Virtual AGC integration via TCP bridge
2026-02-22 13:01:48 -07:00

59 lines
1.3 KiB
YAML

id: apollo_sco_mod
label: Apollo SCO Mod
category: '[Apollo USB]'
flags: [python]
parameters:
- id: sco_number
label: SCO Channel (1-9)
dtype: int
default: '1'
- id: sample_rate
label: Sample Rate (Hz)
dtype: real
default: '5120000'
inputs:
- label: in
domain: stream
dtype: float
outputs:
- label: out
domain: stream
dtype: float
templates:
imports: from apollo.sco_mod import sco_mod
make: >-
apollo.sco_mod.sco_mod(
sco_number=${sco_number},
sample_rate=${sample_rate})
documentation: |-
Apollo Subcarrier Oscillator (SCO) Modulator
Generates FM subcarrier oscillator signals for analog telemetry. Takes a
0-5V sensor voltage input and produces an FM subcarrier tone at the
selected channel frequency with +/-7.5% deviation.
Transmit-side counterpart to the SCO Demodulator.
SCO Channels:
1: 14,500 Hz 4: 40,000 Hz 7: 95,000 Hz
2: 22,000 Hz 5: 52,500 Hz 8: 125,000 Hz
3: 30,000 Hz 6: 70,000 Hz 9: 165,000 Hz
Voltage mapping (linear):
0V -> center - 7.5% (low frequency)
2.5V -> center (nominal)
5V -> center + 7.5% (high frequency)
Only used in FM downlink mode.
Parameters:
sco_number: SCO channel number (1-9)
sample_rate: Sample rate in Hz (default 5.12 MHz)
file_format: 1