Skip to content

SerialProtocol

neoxic edited this page Nov 11, 2024 · 1 revision
  • 460800 baud, 8 data bits, no parity, 1 stop bit.
  • Update rate is 40Hz or higher.
  • Inbound frame format:
    • Byte0: descriptor
      • Low nibble: value type
        • 0x0: none
        • 0x1: throttle [-2000..2000]
        • 0x2: reversed motor direction [0..1]
        • 0x3: drag brake amount [0..100]
        • 0x4: LED on/off bits [0..15]
      • High nibble: request type
        • 0x0: none
        • 0x8: combined telemetry
        • 0x9: electrical revolution time (µs)
        • 0xA: ESC temperature (˚C)
        • 0xB: motor temperature (˚C)
        • 0xC: voltage (V/100)
        • 0xD: current (A/100)
        • 0xE: consumption (mAh)
    • Byte1: value (low byte)
    • Byte2: value (high byte)
    • Byte3: CRC8 (byte0..byte2)
  • Outbound frame format:
    • Combined telemetry (0x8):
      • Byte0: ESC temperature
      • Byte1: motor temperature
      • Byte2: voltage (low byte)
      • Byte3: voltage (high byte)
      • Byte4: current (low byte)
      • Byte5: current (high byte)
      • Byte6: consumption (low byte)
      • Byte7: consumption (high byte)
      • Byte8: electrical revolution time (low byte)
      • Byte9: electrical revolution time (high byte)
      • Byte10: CRC8 (byte0..byte9)
    • Individual telemetry values (0x9..0xE):
      • Byte0: value (low byte)
      • Byte1: value (high byte)
      • Byte2: CRC8 (byte0..byte1)
Clone this wiki locally