Regarding your question about the GMSK AX25 demodulation for RSP-03 :
Here is how things works at high level regarding the demodulation/decoding in the SatNOGS network. Each station are running the satNOGS-client application which include a gnu radio flowgraph for demodulation (the parameters for the demodulation are taken from the transmitter entry of the sat on SatNOGS DB), also some stations are running gr_satellites for the same purpose. These demodulated frames are saved on SatNOGS networks. If there is a decoder (aka kaitai file) linked to a satellite, these previous raw frame are decoded/interpreted and saved in SatNOGS DB (influx database).
gr_satnogs and gr_satellites already support AX25 GMSK 9600 demodulation, so there is no need for extra decoder/code.
The only extra file that might be useful i thing if you want gr_satellites being able to handle demodulation of RSP-03 is a yaml file for RSP-03.
And so speaking of that, i already created one (
RSP-03.zip (363 Bytes)
) based on the information you provided :
name: RSP-03
norad: 98654
data:
&tlm Telemetry:
telemetry: ax25
transmitters:
9k6 GMSK downlink:
frequency: 437.050e+6
modulation: FSK
baudrate: 9600
framing: AX.25 G3RUH
data:
- *tlm
One point i want to mention regarding this file is that i had to specify the AX25 G3RUH variant to decode the GMSK beacon sample wav file you provided (using simple AX.25 didn’t get me anything) :
deckbsd@radio1:~/rsp03$ gr_satellites ./RSP-03.yml --wavfile ./RSP-03_GMSK_HKBeaconSample.wav --samp_rate 48e3 --hexdump
***** VERBOSE PDU DEBUG PRINT ******
((transmitter . 9k6 GMSK downlink))
pdu length = 200 bytes
pdu vector contents =
0000: 94 a6 62 b2 a0 82 60 94 a6 62 b2 9e b2 e1 03 f0
0010: 00 18 ad 80 01 29 4e 7e 68 78 c0 01 11 00 54 00
0020: 00 00 ae 67 2f 03 00 00 00 00 ad 51 61 2d 98 01
0030: 00 00 00 04 0f 08 00 00 00 00 00 00 00 00 00 00
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050: 00 00 00 00 00 fe ff 00 00 00 00 01 00 2f 00 00
0060: 00 18 00 25 00 24 13 24 0c 64 00 00 00 e1 ff 00
0070: 00 e1 ff 00 00 1b 00 00 00 e1 ff 00 00 e1 ff 00
0080: 00 01 00 00 00 00 00 00 00 ca 1d 00 00 f0 ff 1a
0090: 00 d1 1e 04 00 04 ae 17 00 85 1d 00 00 4a 00 1b
00a0: 00 5f 03 fb ff 70 ca 28 00 7f 30 8c b0 00 3d 0e
00b0: 00 7c 08 00 01 01 00 21 0e 00 24 00 00 00 00 00
00c0: 00 00 00 00 00 00 00 00
************************************
***** VERBOSE PDU DEBUG PRINT ******
((transmitter . 9k6 GMSK downlink))
pdu length = 101 bytes
pdu vector contents =
0000: 94 a6 62 b2 a0 82 60 94 a6 62 b2 9e b2 e1 03 f0
0010: 00 18 4a 80 01 29 4e 7e 68 78 c0 02 11 00 0c 68
0020: 2f 03 00 00 00 00 0b 52 61 2d 98 01 00 00 00 00
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060: 00 00 00 00 00
************************************
***** VERBOSE PDU DEBUG PRINT ******
((transmitter . 9k6 GMSK downlink))
pdu length = 250 bytes
pdu vector contents =
0000: 94 a6 62 b2 a0 82 60 94 a6 62 b2 9e b2 e1 03 f0
0010: 00 18 df 80 01 29 4e 7e 68 78 c0 03 11 00 0c 68
0020: 2f 03 00 00 00 00 0b 52 61 2d 98 01 00 00 01 01
0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0050: 00 00 00 00 00 00 00 00 d0 ba 00 40 a3 3d 00 68
0060: 80 3f 90 c1 79 3b 2c 51 3b 3c 2c 51 3b 3c 34 33
0070: a3 40 67 e6 0d 43 34 33 88 c2 00 00 ee 41 00 00
0080: 00 04 bc 00 40 aa 3d 00 00 7d 3f fa 18 9c 3c 90
0090: c1 79 3c 90 c1 79 3b cd cc 85 c2 9a 59 8b 43 9a
00a0: 99 ae c2 00 00 ee 41 00 00 00 2a 3c 00 00 ab 3d
00b0: 00 80 7e 3f e1 7c 0c 3d 90 c1 f9 bc 2c 51 bb 3c
00c0: cd cc 2c 40 9a 19 51 43 34 33 4d c2 00 00 ee 41
00d0: 00 9a 99 99 3e 9a 99 19 3f 9a 99 99 3e 9a 99 19
00e0: 3f 9a 99 99 3e 9a 99 19 3f 78 00 00 00 00 00 20
00f0: 41 00 c4 09 00 00 00 00 a0 41
************************************
and then a decode sample using the kaitai file :
(.vdecoder) (base) deckbsd@deckbsd:~/repos/satnogs-decoders$ decode_frame rsp03 /home/deckbsd/data/rsp03/gr_sat_dump2.bin
WARNING: Import of decoder class Ssamusatpacket failed.
Did you compile modified Kaitai structs to Python code yet?
AttributeError: module 'satnogsdecoders.decoder.ssamusat_packet' has no attribute 'Ssamusatpacket'
{
"dest_callsign": "JS1YPA",
"src_callsign": "JS1YOY",
"src_ssid": 0,
"dest_ssid": 0,
"ctl": 3,
"pid": 240,
"no001_header": 2158827520,
"no002_time": 1753108009,
"no003_time": 49272,
"packet_type": 1,
"no005_telemetry_id": 17,
"no006_cobc_boot_count": 84,
"no007_cobc_elapsed_time": 53438382,
"no008_satellite_system_time": 1753108009389,
"no009_cobc_temperature": 0,
"no010_satellite_operation_mode": 4,
"no011_antenna_deployment_status": 15,
"no011_flag_0": true,
"no011_flag_1": true,
"no011_flag_2": true,
"no011_flag_3": true,
"no011_flag_4": false,
"no011_flag_5": false,
"no011_flag_6": false,
"no011_flag_7": false,
"no012_uplink_command_reception_count": 8,
"no013_cobc_temperature_upper_limit_exceed_count": 0,
"no014_cobc_temperature_lower_limit_exceed_count": 0,
"no015_cobc_voltage_upper_limit_exceed_count": 0,
"no016_cobc_voltage_lower_limit_exceed_count": 0,
"no017_cobc_current_upper_limit_exceed_count": 0,
"no018_cobc_current_lower_limit_exceed_count": 0,
"no019_main_radio_temperature_upper_limit_exceed_count": 0,
"no020_main_radio_temperature_lower_limit_exceed_count": 0,
"no021_main_radio_voltage_upper_limit_exceed_count": 0,
"no022_main_radio_voltage_lower_limit_exceed_count": 0,
"no023_main_radio_current_upper_limit_exceed_count": 0,
"no024_main_radio_current_lower_limit_exceed_count": 0,
"no025_sub_radio_temperature_upper_limit_exceed_count": 0,
"no026_sub_radio_temperature_lower_limit_exceed_count": 0,
"no027_sub_radio_voltage_upper_limit_exceed_count": 0,
"no028_sub_radio_voltage_lower_limit_exceed_count": 0,
"no029_sub_radio_current_upper_limit_exceed_count": 0,
"no030_sub_radio_current_lower_limit_exceed_count": 0,
"no031_aobc_temperature_upper_limit_exceed_count": 0,
"no032_aobc_temperature_lower_limit_exceed_count": 0,
"no033_aobc_voltage_upper_limit_exceed_count": 0,
"no034_aobc_voltage_lower_limit_exceed_count": 0,
"no035_aobc_current_upper_limit_exceed_count": 0,
"no036_aobc_current_lower_limit_exceed_count": 0,
"no037_mobc_temperature_upper_limit_exceed_count": 0,
"no038_mobc_temperature_lower_limit_exceed_count": 0,
"no039_mobc_voltage_upper_limit_exceed_count": 0,
"no040_mobc_voltage_lower_limit_exceed_count": 0,
"no041_mobc_current_upper_limit_exceed_count": 0,
"no042_mobc_current_lower_limit_exceed_count": 0,
"no043_magnetic_torque_consumption_current": 65024,
"no044_reaction_wheel_consumption_current": 255,
"no045_antenna_deployment_heater_consumption_current": 0,
"no046_main_radio_consumption_current": 256,
"no047_sub_radio_consumption_current": 12032,
"no048_mobc_consumption_current": 0,
"no049_cobc_consumption_current": 6144,
"no050_aobc_consumption_current": 9472,
"no051_5v_bus_voltage": 9216,
"no052_33v_line_voltage": 9235,
"no053_bus_current": 25612,
"no054_sap_z_face_voltage": 0,
"no055_sap_z_face_temperature": 57600,
"no056_sap__z_face_voltage": 255,
"no057_sap__z_face_temperature": 57600,
"no058_sap_y_face_voltage": 255,
"no059_sap_y_face_temperature": 6912,
"no060_sap__x_face_voltage": 0,
"no061_sap__x_face_temperature": 57600,
"no062_sap__y_face_voltage": 255,
"no063_sap__y_face_temperature": 57600,
"no064_sap_z_face_current": 255,
"no065_sap__z_face_current": 256,
"no066_sap_y_face_current": 0,
"no067_sap__x_face_current": 0,
"no068_sap__y_face_current": 0,
"no069_battery_1_output_voltage": 51712,
"no070_battery_1_charging_current": 29,
"no071_battery_1_discharging_current": 61440,
"no072_battery_1_temperature": 6911,
"no073_battery_1_cumulative_charge": 69128448,
"no074_battery_1_cumulative_discharge": 397280256,
"no075_battery_2_output_voltage": 34048,
"no076_battery_2_charging_current": 29,
"no077_battery_2_discharging_current": 18944,
"no078_battery_2_temperature": 6912,
"no079_battery_2_cumulative_charge": 4211302144,
"no080_battery_2_cumulative_discharge": 684355839,
"no081_equipment_power_anomaly_status": 0,
"no081_flag_0": false,
"no081_flag_1": false,
"no081_flag_2": false,
"no081_flag_3": false,
"no081_flag_4": false,
"no081_flag_5": false,
"no081_flag_6": false,
"no081_flag_7": false,
"no082_equipment_power_status": 127,
"no082_flag_0": true,
"no082_flag_1": true,
"no082_flag_2": true,
"no082_flag_3": true,
"no082_flag_4": true,
"no082_flag_5": true,
"no082_flag_6": true,
"no082_flag_7": false,
"no083_mppt_status": 48,
"no083_flag_0": false,
"no083_flag_1": false,
"no083_flag_2": false,
"no083_flag_3": false,
"no083_flag_4": true,
"no083_flag_5": true,
"no083_flag_6": false,
"no083_flag_7": false,
"no084_battery_chargedischarge_controller_status": 140,
"no084_flag_0": false,
"no084_flag_1": false,
"no084_flag_2": true,
"no084_flag_3": true,
"no084_flag_4": false,
"no084_flag_5": false,
"no084_flag_6": false,
"no084_flag_7": true,
"no085_internal_equipment_communication_error_status": 176,
"no085_flag_0": false,
"no085_flag_1": false,
"no085_flag_2": false,
"no085_flag_3": false,
"no085_flag_4": true,
"no085_flag_5": true,
"no085_flag_6": false,
"no085_flag_7": true,
"no086_main_radio_boot_count": 0,
"no087_main_radio_elapsed_time": 61,
"no088_main_radio_no_reception_time": 14,
"no089_main_radio_rssi": 0,
"no090_main_radio_uplink_reception_counter": 124,
"no091_main_radio_uplink_modulation": 8,
"no092_main_radio_downlink_modulation": 0,
"no093_main_radio_downlink_protocol": 1,
"no094_main_radio_frequency_lock": 1,
"no095_main_radio_pa_temperature": 0,
"no096_main_radio_pa_current": 3617,
"no097_main_radio_mcu_temperature_": 0,
"no098_sub_radio_boot_count": 36,
"no099_sub_radio_elapsed_time": 0,
"no100_sub_radio_no_reception_time": 0,
"no101_sub_radio_rssi": 0,
"no102_sub_radio_uplink_reception_counter": 0,
"no103_sub_radio_uplink_modulation": 0,
"no104_sub_radio_downlink_modulation": 0,
"no105_sub_radio_downlink_protocol": 0,
"no106_sub_radio_frequency_lock": 0,
"no107_sub_radio_pa_temperature": 0,
"no108_sub_radio_pa_current": 0,
"no109_sub_radio_mcu_temperature": 0
}
So do you confirm it is AX25 G3RUH ? if so we might need to change the information of this tx in DB.
I also ping @fredy @PE0SAT @pe2bz @SA2KNG in case i forgot something 