Reliable 2GFSK Demodulation for AERO-VISTA CubeSat UHF Radio #388
Replies: 9 comments 6 replies
-
Greetings. I'm sure Dani will have very valuable input, but in the meantime would it be possible to share an audio file, I/Q file, or both? Thanks! -Scott, K4KDR |
Beta Was this translation helpful? Give feedback.
-
I'm not completely sure if I'm allowed to share the recordings -- I'll find
out and upload them if so :)
…On Wed, Jul 27, 2022, 6:02 PM K4KDR ***@***.***> wrote:
Greetings. I'm sure Dani will have very valuable input, but in the
meantime would it be possible to share an audio file, I/Q file, or both?
Thanks!
-Scott, K4KDR
—
Reply to this email directly, view it on GitHub
<#388 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGIRXUI5LKYKNR2DNUSFB7TVWGWVZANCNFSM543EBIUA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
Hi Magpie! :) |
Beta Was this translation helpful? Give feedback.
-
Hi, Thanks for opening a discussion for the AERO-VISTA satellite. I agree that having some recordings would be very useful. Perhaps there is something wrong with the signal or even with the recording method (could the recording be saturated?), and this is often difficult to find without looking at the recordings. I would say that by releasing the recordings you're not giving out more information than what people will be able to see when the satellite is transmitting in orbit (but now with enough time to get help from the community before launch). Maybe you can use this idea to convince people that publishing some recordings is harmless. The idea of looking at the recording in Inspectrum to check if the signal looks like a proper FSK modulation, and has the baudrate and syncword that you expect is very good. This is probably the first thing I would do if I get my hands on a recording. Regarding the Nanoavionics radio, it probably uses the CC1101 or a similar FSK transceiver chip. It is likely that some features of the framing will use the built-in packet handling of the chip. If you open one of the RF cans and look at the chip (or if you have the schematics), maybe you can get more information from the datasheet of the chip. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the sample files! Are these .c16 files audio at 48k? I would have expected .wav files for audio. Or are the I/Q files in perhaps a raw (16-bit?) format? Thanks! |
Beta Was this translation helpful? Give feedback.
-
Yes, they are raw IQ files - 16 bit complex numbers at 48kHz.
|
Beta Was this translation helpful? Give feedback.
-
Actually you're definitely right, it's complex 64, standard gnuradio file
sink output. Sorry for the confusion!
…On Thu, Jul 28, 2022, 11:08 AM Daniel Estévez ***@***.***> wrote:
I'm looking at the same!
The .c16 extension suggest complex 16-bit integers, but the file format
is actually complex64 (i.e., what you read with the GNU Radio file source
set to "Complex" data type).
Maybe a mix-up with the formats is the only problem in trying to process
them?
—
Reply to this email directly, view it on GitHub
<#388 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AGIRXUMKPDCIDQABF7RYUU3VWKO5VANCNFSM543EBIUA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
This is an attempt at FM demodulation in Inspectrum. The waveform looks quite distorted, which I guess explains your problems trying to demodulate it. Are you recording this near the zero-IF of the SDR (i.e., close to DC at baseband)? Can you try recording at an offset in frequency? It might happen that you have the IQ image of the signal interfering with itself. Can you give more details about your recording set up and configuration? |
Beta Was this translation helpful? Give feedback.
-
Yes, the distortion in the center of the I/Q recording really lowers your odds of decoding to near zero. When played & demodulated as FM audio, the ever-present center spike in Sample #2 is quite evident. As Dani said, you'll have much better results with a recording made under different circumstances. |
Beta Was this translation helpful? Give feedback.
-
Howdy,
I'm working on a ground station for the upcoming AERO-VISTA CubeSat mission at MIT Haystack Observatory.
We're at the early stages of development for the ground station, so we're currently working on decoding simple ping messages from the satellite that we recorded in the lab. Even though the signal is strong in the recordings, nothing I try in GnuRadio can reliably lock onto the symbol clock and detect the syncword -- there is a very high frequency of bit errors.
Specifics of the satellite radio:
-UHF (70cm)
-2GFSK (specs indicate MSK)
-3 byte preamble, 4 byte syncword
NanoAvionics, the bus supplier, has unfortunately left the rest of the details for us to guess:
-Probably 2400bps datarate / 600Hz deviation
-Packets are variable length, with length byte immediately following syncword
-Packets are framed using their custom RF Protocol which is poorly documented
-There is a CRC16 on the end but it is unclear which kind (probably CCITT false?).
Before even starting to decode the insides, I'd at least like to reliably detect every packet and verify the CRC, but I've been unable to do even that. The recordings were made with a USRP B210 tuned to the satellite's center frequency, at a sample rate of 48kHz, with a yagi antenna placed on the opposite side of the room from the satellite, which was set to minimum transmission power.
I've tried the following variations of flowgraphs:
File source
Throttle
Squelch? (Hard to get the right threshold to exclude noise but not cut off any of the signal)
RRC Filter? (Unknown what filter we should be matching)
FSK demodulator (Have tried Quadrature Demod, the FSK Demod block from gr-satellites, and also an integrate-dump filter based on one of Daniel's blog posts)
Resampler? (Sometimes have had more luck setting the baudrate on the demod block higher, then resampling down to the correct rate. I have to imagine this is bad practice.)
Symbol Sync? (mixed success)
Binary slicer
Sync and create packed PDU (length set to 255, even though I know the pings aren't that long, but I don't know how long they should be because I don't know exactly which parts of the packet the length byte includes per the custom RF framing.)
Output
I've tried most permutations of those, and the flowgraph is still unable to reliably demodulate the packets. Sometimes it misses packets that are there, and sometimes it finds packets when there are none. The ones it does catch often have several bit errors.
Any tips on how to improve this system would be much appreciated. We would really like to use gnuradio and gr-satellites for our actual satellite operations after launch, and I've started working on deframer and telemetry blocks in a branch of the gr-satellites repo, but they won't work if the demodulator can't even pass them correct packets.
Thanks so much!
Beta Was this translation helpful? Give feedback.
All reactions