-
Notifications
You must be signed in to change notification settings - Fork 0
Telemetry Overview
Definition: the process of recording and transmitting the readings of an instrument.
Telemetry is responsible for three main things:
- Transmitting data from the pod to the base station (e.g. sensor data)
- Visualising this data in our GUI
- Sending control messages to the pod from our GUI
We also have a public app: a simple React web app which displays basic pod data (e.g. displacement, velocity, levitation height, etc. but not more complex data like pressure or error reporting) for use by the public during a pod run.
We use Ubiquiti Rocket M2s to transmit data from the pod to the base station over the 2.4GHz band.
Internally, the pod uses MQTT to transmit messages between the various software components and controllers. This includes state transmission messages, sensor data and control messages. The Telemetry server subscribes to these messages, processes them, and displays this data on the GUI. See here for MQTT documentation.
The Telemetry GUI is
- OpenMCT
- React
The source of the Telemetry system is found under telemetry/, which contains different components of Telemetry. We use TurboRepo and PNPM on the top level.
All turbo tasks are defined in turbo.json, and the configuration for PNPM is in package.json and pnpm-workspace.yaml. The field packageManager in package.json is set to pnpm@9.5.0 for TurboRepo to pick up, and we define everything under package/ as different components of Telemetry in pnpm-workspace.yaml
./telemetry.sh dev -b -m