# Radio Link Layer specification

Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (opens new window).

# Overview

The physical channel is a shared channel, so access to the physical channel is contended. Multiple End Devices are allowed to send data at the same time. Collisions MAY therefore occur. Listen Before Talk SHOULD be used if possible.

# Device classes

There are three device classes defined:

Class Description
A Low Power, sleepy End Devices. Aloha*
B Low power, time-slotted network
C Always-on End Devices

# Physical layer packet format

The physical layer packet format is specifically designed to be vendor-neutral and support many cheap commercial off-the-shelf transceivers.

Preamble Sync word Len
1 byte
MAC frame
3-N bytes
CRC
2 bytes

The protocol consists of a link layer, a MAC layer, a Transport layer and a application layer. It is designed for being encrypted and secure but does allow for unencrypted content to be transported.

Preamble, sync header and frame length are frequency specific. Details can be found below.

# Sub-GHz specific

MAC Frame Payload max-length is 61 bytes. This is so that many older transceivers with 64-byte-fifo is able to fit the frame.

Sub-GHz preample and sync length:

Name Length Value
Preamble 4 bytes 0101...
Sync word 4 bytes 0xBBBBBBBB

# 2.4 GHz - specific

MAC Frame Payload max-length is 125 bytes as the transceivers are newer and more cable than their sub-GHz counterparts.

Preamble and sync values for 2.4 GHz are:

Name Length Value
Preamble 3 bytes 0101...
Sync word 2 bytes 0xBBBB

# CRC

MittoNet uses CRC-16 with the polynomial 0x8005:

  • Polynom : x16 + x15 + x2 + 1 (0x8005)
  • Initialization: 0xFFFF
  • no input byte reversal
  • no output byte reversal
  • no XOR

This polynomial is supported by major MCU and transceiver vendors.

# Sending data to a Class A End Device

Class A devices can send data unacknowledged (unreliable) or acknowledged (reliable). The reliable protocol supports birectional communication while the unreliable protocol does not. Data to the End Device MUST be delivered to the Gateway which will then forward to the data to the End Device the next time it connects.

# Device to Device communication

End Devices are assigned a network address once they joined the network. While this allows for device-to-device communication, it does not specify how authenticity is verified and how authorization takes place. This is left to the Application protocol to decide.

# Data rate

Data rate is fixed. A Gateway MAY support multiple physical channels with different speeds.

# Channels

Channels are fixed and are numbered from 1 to 250. A channel is characterized by the following parameters

  • Encoding (2-FSK)
  • Symbol rate
  • Frequency

A list of MittoNet channels can be found on MittoNet.org (opens new window).

# Modulation

The following modulation types are available:

  • 2-FSK with gaussian filter value of 0.5

# End Device MAC layer

Many of-the-shelf transceivers and wireless MCUs that support FSK modulation, has a packet-hander built in. The usual supported packet-format is: - preamble - sync-word - length - address - payload - CRC. The MittoNet protocol has been designed to take advantage of this industri packet-format standard and is extending it with MAC-layer and application layer features.

# Packet structure overview

All packets are carried in the PHY payload.

PHY packet:

Preamble Sync Len
1 byte
MAC frame CRC
2 bytes

# MAC frame

FDAddr
1 byte
FSAddr
1 byte
FHdr
1 byte
MAC Frame Payload
0-N bytes

# Frame Address (FDAddr)

This field contains the physical layer destination address.

# Frame Address (FSAddr)

This field contains the physical layer source address.

# Header (FHdr)

The FHdr is short for Frame Header and contains the type of frame and version information:

FVer [7:6] RFU[5:4] FProto [3:0]
# Frame Version header (FVer)
FVer Description
0 Version 1
1 - 3 Reserved
# Frame protocol (FProto)

Type is the MAC frame type. The following table describes the options:

FProto Description
0 Network Join protocol
1 Service Discovery protocol
2 Reliable protocol (RP)
3 Unreliable protocol (UP)
4 Generic Broadcast protocol
5 - 13 Reserved
14 Blackhole protocol*
15 Reserved

* The Blackhole Protocol number (14) is private to the network and can be used for proprietary implementations.

# Mac Frame Payload

The TType field specifies the type of transport layer carried in the MAC payload.

Last Updated: 5/15/2021, 12:02:32 PM