RAIL Fundamentals#

NOTE: This section replaces UG103.13: RAIL Fundamentals. Further updates to this user guide will be provided here.

The Silicon Labs RAIL (Radio Abstraction Interface Layer) library provides an intuitive, easily-customizable radio interface layer that supports proprietary or standards-based wireless protocols. RAIL is designed to simplify and shorten the development process. Developers no longer have to deal with hundreds of registers across multiple products, but can instead rely on a unified software API. RAIL, delivered through the Silicon Labs Flex SDK (Software Development Kit), also makes applications portable across Silicon Labs wireless products.

Silicon Labs’ Fundamentals series covers topics that project managers, application designers, and developers should understand before beginning to work on an embedded networking solution using Silicon Labs chips, networking stacks such as EmberZNet PRO or Silicon Labs Bluetooth, and associated development tools. These guides can be used as a starting place for anyone needing an introduction to developing wireless networking applications, or who is new to the Silicon Labs development environment. Proprietary is supported on all EFR32FG devices. For others, check the device's data sheet under Ordering Information > Protocol Stack to see if Proprietary is supported. In Proprietary SDK version 2.7.n, Connect is not supported on EFR32xG22.

Even with the many wireless standards available, proprietary wireless is still the only option to communicate with legacy, proprietary networks. Also, using a wireless standard is always a compromise—a protocol designed for the application can be much better optimized for energy consumption, data throughput, or range.

However, the flexibility of proprietary protocols comes with a price. It is usually more difficult to develop such protocols, and they are usually incompatible with newer infrastructures. Security design is especially difficult and this must be considered when designing a proprietary protocol.

To develop a proprietary protocol, you need direct control over the radio hardware. However, a general purpose, multiprotocol capable radio, like the Wireless Gecko (EFR32™) is very complex, and would take months to understand. To shorten this process, Silicon Labs provides:

  • Radio Configurator, a tool that can generate a radio configuration from a few input parameters like frequency and bitrate.

  • RAIL (Radio Abstraction Interface Layer), a C library, which provides a much simpler interface to control the radio from the application code.

Silicon Labs RAIL is the lowest layer for all networking stacks developed internally by Silicon Labs, as well as by the company’s customers and third-party partners. RAIL supports a diverse set of radio configurations and functionality and is one of the key underlying technologies of Silicon Labs wireless products.

To make software portability as simple as possible, RAIL was developed with the following goals:

  • RAIL API should be backward compatible within major versions. A code developed for RAIL 2.0 should run with the newest version of the RAIL 2.x release cycle.

  • RAIL API should be compatible between supported parts as much as possible. Although there are a few APIs that are not available on all parts, general usage—like receive, transmit and state transitions —should be the same.