Skip to main content

Protocol

This page describes the native communications protocol with the device. It is binary based, with a small header, and no other requirements on the data.

By convention, most (if not all) endpoints accept and provide data that is CBOR encoded.

Header

All packets have a simple four byte header that precedes the payload, regardless of the underlying transport:

  • 1 byte: Message type
    • Indicates the "endpoint" inside the protocol handler that should receive this message
  • 1 byte: Tag
    • Can be used to differentiate multiple outstanding requests and their replies
  • 2 bytes: Length
    • Indicates the number of bytes of payload data that follow

Note that all multi-byte values in the header are sent in big endian (network) byte order.

Message Types

Below are all currently implemented message types/endpoints:

NumberNameDescription
0x01Property RequestGet/set various properties on the device