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