This article intends to show how to configure an On-off keying modulation profile in the Radio Configurator in Simplicity Studio. In this example we will be using two Wireless Starter Kit with BRD4257A radio boards (Flex Gecko, 19 dBm, 915 MHz). However, considering the following guidelines, the radio link can be set up for any base frequency and/or radio board.
The guide is not going into details about most of the controls found in the Radio Configurator and assumes basic radio technology and RAIL application creational knowledge. For more information on custom radio configurations, please see AN971.
OOK modulation
The On-off keying modulation method is a simple type of the amplitude-shift keying modulation. It codes the transmitted data at the presence or the absence of the carrier wave (binary one and zero respectively).
OOK modulation on air
This type of modulation is quite popular due to its simplicity and rather low implementation costs. Its main advantage is that it can let the transmitter run in idle while transmitting zeros, which can preserve power. The biggest disadvantage of the technology is its sensitivity to noise. Since zero means nothing is transmitted, with a significant amount of background noise the ones and zeros can be a challenge to distinguish on the receiving end.
Radio configurator setup
Create a new RAILTEST example application to set up the radio link in the radio configurator. It is easier to start with a base profile, in our case we chose one of the 915 MHz profiles. Naturally, you can set the profile and the following settings based on your requirements.
General radio link parameters
After all the settings were loaded, switch to "Custom settings" to enable edit. Here choose OOK as the modulation type to switch to On-off Keying modulation. In our case the data rate is set to 4.8 Kbps, as OOK transmissions are usually used with lower data rates. For this modulation, deviation is not relevant.
Important: Make sure to uncheck all settings under the "Advanced tab" in the bottom, letting the configurator determine all the parameters.
If you are setting up a receiver, also make sure to define your RX and TX crystal accuracy under the "Crystal" tab. This will help the configurator determine a valid receive bandwidth. Alternatively, if you have a predefined receiver bandwidth, you can set it under the Advanced section, "Channel bandwidth" option. If neither the crystal accuracy nor the bandwidth is known, in general 200 kHz can be recommended.
BT parameter recommendations
At this point the modulation probably will not work yet, as the Shaping Filter Parameter (BT) is set for FSK2 (or any other which you used as a base profile) and not for OOK modulation. Set this parameter to 1.5 for the best results, see explanation below.
In yellow you can see the output and its spectrum generated with low BT parameter, in this case 0.5. It's visible how the signal is over-filtered, the edges are rounded down too much for the receiver to interpret this as an OOK modulation.
Time domain graphs of the different filter settings
We can get an ideal OOK output signal by completely disabling the filtering, these outputs are marked with purple. You can see it on the time domain diagram how perfect it looks like, however significant background noise and regular side-bands appeared on its spectrum at the same time.
Frequency domain graphs of the different filter settings
The output of the recommended configuration with the Gaussian filter on, using a BT of 1.5 is marked with teal on the figures. In time domain a lesser "rounding" effect came back, however by using this filter we can suppress the side-bands of the spectrum emission and less background noise is generated, while the receiver can interpret the signal without any issue.
Therefore, for the best results our recommended value is 1.5 for the BT parameter. See the final settings of the radio link below.
Radio configuration for OOK modulation
You can also find this configuration attached for the aforementioned base band and radio board.
Testing the radio link using railtest
With the settings above applied, it's time to generate the example code and build, flash it on the devices. After opening the console on both targets, or by just pushing the PB0 a few times shortly, we can check the functionality of the radio link.
See a test method with results in the following to get an approximate PER of the link created:
RAIL Test App - Built: Feb 12 2019 11:13:18
> setnotifications 0
{{(setNotifications)}{Peripherals:Enabled}{Notifications:Disabled}}
> status
{{(status)}{UserTxCount:0}{AckTxCount:0}{UserTxAborted:0}{AckTxAborted:0}{UserTxBlocked:0}
{AckTxBlocked:0}{UserTxUnderflow:0}{AckTxUnderflow:0}{RxCount:999}{SyncDetect:999}
{NoRxBuffer:0}{RfSensed:0}{ackTimeout:0}{ackTxFpSet:0}{ackTxFpFail:0}{RfState:Rx}
{RAIL_state_active:0}{RAIL_state_rx:1}{RAIL_state_tx:0}{Channel:0}{AppMode:None}
{TimingLost:0}{TimingDetect:0}{FrameErrors:0}{RxOverflow:0}{AddrFilt:0}{Aborted:0}
{Calibrations:1}{TxChannelBusy:0}{TxClear:0}{TxCca:0}{TxRetry:0}}
As you can see out of a 1000 packets sent with rather small delay, 999 arrived successfully, resulting a 0.1% error rate, which can be considered acceptable.
Setting up OOK modulation in RAIL using EFR32
Introduction
This article intends to show how to configure an On-off keying modulation profile in the Radio Configurator in Simplicity Studio. In this example we will be using two Wireless Starter Kit with BRD4257A radio boards (Flex Gecko, 19 dBm, 915 MHz). However, considering the following guidelines, the radio link can be set up for any base frequency and/or radio board.
The guide is not going into details about most of the controls found in the Radio Configurator and assumes basic radio technology and RAIL application creational knowledge. For more information on custom radio configurations, please see AN971.
OOK modulation
The On-off keying modulation method is a simple type of the amplitude-shift keying modulation. It codes the transmitted data at the presence or the absence of the carrier wave (binary one and zero respectively).
This type of modulation is quite popular due to its simplicity and rather low implementation costs. Its main advantage is that it can let the transmitter run in idle while transmitting zeros, which can preserve power. The biggest disadvantage of the technology is its sensitivity to noise. Since zero means nothing is transmitted, with a significant amount of background noise the ones and zeros can be a challenge to distinguish on the receiving end.
Radio configurator setup
Create a new RAILTEST example application to set up the radio link in the radio configurator. It is easier to start with a base profile, in our case we chose one of the 915 MHz profiles. Naturally, you can set the profile and the following settings based on your requirements.
General radio link parameters
After all the settings were loaded, switch to "Custom settings" to enable edit. Here choose OOK as the modulation type to switch to On-off Keying modulation. In our case the data rate is set to 4.8 Kbps, as OOK transmissions are usually used with lower data rates. For this modulation, deviation is not relevant.
If you are setting up a receiver, also make sure to define your RX and TX crystal accuracy under the "Crystal" tab. This will help the configurator determine a valid receive bandwidth. Alternatively, if you have a predefined receiver bandwidth, you can set it under the Advanced section, "Channel bandwidth" option. If neither the crystal accuracy nor the bandwidth is known, in general 200 kHz can be recommended.
BT parameter recommendations
At this point the modulation probably will not work yet, as the Shaping Filter Parameter (BT) is set for FSK2 (or any other which you used as a base profile) and not for OOK modulation. Set this parameter to 1.5 for the best results, see explanation below.
In yellow you can see the output and its spectrum generated with low BT parameter, in this case 0.5. It's visible how the signal is over-filtered, the edges are rounded down too much for the receiver to interpret this as an OOK modulation.
We can get an ideal OOK output signal by completely disabling the filtering, these outputs are marked with purple. You can see it on the time domain diagram how perfect it looks like, however significant background noise and regular side-bands appeared on its spectrum at the same time.
The output of the recommended configuration with the Gaussian filter on, using a BT of 1.5 is marked with teal on the figures. In time domain a lesser "rounding" effect came back, however by using this filter we can suppress the side-bands of the spectrum emission and less background noise is generated, while the receiver can interpret the signal without any issue.
Therefore, for the best results our recommended value is 1.5 for the BT parameter. See the final settings of the radio link below.
You can also find this configuration attached for the aforementioned base band and radio board.
Testing the radio link using railtest
With the settings above applied, it's time to generate the example code and build, flash it on the devices. After opening the console on both targets, or by just pushing the PB0 a few times shortly, we can check the functionality of the radio link.
See a test method with results in the following to get an approximate PER of the link created:
TX side
RX side
As you can see out of a 1000 packets sent with rather small delay, 999 arrived successfully, resulting a 0.1% error rate, which can be considered acceptable.