TableOfContents

Protocol

  • The protocol is based on individual serial data frames that are organized as shown in the following table.

Start-Byte

Address-Byte

ID-Byte

n Data-Bytes coded

CRC-Byte1

CRC-Byte2

Stop-Byte

'#'

variable

'V','D' etc

"modified-base64"

variable

variable

'\r'

Commands

  • The Commands based on the dataframes above are listed [:en/SerialCommands:here]

Slave Adresses

  • Since Navi 0.12h FC 0.71f Mag 0.19 there are constant SlaveAdresses:

Slave-Address

Part

1

FC

2

NC

3

MK3MAG

Data Format

  • /!\ ToDo: describe data-format

Checksum

  • unsigned int tmpCRC = 0; BR for(int i = 0; i < DataBufferLength;i++)BR { tmpCRC += DataBuffer[i]; } BR tmpCRC %= 4096; BR CRC1 = '=' + tmpCRC / 64; BR CRC2 = '=' + tmpCRC % 64;BR

  • /!\ ToDo: describe checksum calculation verbaly

Links

Implementations

  • Sometimes its a lot more easy to look at code rather than reather than to look at Specifications/Documentation:
  • uart.c in the Flight-Ctrl Firmware ( C )
  • MKCommunicator.java from ["DUBwise"] ( Java / J2ME )
  • mktool.cpp @ ["QMKGroundStation"] ( C++ )
  • GroundStation ( LabView )