summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora/lora-packet-forwarder
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-connectivity/lora/lora-packet-forwarder')
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc0216
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc1216
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc0225
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc1225
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.US902.basic104
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/local_conf.json7
-rw-r--r--recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.default2
-rwxr-xr-xrecipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init62
8 files changed, 1057 insertions, 0 deletions
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc0 b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc0
new file mode 100644
index 0000000..fc14309
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc0
@@ -0,0 +1,216 @@
+{
+ "SX1301_conf": {
+ "lorawan_public": true,
+ "clksrc": 0, /* radio_1 provides clock to concentrator */
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "radio_0": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 867500000,
+ "rssi_offset": -166.0,
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 868500000,
+ "rssi_offset": -166.0,
+ "tx_enable": false
+ },
+ "chan_multiSF_0": {
+ /* Lora MAC channel, 125kHz, all SF, 868.1 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -400000
+ },
+ "chan_multiSF_1": {
+ /* Lora MAC channel, 125kHz, all SF, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000
+ },
+ "chan_multiSF_2": {
+ /* Lora MAC channel, 125kHz, all SF, 868.5 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 0
+ },
+ "chan_multiSF_3": {
+ /* Lora MAC channel, 125kHz, all SF, 867.1 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -400000
+ },
+ "chan_multiSF_4": {
+ /* Lora MAC channel, 125kHz, all SF, 867.3 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -200000
+ },
+ "chan_multiSF_5": {
+ /* Lora MAC channel, 125kHz, all SF, 867.5 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 0
+ },
+ "chan_multiSF_6": {
+ /* Lora MAC channel, 125kHz, all SF, 867.7 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 200000
+ },
+ "chan_multiSF_7": {
+ /* Lora MAC channel, 125kHz, all SF, 867.9 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 400000
+ },
+ "chan_Lora_std": {
+ /* Lora MAC channel, 250kHz, SF7, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000,
+ "bandwidth": 250000,
+ "spread_factor": 7
+ },
+ "chan_FSK": {
+ /* FSK 50kbps channel, 868.8 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 300000,
+ "bandwidth": 125000,
+ "datarate": 50000
+ },
+ "tx_lut_0": {
+ /* TX gain table, index 0 */
+ "pa_gain": 0,
+ "mix_gain": 8,
+ "rf_power": -6,
+ "dig_gain": 0
+ },
+ "tx_lut_1": {
+ /* TX gain table, index 1 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": -3,
+ "dig_gain": 0
+ },
+ "tx_lut_2": {
+ /* TX gain table, index 2 */
+ "pa_gain": 0,
+ "mix_gain": 12,
+ "rf_power": 0,
+ "dig_gain": 0
+ },
+ "tx_lut_3": {
+ /* TX gain table, index 3 */
+ "pa_gain": 1,
+ "mix_gain": 8,
+ "rf_power": 3,
+ "dig_gain": 0
+ },
+ "tx_lut_4": {
+ /* TX gain table, index 4 */
+ "pa_gain": 1,
+ "mix_gain": 10,
+ "rf_power": 6,
+ "dig_gain": 0
+ },
+ "tx_lut_5": {
+ /* TX gain table, index 5 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 10,
+ "dig_gain": 0
+ },
+ "tx_lut_6": {
+ /* TX gain table, index 6 */
+ "pa_gain": 1,
+ "mix_gain": 13,
+ "rf_power": 11,
+ "dig_gain": 0
+ },
+ "tx_lut_7": {
+ /* TX gain table, index 7 */
+ "pa_gain": 2,
+ "mix_gain": 9,
+ "rf_power": 12,
+ "dig_gain": 0
+ },
+ "tx_lut_8": {
+ /* TX gain table, index 8 */
+ "pa_gain": 1,
+ "mix_gain": 15,
+ "rf_power": 13,
+ "dig_gain": 0
+ },
+ "tx_lut_9": {
+ /* TX gain table, index 9 */
+ "pa_gain": 2,
+ "mix_gain": 10,
+ "rf_power": 14,
+ "dig_gain": 0
+ },
+ "tx_lut_10": {
+ /* TX gain table, index 10 */
+ "pa_gain": 2,
+ "mix_gain": 11,
+ "rf_power": 16,
+ "dig_gain": 0
+ },
+ "tx_lut_11": {
+ /* TX gain table, index 11 */
+ "pa_gain": 3,
+ "mix_gain": 9,
+ "rf_power": 20,
+ "dig_gain": 0
+ },
+ "tx_lut_12": {
+ /* TX gain table, index 12 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 23,
+ "dig_gain": 0
+ },
+ "tx_lut_13": {
+ /* TX gain table, index 13 */
+ "pa_gain": 3,
+ "mix_gain": 11,
+ "rf_power": 25,
+ "dig_gain": 0
+ },
+ "tx_lut_14": {
+ /* TX gain table, index 14 */
+ "pa_gain": 3,
+ "mix_gain": 12,
+ "rf_power": 26,
+ "dig_gain": 0
+ },
+ "tx_lut_15": {
+ /* TX gain table, index 15 */
+ "pa_gain": 3,
+ "mix_gain": 14,
+ "rf_power": 27,
+ "dig_gain": 0
+ }
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports, or overwrite in local_conf.json */
+ "server_address": "localhost",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680,
+ /* adjust the following parameters for your network */
+ "keepalive_interval": 10,
+ "stat_interval": 30,
+ "push_timeout_ms": 100,
+ /* forward only valid packets */
+ "forward_crc_valid": true,
+ "forward_crc_error": false,
+ "forward_crc_disabled": false
+ }
+}
+
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc1 b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc1
new file mode 100644
index 0000000..e60f583
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E286.EU868.basic.clksrc1
@@ -0,0 +1,216 @@
+{
+ "SX1301_conf": {
+ "lorawan_public": true,
+ "clksrc": 1, /* radio_1 provides clock to concentrator */
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "radio_0": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 867500000,
+ "rssi_offset": -166.0,
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 868500000,
+ "rssi_offset": -166.0,
+ "tx_enable": false
+ },
+ "chan_multiSF_0": {
+ /* Lora MAC channel, 125kHz, all SF, 868.1 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -400000
+ },
+ "chan_multiSF_1": {
+ /* Lora MAC channel, 125kHz, all SF, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000
+ },
+ "chan_multiSF_2": {
+ /* Lora MAC channel, 125kHz, all SF, 868.5 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 0
+ },
+ "chan_multiSF_3": {
+ /* Lora MAC channel, 125kHz, all SF, 867.1 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -400000
+ },
+ "chan_multiSF_4": {
+ /* Lora MAC channel, 125kHz, all SF, 867.3 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -200000
+ },
+ "chan_multiSF_5": {
+ /* Lora MAC channel, 125kHz, all SF, 867.5 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 0
+ },
+ "chan_multiSF_6": {
+ /* Lora MAC channel, 125kHz, all SF, 867.7 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 200000
+ },
+ "chan_multiSF_7": {
+ /* Lora MAC channel, 125kHz, all SF, 867.9 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 400000
+ },
+ "chan_Lora_std": {
+ /* Lora MAC channel, 250kHz, SF7, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000,
+ "bandwidth": 250000,
+ "spread_factor": 7
+ },
+ "chan_FSK": {
+ /* FSK 50kbps channel, 868.8 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 300000,
+ "bandwidth": 125000,
+ "datarate": 50000
+ },
+ "tx_lut_0": {
+ /* TX gain table, index 0 */
+ "pa_gain": 0,
+ "mix_gain": 8,
+ "rf_power": -6,
+ "dig_gain": 0
+ },
+ "tx_lut_1": {
+ /* TX gain table, index 1 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": -3,
+ "dig_gain": 0
+ },
+ "tx_lut_2": {
+ /* TX gain table, index 2 */
+ "pa_gain": 0,
+ "mix_gain": 12,
+ "rf_power": 0,
+ "dig_gain": 0
+ },
+ "tx_lut_3": {
+ /* TX gain table, index 3 */
+ "pa_gain": 1,
+ "mix_gain": 8,
+ "rf_power": 3,
+ "dig_gain": 0
+ },
+ "tx_lut_4": {
+ /* TX gain table, index 4 */
+ "pa_gain": 1,
+ "mix_gain": 10,
+ "rf_power": 6,
+ "dig_gain": 0
+ },
+ "tx_lut_5": {
+ /* TX gain table, index 5 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 10,
+ "dig_gain": 0
+ },
+ "tx_lut_6": {
+ /* TX gain table, index 6 */
+ "pa_gain": 1,
+ "mix_gain": 13,
+ "rf_power": 11,
+ "dig_gain": 0
+ },
+ "tx_lut_7": {
+ /* TX gain table, index 7 */
+ "pa_gain": 2,
+ "mix_gain": 9,
+ "rf_power": 12,
+ "dig_gain": 0
+ },
+ "tx_lut_8": {
+ /* TX gain table, index 8 */
+ "pa_gain": 1,
+ "mix_gain": 15,
+ "rf_power": 13,
+ "dig_gain": 0
+ },
+ "tx_lut_9": {
+ /* TX gain table, index 9 */
+ "pa_gain": 2,
+ "mix_gain": 10,
+ "rf_power": 14,
+ "dig_gain": 0
+ },
+ "tx_lut_10": {
+ /* TX gain table, index 10 */
+ "pa_gain": 2,
+ "mix_gain": 11,
+ "rf_power": 16,
+ "dig_gain": 0
+ },
+ "tx_lut_11": {
+ /* TX gain table, index 11 */
+ "pa_gain": 3,
+ "mix_gain": 9,
+ "rf_power": 20,
+ "dig_gain": 0
+ },
+ "tx_lut_12": {
+ /* TX gain table, index 12 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 23,
+ "dig_gain": 0
+ },
+ "tx_lut_13": {
+ /* TX gain table, index 13 */
+ "pa_gain": 3,
+ "mix_gain": 11,
+ "rf_power": 25,
+ "dig_gain": 0
+ },
+ "tx_lut_14": {
+ /* TX gain table, index 14 */
+ "pa_gain": 3,
+ "mix_gain": 12,
+ "rf_power": 26,
+ "dig_gain": 0
+ },
+ "tx_lut_15": {
+ /* TX gain table, index 15 */
+ "pa_gain": 3,
+ "mix_gain": 14,
+ "rf_power": 27,
+ "dig_gain": 0
+ }
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports, or overwrite in local_conf.json */
+ "server_address": "localhost",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680,
+ /* adjust the following parameters for your network */
+ "keepalive_interval": 10,
+ "stat_interval": 30,
+ "push_timeout_ms": 100,
+ /* forward only valid packets */
+ "forward_crc_valid": true,
+ "forward_crc_error": false,
+ "forward_crc_disabled": false
+ }
+}
+
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc0 b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc0
new file mode 100644
index 0000000..fe81952
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc0
@@ -0,0 +1,225 @@
+{
+ "SX1301_conf": {
+ "lorawan_public": true,
+ "clksrc": 0, /* radio_1 provides clock to concentrator */
+ "lbt_cfg": {
+ "enable": false,
+ "rssi_target": 160, /* rssi in dBm = -lbt_rssi_target/2 */
+ "nb_channel": 1,
+ "start_freq": 869525000,
+ "scan_time_us": 5000,
+ "tx_delay_1ch_us": 4000000,
+ "tx_delay_2ch_us": 4000000
+ },
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "radio_0": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 867500000,
+ "rssi_offset": -165.0,
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 868500000,
+ "rssi_offset": -165.0,
+ "tx_enable": false
+ },
+ "chan_multiSF_0": {
+ /* Lora MAC channel, 125kHz, all SF, 868.1 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -400000
+ },
+ "chan_multiSF_1": {
+ /* Lora MAC channel, 125kHz, all SF, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000
+ },
+ "chan_multiSF_2": {
+ /* Lora MAC channel, 125kHz, all SF, 868.5 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 0
+ },
+ "chan_multiSF_3": {
+ /* Lora MAC channel, 125kHz, all SF, 867.1 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -400000
+ },
+ "chan_multiSF_4": {
+ /* Lora MAC channel, 125kHz, all SF, 867.3 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -200000
+ },
+ "chan_multiSF_5": {
+ /* Lora MAC channel, 125kHz, all SF, 867.5 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 0
+ },
+ "chan_multiSF_6": {
+ /* Lora MAC channel, 125kHz, all SF, 867.7 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 200000
+ },
+ "chan_multiSF_7": {
+ /* Lora MAC channel, 125kHz, all SF, 867.9 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 400000
+ },
+ "chan_Lora_std": {
+ /* Lora MAC channel, 250kHz, SF7, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000,
+ "bandwidth": 250000,
+ "spread_factor": 7
+ },
+ "chan_FSK": {
+ /* FSK 50kbps channel, 868.8 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 300000,
+ "bandwidth": 125000,
+ "datarate": 50000
+ },
+ "tx_lut_0": {
+ /* TX gain table, index 0 */
+ "pa_gain": 0,
+ "mix_gain": 8,
+ "rf_power": -6,
+ "dig_gain": 3
+ },
+ "tx_lut_1": {
+ /* TX gain table, index 1 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": -3,
+ "dig_gain": 3
+ },
+ "tx_lut_2": {
+ /* TX gain table, index 2 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": 0,
+ "dig_gain": 1
+ },
+ "tx_lut_3": {
+ /* TX gain table, index 3 */
+ "pa_gain": 0,
+ "mix_gain": 14,
+ "rf_power": 3,
+ "dig_gain": 2
+ },
+ "tx_lut_4": {
+ /* TX gain table, index 4 */
+ "pa_gain": 1,
+ "mix_gain": 10,
+ "rf_power": 6,
+ "dig_gain": 3
+ },
+ "tx_lut_5": {
+ /* TX gain table, index 5 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 10,
+ "dig_gain": 2
+ },
+ "tx_lut_6": {
+ /* TX gain table, index 6 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 11,
+ "dig_gain": 1
+ },
+ "tx_lut_7": {
+ /* TX gain table, index 7 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 12,
+ "dig_gain": 0
+ },
+ "tx_lut_8": {
+ /* TX gain table, index 8 */
+ "pa_gain": 1,
+ "mix_gain": 14,
+ "rf_power": 13,
+ "dig_gain": 2
+ },
+ "tx_lut_9": {
+ /* TX gain table, index 9 */
+ "pa_gain": 1,
+ "mix_gain": 13,
+ "rf_power": 14,
+ "dig_gain": 0
+ },
+ "tx_lut_10": {
+ /* TX gain table, index 10 */
+ "pa_gain": 2,
+ "mix_gain": 9,
+ "rf_power": 16,
+ "dig_gain": 2
+ },
+ "tx_lut_11": {
+ /* TX gain table, index 11 */
+ "pa_gain": 2,
+ "mix_gain": 11,
+ "rf_power": 20,
+ "dig_gain": 1
+ },
+ "tx_lut_12": {
+ /* TX gain table, index 12 */
+ "pa_gain": 2,
+ "mix_gain": 13,
+ "rf_power": 23,
+ "dig_gain": 1
+ },
+ "tx_lut_13": {
+ /* TX gain table, index 13 */
+ "pa_gain": 2,
+ "mix_gain": 15,
+ "rf_power": 25,
+ "dig_gain": 2
+ },
+ "tx_lut_14": {
+ /* TX gain table, index 14 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 26,
+ "dig_gain": 2
+ },
+ "tx_lut_15": {
+ /* TX gain table, index 15 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 27,
+ "dig_gain": 1
+ }
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports, or overwrite in local_conf.json */
+ "server_address": "localhost",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680,
+ /* adjust the following parameters for your network */
+ "keepalive_interval": 10,
+ "stat_interval": 30,
+ "push_timeout_ms": 100,
+ /* forward only valid packets */
+ "forward_crc_valid": true,
+ "forward_crc_error": false,
+ "forward_crc_disabled": false
+ }
+}
+
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc1 b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc1
new file mode 100644
index 0000000..a975861
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.PCB_E336.EU868.basic.clksrc1
@@ -0,0 +1,225 @@
+{
+ "SX1301_conf": {
+ "lorawan_public": true,
+ "clksrc": 1, /* radio_1 provides clock to concentrator */
+ "lbt_cfg": {
+ "enable": false,
+ "rssi_target": 160, /* rssi in dBm = -lbt_rssi_target/2 */
+ "nb_channel": 1,
+ "start_freq": 869525000,
+ "scan_time_us": 5000,
+ "tx_delay_1ch_us": 4000000,
+ "tx_delay_2ch_us": 4000000
+ },
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "radio_0": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 867500000,
+ "rssi_offset": -165.0,
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 868500000,
+ "rssi_offset": -165.0,
+ "tx_enable": false
+ },
+ "chan_multiSF_0": {
+ /* Lora MAC channel, 125kHz, all SF, 868.1 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -400000
+ },
+ "chan_multiSF_1": {
+ /* Lora MAC channel, 125kHz, all SF, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000
+ },
+ "chan_multiSF_2": {
+ /* Lora MAC channel, 125kHz, all SF, 868.5 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 0
+ },
+ "chan_multiSF_3": {
+ /* Lora MAC channel, 125kHz, all SF, 867.1 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -400000
+ },
+ "chan_multiSF_4": {
+ /* Lora MAC channel, 125kHz, all SF, 867.3 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -200000
+ },
+ "chan_multiSF_5": {
+ /* Lora MAC channel, 125kHz, all SF, 867.5 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 0
+ },
+ "chan_multiSF_6": {
+ /* Lora MAC channel, 125kHz, all SF, 867.7 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 200000
+ },
+ "chan_multiSF_7": {
+ /* Lora MAC channel, 125kHz, all SF, 867.9 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 400000
+ },
+ "chan_Lora_std": {
+ /* Lora MAC channel, 250kHz, SF7, 868.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -200000,
+ "bandwidth": 250000,
+ "spread_factor": 7
+ },
+ "chan_FSK": {
+ /* FSK 50kbps channel, 868.8 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 300000,
+ "bandwidth": 125000,
+ "datarate": 50000
+ },
+ "tx_lut_0": {
+ /* TX gain table, index 0 */
+ "pa_gain": 0,
+ "mix_gain": 8,
+ "rf_power": -6,
+ "dig_gain": 3
+ },
+ "tx_lut_1": {
+ /* TX gain table, index 1 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": -3,
+ "dig_gain": 3
+ },
+ "tx_lut_2": {
+ /* TX gain table, index 2 */
+ "pa_gain": 0,
+ "mix_gain": 10,
+ "rf_power": 0,
+ "dig_gain": 1
+ },
+ "tx_lut_3": {
+ /* TX gain table, index 3 */
+ "pa_gain": 0,
+ "mix_gain": 14,
+ "rf_power": 3,
+ "dig_gain": 2
+ },
+ "tx_lut_4": {
+ /* TX gain table, index 4 */
+ "pa_gain": 1,
+ "mix_gain": 10,
+ "rf_power": 6,
+ "dig_gain": 3
+ },
+ "tx_lut_5": {
+ /* TX gain table, index 5 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 10,
+ "dig_gain": 2
+ },
+ "tx_lut_6": {
+ /* TX gain table, index 6 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 11,
+ "dig_gain": 1
+ },
+ "tx_lut_7": {
+ /* TX gain table, index 7 */
+ "pa_gain": 1,
+ "mix_gain": 12,
+ "rf_power": 12,
+ "dig_gain": 0
+ },
+ "tx_lut_8": {
+ /* TX gain table, index 8 */
+ "pa_gain": 1,
+ "mix_gain": 14,
+ "rf_power": 13,
+ "dig_gain": 2
+ },
+ "tx_lut_9": {
+ /* TX gain table, index 9 */
+ "pa_gain": 1,
+ "mix_gain": 13,
+ "rf_power": 14,
+ "dig_gain": 0
+ },
+ "tx_lut_10": {
+ /* TX gain table, index 10 */
+ "pa_gain": 2,
+ "mix_gain": 9,
+ "rf_power": 16,
+ "dig_gain": 2
+ },
+ "tx_lut_11": {
+ /* TX gain table, index 11 */
+ "pa_gain": 2,
+ "mix_gain": 11,
+ "rf_power": 20,
+ "dig_gain": 1
+ },
+ "tx_lut_12": {
+ /* TX gain table, index 12 */
+ "pa_gain": 2,
+ "mix_gain": 13,
+ "rf_power": 23,
+ "dig_gain": 1
+ },
+ "tx_lut_13": {
+ /* TX gain table, index 13 */
+ "pa_gain": 2,
+ "mix_gain": 15,
+ "rf_power": 25,
+ "dig_gain": 2
+ },
+ "tx_lut_14": {
+ /* TX gain table, index 14 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 26,
+ "dig_gain": 2
+ },
+ "tx_lut_15": {
+ /* TX gain table, index 15 */
+ "pa_gain": 3,
+ "mix_gain": 10,
+ "rf_power": 27,
+ "dig_gain": 1
+ }
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports, or overwrite in local_conf.json */
+ "server_address": "localhost",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680,
+ /* adjust the following parameters for your network */
+ "keepalive_interval": 10,
+ "stat_interval": 30,
+ "push_timeout_ms": 100,
+ /* forward only valid packets */
+ "forward_crc_valid": true,
+ "forward_crc_error": false,
+ "forward_crc_disabled": false
+ }
+}
+
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.US902.basic b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.US902.basic
new file mode 100644
index 0000000..3914956
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/global_conf.json.3.0.0.US902.basic
@@ -0,0 +1,104 @@
+{
+ "SX1301_conf": {
+ "lorawan_public": true,
+ "clksrc": 1, /* radio_1 provides clock to concentrator */
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "radio_0": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 902700000,
+ "rssi_offset": -166.0,
+ "tx_enable": true,
+ "tx_freq_min": 902000000,
+ "tx_freq_max": 928000000
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1257",
+ "freq": 903400000,
+ "rssi_offset": -166.0,
+ "tx_enable": false
+ },
+ "chan_multiSF_0": {
+ /* Lora MAC channel, 125kHz, all SF, 902.3 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -400000
+ },
+ "chan_multiSF_1": {
+ /* Lora MAC channel, 125kHz, all SF, 902.5 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": -200000
+ },
+ "chan_multiSF_2": {
+ /* Lora MAC channel, 125kHz, all SF, 902.7 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 0
+ },
+ "chan_multiSF_3": {
+ /* Lora MAC channel, 125kHz, all SF, 902.9 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 200000
+ },
+ "chan_multiSF_4": {
+ /* Lora MAC channel, 125kHz, all SF, 903.1 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -300000
+ },
+ "chan_multiSF_5": {
+ /* Lora MAC channel, 125kHz, all SF, 903.3 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": -100000
+ },
+ "chan_multiSF_6": {
+ /* Lora MAC channel, 125kHz, all SF, 903.5 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 100000
+ },
+ "chan_multiSF_7": {
+ /* Lora MAC channel, 125kHz, all SF, 903.7 MHz */
+ "enable": true,
+ "radio": 1,
+ "if": 300000
+ },
+ "chan_Lora_std": {
+ /* Lora MAC channel, 500kHz, SF8, 903.0 MHz */
+ "enable": true,
+ "radio": 0,
+ "if": 300000,
+ "bandwidth": 500000,
+ "spread_factor": 8
+ },
+ "chan_FSK": {
+ /* FSK 100kbps channel, 903.0 MHz */
+ "enable": false,
+ "radio": 0,
+ "if": 300000,
+ "bandwidth": 250000,
+ "datarate": 100000
+ }
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports, or overwrite in local_conf.json */
+ "server_address": "localhost",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680,
+ /* adjust the following parameters for your network */
+ "keepalive_interval": 10,
+ "stat_interval": 30,
+ "push_timeout_ms": 100,
+ /* forward only valid packets */
+ "forward_crc_valid": true,
+ "forward_crc_error": false,
+ "forward_crc_disabled": false
+ }
+}
+
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json b/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json
new file mode 100644
index 0000000..6576072
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/local_conf.json
@@ -0,0 +1,7 @@
+{
+ "gateway_conf": {
+ "server_address": "iot.semtech.com",
+ "serv_port_up": 1680,
+ "serv_port_down": 1680
+ }
+}
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.default b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.default
new file mode 100644
index 0000000..be7dcd5
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.default
@@ -0,0 +1,2 @@
+# set to "yes" or "no" to control starting on boot
+ENABLED="yes"
diff --git a/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init
new file mode 100755
index 0000000..259243e
--- /dev/null
+++ b/recipes-connectivity/lora/lora-packet-forwarder/lora-packet-forwarder.init
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+NAME="lora-packet-forwarder"
+ENABLED="yes"
+
+START_STOP_DAEMON="/usr/sbin/start-stop-daemon"
+
+[ -f /etc/default/$NAME ] && source /etc/default/$NAME
+
+run_dir=/var/run/lora
+pkt_fwd=/opt/lora/lora_pkt_fwd
+pkt_fwd_pidfile=$run_dir/lora-pkt-fwd-1.pid
+log_file=/var/log/lora-pkt-fwd.log
+
+do_start() {
+ echo -n "Starting $NAME: "
+
+ mkdir -p $run_dir
+
+ # start packet forwarder
+ $START_STOP_DAEMON --start --background --make-pidfile \
+ --pidfile $pkt_fwd_pidfile --startas /bin/bash --chdir "/opt/lora/" \
+ -- -c "exec $pkt_fwd > $log_file 2>&1"
+
+ renice -n -20 -p $(pgrep $(basename $pkt_fwd))
+
+ echo "OK"
+}
+
+do_stop() {
+ echo -n "Stopping $NAME: "
+ $START_STOP_DAEMON --stop --quiet --oknodo --pidfile $pkt_fwd_pidfile --retry 5
+ rm -f $pkt_fwd_pidfile
+ echo "OK"
+}
+
+if [ "$ENABLED" != "yes" ]; then
+ echo "$NAME: disabled in /etc/default/$NAME"
+ exit
+fi
+
+case "$1" in
+ "start")
+ do_start
+ ;;
+ "stop")
+ do_stop
+ ;;
+ "restart")
+ ## Stop the service and regardless of whether it was
+ ## running or not, start it again.
+ do_stop
+ do_start
+ ;;
+ *)
+ ## If no parameters are given, print which are avaiable.
+ echo "Usage: $0 {start|stop|restart}"
+ exit 1
+ ;;
+esac
+
+