Skip to main content
Firmware Stable

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

ByteTypeDescription
0UINT_8Controller address (255 = broadcast)
1-Bits 0-3: operation code
Bits 4-7: session id
2UINT_8Operation code index
3UINT_8Operation code subindex
4-7-Data payload

Command Response (0x640 + controller_address)​

ByteTypeDescription
0UINT_8Host address (255 = broadcast)
1-Echo of request byte 1
2-Echo of request byte 2
3UINT_8Message index (255 = last message)
4-7-Data payload

Operation Codes​

CodeOperation
1Read parameter
2Write parameter
3Load backup parameter / Read metadata
4Write metadata (reserved)
5Issue command
6Load 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 RangeDescription
0-10Map number
15Map options
16Gear options
20-255Reserved parameters

Map Parameters (Sub-indexes)​

Sub-indexParameterType
1kphFloat
2pwrFloat
3trqlvlFloat
4accvlvFloat
5paslvlFloat
6pastrqFloat
7comlvlFloat
8sbrakelvlFloat

Map Options (Index 15, Read-only)​

Sub-indexParameterType
1kphlimitFloat
2pwrlimitFloat
3restmapcntUINT8
4mapcntUINT8

Gear Options (Index 16)​

Sub-indexParameterType
1gearthrFloat
2odothrFloat

Metadata Operations​

For character data, response subindex increments per message (255 = final)

IndexMetadataType
1Usrcalib DevNameChar
2Usrcalib DevSNChar
3-12Usrcalib DevIdXINT_32
20Device SN12x Char
21SWIDChar
22HWIDChar
30SWID hashUINT32
31Config hashUINT16

Command Operations​

IndexCommandSub-indexResponse
1Lock device-0 = success
2Unlock device-0 = success
3Change mapMap number or:
-1 = NEXT map
-2 = RELOAD current map parameters
-3 = PREVIOUS map
Positive value -> selected map number.
Negative value -> error:
-1 = no change, map already loaded
-2 = map number out of range
-3 = mapcnt not set
-4 = unknown command
4Reset trip counter-0 = success
5Shutdown-Shuts down the controller after 3 seconds
20Save parameters-0 = success, 1 = error
21Load main parameters-0 = success, 1 = error
22Load backup parameters-0 = success, 1 = error
50Execute identrun-0 = success, 1 = identrun not allowed at the moment, bike is not at STANDBY or BRAKE mode
90Play songSong indexSong play result
91Stop song-0 = success
warning

Parameter load/save operations disable motor controller for ~1s. Avoid during motor operation.

tip

Backup Parameter Usage:

  1. Store backup parameters during production
  2. Allow user parameter changes in main memory
  3. Enable parameter restore from backup when needed