Skip to content

Add support for QMR-KWT 2#799

Merged
daniestevez merged 1 commit intodaniestevez:mainfrom
deckbsd:main
Feb 28, 2026
Merged

Add support for QMR-KWT 2#799
daniestevez merged 1 commit intodaniestevez:mainfrom
deckbsd:main

Conversation

@deckbsd
Copy link
Contributor

@deckbsd deckbsd commented Feb 28, 2026

This pull request add the support for QMR-KWT 2

There are 2 transmitters, because at the beginning the sat was transmitting at 2k4 bauds and changed recently to 9k6. I kept 2k4 just in case, if the team decide to switch back to it again.

Here is a test of decoding signals at 9k6 bauds using the wav file from this observation :

run command : gr_satellites 98448 --wavfile out.wav --samp_rate 48e3 --start_time 2026-02-28T10:19:45 --throttle

-> Packet from 9k6 FSK USP downlink
Container:
    header = Container:
        addresses = ListContainer:
            Container:
                callsign = u'R2ANF' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 0
                    extension = False
            Container:
                callsign = u'RS95S' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 1
                    extension = True
        control = 0x00
        pid = 0xF0
    info = b'FB\x02\x00\x01\x00\x19\x00\xfd\x00\xffr\x1e\x12\x00\x0e^\x1f\xa2i\n\xa0\x02\x00\x80%\x00\x00*\x00\xa0\x1e\x01!\xed\x04\x00\x01\x000\x004\x05g\x05.\x05N\x04I\x04\x9d\x04\x0f\x00\x00\x000\x00\x00\x00\x00\x00\x00\x00E\xfe\xda\xfd\x06\xfe\xfa\xfd\x00@\x00\x00\xb0\x1e\xbd\xa0\x02\x00P\x98\x97Z\x9a\x04' (total 89)
-> Packet from 9k6 FSK USP downlink
Container:
    header = Container:
        addresses = ListContainer:
            Container:
                callsign = u'R2ANF' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 0
                    extension = False
            Container:
                callsign = u'RS95S' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 1
                    extension = True
        control = 0x00
        pid = 0xF0
    info = b'FB\x02\x00\x01\x00\x19\x00\xfd\x00\xffx\x1e\x12\x00\x0e|\x1f\xa2i(\xa0\x02\x00\x80%\x00\x00*\x00\xa0\x1e\x01!\xed\x04\x00\x01\x000\x00\xb0\x05\xa5\x05Q\x05\xc8\x04\xc3\x04\xda\x04\x14\x00\x00\x001\x00\x00\x00\x00\x00\x00\x00Q\xfe\xf3\xfd%\xfe\x0c\xfe\x00@\x00\x00\xb0\x1e\xdb\xa0\x02\x00n\x98\x97Z\x9a\x04' (total 89)

frequency: 436.9500e+6
modulation: FSK
baudrate: 9600
deviation: 600
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the deviation 600 Hz also for 9600 baud? That seems too small. MSK corresponds to 2400 Hz deviation.

Copy link
Contributor Author

@deckbsd deckbsd Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, at least it works, i just tested 2400 Hz and it of course it works too, so what do you want me to do ?

Same results with 2400 Hz :

-> Packet from 9k6 FSK USP downlink
Container:
    header = Container:
        addresses = ListContainer:
            Container:
                callsign = u'R2ANF' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 0
                    extension = False
            Container:
                callsign = u'RS95S' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 1
                    extension = True
        control = 0x00
        pid = 0xF0
    info = b'FB\x02\x00\x01\x00\x19\x00\xfd\x00\xffr\x1e\x12\x00\x0e^\x1f\xa2i\n\xa0\x02\x00\x80%\x00\x00*\x00\xa0\x1e\x01!\xed\x04\x00\x01\x000\x004\x05g\x05.\x05N\x04I\x04\x9d\x04\x0f\x00\x00\x000\x00\x00\x00\x00\x00\x00\x00E\xfe\xda\xfd\x06\xfe\xfa\xfd\x00@\x00\x00\xb0\x1e\xbd\xa0\x02\x00P\x98\x97Z\x9a\x04' (total 89)
-> Packet from 9k6 FSK USP downlink
Container:
    header = Container:
        addresses = ListContainer:
            Container:
                callsign = u'R2ANF' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 0
                    extension = False
            Container:
                callsign = u'RS95S' (total 5)
                ssid = Container:
                    ch = False
                    ssid = 1
                    extension = True
        control = 0x00
        pid = 0xF0
    info = b'FB\x02\x00\x01\x00\x19\x00\xfd\x00\xffx\x1e\x12\x00\x0e|\x1f\xa2i(\xa0\x02\x00\x80%\x00\x00*\x00\xa0\x1e\x01!\xed\x04\x00\x01\x000\x00\xb0\x05\xa5\x05Q\x05\xc8\x04\xc3\x04\xda\x04\x14\x00\x00\x001\x00\x00\x00\x00\x00\x00\x00Q\xfe\xf3\xfd%\xfe\x0c\xfe\x00@\x00\x00\xb0\x1e\xdb\xa0\x02\x00n\x98\x97Z\x9a\x04' (total 89)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

anyway i changed it, let's get the right one.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there isn't documentation that specifies what is the deviation and we haven't measured it, we should not include the deviation in the SatYAML file. If the SatYAML file does not include a deviation, then gr-satellites will choose a reasonable deviation given the baudrate, which is preferable than having a wrong deviation there.

In this case I think we should remove the deviation from both transmitters.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noted and done.

Copy link
Owner

@daniestevez daniestevez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! This looks great now. Merging.

@daniestevez daniestevez merged commit 1358c09 into daniestevez:main Feb 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants