No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
rhw_telemetry
rhw_telemetry_samples
.gitignore
LICENSE
README.md

README.md

rhw-ham

This repository has additional information to help HAM's listening to Reaktor Hello World satellite.

Project web page: https://reaktorspace.com/reaktor-hello-world/

Telemetry decoding

An example GNU Radio Companion file is provided that can decode the FSK packets transmitted by Reaktor Hello World. It requires the CC11XX decoder block. The sample file used by default is a real recording from orbit with a single EPS telemetry packet. The format is explained in the Reaktor Hello World page. The decoder print to standard out the bytes starting after the sync word, i.e., the first byte is the radio packet length.

The file telemetry_unit_conversions.py contains the conversions from adc readings to meaningful units.

There's a full conversion script rhw_telemetry/hex_decoder.py, usage e.g. with the included telemetry packet from rhw_telemetry_samples/rhw_fsk_eps_beacon_from_orbit_96k.raw:

$ python3
>>> import hex_decoder
>>> hex_decoder.eps_to_json('71 01 07 00 C3 00 00 62 81 F8 00 5C AC 60 03 00 77 7A 35 00 8F 00 00 00 5E 00 00 00 0A 00 02 06 02 02 02 02 02 02 02 06 02 02 06 DE 72 01 00 C6 00 00 00 00 FE FF 03 00 77 00 BB 00 27 00 E0 05 07 05 FF 07 A5 0D 2E 00 05 00 97 01 01 00 F6 00 00 00 7A 08 B3 0C 03 00 00 00 7E 0A 18 0B B5 07 9D 08 C3 06 C3 06 00 04 00 3F 20 23 04 26 FD 7A AB FF B4 AC')
{
 "timestamp": 1543567489,
 "can_statistics": {
  "rx_frame_count": 221356,
  "tx_frame_count": 3504759,
  "error_count": 143
 },
 "eps_statistics": {
  "boot_count": 94,
  "periodic_boot_count": 10,
  "boot_reasons": [
   2,
   6,
   2,
   2,
   2,
   2,
   2,
   2,
   2,
   6,
   2,
   2
  ],
  "last_boot_reason": 6,
  "total_uptime_s": 94942,
  "uptime_s": 198,
  "memory_violation_reset_has_occured": false,
  "internal_temp": -2
 },
 "adc_statistics": {
  "spxp_curr": 3,
  "spxn_curr": 134,
  "spyp_curr": 211,
  "spyn_curr": 44,
  "sp_x_v": 5595,
  "sp_y_v": 4785,
  "bat_curr": -90,
  "bat_v": 8333,
  "uhf_curr_3v3": 32,
  "uhf_curr_5v": 3,
  "payload_curr": 288,
  "adcs_curr": -233,
  "gps_curr": 45,
  "obc_curr": -136,
  "sns_3v3": 3333,
  "sns_5v": 4993,
  "sns_12v_1": 13,
  "sns_12v_2": 0,
  "temp_sns1": 11,
  "temp_sns2": 8
 },
 "mppt_statistics": {
  "panels": [
   {
    "current_mppt_value": 1973
   },
   {
    "current_mppt_value": 2205
   }
  ]
 },
 "power_statistics": {
  "target_power_levels": {
   "raw": 1731,
   "structured": {
    "payload": 1,
    "gps": 1,
    "obc": 0,
    "adcs": 0,
    "battery_heater1": 0,
    "battery_heater2": 0,
    "charging": 1,
    "uhf_a": 1,
    "uhf_b": 0,
    "toggle_3v3": 1,
    "toggle_5v": 1,
    "antenna_deployment1": 0,
    "antenna_deployment2": 0
   }
  },
  "actual_power_levels": {
   "raw": 1731,
   "structured": {
    "payload": 1,
    "gps": 1,
    "obc": 0,
    "adcs": 0,
    "battery_heater1": 0,
    "battery_heater2": 0,
    "charging": 1,
    "uhf_a": 1,
    "uhf_b": 0,
    "toggle_3v3": 1,
    "toggle_5v": 1,
    "antenna_deployment1": 0,
    "antenna_deployment2": 0
   }
  },
  "state": 0,
  "reserved": 0
 },
 "subsystem_hearbeat_statistics": {
  "uhf_failures": 4
 },
 "antenna_statistics": {
  "deployment_sensed": 15,
  "deployment_rounds": 3
 }
}