Feature request: per-site demod mode for wideband multi-site systems
Context
We've confirmed via ACMA emission designator data that within a single P25 system, individual sites use different modulation:
- Melbourne CBD (RFSS 1/1):
10K1D7W = LSM/CQPSK (simulcast, multiple TX towers at 360 Elizabeth St / 101 Collins St / Rialto)
- Geelong MMR (RFSS 1/8):
10K1D7W = LSM/CQPSK (simulcast)
- Mt Anakie, Kinglake, Cottrell, Blackwood etc:
10K1F9W = C4FM (single-transmitter)
The current p25_phase1_demod_mode is a system-level setting. To cover all MMR sites on a single wideband device (or multi-device wideband config), you'd need C4FM for the rural/single-TX sites and CQPSK for the urban simulcast sites — which is currently impossible without splitting into separate system entries.
config.example.yaml already notes that p25_phase1_demod_mode: cqpsk also routes the voice chain through the LSM path (issues #275, #356) — so this isn't just a CC decode issue, voice grants on LSM sites will also time out without the correct per-site setting.
Proposed config shape
Something like a per-site override under the sites: list:
trunking:
systems:
- name: "MMR"
p25_phase1_demod_mode: c4fm # system default
sites:
- { rfss: 1, site: 1, name: "Melbourne", p25_phase1_demod_mode: cqpsk } # LSM simulcast
- { rfss: 1, site: 8, name: "Geelong", p25_phase1_demod_mode: cqpsk } # LSM simulcast
- { rfss: 2, site: 7, name: "Mt Anakie" } # inherits c4fm
Or alternatively a per-channel override on the wideband device's channels: list.
Why it matters
CBD has been showing control_channel_decode_quality: poor consistently regardless of hardware (tried Airspy R2 and RTL-SDR). Our hypothesis is that decoding an LSM site with C4FM is the root cause — C4FM's nonlinear demodulation can't correctly recover a linearly-modulated simulcast signal, producing the BER we've been seeing. If per-site CQPSK can be configured, we can finally verify this against the strongest signal in the system.
SDRTrunk supports per-channel LSM configuration which is why it can decode sites GT currently can't.
Feature request: per-site demod mode for wideband multi-site systems
Context
We've confirmed via ACMA emission designator data that within a single P25 system, individual sites use different modulation:
10K1D7W= LSM/CQPSK (simulcast, multiple TX towers at 360 Elizabeth St / 101 Collins St / Rialto)10K1D7W= LSM/CQPSK (simulcast)10K1F9W= C4FM (single-transmitter)The current
p25_phase1_demod_modeis a system-level setting. To cover all MMR sites on a single wideband device (or multi-device wideband config), you'd need C4FM for the rural/single-TX sites and CQPSK for the urban simulcast sites — which is currently impossible without splitting into separate system entries.config.example.yaml already notes that
p25_phase1_demod_mode: cqpskalso routes the voice chain through the LSM path (issues #275, #356) — so this isn't just a CC decode issue, voice grants on LSM sites will also time out without the correct per-site setting.Proposed config shape
Something like a per-site override under the
sites:list:Or alternatively a per-channel override on the wideband device's
channels:list.Why it matters
CBD has been showing
control_channel_decode_quality: poorconsistently regardless of hardware (tried Airspy R2 and RTL-SDR). Our hypothesis is that decoding an LSM site with C4FM is the root cause — C4FM's nonlinear demodulation can't correctly recover a linearly-modulated simulcast signal, producing the BER we've been seeing. If per-site CQPSK can be configured, we can finally verify this against the strongest signal in the system.SDRTrunk supports per-channel LSM configuration which is why it can decode sites GT currently can't.