ac2cz / FoxTelem

AMSAT Fox-1 Telemetry Decoder
GNU General Public License v3.0
52 stars 17 forks source link

Request for improved IC9700 IQ support #629

Closed burnsfisher closed 3 years ago

burnsfisher commented 4 years ago

The new IC9700 IF output really decodes stunningly well in FoxTelem (set for 48KHz IQ mode and using the IC9700 USB codec for input). But it requires some hackery to make it work. I'd love to see some better support for IQ input that has already been run through an LO that is tuned externally.

Here is what would be ideal (I think): a mode whereby you tune FoxTelem to a particular point on the IQ FFT which happens to be where the external radio puts the signal. FoxTelem would not tune differently for different satellites. It would always look at this point. This would not require a "center frequency" input. Ideally you could set a range on the FFT for FoxTelem to search through (in case the satellite is tuned slightly off center). Then, checking "auto-switch modes" would literally switch only the modes, and not the frequency.

So here is the use case I imagine:

IC9700 connected to computer aided tuning, and outputing IF/IQ to FoxTelem. FoxTelem knows which satellite is AOS (and you set the priorities to match the CAT program) and switches to the right mode (DUV, DUV+HS, BPSK) but does not need to change the frequency much. Besides the modulation mode, in the future, it would have to switch to the correct decoding size/order etc.

I hope this is sufficiently clear. I can give you a demo of how I do it now if you like, assuming I'm still messing with this when you get to it :-)

ac2cz commented 4 years ago

I may not be understanding how this works. The output from the IC-9700 is and IQ signal, but it is an IF, so it does not change in frequency? But the satellite might move in the IF if it is mis-tuned, correct?

If you tune it to one frequency, turn off Track Doppler and Find Signal, and just leave FoxTelem there, why does that not work today?

burnsfisher commented 4 years ago

You do have that correct.

I believe that currently if you turn off "track doppler" that it will not switch from one type of demodulation to the other depending on which satellite is in view. Regardless, we DO want to turn on 'find signal' for the reason that you mentioned: If the satellite is slightly off frequency.

And finally (with the current version) if you manage to get it to switch from one satellite to the other in order to get the right modulation type, you have to specify a fake satellite frequency so the demodulation is always in the same place in the IF spectrum display. And that means kind of playing back and forth because the fake frequency also determines the LO frequency that FoxTelem thinks it is using, and thus the exactly location in the IF spectrum where it is demodulating.

It would be nice to have a mode that said

"Ignore the satellite frequency. Ignore the center frequency. Just track the satellite and pay attention to the demodulation mode when it comes AOL, and decode at this specified location." Maybe this "mode" would actually be another input device choice since devices already have a few specialized boxes. Device="Pretracked IF" or something like that and all you'd have would be a place to enter the demodulation location (which I assume would differ from radio to radio).

On Sun, May 24, 2020 at 11:06 AM Chris Thompson notifications@github.com wrote:

I may not be understanding how this works. The output from the IC-9700 is and IQ signal, but it is an IF, so it does not change in frequency? But the satellite might move in the IF if it is mis-tuned, correct?

If you tune it to one frequency, turn off Track Doppler and Find Signal, and just leave FoxTelem there, why does that not work today?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ac2cz/FoxTelem/issues/629#issuecomment-633244747, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASNGPCPZDUSY2BGEUQTK2DRTEZYZANCNFSM4M45WXXQ .

ac2cz commented 4 years ago

Marked as high given the popularity of the new radio.

ac2cz commented 4 years ago

I did some more thinking about this. First of all, can you confirm that this works already (at least in 1.09k):

Does this work? You can change the clock on the computer to see if it toggles on off and in out of the right modes.

The second step is making it easier to set the frequencies. I think you are asking for an easy button that does not require setting all the Downlink frequencies for each spacecraft to a value like 15kHz. Is that right?

If I create a new option called something like "Fixed IQ IF" then perhaps the center freq box becomes the frequency you have tuned the signal to. So you put 15kHz in that. The IF is set to zero. All other frequencies are ignored. Would that work?

That might be hard though. There may be many places in the code where the logic would need to be placed to override the frequencies. So no promises. But let me know if that is the sort of thing that would help.

burnsfisher commented 4 years ago

I'll double check what you asked. Of course given HuskySat's current failure to transmit, I can't get changing bands.

When I first put this in, one of the issues was that you could not get it to switch bands unless it was set to track the doppler based on Keps rather than using FindSignal. I think you said you had changed that, so we may be much better.

But the idea of a "fixed IQ IF" is a good one. Suggestion: Hide the actual satellite frequencies somewhere. When you click "Fixed" it just copies the fixed value into the satellite frequency. When you unclick it, it switches back to the saved values. --- Just a thought. I'll get back to you about whether the combination that you suggested works.

burnsfisher commented 4 years ago

So far so good with 1.09k5. I got it going just in time for AO-92 to go over, but it was already AOS when I started. For some reason, the decoder did not STOP when the pass was over. I had to do it manually, and it complained that the pass was still ongoing. Maybe because I was changing setting in the middle.

AO-95 just started up and is catching telemetry automatically. But at LOS, it tried to stop and did not, instead giving the error message that the pass manager is still processing a pass. After maybe 2 minutes it shut off, but the dialog box asking if I really want to stop is still there

