RAIL Examples#

A number of examples are provided with Simplicity Studio and the Proprietary Flex SDK. Each example has an associated README that explains the purpose of the example and how to use it. Some of the examples have more extensive documentation, and that is included in this section. Because new examples are always being added, the GSDK may contain other examples not documented here.

Many of these examples are intended only to test specific aspects of the radio. They are not intended as a starting point for your own application, although they may contain code for some features you want to use. RAIL - SoC Empty is a recommended starting point.

RAIL - SoC Empty: The Empty Example application initializes RAIL to support a Single PHY radio configuration and defines an empty radio event handler. These are the necessary parts for every RAIL-based application.

RAIL - SoC Burst Duty Cycle: The Burst Duty Cycle example is a complete duty cycle solution implemented on top of RAIL. It implements both the Master (sender) and the Slave (listener) nodes. In receive mode the device spends most of the time in sleep state (EM1 or EM2) and wakes up periodically for short periods. In transmit mode the device transmits multiple packets in quick succession. This application can be used to optimize radio configuration and designing LDC (Low Duty-cycle) periods on the receiver in order to save as much energy as possible without PER (Packet Error Rate) reduction.

RAIL - SoC Long Preamble Duty Cycle: The Long Preamble Duty Cycle example is a complete duty cycle solution implemented on top of RAIL. This example supports both receive and transmit modes. In receive mode the device spends most of the time in a sleep state (EM1 or EM2) and wakes up periodically for a short periods. In transmit mode the device transmits one packet using long preamble. The low duty cycle mode of the EFR32 radios is a simple and effective way to reduce the current consumption of the system by autonomously waking up the receiver to look for transmitted packets, while the MCU remains in its lowest power mode.

RAIL - SoC Energy Mode: The Energy Mode example application serves as a complete, ready-to-use program with which you can accelerate the evaluation of the of energy consumption on your custom radio design by iterating over the available energy modes or using Tx/Rx radio operations.

RAIL - SoC Simple TRX: The Simple TRX example demonstrates the simplest exchange of transmit and receive operations between two nodes implemented in RAIL. It can be used to set up a simple link test, where the nodes are listening except for the short periods where packet transmission takes place.

RAIL - SoC Simple TRX with Auto-ACK: The Simple TRX with Auto-ACK example demonstrates how RAIL's Auto-ACK feature works. It can be used to set up a simple link test that requires Auto-ACK functionality.

RAIL - SoC Simple TRX Standards: The Simple TRX Standards example demonstrates the simplest packet exchange of transmit and receive operations between two nodes implemented in RAIL compatible with Bluetooth LE, IEEE 802.15.4 (2.4 GHz only) and IEEE 802.15.4g (subGHz only) standards. It can be used to set up a simple link test, where the nodes are listening except for the short periods where packet transmission takes place.

RAIL - SoC RAILtest: The RAILtest application (RAILtest) is a simple tool for testing the radio and the functionality of the RAIL library. It is fully documented in the RAILtest User's Guide (UG409).

RAIL - SoC Range Test: Range Test is a standalone test application that creates a radio link between devices and sends a predefined number of packets from the transmitter side to the receiver. The Range Test demo implements packet error rate (PER) measurement. PER is a commonly-used technique for measuring the quality of RF links in wireless systems under particular conditions. Range Test applications are documented in Flex SDK v3.x Range Test Demo User's Guide (UG471).

RAIL - SoC Wireless M-bus Meter and Collector: Wireless M-bus applications are documented in Using RAIL for Wireless M-Bus Applications with EFR32 (AN1119).