The goal of the lorad configuration is to define the frequency plan that will be used to receive packets from the end-devices, to enable the LBT feature and configure the class B beacons.
Wirnet iBTS gateways cannot listen to all LoRa frequencies simultaneously. Up to 16 frequencies can be handled at the same time per LoRa board. There can be up to 4 LoRa boards in an iBTS.
Templates structure
Each template contains an object and an array:
{
"SX1301_array_conf": [
{...}, # LoRa board 1
{...}, # LoRa board 2
...
],
"gateway_conf":{
... # Class B configuration
}
}
There are many configuration fields among the templates, but most of them are by default correctly filled.
Antennas configuration
The front-end board of each LoRa board integrates two duplicated TX and Rx paths (RF1 path and RF2 path). Each TX/RX path is connected to one SMB antenna port, referenced as RF1 and RF2 (Installation manual 1.5.4.4 Front-end boards). A look at the lora_specific_hardware may help to understand.
To understand every possible antenna configurations, read chapter 4.6.2.5 of the Installation manual.
rx_enable
: Is used to enable or disable emission of the antennas.
tx_enable
: Is used to enable or disable reception of the antennas.
antenna_gain
: Is used to define the gain of the antenna. This field has to be correctly filled, otherwise, the gateway will use more power to emits packets than what was initially planned by the LNS.
insertion_loss
: Is used to define the attenuation due to the cable between the gateway and the antenna.
Single antenna configuration:
"rf_chain_conf": [
{
"rx_enable": true,
"tx_enable": true,
"antenna_gain": 3,
"insertion_loss": 0.5,
"tx_freq_min": 863000000,
"tx_freq_max": 870000000
}
],
Dual antenna configuration:
"rf_chain_conf": [
{
"rx_enable": true,
"tx_enable": true,
"antenna_gain": 3,
"insertion_loss": 0.5,
"tx_freq_min": 863000000,
"tx_freq_max": 870000000
},
{
"rx_enable": true,
"tx_enable": true,
"antenna_gain": 3,
"insertion_loss": 0.5,
"tx_freq_min": 863000000,
"tx_freq_max": 870000000
}
],
Radio Frequencies configurations
Each LoRaLoc module contains two SX1301. Each SX1301 can be configured to use 10 different frequencies. However, these channels need to be contained within a 3 MHz bandwidth.
chip_enable
: Enable/Disable SX1301.
chip_center_freq
: Is used to define the center frequency of the SX1301. All 10 channels will be around this particular frequency (+/- 1.5MHz).
chan_rx_freq
: Are used to define each channel's center frequency. In order to respect SX1301 bandwidth, maximum values are defined by chip_center_freq
+/- 1.4MHz.
chip_rf_chain
: Defines which rf chain is used by the SX1301. See antenna configuration for more details.
"SX1301_conf":[
{
"chip_enable": true,
"chip_center_freq": 866000000,
"chip_rf_chain": 0,
"chan_multiSF_0": { "chan_rx_freq": 865500000, "spread_factor": "7-12" },
"chan_multiSF_1": { "chan_rx_freq": 865700000, "spread_factor": "7-12" },
"chan_multiSF_2": { "chan_rx_freq": 865900000, "spread_factor": "7-12" },
"chan_multiSF_3": { "chan_rx_freq": 866100000, "spread_factor": "7-12" },
"chan_multiSF_4": { "chan_rx_freq": 866300000, "spread_factor": "7-12" },
"chan_multiSF_5": { "chan_rx_freq": 866500000, "spread_factor": "7-12" },
"chan_multiSF_6": { "chan_rx_freq": 867100000, "spread_factor": "7-12" },
"chan_multiSF_7": { "chan_rx_freq": 867300000, "spread_factor": "7-12" },
"chan_LoRa_std" : { "chan_rx_freq": 867300000, "bandwidth": 250000, "spread_factor": 7 },
"chan_FSK" : { "chan_rx_freq": 866900000, "bandwidth": 125000, "bit_rate": 50000 }
},{
"chip_enable": true,
"chip_center_freq": 868000000,
"chip_rf_chain": 1,
"chan_multiSF_0": { "chan_rx_freq": 867500000, "spread_factor": "7-12" },
"chan_multiSF_1": { "chan_rx_freq": 867700000, "spread_factor": "7-12" },
"chan_multiSF_2": { "chan_rx_freq": 867900000, "spread_factor": "7-12" },
"chan_multiSF_3": { "chan_rx_freq": 868100000, "spread_factor": "7-12" },
"chan_multiSF_4": { "chan_rx_freq": 868300000, "spread_factor": "7-12" },
"chan_multiSF_5": { "chan_rx_freq": 868500000, "spread_factor": "7-12" },
"chan_multiSF_6": { "chan_rx_freq": 868700000, "spread_factor": "7-12" },
"chan_multiSF_7": { "chan_rx_freq": 868900000, "spread_factor": "7-12" },
"chan_LoRa_std" : { "chan_rx_freq": 868300000, "bandwidth": 250000, "spread_factor": 7 },
"chan_FSK" : { "chan_rx_freq": 869100000, "bandwidth": 125000, "bit_rate": 50000 }
}],
Listen Before Talk configuration
Listen Before Talk (LBT) is a technique used in radiocommunications whereby a radio transmitter first senses its radio environment before starting a transmission.
This feature is mandatory in a few countries (such as Japan and Korea).
enable
: Enable or disable LBT.
rssi_target
: The RSSI threshold to detect if channels are busy or not (dBm).
rssi_shift
: Do not change this value, this is the value to be applied to RSSI to convert RSSI in dBm to register value.
chan_cfg
:
freq_hz
: The LBT channel frequency in Hz. These frequencies needs to be the same as the one in the SX1301_conf
array.
scan_time_us
: The LBT channel scan time to be used (only two available values: 128µs or 5ms).
transmit_time_ms
: Maximum transmission delay allowed (only two available values: 4000ms or 400ms).
"lbt_conf":{
"enable": true,
"rssi_target": -80,
"rssi_shift": 131,
"chan_cfg":[
{ "freq_hz": 922000000, "scan_time_us": 5000, "transmit_time_ms": 4000 },
{ "freq_hz": 922200000, "scan_time_us": 5000, "transmit_time_ms": 4000 },
{ "freq_hz": 922400000, "scan_time_us": 128, "transmit_time_ms": 400 },
{ "freq_hz": 922600000, "scan_time_us": 128, "transmit_time_ms": 400 },
{ "freq_hz": 922800000, "scan_time_us": 128, "transmit_time_ms": 400 },
{ "freq_hz": 923000000, "scan_time_us": 128, "transmit_time_ms": 400 },
{ "freq_hz": 923200000, "scan_time_us": 128, "transmit_time_ms": 400 },
{ "freq_hz": 923400000, "scan_time_us": 128, "transmit_time_ms": 400 }
]
},
Note that the class-B configuration does not apply to such gateways (Wirnet iFemtocell and Wirnet iStation) since they have no GPS.
The Wirnet iFemtoCell cannot listen to all LoRa frequencies simultaneously. Up to 8 frequencies can be handled at the same time by the demodulator (SX1301).
To understand how the frequency configuration works, it is necessary to know that the Wirnet iFemtoCell hardware contains an RF front-ends connected to 2 SX1257 chips. A look at the lora_specific_hardware may help to understand. Each of these chips has a 0.8 MHz Bandwidth. Thus, all 8 channels must be contained within these two 0.8 MHz intervals.
To properly configure the Rx channels, the center frequencies of the chips must be defined.
Once the center frequencies are defined, each channel can be configured.
Here are a few rules/information to configure the frequencies:
Both chips are not necessarily used.
Both chips' bandwidth can overlap.
Channels can overlap.
All 8 frequencies can be contained within one single chip's bandwidth.
Not all 8 frequencies are necessarily used.
Avoid the use of the chip's center frequencies as a channel.
There are many configuration fields among the templates, but most of them are by default correctly filled.
Front-end configuration
antenna_gain
: Is used to define the gain of the antenna. If you use the default Kerlink antenna don't change it. This field has to be correctly filled, otherwise, the gateway will use more power to emits packets than what was initially planned by the LNS.
insertion_loss
: Is used to define the attenuation due to the cable between the gateway and the antenna. When there is no cable, the correct value is 0.
enable
: Enable/disable SX1257.
freq
: Is used to define the center frequency of the SX1257. All channels will be around this particular frequency (+/- 0.4Mhz).
tx_enable
: Enable/disable tx data on SX1257.
"lorawan_public": true,
"antenna_gain": 3,
"antenna_gain_desc": "Antenna gain, in dBi",
"insertion_loss": 0,
"insertion_loss_desc": "Insertion loss, in dBi",
"clksrc": 1,
"clksrc_desc": "Radio #1 provides clock to concentrator",
"radio_0": {
"enable": true,
"type": "SX1257",
"freq": 867500000,
"tx_enable": true,
"tx_freq_min": 863000000,
"tx_freq_max": 870000000,
"tx_notch_freq": 129000
},
"radio_1": {
"enable": true,
"type": "SX1257",
"freq": 868500000,
"tx_enable": false
},
Radio frequencies configuration
chan_multiSF_X
enable
: Enable/disable the channel.
radio
: Define which frontend (SX1257) is used by the channel (0
or 1
expected).
if
: Intermediate frequency. Value that defines a channel frequency (value added to the center frequency, maximum values are +/- 400kHz
).
/* Lora MAC channels, 125kHz, all SF */
"chan_multiSF_0": { "enable": true, "radio": 0, "if": -400000 },
"chan_multiSF_1": { "enable": true, "radio": 0, "if": -200000 },
"chan_multiSF_2": { "enable": true, "radio": 0, "if": 0 },
"chan_multiSF_3": { "enable": true, "radio": 0, "if": 200000 },
"chan_multiSF_4": { "enable": true, "radio": 0, "if": 400000 },
"chan_multiSF_5": { "enable": true, "radio": 1, "if": -400000 },
"chan_multiSF_6": { "enable": true, "radio": 1, "if": -200000 },
"chan_multiSF_7": { "enable": true, "radio": 1, "if": 0 },
Listen Before Talk configuration
Listen Before Talk (LBT) is a technique used in radiocommunications whereby a radio transmitter first senses its radio environment before starting a transmission.
This feature is mandatory in a few countries (such as Japan and Korea).
enable
: Enable or disable LBT.
rssi_target
: The RSSI threshold to detect if the channel is busy or not (dBm).
sx127x_rssi_offset
: Offset RSSI seen by sx1257. Do not modify this field.
freq_hz
: The LBT channel frequency in Hz. These frequencies need to be the same as the one in the chan_multiSF_X
JSON arrays.
scan_time_us
: The LBT channel scan time to be used (only two available values: 128µs or 5000µs).
/* Listen Before Talk */
"lbt_cfg": {
"enable": true,
"rssi_target": -80,
"sx127x_rssi_offset": -9,
"chan_cfg": [
{ "freq_hz": 922000000, "scan_time_us": 5000 },
{ "freq_hz": 922200000, "scan_time_us": 5000 },
{ "freq_hz": 922400000, "scan_time_us": 128 },
{ "freq_hz": 922600000, "scan_time_us": 128 },
{ "freq_hz": 922800000, "scan_time_us": 128 },
{ "freq_hz": 923000000, "scan_time_us": 128 },
{ "freq_hz": 923200000, "scan_time_us": 128 },
{ "freq_hz": 923400000, "scan_time_us": 128 }
]
},