IOT Communication Protocol
info
Protocol Specifications:
- All messages use little-endian format
- Fixed DLC of 8 bytes for all messages
- Host: IOT device connecting to controller
- Controller: siliXcon controller running LYNX firmware
tip
Configuration Guidelines:
- Recommended host address = 7
- Default controller address = 0 (broadcast = 255)
- Multiple controllers require unique addresses
Message Structure
Command Request (0x630 + host_address)
Reserved IDs: 0x630-0x637
| Byte | Type | Description |
|---|---|---|
| 0 | UINT_8 | Controller address (255 = broadcast) |
| 1 | - | Bits 0-3: operation code Bits 4-7: session id |
| 2 | UINT_8 | Operation code index |
| 3 | UINT_8 | Operation code subindex |
| 4-7 | - | Data payload |
Command Response (0x640 + controller_address)
| Byte | Type | Description |
|---|---|---|
| 0 | UINT_8 | Host address (255 = broadcast) |
| 1 | - | Echo of request byte 1 |
| 2 | - | Echo of request byte 2 |
| 3 | UINT_8 | Message index (255 = last message) |
| 4-7 | - | Data payload |
Operation Codes
| Code | Operation |
|---|---|
| 1 | Read parameter |
| 2 | Write parameter |
| 3 | Load backup parameter / Read metadata |
| 4 | Write metadata (reserved) |
| 5 | Issue command |
| 6 | Load parameters |
Parameter Operations
For read operations, leave request data null. Write operations return actual set value in response. Message index 255 indicates non-existent parameter/map.
tip
Parameter data types match emGUI specifications
Parameter Indexes
| Index Range | Description |
|---|---|
| 0-10 | Map number |
| 15 | Map options |
| 16 | Gear options |
| 20-255 | Reserved parameters |
Map Parameters (Sub-indexes)
| Sub-index | Parameter | Type |
|---|---|---|
| 1 | kph | Float |
| 2 | pwr | Float |
| 3 | trqlvl | Float |
| 4 | accvlv | Float |
| 5 | paslvl | Float |
| 6 | pastrq | Float |
| 7 | comlvl | Float |
| 8 | sbrakelvl | Float |
Map Options (Index 15, Read-only)
| Sub-index | Parameter | Type |
|---|---|---|
| 1 | kphlimit | Float |
| 2 | pwrlimit | Float |
| 3 | restmapcnt | UINT8 |
| 4 | mapcnt | UINT8 |
Gear Options (Index 16)
| Sub-index | Parameter | Type |
|---|---|---|
| 1 | gearthr | Float |
| 2 | odothr | Float |
Metadata Operations
For character data, response subindex increments per message (255 = final)
| Index | Metadata | Type |
|---|---|---|
| 1 | Usrcalib DevName | Char |
| 2 | Usrcalib DevSN | Char |
| 3-12 | Usrcalib DevIdX | INT_32 |
| 20 | Device SN | 12x Char |
| 21 | SWID | Char |
| 22 | HWID | Char |
| 30 | SWID hash | UINT32 |
| 31 | Config hash | UINT16 |
Command Operations
| Index | Command | Sub-index | Response |
|---|---|---|---|
| 1 | Lock device | - | 0 = success |
| 2 | Unlock device | - | 0 = success |
| 3 | Force map | Map number | 0 = success |
| 4 | Reset trip counter | - | 0 = success |
| 20 | Save parameters | - | 0 = success, 1 = error |
| 21 | Load main parameters | - | 0 = success, 1 = error |
| 22 | Load backup parameters | - | 0 = success, 1 = error |
| 50 | Execute identrun | - | 0 = success |
warning
Parameter load/save operations disable motor controller for ~1s. Avoid during motor operation.
tip
Backup Parameter Usage:
- Store backup parameters during production
- Allow user parameter changes in main memory
- Enable parameter restore from backup when needed