id: rylr998_css_demod label: RYLR998 CSS Demodulator category: '[RYLR998]/Demodulation' flags: [python, cpp] documentation: |- CSS (Chirp Spread Spectrum) demodulator for LoRa signals. Performs FFT-based peak detection on dechirped LoRa symbols to extract encoded bin values. Each symbol's bin encodes SF bits of information. Input: Complex IQ samples at the specified sample rate Output: Integer bin values (0 to 2^SF - 1) The demodulation process: 1. Multiply received signal by reference downchirp (dechirp) 2. FFT to convert frequency ramp to single tone 3. Find peak bin location templates: imports: from rylr998 import css_demod make: rylr998.css_demod(sf=${sf}, sample_rate=${sample_rate}) parameters: - id: sf label: Spreading Factor dtype: int default: 9 options: [7, 8, 9, 10, 11, 12] option_labels: ['SF7', 'SF8', 'SF9', 'SF10', 'SF11', 'SF12'] - id: sample_rate label: Sample Rate (Hz) dtype: real default: 250e3 - id: bw label: Bandwidth (Hz) dtype: real default: 125e3 inputs: - label: in domain: stream dtype: complex outputs: - label: out domain: message dtype: int optional: false file_format: 1