Configuration Protocol
Exact PID keys, ranges, validation, ownership, persistence, and acknowledgement behavior in v1.
# PID configuration message
Firmware v1.0.0 accepts partial PID updates through the WebSocket. A packet is treated as PID configuration when type or cmd is pid , or when it contains a supported PID key.
{"type":"pid","request_id":17,"kp_roll":1.20,"ki_roll":0.03,"kd_roll":8.0,"kp_yaw":2.0}request_id is echoed in the response. Legacy requests may use zero, but new clients should send a positive identifier for deterministic correlation.
# Supported keys and ranges
Swipe horizontally to see all columns.
| Group | Keys | Valid range |
|---|---|---|
| P | kp_roll , kp_pitch , kp_yaw , kp_alt | 0…50 |
| I | ki_roll , ki_pitch , ki_yaw , ki_alt | 0…10 |
| D | kd_roll , kd_pitch , kd_yaw , kd_alt | 0…500 |
If a Roll key changes while the corresponding Pitch key is omitted, the v1 firmware mirrors that new Roll value to Pitch. Explicit Pitch keys override that convenience behavior.
# Validation, ownership, and persistence
# PID acknowledgement
{"type":"pid_ack","request_id":17,"ok":true,"message":"pid_saved_and_applied"}Treat ok as authoritative. The stable short message code explains rejection or persistence failure and should be surfaced for diagnostics instead of silently assuming success.