UWE-3 Satellite Decoding
I work with SatNOGS, an open-source network of satellite ground stations.
My focus is decoding telemetry frames from UWE-3 satellite and parsing raw data into readable values.
Raw Telemetry Frames (41 Bytes)
Frame #1 (Valid Housekeeping)
86 A2 40 40 40 40 60 86 A2 40 40 40 40 61 03 F0 35 53 20 64 64 00 21 21 02 00 3C 15 00 00 00 00 00 12 42 63 60 0F E5 11 0B 52
Frame #2 (Valid Housekeeping)
86 A2 40 40 40 40 60 86 A2 40 40 40 40 61 03 F0 36 53 20 64 64 00 21 21 02 00 3C 1F 00 00 00 00 00 D9 C2 33 55 0D E0 FF 08 2A
Kaitai Struct Decoder (uwe3.ksy)
Here is an excerpt from the telemetry payload mapping I contributed to the SatNOGS decoders repository:
Payload Definition
hskp_payload:
seq:
- id: beacon_payload_command
type: u1
doc: 'Housekeeping command byte, always 2 (0x02)'
- id: beacon_payload_vals_out_of_range
type: u1
doc: 'Count of sensor readings outside valid range'
- id: beacon_payload_beacon_rate
type: u1
doc: '[s] Beacon transmission interval'
- id: beacon_payload_uptime_raw
type: u1
repeat: expr
repeat-expr: 3
doc: '24-bit uptime counter'
- id: beacon_payload_obc_temp
type: s1
doc: '[degC] On-board computer temperature'
- id: beacon_payload_batt_a_voltage
type: u2le
doc: '[mV] Battery A voltage'
- id: beacon_payload_batt_a_current
type: s2le
doc: '[mA] Battery A current'
This decoding pipeline processes raw bytes, extracts fields, and converts them into telemetry values. I recently contributed a telemetry decoder for UWE-3 (NORAD 39446) to the SatNOGS decoders repository (PR !515). The decoder processes 41-byte frames extracted from ~129k SatNOGS packets, reconstructing over 270 valid frames.
Implemented using Kaitai Struct, the full payload mapping includes decoding of:
- Battery voltage and current
- State of charge and power consumption
- OBC, exterior, and panel temperatures
- Subsystem status fields