summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-connectivity/lora')
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/LICENSE.TXT80
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.EU868126
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.US915113
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.EU868126
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.US915113
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303/reset_lgw.sh83
-rw-r--r--recipes-connectivity/lora/lora-gateway-sx1303_2.0.4.bb (renamed from recipes-connectivity/lora/lora-gateway-sx1303_2.0.1.bb)15
7 files changed, 655 insertions, 1 deletions
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/LICENSE.TXT b/recipes-connectivity/lora/lora-gateway-sx1303/LICENSE.TXT
new file mode 100644
index 0000000..a59e967
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/LICENSE.TXT
@@ -0,0 +1,80 @@
+Copyright (c) 2019, SEMTECH S.A.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * Neither the name of the Semtech corporation nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL SEMTECH S.A. BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+--- For the parson library used by the packet forwarder ---
+
+Parson ( http://kgabis.github.com/parson/ )
+Copyright (c) 2012 Krzysztof Gabis
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+--- For the tinyMT32 library used by the HAL ---
+
+Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima
+University and The University of Tokyo. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of the Hiroshima University nor the names of
+ its contributors may be used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.EU868 b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.EU868
new file mode 100644
index 0000000..063c931
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.EU868
@@ -0,0 +1,126 @@
+{
+ "SX130x_conf": {
+ "com_type": "SPI",
+ "com_path": "/dev/spidev0.0",
+ "lorawan_public": true,
+ "clksrc": 0,
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "full_duplex": false,
+ "fine_timestamp": {
+ "enable": false,
+ "mode": "all_sf" /* high_capacity or all_sf */
+ },
+ "sx1261_conf": {
+ "spi_path": "/dev/spidev0.1",
+ "rssi_offset": 0, /* dB */
+ "spectral_scan": {
+ "enable": false,
+ "freq_start": 867100000,
+ "nb_chan": 8,
+ "nb_scan": 2000,
+ "pace_s": 10
+ },
+ "lbt": {
+ "enable": false,
+ "rssi_target": -70, /* dBm */
+ "channels":[ /* 16 channels maximum */
+ { "freq_hz": 867100000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867300000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867500000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867700000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867900000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868100000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868300000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868500000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 869525000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 },
+ { "freq_hz": 868300000, "bandwidth": 250000, "scan_time_us": 128, "transmit_time_ms": 400 }
+ ]
+ }
+ },
+ "radio_0": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 867500000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000,
+ "tx_gain_lut":[
+ {"rf_power": 12, "pa_gain": 0, "pwr_idx": 15},
+ {"rf_power": 13, "pa_gain": 0, "pwr_idx": 16},
+ {"rf_power": 14, "pa_gain": 0, "pwr_idx": 17},
+ {"rf_power": 15, "pa_gain": 0, "pwr_idx": 19},
+ {"rf_power": 16, "pa_gain": 0, "pwr_idx": 20},
+ {"rf_power": 17, "pa_gain": 0, "pwr_idx": 22},
+ {"rf_power": 18, "pa_gain": 1, "pwr_idx": 1},
+ {"rf_power": 19, "pa_gain": 1, "pwr_idx": 2},
+ {"rf_power": 20, "pa_gain": 1, "pwr_idx": 3},
+ {"rf_power": 21, "pa_gain": 1, "pwr_idx": 4},
+ {"rf_power": 22, "pa_gain": 1, "pwr_idx": 5},
+ {"rf_power": 23, "pa_gain": 1, "pwr_idx": 6},
+ {"rf_power": 24, "pa_gain": 1, "pwr_idx": 7},
+ {"rf_power": 25, "pa_gain": 1, "pwr_idx": 9},
+ {"rf_power": 26, "pa_gain": 1, "pwr_idx": 11},
+ {"rf_power": 27, "pa_gain": 1, "pwr_idx": 14}
+ ]
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 868500000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": false
+ },
+ "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
+ "chan_multiSF_0": {"enable": true, "radio": 1, "if": -400000},
+ "chan_multiSF_1": {"enable": true, "radio": 1, "if": -200000},
+ "chan_multiSF_2": {"enable": true, "radio": 1, "if": 0},
+ "chan_multiSF_3": {"enable": true, "radio": 0, "if": -400000},
+ "chan_multiSF_4": {"enable": true, "radio": 0, "if": -200000},
+ "chan_multiSF_5": {"enable": true, "radio": 0, "if": 0},
+ "chan_multiSF_6": {"enable": true, "radio": 0, "if": 200000},
+ "chan_multiSF_7": {"enable": true, "radio": 0, "if": 400000},
+ "chan_Lora_std": {"enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7,
+ "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
+ "chan_FSK": {"enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000}
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports */
+ "server_address": "localhost",
+ "serv_port_up": 1730,
+ "serv_port_down": 1730,
+ /* 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,
+ /* GPS configuration */
+ "gps_tty_path": "/dev/ttyS0",
+ /* GPS reference coordinates */
+ "ref_latitude": 0.0,
+ "ref_longitude": 0.0,
+ "ref_altitude": 0,
+ /* Beaconing parameters */
+ "beacon_period": 0,
+ "beacon_freq_hz": 869525000,
+ "beacon_datarate": 9,
+ "beacon_bw_hz": 125000,
+ "beacon_power": 14,
+ "beacon_infodesc": 0
+ },
+
+ "debug_conf": {
+ "ref_payload":[
+ {"id": "0xCAFE1234"},
+ {"id": "0xCAFE2345"}
+ ],
+ "log_file": "loragw_hal.log"
+ }
+}
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.US915 b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.US915
new file mode 100644
index 0000000..04434bf
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTAC_003_0_0.US915
@@ -0,0 +1,113 @@
+{
+ "SX130x_conf": {
+ "com_type": "SPI",
+ "com_path": "/dev/spidev0.0",
+ "lorawan_public": true,
+ "clksrc": 0,
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "full_duplex": false,
+ "fine_timestamp": {
+ "enable": false,
+ "mode": "all_sf" /* high_capacity or all_sf */
+ },
+ "sx1261_conf": {
+ "spi_path": "/dev/spidev0.1",
+ "rssi_offset": 0, /* dB */
+ "spectral_scan": {
+ "enable": false,
+ "freq_start": 903900000,
+ "nb_chan": 8,
+ "nb_scan": 2000,
+ "pace_s": 10
+ },
+ "lbt": {
+ "enable": false /* LBT for 500 Khz channels is not supported */
+ }
+ },
+ "radio_0": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 904300000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": true,
+ "tx_freq_min": 923000000,
+ "tx_freq_max": 928000000,
+ "tx_gain_lut":[
+ {"rf_power": 12, "pa_gain": 0, "pwr_idx": 15},
+ {"rf_power": 13, "pa_gain": 0, "pwr_idx": 16},
+ {"rf_power": 14, "pa_gain": 0, "pwr_idx": 17},
+ {"rf_power": 15, "pa_gain": 0, "pwr_idx": 19},
+ {"rf_power": 16, "pa_gain": 0, "pwr_idx": 20},
+ {"rf_power": 17, "pa_gain": 0, "pwr_idx": 22},
+ {"rf_power": 18, "pa_gain": 1, "pwr_idx": 1},
+ {"rf_power": 19, "pa_gain": 1, "pwr_idx": 2},
+ {"rf_power": 20, "pa_gain": 1, "pwr_idx": 3},
+ {"rf_power": 21, "pa_gain": 1, "pwr_idx": 4},
+ {"rf_power": 22, "pa_gain": 1, "pwr_idx": 5},
+ {"rf_power": 23, "pa_gain": 1, "pwr_idx": 6},
+ {"rf_power": 24, "pa_gain": 1, "pwr_idx": 7},
+ {"rf_power": 25, "pa_gain": 1, "pwr_idx": 9},
+ {"rf_power": 26, "pa_gain": 1, "pwr_idx": 11},
+ {"rf_power": 27, "pa_gain": 1, "pwr_idx": 14}
+ ]
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 905000000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": false
+ },
+ "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
+ "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, /* Freq : 903.9 MHz*/
+ "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, /* Freq : 904.1 MHz*/
+ "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, /* Freq : 904.3 MHz*/
+ "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, /* Freq : 904.5 MHz*/
+ "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, /* Freq : 904.7 MHz*/
+ "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, /* Freq : 904.9 MHz*/
+ "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, /* Freq : 905.1 MHz*/
+ "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, /* Freq : 905.3 MHz*/
+ "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, /* Freq : 904.6 MHz*/
+ "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
+ "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} /* Freq : 868.8 MHz*/
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports */
+ "server_address": "localhost",
+ "serv_port_up": 1730,
+ "serv_port_down": 1730,
+ /* 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,
+ /* GPS configuration */
+ "gps_tty_path": "/dev/ttyS0",
+ /* GPS reference coordinates */
+ "ref_latitude": 0.0,
+ "ref_longitude": 0.0,
+ "ref_altitude": 0,
+ /* Beaconing parameters */
+ "beacon_period": 0, /* disable class B beacon */
+ "beacon_freq_hz": 869525000,
+ "beacon_datarate": 9,
+ "beacon_bw_hz": 125000,
+ "beacon_power": 14,
+ "beacon_infodesc": 0
+ },
+
+ "debug_conf": {
+ "ref_payload":[
+ {"id": "0xCAFE1234"},
+ {"id": "0xCAFE2345"}
+ ],
+ "log_file": "loragw_hal.log"
+ }
+}
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.EU868 b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.EU868
new file mode 100644
index 0000000..2f17d34
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.EU868
@@ -0,0 +1,126 @@
+{
+ "SX130x_conf": {
+ "com_type": "SPI",
+ "com_path": "/dev/spidev1.0",
+ "lorawan_public": true,
+ "clksrc": 0,
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "full_duplex": false,
+ "fine_timestamp": {
+ "enable": false,
+ "mode": "all_sf" /* high_capacity or all_sf */
+ },
+ "sx1261_conf": {
+ "spi_path": "/dev/spidev1.1",
+ "rssi_offset": 0, /* dB */
+ "spectral_scan": {
+ "enable": false,
+ "freq_start": 867100000,
+ "nb_chan": 8,
+ "nb_scan": 2000,
+ "pace_s": 10
+ },
+ "lbt": {
+ "enable": false,
+ "rssi_target": -70, /* dBm */
+ "channels":[ /* 16 channels maximum */
+ { "freq_hz": 867100000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867300000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867500000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867700000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 867900000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868100000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868300000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 868500000, "bandwidth": 125000, "scan_time_us": 128, "transmit_time_ms": 400 },
+ { "freq_hz": 869525000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 },
+ { "freq_hz": 868300000, "bandwidth": 250000, "scan_time_us": 128, "transmit_time_ms": 400 }
+ ]
+ }
+ },
+ "radio_0": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 867500000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": true,
+ "tx_freq_min": 863000000,
+ "tx_freq_max": 870000000,
+ "tx_gain_lut":[
+ {"rf_power": 12, "pa_gain": 0, "pwr_idx": 15},
+ {"rf_power": 13, "pa_gain": 0, "pwr_idx": 16},
+ {"rf_power": 14, "pa_gain": 0, "pwr_idx": 17},
+ {"rf_power": 15, "pa_gain": 0, "pwr_idx": 19},
+ {"rf_power": 16, "pa_gain": 0, "pwr_idx": 20},
+ {"rf_power": 17, "pa_gain": 0, "pwr_idx": 22},
+ {"rf_power": 18, "pa_gain": 1, "pwr_idx": 1},
+ {"rf_power": 19, "pa_gain": 1, "pwr_idx": 2},
+ {"rf_power": 20, "pa_gain": 1, "pwr_idx": 3},
+ {"rf_power": 21, "pa_gain": 1, "pwr_idx": 4},
+ {"rf_power": 22, "pa_gain": 1, "pwr_idx": 5},
+ {"rf_power": 23, "pa_gain": 1, "pwr_idx": 6},
+ {"rf_power": 24, "pa_gain": 1, "pwr_idx": 7},
+ {"rf_power": 25, "pa_gain": 1, "pwr_idx": 9},
+ {"rf_power": 26, "pa_gain": 1, "pwr_idx": 11},
+ {"rf_power": 27, "pa_gain": 1, "pwr_idx": 14}
+ ]
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 868500000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": false
+ },
+ "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
+ "chan_multiSF_0": {"enable": true, "radio": 1, "if": -400000},
+ "chan_multiSF_1": {"enable": true, "radio": 1, "if": -200000},
+ "chan_multiSF_2": {"enable": true, "radio": 1, "if": 0},
+ "chan_multiSF_3": {"enable": true, "radio": 0, "if": -400000},
+ "chan_multiSF_4": {"enable": true, "radio": 0, "if": -200000},
+ "chan_multiSF_5": {"enable": true, "radio": 0, "if": 0},
+ "chan_multiSF_6": {"enable": true, "radio": 0, "if": 200000},
+ "chan_multiSF_7": {"enable": true, "radio": 0, "if": 400000},
+ "chan_Lora_std": {"enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7,
+ "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
+ "chan_FSK": {"enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000}
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports */
+ "server_address": "localhost",
+ "serv_port_up": 1730,
+ "serv_port_down": 1730,
+ /* 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,
+ /* GPS configuration */
+ "gps_tty_path": "/dev/ttyS0",
+ /* GPS reference coordinates */
+ "ref_latitude": 0.0,
+ "ref_longitude": 0.0,
+ "ref_altitude": 0,
+ /* Beaconing parameters */
+ "beacon_period": 0,
+ "beacon_freq_hz": 869525000,
+ "beacon_datarate": 9,
+ "beacon_bw_hz": 125000,
+ "beacon_power": 14,
+ "beacon_infodesc": 0
+ },
+
+ "debug_conf": {
+ "ref_payload":[
+ {"id": "0xCAFE1234"},
+ {"id": "0xCAFE2345"}
+ ],
+ "log_file": "loragw_hal.log"
+ }
+}
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.US915 b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.US915
new file mode 100644
index 0000000..e89cc16
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/global_conf.json.MTCAP3.US915
@@ -0,0 +1,113 @@
+{
+ "SX130x_conf": {
+ "com_type": "SPI",
+ "com_path": "/dev/spidev1.0",
+ "lorawan_public": true,
+ "clksrc": 0,
+ "antenna_gain": 0, /* antenna gain, in dBi */
+ "full_duplex": false,
+ "fine_timestamp": {
+ "enable": false,
+ "mode": "all_sf" /* high_capacity or all_sf */
+ },
+ "sx1261_conf": {
+ "spi_path": "/dev/spidev1.1",
+ "rssi_offset": 0, /* dB */
+ "spectral_scan": {
+ "enable": false,
+ "freq_start": 903900000,
+ "nb_chan": 8,
+ "nb_scan": 2000,
+ "pace_s": 10
+ },
+ "lbt": {
+ "enable": false /* LBT for 500 Khz channels is not supported */
+ }
+ },
+ "radio_0": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 904300000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": true,
+ "tx_freq_min": 923000000,
+ "tx_freq_max": 928000000,
+ "tx_gain_lut":[
+ {"rf_power": 12, "pa_gain": 0, "pwr_idx": 15},
+ {"rf_power": 13, "pa_gain": 0, "pwr_idx": 16},
+ {"rf_power": 14, "pa_gain": 0, "pwr_idx": 17},
+ {"rf_power": 15, "pa_gain": 0, "pwr_idx": 19},
+ {"rf_power": 16, "pa_gain": 0, "pwr_idx": 20},
+ {"rf_power": 17, "pa_gain": 0, "pwr_idx": 22},
+ {"rf_power": 18, "pa_gain": 1, "pwr_idx": 1},
+ {"rf_power": 19, "pa_gain": 1, "pwr_idx": 2},
+ {"rf_power": 20, "pa_gain": 1, "pwr_idx": 3},
+ {"rf_power": 21, "pa_gain": 1, "pwr_idx": 4},
+ {"rf_power": 22, "pa_gain": 1, "pwr_idx": 5},
+ {"rf_power": 23, "pa_gain": 1, "pwr_idx": 6},
+ {"rf_power": 24, "pa_gain": 1, "pwr_idx": 7},
+ {"rf_power": 25, "pa_gain": 1, "pwr_idx": 9},
+ {"rf_power": 26, "pa_gain": 1, "pwr_idx": 11},
+ {"rf_power": 27, "pa_gain": 1, "pwr_idx": 14}
+ ]
+ },
+ "radio_1": {
+ "enable": true,
+ "type": "SX1250",
+ "freq": 905000000,
+ "rssi_offset": -215.4,
+ "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0},
+ "tx_enable": false
+ },
+ "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
+ "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, /* Freq : 903.9 MHz*/
+ "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, /* Freq : 904.1 MHz*/
+ "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, /* Freq : 904.3 MHz*/
+ "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, /* Freq : 904.5 MHz*/
+ "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, /* Freq : 904.7 MHz*/
+ "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, /* Freq : 904.9 MHz*/
+ "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, /* Freq : 905.1 MHz*/
+ "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, /* Freq : 905.3 MHz*/
+ "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, /* Freq : 904.6 MHz*/
+ "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
+ "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} /* Freq : 868.8 MHz*/
+ },
+
+ "gateway_conf": {
+ "gateway_ID": "AA555A0000000000",
+ /* change with default server address/ports */
+ "server_address": "localhost",
+ "serv_port_up": 1730,
+ "serv_port_down": 1730,
+ /* 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,
+ /* GPS configuration */
+ "gps_tty_path": "/dev/ttyS0",
+ /* GPS reference coordinates */
+ "ref_latitude": 0.0,
+ "ref_longitude": 0.0,
+ "ref_altitude": 0,
+ /* Beaconing parameters */
+ "beacon_period": 0, /* disable class B beacon */
+ "beacon_freq_hz": 869525000,
+ "beacon_datarate": 9,
+ "beacon_bw_hz": 125000,
+ "beacon_power": 14,
+ "beacon_infodesc": 0
+ },
+
+ "debug_conf": {
+ "ref_payload":[
+ {"id": "0xCAFE1234"},
+ {"id": "0xCAFE2345"}
+ ],
+ "log_file": "loragw_hal.log"
+ }
+}
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303/reset_lgw.sh b/recipes-connectivity/lora/lora-gateway-sx1303/reset_lgw.sh
new file mode 100644
index 0000000..a89c674
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-sx1303/reset_lgw.sh
@@ -0,0 +1,83 @@
+#!/bin/sh
+
+# This script is intended to be used on MTAC-003V3 platform, it performs
+# the following actions:
+# - export/unpexort pioC9 and pioB12 used to reset the SX1302 chip and setup AP1_NRESET
+# - export/unexport pioC10 used to reset the optional SX1261 radio used for LBT/Spectral Scan
+#
+# Usage examples:
+# ./reset_lgw.sh stop
+# ./reset_lgw.sh start
+
+# GPIO mapping has to be adapted with HW
+#
+
+SX1302_RESET_PIN=73 # SX1302 reset
+AP1_NRESET_PIN=44 # AP1_NRESET
+SX1261_RESET_PIN=74 # SX1261 reset (LBT / Spectral Scan)
+SX1302_RESET_pio=C9 # pio for SX1303 reset
+AP1_NRESET_pio=B12 # pio for AP1_NRESET
+SX1261_NRESET_pio=C10 # pio for SX1261 NRESET
+
+WAIT_GPIO() {
+ sleep 0.1
+}
+
+init() {
+ # setup GPIOs
+ echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
+ echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
+ echo "$AP1_NRESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
+
+ # set GPIOs as output
+ echo "out" > /sys/class/gpio/pio$SX1302_RESET_pio/direction; WAIT_GPIO
+ echo "out" > /sys/class/gpio/pio$SX1261_NRESET_pio/direction; WAIT_GPIO
+ echo "out" > /sys/class/gpio/pio$AP1_NRESET_pio/direction; WAIT_GPIO
+}
+
+reset() {
+ echo "MTAC-003V3 SX1303 reset through pio$SX1302_RESET_pio..."
+ echo "SX1261 reset through pio$SX1261_NRESET_pio..."
+ echo "AP1 NRESET through pio$AP1_NRESET_pio..."
+
+ # write output for AP1_NRESET and SX1303 reset
+ echo "1" > /sys/class/gpio/pio$AP1_NRESET_pio/value; WAIT_GPIO
+
+ echo "1" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO
+ echo "0" > /sys/class/gpio/pio$SX1302_RESET_pio/value; WAIT_GPIO
+
+ echo "0" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO
+ echo "1" > /sys/class/gpio/pio$SX1261_NRESET_pio/value; WAIT_GPIO
+}
+
+term() {
+ # cleanup all GPIOs
+ if [ -d /sys/class/gpio/pio$SX1302_RESET_pio ]
+ then
+ echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
+ fi
+ if [ -d /sys/class/gpio/pio$SX1261_NRESET_pio ]
+ then
+ echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
+ fi
+ if [ -d /sys/class/gpio/pio$AP1_NRESET_pio ]
+ then
+ echo "$AP1_NRESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
+ fi
+}
+
+case "$1" in
+ start)
+ term # just in case
+ init
+ reset
+ ;;
+ stop)
+ reset
+ term
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+ ;;
+esac
diff --git a/recipes-connectivity/lora/lora-gateway-sx1303_2.0.1.bb b/recipes-connectivity/lora/lora-gateway-sx1303_2.0.4.bb
index c5c2ab1..fb2d708 100644
--- a/recipes-connectivity/lora/lora-gateway-sx1303_2.0.1.bb
+++ b/recipes-connectivity/lora/lora-gateway-sx1303_2.0.4.bb
@@ -12,7 +12,11 @@ PR = "r0"
# SRCREV = "100104ee350a0e469b348ac383486d311caaf5e5"
SRCREV = "V${PV}"
-SRC_URI = "git://github.com/Lora-net/sx1302_hal.git;protocol=git;branch=master \
+SRC_URI = "git://github.com/MultiTechSystems/sx1302_hal.git;protocol=git;branch=master \
+ file://global_conf.json.MTAC_003_0_0.EU868 \
+ file://global_conf.json.MTAC_003_0_0.US915 \
+ file://global_conf.json.MTCAP3.EU868 \
+ file://global_conf.json.MTCAP3.US915 \
"
@@ -45,15 +49,23 @@ do_install() {
}
do_install_append_mtcdt() {
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.EU868 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.EU868
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.US915 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.US915
}
do_install_append_mtcap() {
+ install -m 644 ${WORKDIR}/global_conf.json.MTCAP3.EU868 ${D}${LORA_DIR}/global_conf.json.MTCAP3.EU868
+ install -m 644 ${WORKDIR}/global_conf.json.MTCAP3.US915 ${D}${LORA_DIR}/global_conf.json.MTCAP3.US915
}
do_install_append_mtcdt3() {
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.EU868 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.EU868
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.US915 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.US915
}
do_install_append_mtcdt3hs() {
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.EU868 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.EU868
+ install -m 644 ${WORKDIR}/global_conf.json.MTAC_003_0_0.US915 ${D}${LORA_DIR}/global_conf.json.MTAC_003_0_0.US915
}
@@ -62,4 +74,5 @@ FILES_${PN} += "${LORA_DIR}"
# disable this on purpose for dev purposes
do_rm_work() {
echo "skipping"
+
}