No, I have only checked if all raw and padding fields are removed from the doc-fields. I am currently trying to setup everything in order to be able to check the decoder as you did above.
Ok, I can run all provided beacons in the contrib folder once and attach the result for checking in here. Does that help?
Yes, that would help! Many thanks in advance.
data_a_beacon
:
❯ decode_frame Pegasus contrib/pegasus/data_a_beacon
{
"pid": 195,
"call": "ON03AT",
"ant_deploy_status_mb": 0,
"ant_deploy_status_lb": 0,
"temp_comp_hw": 5,
"rbf_state": 255,
"sid_a": 1,
"stacie_version": 62,
"ant_temp": 120567.74193548386
}
data_e_beacon
:
❯ decode_frame Pegasus contrib/pegasus/data_e_beacon
{
"pid": 193,
"call": "ON03AT",
"temp_bat1sw": 127,
"temp_5v": 14,
"eps_version": 85,
"sid_e": 1,
"temp_bat1": 7,
"temp_bat2": 127,
"status_1_3v3_1": true,
"status_1_3v3_2": false,
"status_1_3v3_3": false,
"status_1_3v3_bu": true,
"status_1_5v_1": false,
"status_1_5v_2": false,
"status_1_5v_3": false,
"status_1_5v_4": false,
"status_2_power_low": true,
"status_2_bat1_pv1": false,
"status_2_bat2_pv2": false,
"status_2_3v3": true,
"status_2_5v": false,
"status_2_mode": 2,
"status_3_3v3_burst": false,
"status_3_5v_burst": false,
"status_3_bat1_pv2": false,
"status_3_bat2_pv1": false,
"status_3_temp_warning": false,
"status_3_cc1": true,
"status_3_cc2": true,
"status_3_rbf": true,
"s_beacon_count": 53,
"reboot_mc": 192,
"reboot_cc1": 2,
"reboot_cc2": 143,
"temp_cc1": 13,
"temp_cc2": -1,
"status_cc1_mode": 1,
"status_cc1_mc_timeout": false,
"status_cc1_tbd": false,
"status_cc1_en_i2c": true,
"status_cc1_bat1_pv1": false,
"status_cc1_bat2_pv2": false,
"status_cc1_3v3_backup": true,
"status_cc2_mode": 1,
"status_cc2_mc_timeout": false,
"status_cc2_tbd": false,
"status_cc2_en_i2c": true,
"status_cc2_bat1_pv1": false,
"status_cc2_bat2_pv2": false,
"status_cc2_3v3_backup": false,
"v_pv2": 4.25,
"v_5v_in": 3.21875,
"v_pv1": 3.96875,
"v_3v3_in": 3.96875,
"v_3v3_out": 3.25,
"v_hv": 3.96875,
"v_5v_out": 0.09375,
"v_bat1": 3.96875,
"v_bat2": 5.96875,
"vcc_cc2": 4.125,
"vcc_cc1": 3.9375,
"i_pv1_5v": 0.0,
"i_pv2_5v": 0.0,
"i_pv1_3v3": 3.625,
"i_pv2_3v3": -3.5625,
"i_pv1_bat1": -8.0,
"i_pv2_bat1": 7.9375,
"i_pv1_bat2": 0.0,
"i_pv2_bat2": 0.0
}
data_hdk_download
:
❯ decode_frame Pegasus contrib/pegasus/data_hkd_download
{
"pid": 82,
"temp_bat1sw": 127,
"temp_5v": -7,
"temp_bat1": 3,
"temp_bat2": 4,
"status_1_3v3_1": true,
"status_1_3v3_2": false,
"status_1_3v3_3": false,
"status_1_3v3_bu": true,
"status_1_5v_1": false,
"status_1_5v_2": false,
"status_1_5v_3": false,
"status_1_5v_4": false,
"status_2_power_low": false,
"status_2_bat1_pv1": true,
"status_2_bat2_pv2": true,
"status_2_3v3": false,
"status_2_5v": false,
"status_2_mode": 2,
"status_3_3v3_burst": false,
"status_3_5v_burst": false,
"status_3_bat1_pv2": false,
"status_3_bat2_pv1": false,
"status_3_temp_warning": true,
"status_3_cc1": true,
"status_3_cc2": true,
"status_3_rbf": true,
"status_cc1_mode": 1,
"status_cc1_mc_timeout": false,
"status_cc1_tbd": false,
"status_cc1_en_i2c": true,
"status_cc1_bat1_pv1": false,
"status_cc1_bat2_pv2": false,
"status_cc1_3v3_backup": true,
"status_cc2_mode": 1,
"status_cc2_mc_timeout": false,
"status_cc2_tbd": false,
"status_cc2_en_i2c": true,
"status_cc2_bat1_pv1": false,
"status_cc2_bat2_pv2": false,
"status_cc2_3v3_backup": false,
"v_pv2": 4.0,
"v_5v_in": 3.0,
"v_pv1": 4.0625,
"v_3v3_in": 4.0,
"v_3v3_out": 0.0,
"v_hv": 1.8125,
"v_5v_out": 0.0,
"v_bat1": 4.0625,
"v_bat2": 4.0,
"vcc_cc2": 3.84375,
"vcc_cc1": 3.6875,
"i_pv1_5v": 0.0,
"i_pv2_5v": 0.0,
"i_pv1_3v3": 0.0,
"i_pv2_3v3": 0.0,
"i_pv1_bat1": -0.0625,
"i_pv2_bat1": 0.0,
"i_pv1_bat2": 0.0,
"i_pv2_bat2": -0.0625,
"temp_a": 18,
"temp_c": 17,
"state_machine_su_script": false,
"state_machine_su_powered": false,
"state_machine_adcs": true,
"state_machine_not_used": false,
"state_machine_obc": 1,
"mission_counter": 44,
"mission_counter_2": 218,
"rssi_a": -113.0,
"rssi_b": -94.0
}
data_o1_beacon
:
❯ decode_frame Pegasus contrib/pegasus/data_o1_beacon
{
"pid": 83,
"call": "ON03AT",
"temp_bat1sw": 127,
"temp_5v": -3,
"temp_bat1": 0,
"temp_bat2": 127,
"status_1_3v3_1": true,
"status_1_3v3_2": false,
"status_1_3v3_3": false,
"status_1_3v3_bu": false,
"status_1_5v_1": false,
"status_1_5v_2": false,
"status_1_5v_3": false,
"status_1_5v_4": false,
"status_2_power_low": true,
"status_2_bat1_pv1": false,
"status_2_bat2_pv2": false,
"status_2_3v3": false,
"status_2_5v": false,
"status_2_mode": 2,
"status_3_3v3_burst": false,
"status_3_5v_burst": false,
"status_3_bat1_pv2": false,
"status_3_bat2_pv1": false,
"status_3_temp_warning": true,
"status_3_cc1": true,
"status_3_cc2": true,
"status_3_rbf": true,
"reboot_mc": 192,
"reboot_cc1": 2,
"reboot_cc2": 143,
"status_cc1_mode": 1,
"status_cc1_mc_timeout": false,
"status_cc1_tbd": false,
"status_cc1_en_i2c": true,
"status_cc1_bat1_pv1": false,
"status_cc1_bat2_pv2": false,
"status_cc1_3v3_backup": true,
"status_cc2_mode": 1,
"status_cc2_mc_timeout": false,
"status_cc2_tbd": false,
"status_cc2_en_i2c": true,
"status_cc2_bat1_pv1": false,
"status_cc2_bat2_pv2": false,
"status_cc2_3v3_backup": false,
"v_pv2": 4.25,
"v_5v_in": 3.28125,
"v_pv1": 3.96875,
"v_3v3_in": 3.96875,
"v_3v3_out": 0.0,
"v_hv": 3.96875,
"v_5v_out": 0.0,
"v_bat1": 3.96875,
"v_bat2": 4.09375,
"vcc_cc2": 3.90625,
"vcc_cc1": 3.9375,
"i_pv1_5v": 0.0,
"i_pv2_5v": 0.0,
"i_pv1_3v3": 3.625,
"i_pv2_3v3": -3.6875,
"i_pv1_bat1": -8.0,
"i_pv2_bat1": 7.9375,
"i_pv1_bat2": 0.0,
"i_pv2_bat2": 0.0625,
"temp_a": 9,
"temp_c": 0,
"state_machine_su_script": false,
"state_machine_su_powered": false,
"state_machine_adcs": true,
"state_machine_not_used": false,
"state_machine_obc": 1,
"mission_counter": 45,
"mission_counter_2": 30,
"rssi_a": -104.0,
"rssi_b": -132.0,
"stacie_mode_a": 0,
"stacie_mode_c": 10
}
data_o2_beacon
:
❯ decode_frame Pegasus contrib/pegasus/data_o2_beacon
{
"pid": 86,
"call": "ON03AT",
"status_task_sensors_running": true,
"status_obc_3v3_spa_enabled": true,
"status_obc_power_saving_mode": false,
"status_eps_cc_used": true,
"status_last_reset_source": 0,
"status_power_source": false,
"status_crystal_osicallation_in_use": true,
"status_ssp1_initialized": true,
"status_ssp0_initialized": true,
"status_i2c2_initialized": true,
"status_i2c1_initialized": true,
"status_i2c0_initialized": true,
"status_rtc_synchronized": true,
"status_statemachine_initialized": true,
"status_task_maintenance_running": true,
"status_uart_ttc1_initialized": true,
"status_uart_mnlp_initialized": true,
"status_uart_ttc2_initialized": true,
"status_uart_gps_initialized": true,
"status_adc_initialized": true,
"status_rtc_initialized": true,
"status_i2c_switches_initialized": true,
"status_supply_switches_initialized": true,
"status_eeprom3_initialized": true,
"status_eeprom2_initialized": true,
"status_eeprom1_initialized": true,
"status_eps_cc2_operational": true,
"status_eps_cc1_opeational": false,
"status_timer1_initialized": true,
"status_watchdog_initialized": true,
"status_timer0_initialized": true,
"status_mpu_initialized": true,
"status_onboard_tmp100_initialized": true,
"status_onboard_mag_initialized": true,
"status_msp_initialized": true,
"status_gyro2_initialized": true,
"status_gyro1_initialized": true,
"status_mag_bp_boom_initialized": false,
"status_mag_bp_initialized": false,
"status_bp_initialized": true,
"status_sa_initailized": true,
"status_spd_initialized": false,
"status_spc_initialized": false,
"status_spb_initialized": true,
"status_spa_initialized": true,
"status_flash2_initialized": true,
"status_flash1_initialized": true,
"status_spd_vcc_on": true,
"status_spc_vcc_on": true,
"status_spb_vcc_on": true,
"status_spa_vcc_on": true,
"status_science_module_initialized": false,
"status_ttc2_initialized": false,
"status_ttc1_initialized": false,
"status_gps_initialized": false,
"status_onboard_mag_powersafe": false,
"status_i2c_sw_d_on": true,
"status_i2c_sw_c_on": true,
"status_i2c_sw_b_on": true,
"status_i2c_sw_a_on": true,
"status_sa_vcc_on": true,
"status_bp2_vcc_on": true,
"status_bp1_vcc_on": true,
"status_eeprom_page_cycle_overflow": true,
"status_rtc_oscillator_error": false,
"status_mnlp_5v_enabled": false,
"status_mag_bp_boom_power_saving_mode": false,
"status_mag_bp_power_saving_mode": false,
"status_tmp100_powersafe": false,
"status_mpu_powersafe": false,
"status_gyro_powersafe": false,
"status_default_config_used": false,
"status_timer1_running": true,
"status_timer0_running": true,
"status_i2c2_frequent_errors": true,
"status_i2c1_frequent_errors": false,
"status_i2c0_frequent_errors": true,
"status_ssp1_frequent_errors": false,
"status_ssp0_frequent_errors": false,
"error_code": 0,
"error_code_before_reset": 0,
"resets_counter": 0,
"script_slot_cs1": false,
"script_slot_su7": false,
"script_slot_su6": false,
"script_slot_su5": false,
"script_slot_su4": false,
"script_slot_su3": true,
"script_slot_su2": false,
"script_slot_su1": false,
"script_slot_cs5": false,
"script_slot_cs4": false,
"script_slot_cs3": false,
"script_slot_cs2": false,
"temp_sp_x_minus": 5.100000000000023,
"temp_sp_x_plus": 5.100000000000023,
"temp_sp_y_minus": -273.15,
"temp_sp_y_plus": -273.15
}
data_s_beacon
:
❯ decode_frame Pegasus contrib/pegasus/data_s_beacon
{
"pid": 192,
"call": "ON03AT",
"trx_temp": 10,
"antenna_deployment": 0,
"stacie_op": 0,
"temp_compensation": 1,
"reset_counter": 3,
"uplink_error": 1,
"obc_sent_packet_counter_between_s_beacons": 26,
"beacon_interval": 28,
"sid_s": 0,
"tx_sel_reason": 255,
"reason_remote": 0,
"gs_cmd_counter": 0,
"beacon_count": 0,
"prim_freq_start": 661,
"sec_freq_start": 651,
"usp": 6.14236203679019,
"rssi_idle": -116.0,
"rssi_rx": -132.0,
"primary_carrier": 43667000.0,
"secondary_carrier": 43800000.0,
"used_carrier": 43667000.0,
"temperature_compensation_carrier": 43666843.75,
"s_time": 745
}
Please review if every expected field is present and check if the values are correct.
Thanks! Data looks fine, I have compared it with the decoded data in the official PEGASUS database. Although, some of the data (temp_sp_y_minus
, temp_sp_y_plus
, ant_temp
, temp_bat2
(E.g. was correct 3 years ago, where we did the HKD download ), temp_bat1sw
, … ) isn’t correct or physically not possible - but this is due to the fact, that many systems are faulty after over 6 years in orbit. I would like to keep the faulty data, since in observations some years ago it is correct. We will make a note on that within the Dashboard.
That’s totally fine!
Let me know if I can be of help in the future!
Thanks, you will! Our next CubeSat mission CLIMB is planed to be launched next year. It shall be fully integrated into SatNOGS together with gr-satellites pre-launch. CLIMB’s data is still not defined and there will be a new protocol for S-band. Therefore, we use the last weeks of PEGASUS to learn on how to implement everything. Sadly PEGASUS will enter Earth’s atmosphere mid of January according to predictions.