DSheirer / sdrtrunk

A cross-platform java application for decoding, monitoring, recording and streaming trunked mobile and related radio protocols using Software Defined Radios (SDR). Website:
GNU General Public License v3.0
1.57k stars 254 forks source link

Control Channel Decode Goes to IDLE After Period of Time #1397

Closed DSheirer closed 1 year ago

DSheirer commented 1 year ago

This is a continuing issue that was not resolved in version 0.5.0 final release.

When running 3x control channels, at some point all 3 channels go to an IDLE state and nothing is being decoded. I suspect that in each case the signal is being tuned/mixed outside of the ability of the PLL to pull the signal back in.

Stopping and restarting just one of the channels causes the 2x remaining channels to spring back to life and start decoding again. This would indicate that the channelizer is resetting the mixer offset for the 2 remaining channels and causing the channel mixer to pull the signal back to baseband.

Previous work under #1353 added thread locking to ensure that multi-threaded channel access didn't cause the tuner and provided channels to get out of sync. This may have been an underlying issue, but doesn't seem to be the primary cause of the symptoms described in this issue.

This issue was observed with the Polyphase channelizer.

Troubleshooting

  1. Implement a channel FFT view and add it to the 'Channel' tab and include the channels current PPM and Mixer offset values to determine what the channel is being commanded to do and detect why that's different that what's needed to baseband the signal.
  2. Track the mixer & PPM values over time, along with decoder state to identify when the signal is mixed out of baseband and what were the values being applied to the PPM and mixer offset at the time.
DSheirer commented 1 year ago

PR #1406 adds support for channel spectral display viewer to aid in troubleshooting the issue. I've been running this branch for about a week with an airspy R2 and an RTL-2832 decoding 3x P25 and 1x DMR control channels and I'm not able to recreate the IDLE decode state. I previously observed the behavior while running the #52 SDRplay feature branch with an RSPdx and an RSP1A, so I'm going to rebase that branch onto this latest merge to see if I can recreate the issue using the RSP tuners.