Configuration Protocol - alesskerbinek/FlightSimPanel GitHub Wiki

This is NMEA 0183 message formatted protocol using not standardized extended messages.

Short overview of NMEA 0183

Message structure

  • All transmitted data are printable ASCII characters between 0x20 (space) to 0x7e (~)
  • Data characters are all the above characters except the reserved characters (See next line)
  • Reserved characters are used by NMEA0183 for the following uses:
ASCII	Hex	Dec	Use
	0x0d	13	Carriage return
	0x0a	10	Line feed, end delimiter
!	0x21	33	Start of encapsulation sentence delimiter
$	0x24	36	Start delimiter
*	0x2a	42	Checksum delimiter
,	0x2c	44	Field delimiter
\	0x5c	92	TAG block delimiter
^	0x5e	94	Code delimiter for HEX representation of ISO/IEC 8859-1 (ASCII) characters
~	0x7e	126	Reserved
  • Messages have a maximum length of 82 characters, including the $ or ! starting character and the ending
  • The start character for each message can be either a $ (For conventional field delimited messages) or ! (for messages that have special encapsulation in them)
  • The next five characters identify the talker (two characters) and the type of message (three characters).
  • All data fields that follow are comma-delimited.
  • Where data is unavailable, the corresponding field remains blank.
  • The first character that immediately follows the last data field character is an asterisk, but it is only included if a checksum is supplied.
  • The asterisk is immediately followed by a checksum represented as a two-digit hexadecimal number. The checksum is the bitwise exclusive OR of ASCII codes of all characters between the $ and *, not inclusive. The checksum is optional for individual sentences.
  • ends the message.

Vendor extensions

Most GPS manufacturers include special messages in addition to the standard NMEA set in their products for maintenance and diagnostics purposes. Extended messages begin with "$P". These extended messages are not standardized.

Source: Wikipedia

Checksum

For testing checksum algorithms or test sentence genration the following website can be used: nmeachecksum.eqth.net.

FlightSimPanel Configuration protocol sentences

PINIT

Get

This sentence is used for requesting unit's factory set attributes. It takes no input parameters.

Format:

$PINIT,GET*30<CR><LF>

Set

This sentence is used during manufacturing process for setting factory attributes. It takes input parameters

Format:

$PINIT,SET,<serial>,<unit_type>*<CSUM><CR><LF>

Examples:

$PINIT,SET,2904,1*1A<CR><LF> - COM

$PINIT,SET,,2*16<CR><LF> - VOR

$PINIT,SET,2022,*26<CR><LF> - serial 2022

PFACT

Set

This sentence is used for resting the unit to factory defaults. It takes no input parameters.

Format:

$PFACT,SET*2E<CR><LF>

PSYS0

Get

This sentence is used for requesting unit's system telemetry. It takes no input parameters.

Format:

$PSYS0,GET*43<CR><LF>

PWIFI

Get

This sentence is used for reading Network/WiFi connection settings.

Format:

$PWIFI,GET*3B<CR><LF>

Set

This sentence is used for setting Network/WiFi connection parameters.

Format:

$PWIFI,SET,<SSID>,<password>,<local_port>,<remote_ip>,<remote_port>*<CSUM><CR><LF>

Example:

$PWIFI,SET,HomeNet,pass1234,2000,192.168.8.129,49000*70<CR><LF>

Debug and Error sentences

These sentences are being output from unit for testing and development purposes. These sentences does not contain checksum.

Debug

$PMDBG,NavCom unit started,v0.9.0<CR><LF>

Error

$PMERR,NMEA,size error - max 82<CR><LF>

Testing sentence examples

Following sentences can be used for testing units border case performance.

Wrong CSUM

$PINIT,GET*00<CR><LF>

Too many fields

$PINIT,GET,,,,,,,,,,,,,,,,,,,,,,,,,,,,,*00<CR><LF>

Oversize

$PINIT,GET,12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890*00<CR><LF>

⚠️ **GitHub.com Fallback** ⚠️