On Fri, Jun 5, 2020 at 7:18 PM Chris Thompson notifications@github.com wrote:

I did some more thinking about this. First of all, can you confirm that this works already (at least in 1.09k):

  • On settings toggle Find Signal on
  • Set the Center Frequency to 0
  • Set each spacecraft to have a Downlink Freq that matches the signal passed in the IF from the 9700, e.g.: 15kHz
  • Set the Upper and Lower bounds to either side. e.g. 5Khz and 25kHz.
  • Click Auto Start
  • Check Auto Switch Modes

Does this work? You can change the clock on the computer to see if it toggles on off and in out of the right modes.

The second step is making it easier to set the frequencies. I think you are asking for an easy button that does not require setting all the Downlink frequencies for each spacecraft to a value like 15kHz. Is that right?

If I create a new option called something like "Fixed IQ IF" then perhaps the center freq box becomes the frequency you have tuned the signal to. So you put 15kHz in that. The IF is set to zero. All other frequencies are ignored. Would that work?

That might be hard though. There may be many places in the code where the logic would need to be placed to override the frequencies. So no promises. But let me know if that is the sort of thing that would help.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ac2cz/FoxTelem/issues/629#issuecomment-639889043, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASNGPFJRRS356ZZ7DWADZTRVF4LZANCNFSM4M45WXXQ .

burnsfisher commented 4 years ago

Either there are MANY diaglog boxes, or I can't dismiss it. Next time the satellite was up, it did not restart, and I could not shut down FoxTelem except with the 3-finger salute.

On Sat, Jun 6, 2020 at 11:06 AM Burns Fisher burns@fisher.cc wrote:

So far so good with 1.09k5. I got it going just in time for AO-92 to go over, but it was already AOS when I started. For some reason, the decoder did not STOP when the pass was over. I had to do it manually, and it complained that the pass was still ongoing. Maybe because I was changing setting in the middle.

AO-95 just started up and is catching telemetry automatically. But at LOS, it tried to stop and did not, instead giving the error message that the pass manager is still processing a pass. After maybe 2 minutes it shut off, but the dialog box asking if I really want to stop is still there

On Fri, Jun 5, 2020 at 7:18 PM Chris Thompson notifications@github.com wrote:

I did some more thinking about this. First of all, can you confirm that this works already (at least in 1.09k):

  • On settings toggle Find Signal on
  • Set the Center Frequency to 0
  • Set each spacecraft to have a Downlink Freq that matches the signal passed in the IF from the 9700, e.g.: 15kHz
  • Set the Upper and Lower bounds to either side. e.g. 5Khz and 25kHz.
  • Click Auto Start
  • Check Auto Switch Modes

Does this work? You can change the clock on the computer to see if it toggles on off and in out of the right modes.

The second step is making it easier to set the frequencies. I think you are asking for an easy button that does not require setting all the Downlink frequencies for each spacecraft to a value like 15kHz. Is that right?

If I create a new option called something like "Fixed IQ IF" then perhaps the center freq box becomes the frequency you have tuned the signal to. So you put 15kHz in that. The IF is set to zero. All other frequencies are ignored. Would that work?

That might be hard though. There may be many places in the code where the logic would need to be placed to override the frequencies. So no promises. But let me know if that is the sort of thing that would help.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ac2cz/FoxTelem/issues/629#issuecomment-639889043, or unsubscribe https://github.com/notifications/unsubscribe-auth/AASNGPFJRRS356ZZ7DWADZTRVF4LZANCNFSM4M45WXXQ .

burnsfisher commented 4 years ago

Just as another data point: Here is another setup that Mark Johns uses--a Flex 6700 again putting IQ into FoxTelem. His problem was that he did not notice that he had inadvertently changed the IQ frequency that he was demodulating. Again, easy to do.

_Let me tell you more about the station: I'm using a Flex 6700 -- I have the 2MLDPA and L432-28, as well, but those are of no consequence for receiving on 2 meters. There's a pre-amp at the antenna. SatPC32 is doing the antenna tracking and Doppler correction, and I can see on the panadapter that the frequency is dead on and that the signals are well above the noise -- listening, the FM is full quieting, and I can clearly hear the "drumbeat" of the DUV on the audio. FoxTelem uses one of the DAX-IQ ports to get the signal directly from the SmartSDR software -- no cabling involved. None of this has changed from when I was getting dozens of frames per pass.

When I'm receiving properly I see the eye, and up until recently it was almost perfectly clean. But the Eye Diagram window is now spaghetti -- just a jumble of moving blue lines._

ac2cz commented 3 years ago

I tested this as follows with 1.09m (though it should be the same with 1.09l). I setup HDSDR to output the IF as a 48k IQ signal. This simulates the radio I hope.

In FoxTelem: I set Find Signal on I tracked HuskySat and AO-91 I set the center frequency to 0Hz In the two spacecraft I set the lower and upper search bounds to be 0.5kHz and 20kHz. I set the downlink to 5kHz, which is where I had it tuned from HDSDR.
I checked AutoStart and Auto Switch Modes. I changed my PC clock to be in a pass for HuskySat and it started in the correct mode. I changed the time to be in a pass for AO-91 and it switched to DUV. The signal was locked onto by Find Signal and decoded.

The only think left here would be to make it easier to change the downlink and search frequencies. But that would add a button that may confuse others. I propose to leave it as it is with the changes so far.