3.6.3 Radio Transmission

3.6 MSC Software Interface

3.6.3.1. Message Packet | 3.6.3.2. KISS TNC

There are 4 ports which data packets can be addressed to. Data will be transmitted if the port is enabled, the RF enable pin is high, and the temperature and voltage thresholds are ok.

Transmitting priority is given to the lowest port number.

Each port has specific number of packets it can store in its buffer. Each packet is stored without encryption and encoding applied. If settings are changed to a specific port while data is queued for transmission, the transmitted packets will use the current configuration. Each packet can be 1550 bytes long. This will allows for full size HDLC packets to be transmitted allowing for an Internet Protocol packet. Most users will have packets less than 300 bytes, 256 data bytes, to meet the AX.25 standard.

Packet Size Limits

Port 0: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes

Port 1: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes

Port 2: Max number of packets in buffer: 500, Max length of each packet: 1550 bytes

Port 3: Max number of packets in buffer: 1000, Max length of each packet: 1550 bytes


3.6.3.1. Message Packet

To send a basic ASCII message, start the frame with a colon or dollar sign and end with a carriage return. This will become the data field of the default AX.25 frame, as configured in 2.2.3. And example would be to send "Hello World".

Example Send :Hello World CR, CHAR: :Hello World CR,, HEX: 0x3A 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D

Example Send $Hello World CR, CHAR: $Hello World CR,, HEX: 0x24 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D

3.6.3.2. KISS TNC

The KISS TNC packet is tool to send an escaped AX.25 packet.

Element 3: The address field is as long as the user wants. In many applications, a 6 byte callsign and 1 byte SSID is used. In all cases, bit 0 of each byte is set as 0 except for the last byte of the address field. Callsigns are typically upper case alpha-numeric ascii characters and are only 7 bits long. Because bit 0 is to indicate the last address byte, each callsign character is shifted to the left by 1 bit.

SSID is a number ranging from 0 to 15 and typically follows the address characters. This number is shifted to the left 1 bit to allow for bit 0 to the last byte in the address field indication. The bits 5 and 6 are reserved and are left as 1. Bit 7 is the command bit and is set to 1 for the first callsign, the destination, and 0 for all additional callsigns.

This array should be frame escaped between the flags:

      • All bytes equal to 0xC0 should be frame escaped and be replaced with two bytes: 0xDB 0xDC

      • All bytes equal to 0xDB should be frame escaped and be replaced with 0xDB 0xDD

See the following 3.1, 3.2, 3.3, 3.4 as an example to define the source and destination callsigns and SSIDs.

Elements 1, 2: Header

Group: KISS Flag

Parameter: Transmit port desired for the change. Port 0: 0x00, Port 1: 0x10, Port 2: 0x20, Port 3: 0x30

Example HEX: 0xC0,0x10

Element 3.1: Specify the AX.25 Destination callsign (any length)(Remember Each Byte Must << 1)

Example Address CHAR: APRB00, DEC: 130 160 164 132 96 96, HEX 0x82 A0 A4 84 60 60

Element 3.2: Specify the AX.25 Destination SSID Properties as one byte

Control Bit (MSB) | Reserved | Reserved | SSID 1 | SSID 2 | SSID 3 | SSID 4 | HDLC Bit (LSB)

Example Binary: 1 1 1 0 0 0 1 0, HEX: 0xE2

Default Setup: Destination SSID 1, Control bit 1, HDLC bit 0

Element 3.3: Specify the AX.25 Source callsign (any length)(Remember Each Byte Must << 1)

Example Address CHAR: NOCALL, DEC: 156 158 134 130 152 152, HEX 0x9C 9E 86 82 98 98

Element 3.4: Specify the AX.25 Source SSID Properties as one byte

Control Bit (MSB) | Reserved | Reserved | SSID 1 | SSID 2 | SSID 3 | SSID 4 | HDLC Bit (LSB)

Example Binary: 0 1 1 0 0 0 1 0, HEX: 0x63

Default Setup: Source SSID 1, Control bit 0, HDLC bit 0

Element 4: Control Byte

HEX 0x03 = Unnumbered Information (UI)

Element 5: Protocol Byte

HEX 0xF0 = No Layer 3 Protocol Implemented

Element 6: Data, up to 255 bytes

Example CHAR: :Hello World CR, HEX: 0x3A 48 65 6C 6C 6F 20 57 6F 72 6C 64 0D

Element 7: End the Packet

End the packet with a KISS flag

Example 0xC0

Example Packet