LoRa Basics™ Station 2.0.5 documentation

Concentrator Design (v2)

This section lists the available object types and fields, along with their possible values, as understood by Station when parsing configuration files. The semantics of the fields are discussed elsewhere (see the documentation for each relevant radio board). Here we briefly discuss only the additional fields or extensions that are specific to LoRa Basics™ Station.

A configuration need not specify any frequencies for, or specifically enable, the IFCONF or RFCONF objects. This information is submitted by the LNS based on the channel plan assigned to a gateway. The channel-plan settings are merged with the local configuration before the concentrator board is initialized.

The concentrator configuration is embedded in either the station.conf or slave-N.conf file as follows:

{
  ...                    // possibly other fields e.g. "station_conf"
  "radio_conf"  : [ BOARD, .. ]
}

BOARD Object

{
  "device"        : STRING   // station-specific
  "pps"           : BOOL     // station-specific
  "loramac_public": BOOL
  "clksrc"        : INT
  "board_rx_freq" : INT
  "board_rx_bw"   : INT
  "full_duplex"   : BOOL
  "board_type"    : "master" | "slave"
  "FSK_sync"      : STRING     // hexdigits encoding 1-8 bytes
  "calibration_temperature_celsius_room": INT(-128..127)
  "calibration_temperature_code_ad9361" : INT(0..255)
  "dsp_stat_interval" : INT(0..255)
  "nb_dsp"        : INT
  "aes_key"       : STRING     // hexdigits encoding 16 bytes
  "rf_chain_conf" : [ RFCHAINCONF, .. ]
  "SX1301_conf"   : [ SX1301CONF, .. ]
  "lbt_conf"      : LBTCONF
}

The device field specifies the SPI device, which is used to communicate with the radio board. If multiple radio boards are used, the wildcard character (?) is replaced with the actual board index. The board index is inferred from the position inside the radio_conf array.

If the gateway has a PPS (for example, from a GPS device or other source), the concentrator board that has access to this signal must have the field pps set to true. One and only one board must have this field set to true.

Note

Stations do not require access to a GPS device to maintain a global GPS time for Class B operation. A PPS aligned with the GPS time is sufficient.

SX1301CONF Object

{
  "chip_enable"      : BOOL
  "chip_center_freq" : INT
  "chip_rf_chain"    : INT
  "chan_multiSF_X"   : CHANCONF   // where X in {0..7}
  "chan_LoRa_std"    : CHANCONF
  "chan_FSK"         : CHANCONF
}

CHANCONF Object

{
  "chan_rx_freq"  : INT
  "bandwidth"     : INT(125000,250000,50000)
  // if under fields "chan_multiSF_0".."chan_multiSF_7"
  "spread_factor" : INT(7..12)
  // if under field "chan_LoRa_std"
  "spread_factor" : "N-M"        // N,M in {7..12} and N <= M
  // "spread_factor" must be absent if under field "chan_FSK"
  // valid only if under field "chan_FSK"
  "bit_rate"      : INT
}

LBTCONF Object

{
  "enable" : BOOL
  "rssi_target" : INT(-128..127)
  "rssi_shift"  : INT(0..255)
  "chan_cfg"    : [ .. ]
}

Note

The chan_cfg field must not be specified in a station.conf file. This data is automatically generated from the channel plan submitted to the Station by the LNS.

RFCHAINCONF Object

{
  "rx_enable"    : BOOL
  "tx_enable"    : BOOL
  "rssi_offset"  : INT
  "rssi_offset_coeff_a"  : INT
  "rssi_offset_coeff_b"  : INT
  "tx_freq_min"  : INT
  "tx_freq_max"  : INT
  "tx_lut"       : [ TXLUT, .. ]
  "txpow_adjust" : INT
  "antenna_type" : "omni" | "sector"
}

All of the fields within RFCONF are optional. Absent fields are read as false or zero. If antenna_type or type is missing, their values are undefined. The txpow_adjust field is simply an alias for antenna_gain.

Stations target a specific output power to be dissipated. The values of the fields txpow_adjust and antenna_gain are subtracted from this target value to account for any gains by the antenna and any losses by the cable.

The antenna_type field specifies the nature of the antenna. The response to an uplink frame received via a sector antenna is always sent back over the same antenna. This is also the preferred behavior for an antenna labeled omni. If the antenna is blocked (for instance, due to duty-cycle limitations or being busy with another transmission), the Station may transfer the downlink transmission to another omni antenna.

TXLUT Object

{
  "rf_power"      : INT(-128..127)
  "fpga_dig_gain" : INT(0..255)
  "ad9361_atten"  : INT(0..65535)
  "ad9361_auxdac_vref"   : INT(0..255)
  "ad9361_auxdac_word"   : INT(0..65535)
  "ad9361_tcomp_coeff_a" : INT(-32768..32767)
  "ad9361_tcomp_coeff_b" : INT(-32768..32767)
}

Antenna Configurations

The Concentrator Design v2 is equipped with two radio front-ends. This enables various multi-antenna scenarios. The most common of these are discussed in this section.

Single Antenna

// Single Antenna on RF-0
"rf_chain_conf" : [
  {"rx_enable": true , "tx_enable": true , ..},
  {"rx_enable": false, "tx_enable": false, ..}
]

In the single-antenna configuration, the second RF chain is disabled. Reception and transmission on all channels is done through a single RF chain.

Multi-Antenna - Full Diversity / Sectorization

// Full Diversity -> TX diversion to another antenna allowed
"rf_chain_conf" : [
  {"rx_enable": true, "tx_enable": true, "antenna_type": "omni", ..},
  {"rx_enable": true, "tx_enable": true, "antenna_type": "omni", ..}
]

// Sectorization -> TX strictly on the same antenna
"rf_chain_conf" : [
  {"rx_enable": true, "tx_enable": true, "antenna_type": "sector", ..},
  {"rx_enable": true, "tx_enable": true, "antenna_type": "sector", ..}
]

Enabling both transmission and reception on both RF chains allows for antenna diversity configurations. This can improve performance for the reception of mobile devices where fast-fading may cause signal intensity degradation on a single antenna. A multi-antenna setup can also be used for cell sectorization, improving the overall capacity of the gateway. On a single-board, a two-chip gateway platform Station will automatically assume full antenna diversity for frequency plans which can be allocated on a single SX1301 chip. This is done by duplicating the single-chip frequency plan on both chips while assigning them to different RF chains. By default Station prioritizes the same antenna through which the associated uplink was received for an outbound transmission. If the preferred antenna is blocked, a transmission may be diverted to another antenna in the case of full diversity. This diversion does not occur in the case of sectorization.

Multi-Antenna - Full-duplex

// RX on RF-0, TX on RF-1
"rf_chain_conf" : [
  {"rx_enable": true , "tx_enable": false, ..},
  {"rx_enable": false, "tx_enable": true , ..}
]

By default, LoRaWAN® gateways operate in half-duplex mode. This means that the gateway cannot receive incoming messages during outbound transmissions. Full-duplex means that reception is still possible during ongoing transmissions. This is achieved by dedicating each antenna to either reception or transmission.