summaryrefslogtreecommitdiff
path: root/recipes-connectivity/lora/lora-gateway-usb
diff options
context:
space:
mode:
authorJason Reiss <jreiss@multitech.com>2016-10-14 10:05:23 -0500
committerJason Reiss <jreiss@multitech.com>2016-10-14 10:05:23 -0500
commit5ebcefe167c398e98567bb4c05d7e9fb5bcbcfe7 (patch)
tree8cc4ae39c1ccf1bfac3c09397687e0808bbcba0b /recipes-connectivity/lora/lora-gateway-usb
parente84694799fe3301529c1b2b5661233af8a02f94c (diff)
downloadmeta-mlinux-5ebcefe167c398e98567bb4c05d7e9fb5bcbcfe7.tar.gz
meta-mlinux-5ebcefe167c398e98567bb4c05d7e9fb5bcbcfe7.tar.bz2
meta-mlinux-5ebcefe167c398e98567bb4c05d7e9fb5bcbcfe7.zip
lora: move old usb packet forwarder and library utilities to new recipes
add spi device path option to packet forwarder and library
Diffstat (limited to 'recipes-connectivity/lora/lora-gateway-usb')
-rw-r--r--recipes-connectivity/lora/lora-gateway-usb/library.cfg73
-rw-r--r--recipes-connectivity/lora/lora-gateway-usb/lora-gateway-debug.patch13
-rw-r--r--recipes-connectivity/lora/lora-gateway-usb/lora-gateway-sync-word.patch40
3 files changed, 126 insertions, 0 deletions
diff --git a/recipes-connectivity/lora/lora-gateway-usb/library.cfg b/recipes-connectivity/lora/lora-gateway-usb/library.cfg
new file mode 100644
index 0000000..01b066d
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-usb/library.cfg
@@ -0,0 +1,73 @@
+# That file will be included in the Makefile files that have hardware dependencies
+
+### SPI interface to the concentrator ###
+# Accepted values:
+# native Linux native SPI driver (/dev/spidev32766.0)
+# ftdi FTDI SPI-over-USB bridge using libmpsse/libftdi/libusb
+
+CFG_SPI= ftdi
+CFG_SPI_DEV = "/dev/spidev32766.2"
+
+### Concentrator chip ###
+# Accepted values:
+# sx1301 Semtech SX1301 production chip
+# fpga1301 FPGA containing the SX1301 IP
+
+CFG_CHIP= sx1301
+
+### Radio chip(s) ###
+# Accepted values:
+# sx1257 Dual SX1257 transceivers, covering 860-1000 MHz
+# sx1255 Dual SX1255 transceivers, covering 400-510 MHz
+
+CFG_RADIO= sx1257
+
+### RF band configuration ###
+# Used to configured frequency restrictions (eg. if a SAW filter is installed)
+# Accepted values:
+# full Full range supported by the radio(s)
+# eu868 ETSI 868 (866) MHz band
+# us915 FCC 915 MHz band
+# cn470 China 470 MHz band
+# eu433 ETSI 433 MHz band
+# cn780 China 780 MHz band
+
+CFG_BAND= full
+
+### Board misc parameters & calibration ###
+# Used to configure misc board options.
+# RX RSSI indication and TX power are highly dependant on radio, band, filter
+# and RF front-ends, and must be calibrated for each new board design.
+# Available calibration parameters:
+# dev_nano_868 FPGA-based nano-concentrator, with 868 MHz SAW filter
+# ref_1301_868 SX1301 reference board with SX1257 radios, 868 MHz filters
+# ref_1301_433 SX1301 reference board with SX1255 radios, 433 MHz filters
+# kerlink_868 Kerlink LoRa 868MHz gateway
+# kerlink_433 Kerlink LoRa 433MHz gateway
+# cisco_433 Cisco LoRa 433MHz gateway
+# cisco_470 Cisco LoRa 470MHz gateway
+# cisco_780 Cisco LoRa 780MHz gateway
+# Keep empty for no calibration parameters (neutral values will be used).
+
+# MTAC-LORA 900MHz
+CFG_BRD= mtaclora
+
+### Network Type ###
+# Accepted values:
+# private Default
+# lora_mac Only compliant with devices running LoRa MAC
+
+CFG_NET= private
+
+### Debug options ###
+# Set the DEBUG_* to 1 to activate debug mode in individual modules.
+# Warning: that makes the module *very verbose*, do not use for production
+
+DEBUG_AUX= 0
+DEBUG_SPI= 0
+DEBUG_REG= 0
+# jjg - turning this on is useful to get HAL-related error messages that
+# don't print out otherwise. It doesn't seem to add that much printing
+# under normal operation.
+DEBUG_HAL= 1
+DEBUG_GPS= 0
diff --git a/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-debug.patch b/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-debug.patch
new file mode 100644
index 0000000..dba4392
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-debug.patch
@@ -0,0 +1,13 @@
+Index: git/libloragw/src/loragw_hal.c
+===================================================================
+--- git.orig/libloragw/src/loragw_hal.c 2014-12-16 16:07:20.812506157 -0600
++++ git/libloragw/src/loragw_hal.c 2014-12-16 16:18:34.427454833 -0600
+@@ -1626,6 +1626,8 @@
+ break;
+ }
+ }
++
++ DEBUG_PRINTF("DEBUG: Tx pow_index %d, rf_power %d\n", pow_index, tx_pow_table[pow_index].rf_power);
+
+ /* loading TX imbalance correction */
+ target_mix_gain = tx_pow_table[pow_index].mix_gain;
diff --git a/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-sync-word.patch b/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-sync-word.patch
new file mode 100644
index 0000000..e51e02a
--- /dev/null
+++ b/recipes-connectivity/lora/lora-gateway-usb/lora-gateway-sync-word.patch
@@ -0,0 +1,40 @@
+diff --git a/libloragw/inc/loragw_hal.h b/libloragw/inc/loragw_hal.h
+index 1516b65..24c5969 100644
+--- a/libloragw/inc/loragw_hal.h
++++ b/libloragw/inc/loragw_hal.h
+@@ -302,6 +312,11 @@ struct lgw_pkt_tx_s {
+
+ /* -------------------------------------------------------------------------- */
+ /* --- PUBLIC FUNCTIONS PROTOTYPES ------------------------------------------ */
++/**
++ * @brief Configure the lora synch word
++ * @param word for synch
++ */
++void lgw_conf_lora_synch_word(uint8_t word);
+
+ /**
+ @brief Configure an RF chain (must configure before start)
+diff --git a/libloragw/src/loragw_hal.c b/libloragw/src/loragw_hal.c
+index 5dbdf45..d0fe288 100644
+--- a/libloragw/src/loragw_hal.c
++++ b/libloragw/src/loragw_hal.c
+@@ -827,6 +851,19 @@ void lgw_constant_adjust(void) {
+ /* -------------------------------------------------------------------------- */
+ /* --- PUBLIC FUNCTIONS DEFINITION ------------------------------------------ */
+
++void lgw_conf_lora_synch_word(uint8_t word) {
++ uint8_t peak1 = word >> 4;
++ uint8_t peak2 = word & 0x0F;
++
++ lgw_reg_w(LGW_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */
++ lgw_reg_w(LGW_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */
++ lgw_reg_w(LGW_MBWSSF_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */
++ lgw_reg_w(LGW_MBWSSF_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */
++ lgw_reg_w(LGW_TX_FRAME_SYNCH_PEAK1_POS, peak1); /* default 1 */
++ lgw_reg_w(LGW_TX_FRAME_SYNCH_PEAK2_POS, peak2); /* default 2 */
++}
++
++
+ int lgw_rxrf_setconf(uint8_t rf_chain, struct lgw_conf_rxrf_s conf) {
+
+ /* check if the concentrator is running */