Overview#

The following is a summary of functionality provided as part of the RAILtest application:

  • Transmit and receive packets

  • Schedule transmits at a specific time in the RAIL timebase

  • Configure RAIL address filtering to receive only specific packets

  • Enable CCA mechanisms (CSMA/LBT) to validate that a channel is clear before transmit

  • Set a timer callback in the RAIL timebase to see how the RAIL timer API works

  • Change the transmit channel within the current configuration's band

  • Change the transmit power level

  • Enable RF energy sensing of a specified duration across the 2.4 GHz and/or Sub 1-GHz bands, and sleep to wake on this event.

  • Output a continuous unmodulated tone for debugging

  • Output a continuous modulated PN9 stream for debugging

  • Enter into direct mode where data can be sent and received using asynchronous GPIOs as input and output

About RAILtest Versions#

RAILtest version 2.14 was released with Gecko SDK (GSDK) v4.2. Previous versions are as follows:

  • GSDK v4.1: RAILtest v2.13

  • GSDK v4.0: RAILtest v2.12

  • GSDK v3.2: RAILtest v2.11

  • GSDK v3.1: RAILtest v2.10

  • GSDK v3.0: RAILtest v2.9

  • GSDK v2.7: RAILtest v2.8

Modes#

RAILtest can be in a number of different modes. Each of these modes enables a subset of the test application's functionality, so that nonsensical commands (such as trying to transmit a tone and a packet at the same time) are ignored. The following are supported modes, with a short description.

  • None: The app is doing nothing, but the radio may be on. Parameters can be set in this mode based on the current radio state, and the timer can be used.

  • Stream: Send a stream of pseudo-random bits.

  • Tone: Send a tone at the carrier frequency.

  • ContinuousTx: Send an unending stream of packets, separated by a configurable delay.

  • DirectMode: Send data to and from a GPIO, without any packet handling.

  • PacketTx: Send a specific number of packets, with a summary print at the end.

  • ScheduledTx: Send one packet scheduled in the future.

  • TxAfterRx: Schedule a packet after each RX after a specific delay.

  • RxOverflow: Overflow on receive by delaying in RAILCb_RxPacketReceived.

  • TxUnderflow: Underflow by not loading data for the next TX sequence.

  • TxCancel: Cancel a single packet transmit to force an error callback.

  • RfSense: Sense RF energy to wake the radio.

  • PER (Packet Error Rate) test: A GPIO is toggled, and stats are gathered on received packets.

  • BER (Bit Error Rate) test: Statistics are gathered on received bits.