Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

chronocat_ground

Minimal PySide6 desktop chronocat_ground app for Chronocat firmware.

Features

  • Receives UDP telemetry on port 5005.
  • Connects to the firmware TCP command server on 192.168.1.50:5006.
  • Shows packet counter, firmware timestamp, flags, health, sensor masks, source address, packet count, and packet age.
  • Sends binary command packets for ping, telemetry on, telemetry off, and telemetry status.

Setup

uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e .

Use Python 3.12 for now. Python 3.14 is too new for reliable PySide6 wheel support, and the local Homebrew Python install may fail while bootstrapping pip.

Run

chronocat_ground

Or:

python -m chronocat_ground.main

Firmware Protocol

Telemetry UDP app payload, carried inside normal UDP/IP packets. Multi-byte fields are big endian.

Field                         Bytes
magic = 'CCTM'                4
version                       1
message_type                  1
flags                         2
payload_length = 101          2
packet_timestamp              4
counter                       4
health_code                   1
temperature_valid_mask        2
temperature_sensors_1_13     26  int16 centi-degrees C
os_adc_valid_mask             2
os_adc_readings_1_12         48  uint32 raw ADC counts
cots_dosimeter                4  uint32 placeholder/raw value

Payload size is 101 bytes. IPv4 and UDP headers are generated by LwIP and are not included in this app payload.

Flags:

bit 0 telemetry enabled
bit 1 TCP server listening

Masks:

temperature_valid_mask bit 0 = temperature sensor 1 valid
temperature_valid_mask bit 12 = temperature sensor 13 valid
os_adc_valid_mask bit 0 = OS ADC channel 1 valid
os_adc_valid_mask bit 11 = OS ADC channel 12 valid

TCP command request app payload, carried inside normal TCP/IP packets:

uint8  command
uint16 arg1    big endian
uint16 arg2    big endian

TCP command response app payload:

uint8  status
uint8  command
uint16 arg1    big endian
uint16 arg2    big endian

Commands:

0x01 ping
0x02 telemetry set
0x03 telemetry status

Values: Telemetry set uses arg1:

0x00 off
0x01 on

About

Repository for the Groundstation Python application of the CHRONO-CAT BEXUS project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages