PIDflight Lap Protocol
Notes
Getting started
Open serial connection to lap timing device(s).
Application issues
MSP_SET_DEVICE_ID to
all devices.
// Initialise all connected devices identifiers starting with 1
MSP.sendMessage(MSP.WILDCARD_DEVICE_ID, MSP.MSP_SET_DEVICE_ID, 1);
Each device found and initialised will return a response to MSP_SET_DEVICE_ID with the ID it has been initialised with.
Poll MSP_CURRENT_LAP to detect when a new lap has been recorded on the lap timer.
Poll MSP_STATUS to retrieve current status of the lap timer.
MSP codes
Name | Code | Description |
MSP_API_VERSION | 1 | Firmware API version |
MSP_STATUS | 4 | Device and lap timing status |
MSP_RESET | 5 | Resets device and lap timing state |
MSP_RSSI_CALIBRATE | 6 | Triggers RSSI calibration routine |
MSP_START | 7 | Starts lap timing |
MSP_ACTIVATE | 8 | Activates a lap timer device |
MSP_DEACTIVATE | 9 | Deactivates a lap timer device |
MSP_DEVICE_ID | 10 | Not used |
MSP_SET_DEVICE_ID | 11 | Triggers lap timing devices to assign an ID |
MSP_CHANNEL | 20 | Gets the channel frequency set on the lap timing device |
MSP_SET_CHANNEL | 21 | Sets the channel frequency on the lap timing device |
MSP_CURRENT_LAP | 30 | |
MSP_LAP_MIN_TIME | 34 | |
MSP_SET_LAP_MIN_TIME | 35 | |
MSP_LAP_MAX | 37 | |
MSP_SET_LAP_MAX | 38 | |
MSP_RSSI | 40 | |
MSP_RSSI_THRESHOLD | 42 | |
MSP_SET_RSSI_THRESHOLD | 43 | |
MSP_RSSI_FILTER | 44 | TBD |
MSP_SET_RSSI_FILTER | 45 | TBD |
MSP_EEPROM_WRITE | 250 | Persists settings to EEPROM for settings to survive a power cycle (if desired) |
MSP_API_VERSION
Part | Type | Description |
1 | UINT 8 | Major version |
2 | UINT 8 | Minor version |
Version is constructed as [PART 1][DECIMAL][PART2][DECIMAL][ZERO] (e.g. 2.6.0)
MSP_STATUS
Part | Type | Description |
1 | UINT 8 | Device state |
2 | UINT 8 | Timer state |
Device states
Value | State |
0 | Idle |
1 | Timing |
2 | Calibrating |
3 | Inactive |
Timer states
Value | State |
0 | Waiting |
1 | Start |
2 | Stop |