Last month we released our Wireless Gecko EFR32 portfolio of SoCs, which we feel represents a major step forward for providing connectivity and flexibility for IoT applications. Included in this news was the Flex Gecko family, designed to provide flexibility (get it?) for proprietary wireless protocols.
For Bluetooth, ZigBee, and Thread, the radio configuration is known because they’re set by the alliances or consortiums responsible for those standards. However, most proprietary wireless customers will work with the radio at a lower level than standards-based products. While there are advantages to proprietary stacks, like security and legacy, there are also trade-offs. Most notably, a proprietary approach means you’ll need to understand every aspect of the device, from the physical layer and regulatory requirements to the network and applications layer. This makes porting your legacy protocol to a new radio an extremely time-intensive and complicated process, made more complex by the large number of hardware registers that accompany increasingly sophisticated SoCs. Abstracting away those complexities becomes critical for getting to market in a reasonable time.
RAIL for Development
This is where our new Radio Abstraction Interface Layer (RAIL) comes in. RAIL is essentially a library of functions built on top of the radio itself. Example code for things like collision avoidance, address filtering, and other features is built on top of the RAIL layer and a graphical user interface (GUI) lets you customize RF parameters so you can get what you need from the radio. And you can build your own proprietary protocol on top of RAIL.
For example, the new Wireless Gecko SoCs have a transmit power of 20 dBm. Until now, with a proprietary wireless protocol, configuring that meant you had to touch each register on the device that relates to the power amplifier. With hundreds of registers on an SoC, each having dependencies on one another, writing code and tweaking each register becomes a monumental task. But with RAIL, you only need to know one command. RAIL then takes that command and sets up your registers for you.
This not only dramatically simplifies the process, but RAIL will expand with new devices. As you move to new platforms, you can port your software without learning a new radio interface. The RAIL library will know which Silicon Labs chip it’s running on and the process will be fully transparent to the user.
Much of the hesitation to moving to a new platform is because of the time investment that comes with porting the software. RAIL eliminates that concern because you can take whatever software stack (whether for a proprietary protocol or a standards-based protocol) you’ve written for your existing radio and use the same code for the new one. The time saved by using RAIL will translate directly to faster application development.
RAIL for Manufacturing Test
RAIL can also simplify hardware testing during the manufacture/production process. RAIL has an application called RAIL Test that makes it easy to do simple functions, such as setting the radio to transmit and receive during an FCC test event.
This is a big change from the traditional node testing, where a binary image had to be custom built to the specific hardware specifications for each customer. With RAIL, product developers do not need to contact the chip manufacturer as they build the test. Instead, the production team has the ability to create the build themselves, removing the chip vendor from the process and speeding test and production. This provides more control and less waste during the production process because you can react faster if something goes wrong on the manufacturing line.
So, What Do I Get with RAIL?
The RAIL Software Development Kit (SDK) included the RAIL Library and RAIL Configurator. The RAIL SDK, which can be downloaded here, includes a library of functions, sample applications such as range test and bidirectional transmit/receive provided as source code, and API documentation with release notes and a Quick Start guide. The RAIL Configurator, which is part of Simplicity Studio, includes the GUI we discussed earlier where you’ll be able to customize your RF requirements and create RAIL-based projects.