# Telemetry and Command API

## Transport

- Primary transport: Serial text lines terminated by newline.
- Simulator mode transport: TCP newline-delimited text lines.

## Telemetry Packet (Long)

Format:

altitude;baro_apogee;acc_x;acc_y;acc_z;gyro_x;gyro_y;gyro_z;battery;temperature;state;rogallo;rw

Fields:

1. altitude (float, meters)
2. baro_apogee (float, meters)
3. acc_x (float, m/s^2)
4. acc_y (float, m/s^2)
5. acc_z (float, m/s^2)
6. gyro_x (float, deg/s)
7. gyro_y (float, deg/s)
8. gyro_z (float, deg/s)
9. battery (float, volts)
10. temperature (float, celsius)
11. state (string code)
12. rogallo (0 or 1)
13. rw (reaction wheel command/speed)

## Telemetry Packet (Short)

Format:

altitude ; baro_apogee ; state

Used by simulator short mode.

## State Codes

- NR: NOT_READY
- ID: IDLE
- AR: ARMED
- AS: ASCENDING
- DR: DROGUE
- MA: MAIN
- LA: LANDED

## Firmware Commands

- SET_STATE:<ID|AR|AS|DR|MA|LA|NR>
- ROGALLO:<0|1>
- RW_ENABLE:<0|1>
- RW_SPEED:<integer -255..255>
- PING

Firmware acknowledgements:

- ACK:STATE_SET
- ACK:STATE_BAD
- ACK:ROGALLO_SET
- ACK:RW_ENABLE_SET
- ACK:RW_SET
- ACK:PONG
- ACK:UNKNOWN

## Simulator Commands

- SET_STATE:<ID|AR|AS|DR|MA|LA|NR|AUTO>
- ROGALLO:<0|1|AUTO>
- RW_SPEED:<value|AUTO>
- MODE:<short|long>
- RATE:<1..50>
- RESET
- HELP

Simulator acknowledgement format:

ACK:<response>

## CSV Logging Schema

Fields:

timestamp, altitude, baro_apogee, acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z, battery, temperature, state, rogallo, rw

Timestamp format: ISO-8601 local time string from dashboard host.
