This document contains preliminary information on the binary communications protocol used
by MGL Avionics VHF airband V16 transceivers.
MGL Avionics does not guarantee correctness of this document. MGL Avionics reserves the
right to change any part of the specification at any time without notice.
The legal stuff
The text in this document is provided in good faith and not subject to written and signed NDA
agreements.
A legal entity implementing this protocol or parts of this protocol agrees to hold MGL Avionics
CC free of liability for any and all consequent liability or claims arising out of use of any and all
information made available in this document.
Any entity making use of this information does so at their own risk and liability.
These conditions are not negotiable and will not be waived. Should the entity not accept these
conditions MGL Avionics does not grant the right to use any of this information in any way.
Usage of this information constitutes acceptance of a legally binding contract in the spirit of
information placed in the public domain for the common good. It follows that any action
against MGL Avionics CC in this context is considered a breach of contract immediately
negating the right to use this information.
General
Communications takes place via RS232 or via CAN bus or both
RS232 settings
9600 Baud
8 Data bits
1 Stop bit
No parity
CAN bus settings
11 bit identifiers
250KBaud
The transceiver transmits regular status messages containing sufficient information to build a
typical display image. The status message is transmitted every 100mS. During special
conditions the status message is sent every 200mS inter spaced with a setup information or
technical information message every 200mS (so the overall message rate remains at
100mS).
Page 4
Messages to the transceiver consist of commands. Most commands result in transmission of
an acknowledgment when the command has been received with a matching checksum.
Exceptions to this are the PTT command (no response).
PTT command has to be sent every 100 mS to keep PTT active.
Command messages containing frequency request that are not within the permitted airband
or illegal channel frequencies are ignored and not acknowledged.
The V16 provides two RS232 ports and one CAN bus. Only RS232 port 1 supports this
protocol. RS232 port 2 is reserved for special functions.
Frequencies
Frequencies are transmitted as 4 byte unsigned integer values in the RS232 protocol and 3
byte integer values in the CAN bus protocol,
Frequency values consist of MHZ and 100's of Khz plus a channel number within the 100Khz
band.
Values N=0-15 give the channel where channels 1,2,3,5,6,7,9,10,11,13,14,15 are 8.33Khz
channels and 0,4,8,12 are the 25Khz spaced channels.
Using published frequencies 8.33Khz channels from 0 to 15 correspond:
8.33Khz channel 120.235Mhz = 120206 (actual frequency 120.233333 MHZ)
Page 5
Note that 4 channels operate on two identical frequencies (0,25,50,75) and (5,30,55,80)
respectively. The V16 switches internal RX and TX bandwidths accordingly so be sure to
request the correct version as needed.
RS232 protocol
General message format:
02STX
05DLE
CCCommand
D01 to n bytes of data
...
Dn
CKSChecksum
Checksum is a linear XOR of the message contents from Command to the last data byte.
The result of this is XOR'ed with the value of $55.
This form of checksum is also known as longitudinal checksum or 8 bit parity.
Note: This protocol is based on the protocol used by the MGL Avionics V6 and V10
transceivers. Note that the commands and status messages are not all identical.
Example RS232 message to set standby frequency (values are in HEX)
02 05 01 18 F0 01 00 E8
The value E8 is the checksum and the frequency requested is 127.000 MHZ (0x1F018).
Commands:
00Set active frequency
D0Frequency, binary, LSB first
....Sets frequency if TX is not active, if active will cause change of frequency
D3to new value when TX ends.
Note: Frequency must be a valid frequency. Invalid frequencies will be ignored and no
acknowledge will be sent for the message.
Sends acknowledge when message received OK
01Set standby frequency
D0Frequency, binary, LSB first
....
D3
Page 6
Note: Frequency must be a valid frequency. Invalid frequencies will be ignored and no
acknowledge will be sent for the message.
Sends acknowledge when message received OK
02Increase RX and Intercom volume (3dB), If they are different they will be set to
the same value as the intercom volume.
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
03Decrease RX and IC volume (3dB), If they are different they will be set to
the same value as the intercom volume.
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
04Set RX and Intercom volume
00Volume value 0-31 (lowest to highest)
Sends acknowledge when message received OK
05Increase squelch
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
06Decrease squelch
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
07Set squelch
00Squelch value 0-31 (lowest to highest)
Sends acknowledge when message received OK
08Set scanning on/off
000 = scanning off
1 = scanning on
Sends acknowledge when message received OK
09Playback request
00Don't care data value (recommend to set to zero)
Note: If this message is received while playback of last RX is not active, it will activate
Page 7
playback of the last RX. If it is received while a playback is active the playback pointer moves
to the message before that and so forth until the last stored message. If no message is
available for a request playback terminates (Playback also terminates at any time if a new RX
is received).
Sends acknowledge when message received OK
11PTT
00Bit 0 = Pilot PTT. 1=active, 0=not active
Bit 1 = PAX PTT. 1-active, 0=not active
This message must be sent every 100 mS to keep a PTT active. It will timeout and cancel any
active PTT after 300mS if no further PTT command is received.
When the PTT is to be released it is recommended that at least one message is sent with the
corresponding PTT bit set to zero so the TX is released immediately.
There is no need to send this message when no PTT is active.
This command does not reply with an acknowledge message !!!
18Flip active and standby frequencies
00Don't care (recommend to set to zero)
Sends acknowledge when message received OK
20Setup menu control
nn0: Setup de-activate (power on state)
1: Setup activate
2: Menu up (previous item) – wraps to end of menu.
3: Menu down (next item) = wraps to start of menu.
4: Change value of current menu item UP, ON, YES or flip state
5: Change value of current menu item DOWN, OFF, NO or flip state
6: Technical setup de-activate (power on state)
7: Technical setup activate
If the V16 is placed in setup menu mode it will automatically cancel this mode if no activity
within 60 seconds related to the Menu.
If the menu is active the Setup menu message will be sent every 200mS interspaced with the
normal status message. The Setup message contains information on the nature of the current
setup item and an ascii text message suitable for display on a control head or EFIS. The
control head does not require any specific knowledge of the attached device. It simply
activates the menu and displays the text to the user. The user navigates the menu and
changes values using the above commands.
Technical setup should never be entered without detailed knowledge and required special
equipment. The Technical menu includes a number of calibration items that should never be
changed during the life of the V16 unless certain repairs have been carried out. DO NOT
CHANGE ANY OF THESE ITEMS unless you have the required equipment and knowledge of
Page 8
the procedures required.
No acknowledge is sent in response to these commands
26Increase Intercom volume (3dB).
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
27Decrease intercom volume (3dB).
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
28Set Intercom volume
nnVolume value 0-31 (lowest to highest)
Sends acknowledge when message received OK
29Increase RX volume (3dB).
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
30Decrease RX volume (3dB).
00Don't care data value (recommend to set to zero)
Sends acknowledge when message received OK
31Set RX volume
nnVolume value 0-31 (lowest to highest)
Sends acknowledge when message received OK
Format of Acknowledge message (sent by transceiver)
$02 $05 $06 $53 (full message including checksum)
Format of status message (sent by transceiver every 100mS unless setup
menu is active)
02STX
05DLE
04Message type
nn Flags
Bit 0 – 1 = TX is active
Bit 1 – 1 = Scanning is active
Page 9
Bit 2 – 1 = RX on active frequency
Bit 3 – 1 = RX on standby frequency
Bit 4 – 1 = Stuck PTT (PTT active for more than 34 seconds, TX canceled)
nnStatus
Bit 0 – 1 = Fault detected
Bit 1 – 1 = Partial shutdown due to unfavorable operating condition
Bit 2 – 1 = TX power reduced due to heat
Bit 3 – 1 =TX Power reduced due to low operating voltage
Bit 4 – 1 = Bad antenna match, TX power possibly reduced
Note: TX related flags are only active during TX
nnCurrent RX volume 0-31
nnCurrent Intercom volume 0-31
nnCurrent squelch 0-31
n0Active frequency (4 bytes, LSB first)
....
n3
n0Standby frequency (4 bytes, LSB first)
....
n3
nnTX power measured at RF connector via directional coupler in 10th of a watt.
nnVSWR measured via directional coupler in 10th of a unit at RF connector.
nnRX signal level on active frequency in dBm relative to -140dbm.
nnRX signal level on standby frequency in dBm relative to -140dbm. Note: Only
valid is scanning is active.
nnTX modulation level 0-63 (63 equals about 70% modulation index)
nnTemperature at TX power stage in degrees C relative to -50 degrees.
nnSupply voltage in 10th of a volt relative to +5.0 volts.
CKSChecksum
Format of the Setup menu message (sent every 200mS if setup menu
active)
02STX
05DLE
01Message type
nnLength of this message
nnSetup type
nnMinimum permitted value
nnMaximum permitted value
nnCurrent value
xxString of ascii characters preceeded by a byte containing number of ascii
characters in string.
CKSChecksum
Setup types: 0 Setup has no value to change. For example, “set to factory default”. In
this case you could send Menu command “menu item UP” to activate the
function.
1The most common. Minimum and maximum values are valid and you can
Page 10
change the value using the Up and Down commands.
2This is not currently used. Treat as reserved value.
3Menu item flips between two states. Use either UP or Down to select the
desired state.
Length of this message field – This field contains the number of bytes in the message
excluding the STX, DLE, Message type, length of message and checksum. It works out to
the number of ASCII characters in the string + 5. It is used by the receiver to count the
number of bytes until end of message.
Note that the string itself contains as first byte the number of characters in the string (Pascal
“Shortstring” format).
Technical string
This message is sent on condition to convey further information. It is only used during
technical work using dedicated diagnostics equipment.
02STX
05DLE
02Message type
nnNumber of ASCII characters in string
xxASCII characters of string
CKSChecksum
CAN bus protocol
The CAN bus protocol is a duplication of the information on the RS232 protocol packaged into
suitable CAN message packets. Each packet may contain up to 8 bytes of data.
CAN packets are identified by address in a CAN network. The address scheme used
conforms to the 11 bit message ID standard CAN protocol as well as to the scheme used with
MGL Avionics CAN bus equipment.
The ID takes the value 0x44n for COM1 and 45n for COM2 where “n” can be a value from 0
to 15 depending on message type. Setting a V16 to COM1 or COM2 is done via dedicated
CAN command described in this section.
The MGL addressing scheme uses the upper 7 bits of the ID as device identifier and the lower
4 bits to identify specific functions or message types local to that device.
Messages from the V16
Status message
The status message is split over 3 packets send in order every 100mS or 200mS if the menu
is active.
For a description on each item please refer to the text in the RS232 protocol related to the
status message.
Page 11
ID 0x4n0Status packet 1, length 8 bytes
Byte 0Message type = 0
Byte 1Flags
Byte 2Status
Byte 3RX Volume
Byte 4Intercom Volume
Byte 5RX Squelch
Byte 6TX power
Byte 7VSWR
ID 0x4n0Status packet 2, length 7 bytes
Byte 0Message type = 1
Byte 1-3Active frequency, three bytes, LSB first
Byte 4Active frequency RX level
Byte 5Standby frequency RX level
Byte 6Modulation index
ID 0x4n0Status packet 3, length 6 bytes
Byte 0Message type = 2
Byte 1-3Standby frequency, 3 bytes, LSB first
Byte 4Temperature
Byte 5Voltage
Menu item message
The menu item message is sent every 200mS as a block of packets in order alternating with
the status messages.
The menu message is sent only if the menu is active. For details please see the description in
the RS232 protocol related to the menu system.
ID 0x4n1Menu packet 1, length 8 bytes
Byte 0Message type = 0
Byte 1Setup type
Byte 2Minimum value
Byte 3Maximum value
Byte 4Current value
Page 12
Byte 5Length of ascii string in bytes
Byte 61st character of string
Byte 72nd character of string
ID 0x4n1Subsequent menu packet(s), length 2 to 8 bytes
Byte 0Message type – 1,2,3,4,5 (maximum 31 characters in string, 7 per packet)
Byte 1-7Remaining characters of string to a maximum of 7 characters.
Technical string
This message is sent on condition to convey further information. It is only used during
technical work using dedicated diagnostics equipment.
ID 0x4n2Subsequent menu packet(s), length 2 to 8 bytes
Byte 0Message type – 0
Byte 1Length of string in bytes
Byte 2-7Up to 6 characters of string
ID 0x4n2Subsequent technical text packet(s), length 2 to 8 bytes
Byte 0Message type – 1-9 (maximum 63 characters in string, 7 per packet)
Byte 1-7Remaining characters of string to a maximum of 7 characters.
Messages to the V16
V16 controllers use the assigned CAN ID 0x48n where “n” is a message type identifier.
Multiple control heads will use the SAME ID.
ID 0x480Length variable (minimum 1 byte)
Byte 0Command ID
Byte 1-7Optional data for command
Note: the V16 checks the length of a received CAN packet and will only accept packets that
have the correct length for a given command. Do not pad a packet. Send it at the correct
length.
Command Length Function
04Set active frequency (three bytes, LSB first)
14Set standby frequency (three bytes, LSB first)
Page 13
21Flip active and standby frequencies
31RX and intercom volume UP 3db
41RX and intercom volume DOWN 3db
52Set RX and intercom volume. Value 0-31.
61RX volume UP 3db
71RX volume DOWN 3db
82Set RX volume. Value 0-31.
91Intercom volume UP 3db
101Intercom volume DOWN 3db
112Intercom volume. Value 0-31.
121RX Squelch UP
131RX Squelch DOWN
142Set RX Squelch. Value 0-31.
152Set scanning. 0 = inactive, any other value = active.
161Flip scanning state (active ↔ inactive)
172PTT activation. Bit 0 = PTT Pilot. Bit 1 – PTT PAX. 1=active.
Please see RS232 protocol description on this for details.
182Setup menu functions. Please see RS232 protocol description for
details on this.
191,2,6Beep control. Activates a beep tone sequencer for headset output.
If length 1 = single beep, 40mS
if length 2 = if data=0 then stop any beep active.
If length 6 = First data byte = 1, bytes 2,3,4,5 are beep pattern, LSB
first, Each “1” is beep active. Data byte 6 is duration of every bit in
pattern in milliseconds. Pattern play starts with bit 0 of pattern.
201Playback function. Please see description in RS232 protocol on this
function.
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.