├── .gitignore ├── CHANGELOG.md ├── Dockerfile ├── Dockerfile.template ├── LICENSE.md ├── README.md ├── balena.yml ├── build.sh ├── builder ├── build └── patches │ ├── gateway_2g4_hal.V1.1.0.patch │ ├── lora_gateway.v5.0.1.patch │ ├── packet_forwarder.v4.0.1.patch │ ├── picoGW_hal.V0.2.3.patch │ ├── picoGW_packet_forwarder.V0.1.0.patch │ └── sx1302_hal.V2.1.0.patch ├── docker-bake.hcl ├── docker-compose.yml ├── logo.png ├── runner ├── balena.sh ├── find_concentrator ├── gateway_eui ├── reset.sh.gpiod ├── reset.sh.legacy ├── start └── templates │ ├── local_conf.json │ ├── sx1280 │ └── global_conf.global.json │ ├── sx1301 │ ├── global_conf.as_915_921.json │ ├── global_conf.as_915_928.json │ ├── global_conf.as_917_920.json │ ├── global_conf.as_920_923.json │ ├── global_conf.au_915_928.json │ ├── global_conf.cn_470_510.json │ ├── global_conf.eu_433.json │ ├── global_conf.eu_863_870.json │ ├── global_conf.in_865_867.json │ ├── global_conf.kr_920_923.json │ ├── global_conf.ru_864_870.json │ └── global_conf.us_902_928.json │ ├── sx1302 │ ├── global_conf.as_915_921.json │ ├── global_conf.as_915_928.json │ ├── global_conf.as_917_920.json │ ├── global_conf.as_920_923.json │ ├── global_conf.au_915_928.json │ ├── global_conf.cn_470_510.json │ ├── global_conf.eu_433.json │ ├── global_conf.eu_863_870.json │ ├── global_conf.in_865_867.json │ ├── global_conf.kr_920_923.json │ ├── global_conf.ru_864_870.json │ └── global_conf.us_902_928.json │ ├── sx1303 │ ├── global_conf.as_915_921.json │ ├── global_conf.as_915_928.json │ ├── global_conf.as_917_920.json │ ├── global_conf.as_920_923.json │ ├── global_conf.au_915_928.json │ ├── global_conf.cn_470_510.json │ ├── global_conf.eu_433.json │ ├── global_conf.eu_863_870.json │ ├── global_conf.in_865_867.json │ ├── global_conf.kr_920_923.json │ ├── global_conf.ru_864_870.json │ └── global_conf.us_902_928.json │ └── sx1308 │ ├── global_conf.as_915_921.json │ ├── global_conf.as_915_928.json │ ├── global_conf.as_917_920.json │ ├── global_conf.as_920_923.json │ ├── global_conf.au_915_928.json │ ├── global_conf.cn_470_510.json │ ├── global_conf.eu_433.json │ ├── global_conf.eu_863_870.json │ ├── global_conf.in_865_867.json │ ├── global_conf.kr_920_923.json │ ├── global_conf.ru_864_870.json │ └── global_conf.us_902_928.json └── ser2net.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | build_private.sh 2 | .DS_Store 3 | .balena -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## 2.4.7 (2024-12-11) 4 | 5 | * Force main process to run as PID 1 6 | * Patch nb_fields length mismatch on sx1302 hal 7 | 8 | ## 2.4.6 (2024-06-19) 9 | 10 | * Fix default DEVICE on v2 concentrators (SX1301) 11 | 12 | ## 2.4.5 (2024-04-16) 13 | 14 | * Support or RAK5166 and RAK5167 boards 15 | * Images based on bookworm release 16 | * Remove support for ARMv6 arch 17 | 18 | ## 2.4.4 (2024-04-02) 19 | 20 | * Option to set stat_interval and push_timeoout_ms from environment variables 21 | 22 | ## 2.4.3 (2024-03-19) 23 | 24 | * Support for auto-discover for Picocell concentrators 25 | * Auto-provision gateway for TTSv3 (TTN/TTI) and ChirpStackv4 26 | * General clean up of the code 27 | 28 | ## 2.4.2 (2024-03-13) 29 | 30 | * Option to filter uplinks and join requests using whitelists 31 | * Fixed CLKSRC for USB SX1301 concentrators 32 | * Fixed device argument for picocell concentrators 33 | 34 | ## 2.4.1 (2024-03-01) 35 | 36 | * Fixed bug in SERVER_HOST setting 37 | * Fixed `gateway_eui` script not retrieving EUI from configuration files first 38 | * Catching errors in `reset` script 39 | 40 | ## 2.4.0 (2024-02-29) 41 | 42 | * Refactor gateway_eui and find_concentrator utilities 43 | * Auto-discover concentrator up-front if no MODEL defined 44 | * Support to build address based on TTS tenant 45 | * Better support for static configuration (breaking changes) 46 | * Deprecation notice for `RADIO_DEV`, `GATEWAY_EUI_NIC` and `TTN_REGION` 47 | * Support for remote concentrators via ser2net 48 | * Support for MacOS (using ser2net) 49 | * Fixed support for picocell concentrators (no up-front auto-discover) 50 | 51 | ## 2.3.0 (2024-02-05) 52 | 53 | * Support for Raspberry Pi 5 54 | * Document gpiod use, including chip selection 55 | 56 | ## 2.2.0 (2023-11-13) 57 | 58 | * Image for armv6l architecture (#9) 59 | * If HAS_GPS==0 do not try to connect to GPS (#11) 60 | * Default value for HAS_GPS is now based on GPS_DEV 61 | 62 | ## 2.1.0 (2023-08-20) 63 | 64 | * Added concentrator discovery feature 65 | * Modified AS923 plans 66 | 67 | ## 2.0.0 (2023-06-05) 68 | 69 | * Remove dependency with rak_common_for_gateway code 70 | * Find concentrator utility 71 | 72 | ## 1.2.0 (2023-02-09) 73 | 74 | * Changed default RADIO_DEV to /dev/ttyUSB0 when using USB interface 75 | 76 | ## 1.1.3 (2022-02-18) 77 | 78 | * Option to set a different device port and speed for SX1301/8 SPI concentrators 79 | * Prevent double resetting concentrator on SX1302/3 80 | 81 | ## 1.1.2 (2022-01-27) 82 | 83 | * Fix concentrator reset 84 | * Support for RAK833-USB/SPI module 85 | 86 | ## 1.1.1 (2022-01-24) 87 | 88 | * Advanced configuration mode mounting custom `global_conf.json` file 89 | 90 | ## 1.1.0 (2022-01-24) 91 | 92 | * Added RADIO_DEV and GPS_DEV so the user can specify non-default ports, this allows to have more than one concentrator on the same device 93 | * Changed GW_RESET_GPIO and GW_POWER_EN_GPIO to RESET_GPIO and POWER_EN_GPIO 94 | * Removed EMAIL and DESCRIPTION since these are not used by the code 95 | * Applied patches to the rak_common_for_gateway code to avoid GPS warnings when DEBUG_GPS is 0 96 | * Updated README.md file and also richer docker-compose.yml file 97 | 98 | ## 1.0.1 (2022-01-23) 99 | 100 | * Support for ARMv6 processors (lke the Raspberry Pi Zero W) 101 | 102 | ## 1.0.0 (2022-01-22) 103 | 104 | * Based on rak-common-for-gateway 105 | * Compatible with SX1301, SX1302, SX1303 and SX1308 concentrators 106 | * Docker image for armv7hf (32 bits) and aarch64 (64 bits) architectures 107 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG ARCH 2 | ARG IMAGE=${ARCH} 3 | ARG TAG 4 | ARG BUILD_DATE 5 | 6 | # Builder image 7 | FROM balenalib/${IMAGE:-empty}-debian:bookworm-build AS builder 8 | ARG ARCH 9 | 10 | # Install required development packages 11 | RUN install_packages libftdi-dev libusb-dev 12 | 13 | # Switch to working directory for our app 14 | WORKDIR /app 15 | 16 | # Checkout and compile remote code 17 | COPY ./builder/ ./ 18 | RUN chmod +x build 19 | RUN ARCH=${ARCH} ./build 20 | 21 | # Runner image 22 | FROM balenalib/${IMAGE:-empty}-debian:bookworm-run AS runner 23 | ARG ARCH 24 | ARG TAG 25 | ARG BUILD_DATE 26 | 27 | # Image metadata 28 | LABEL maintainer="RAKwireless" 29 | LABEL authors="RAKwireless" 30 | LABEL org.label-schema.schema-version="1.0" 31 | LABEL org.label-schema.build-date=${BUILD_DATE} 32 | LABEL org.label-schema.name="UDP Packet Forwarder" 33 | LABEL org.label-schema.description="LoRaWAN UDP Packet Forwarder" 34 | LABEL org.label-schema.vcs-type="Git" 35 | LABEL org.label-schema.vcs-url="https://github.com/RAKWireless/udp-packet-forwarder" 36 | LABEL org.label-schema.vcs-ref=${TAG} 37 | LABEL org.label-schema.arch=${ARCH} 38 | LABEL org.label-schema.license="BSD License 2.0" 39 | LABEL io.balena.features.balena-api="1" 40 | 41 | # Install required runtime packages 42 | RUN install_packages jq vim libftdi1 gpiod socat 43 | 44 | # Switch to working directory for our app 45 | WORKDIR /app 46 | 47 | # Copy fles from builder and repo 48 | COPY --from=builder /app/artifacts ./artifacts 49 | COPY --from=builder /app/artifacts/v2/ftdi/99-libftdi.rules /etc/udev/rules.d/99-libftdi.rules 50 | COPY --from=builder /usr/local/lib/libmpsse.so /usr/local/lib/libmpsse.so 51 | COPY --from=builder /usr/local/lib/libmpsse.a /usr/local/lib/libmpsse.a 52 | COPY --from=builder /usr/local/include/mpsse.h /usr/local/include/mpsse.h 53 | COPY ./runner/ ./ 54 | RUN chmod +x start gateway_eui find_concentrator 55 | 56 | # Add application folder to path 57 | ENV PATH="${PATH}:/app" 58 | 59 | # Launch our binary on container startup. 60 | CMD ["start"] -------------------------------------------------------------------------------- /Dockerfile.template: -------------------------------------------------------------------------------- 1 | ARG ARCH=%%BALENA_ARCH%% 2 | 3 | # Builder image 4 | FROM balenalib/${ARCH:-empty}-debian:bookworm-build AS builder 5 | ARG ARCH 6 | 7 | # Install required development packages 8 | RUN install_packages libftdi-dev libusb-dev 9 | 10 | # Switch to working directory for our app 11 | WORKDIR /app 12 | 13 | # Checkout and compile remote code 14 | COPY ./builder/ ./ 15 | RUN chmod +x build 16 | RUN ARCH=${ARCH} ./build 17 | 18 | # Runner image 19 | FROM balenalib/${ARCH:-empty}-debian:bookworm-run AS runner 20 | ARG ARCH 21 | 22 | # Image metadata 23 | LABEL maintainer="RAKwireless" 24 | LABEL authors="RAKwireless" 25 | LABEL org.label-schema.schema-version="1.0" 26 | LABEL org.label-schema.name="UDP Packet Forwarder" 27 | LABEL org.label-schema.description="LoRaWAN UDP Packet Forwarder" 28 | LABEL org.label-schema.vcs-type="Git" 29 | LABEL org.label-schema.vcs-url="https://github.com/RAKWireless/udp-packet-forwarder" 30 | LABEL org.label-schema.license="BSD License 2.0" 31 | 32 | # Install required runtime packages 33 | RUN install_packages jq vim libftdi1 gpiod socat 34 | 35 | # Switch to working directory for our app 36 | WORKDIR /app 37 | 38 | # Copy fles from builder and repo 39 | COPY --from=builder /app/artifacts ./artifacts 40 | COPY --from=builder /app/artifacts/v2/ftdi/99-libftdi.rules /etc/udev/rules.d/99-libftdi.rules 41 | COPY --from=builder /usr/local/lib/libmpsse.so /usr/local/lib/libmpsse.so 42 | COPY --from=builder /usr/local/lib/libmpsse.a /usr/local/lib/libmpsse.a 43 | COPY --from=builder /usr/local/include/mpsse.h /usr/local/include/mpsse.h 44 | COPY ./runner/ ./ 45 | RUN chmod +x start gateway_eui find_concentrator 46 | 47 | # Add application folder to path 48 | ENV PATH="${PATH}:/app" 49 | 50 | # Launch our binary on container startup. 51 | CMD ["start"] -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022-2024 RAKwireless 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /balena.yml: -------------------------------------------------------------------------------- 1 | name: udp-packet-forwarder 2 | description: This project deploys a LoRaWAN gateway with UDP Packet Forwarder protocol using Docker. It runs on a Raspberry Pi 3/4/5, Compute Module 3/4 or balenaFin with SX1301, SX1302, SX1303 or SX1308 LoRa concentrators. 3 | fleetcta: Add LoRaWAN module 4 | joinable: false 5 | post-provisioning: Read correct config in the repo README - https://github.com/RAKWireless/udp-packet-forwarder 6 | type: sw.application 7 | assets: 8 | repository: 9 | type: blob.asset 10 | data: 11 | url: 'https://github.com/RAKWireless/udp-packet-forwarder' 12 | logo: 13 | type: blob.asset 14 | data: 15 | url: https://raw.githubusercontent.com/RAKWireless/udp-packet-forwarder/master/logo.png 16 | data: 17 | applicationConfigVariables: 18 | - BALENA_HOST_CONFIG_dtoverlay: '"disable-bt"' 19 | - BALENA_HOST_CONFIG_enable_uart: 1 20 | applicationEnvironmentVariables: 21 | - MODEL: RAK5146 22 | - INTERFACE: SPI 23 | - TTN_REGION: eu1 24 | defaultDeviceType: raspberrypi4-64 25 | supportedDeviceTypes: 26 | - fincm3 27 | - raspberry-pi 28 | - raspberrypi0-2w-64 29 | - raspberry-pi2 30 | - raspberrypi3 31 | - raspberrypi3-64 32 | - raspberrypi4-64 33 | - raspberrypi400-64 34 | - raspberrypicm4-ioboard 35 | - raspberrypi5 36 | - generic 37 | version: 2.4.7 38 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Uses docker buildx and https://github.com/estesp/manifest-tool 4 | 5 | # ----------------------------------------------------------------------------- 6 | # Globals 7 | # ----------------------------------------------------------------------------- 8 | 9 | PUSH=0 10 | TARGETS=() 11 | MANIFEST_TOOL=manifest-tool 12 | MANIFEST_FILE=manifest.yaml 13 | 14 | # ----------------------------------------------------------------------------- 15 | # Check dependencies 16 | # ----------------------------------------------------------------------------- 17 | 18 | # Check we have buildx extension for docker 19 | if ! docker buildx version &> /dev/null; then 20 | echo "ERROR: docker or docker buildx extension are not installed" 21 | exit 1 22 | fi 23 | 24 | # Check we have the manifest modifier tool 25 | if ! hash ${MANIFEST_TOOL} &> /dev/null; then 26 | echo "ERROR: ${MANIFEST_TOOL} could not be found!" 27 | exit 1 28 | fi 29 | 30 | # ----------------------------------------------------------------------------- 31 | # Parse arguments 32 | # ----------------------------------------------------------------------------- 33 | 34 | while [[ $# -gt 0 ]]; do 35 | if [[ "${1,,}" == "--push" ]]; then 36 | PUSH=1 37 | else 38 | TARGETS+=( "$1" ) 39 | fi 40 | shift 41 | done 42 | 43 | # ----------------------------------------------------------------------------- 44 | # Export settings for builder 45 | # ----------------------------------------------------------------------------- 46 | 47 | TAG=$( git rev-parse --short HEAD ) 48 | VERSION=$( git describe --abbrev=0 --tags ) 49 | MAJOR=$( git describe --abbrev=0 --tags | cut -d '.' -f1 ) 50 | BUILD_DATE=$( date -u +"%Y-%m-%dT%H:%M:%SZ" ) 51 | REGISTRY=${REGISTRY:-"rakwireless/udp-packet-forwarder"} 52 | 53 | export TAG 54 | export VERSION 55 | export MAJOR 56 | export BUILD_DATE 57 | export REGISTRY 58 | 59 | # ----------------------------------------------------------------------------- 60 | # Ask for confirmation if pushing 61 | # ----------------------------------------------------------------------------- 62 | 63 | if [[ ${PUSH} -eq 1 ]]; then 64 | 65 | # Ask confirmation if pushing to a registry 66 | echo "Pushing image into ${REGISTRY}" 67 | echo "Tags: ${MAJOR}, ${VERSION}, ${TAG}, latest" 68 | read -r -p "Are you sure? [y/N] " RESPONSE 69 | if [[ ! "${RESPONSE}" =~ ^([yY][eE][sS]|[yY])$ ]]; then 70 | echo "Cancelled" 71 | exit 1 72 | fi 73 | 74 | fi 75 | 76 | # ----------------------------------------------------------------------------- 77 | # Building 78 | # ----------------------------------------------------------------------------- 79 | 80 | if [[ ${PUSH} -eq 1 ]]; then 81 | time docker buildx bake --push "${TARGETS[@]}" 82 | else 83 | time docker buildx bake --load "${TARGETS[@]}" 84 | fi 85 | 86 | # ----------------------------------------------------------------------------- 87 | # Merge individual archs into the same tags 88 | # ----------------------------------------------------------------------------- 89 | 90 | if [[ ${PUSH} -eq 1 ]] && [[ ${#TARGETS[@]} -eq 0 ]]; then 91 | 92 | cat > ${MANIFEST_FILE} << EOL 93 | image: ${REGISTRY}:${TAG} 94 | tags: ['${VERSION}', '${MAJOR}', 'latest'] 95 | manifests: 96 | - image: ${REGISTRY}:aarch64-latest 97 | platform: 98 | architecture: arm64 99 | os: linux 100 | - image: ${REGISTRY}:armv7hf-latest 101 | platform: 102 | architecture: arm 103 | os: linux 104 | - image: ${REGISTRY}:amd64-latest 105 | platform: 106 | architecture: amd64 107 | os: linux 108 | EOL 109 | 110 | ${MANIFEST_TOOL} push from-spec ${MANIFEST_FILE} 111 | rm ${MANIFEST_FILE} 112 | 113 | fi 114 | -------------------------------------------------------------------------------- /builder/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | cd "$( dirname "$0" )" || exit 6 | 7 | # ----------------------------------------------------------------------------- 8 | # Colors 9 | # ----------------------------------------------------------------------------- 10 | 11 | COLOR_INFO="\e[32m" # green 12 | COLOR_END="\e[0m" 13 | 14 | # ----------------------------------------------------------------------------- 15 | # Tools 16 | # ----------------------------------------------------------------------------- 17 | 18 | clone_and_patch() { 19 | 20 | URL=$1 21 | TAG=$2 22 | FOLDER=${URL##*/} 23 | FOLDER=${FOLDER//\.git/} 24 | 25 | # Clone 26 | if [[ ! -d "$FOLDER" ]]; then 27 | git clone -b "${TAG}" "${URL}" "$FOLDER" 28 | pushd "$FOLDER" >> /dev/null 29 | else 30 | pushd "$FOLDER" >> /dev/null 31 | git checkout -- . 32 | git clean -d -x -f 33 | git checkout "${TAG}" 34 | fi 35 | 36 | # Apply patches 37 | if [ -f "../patches/$FOLDER.$TAG.patch" ]; then 38 | echo -e "${COLOR_INFO}Applying $FOLDER.$TAG.patch ...${COLOR_END}" 39 | git apply "../patches/$FOLDER.$TAG.patch" 40 | fi 41 | 42 | popd >> /dev/null 43 | 44 | } 45 | 46 | 47 | clone_patch_and_make() { 48 | 49 | URL=$1 50 | TAG=$2 51 | FOLDER=${URL##*/} 52 | FOLDER=${FOLDER//\.git/} 53 | 54 | clone_and_patch "$URL" "$TAG" 55 | 56 | pushd "$FOLDER" >> /dev/null 57 | make clean all 58 | popd >> /dev/null 59 | 60 | } 61 | 62 | print_header() { 63 | 64 | TITLE="$1" 65 | echo -e "${COLOR_INFO}-------------------------------------------------------${COLOR_END}" 66 | echo -e "${COLOR_INFO}$TITLE${COLOR_END}" 67 | echo -e "${COLOR_INFO}-------------------------------------------------------${COLOR_END}" 68 | 69 | } 70 | 71 | # ----------------------------------------------------------------------------- 72 | # Building libmpsse for FTDI access 73 | # ----------------------------------------------------------------------------- 74 | 75 | print_header "Building LIBMPSSE" 76 | clone_and_patch https://github.com/devttys0/libmpsse.git master 77 | pushd libmpsse/src >> /dev/null 78 | ./configure --disable-python 79 | make clean all install 80 | ldconfig 81 | popd > /dev/null 82 | 83 | # ----------------------------------------------------------------------------- 84 | # Building packet forwarder for V2 in native (SPI) mode 85 | # ----------------------------------------------------------------------------- 86 | 87 | print_header "Building UDP Packet Forwarder for V2 NATIVE" 88 | clone_and_patch https://github.com/Lora-net/lora_gateway.git v5.0.1 89 | pushd lora_gateway >> /dev/null 90 | echo "CFG_SPI= native" >> libloragw/library.cfg 91 | make clean all 92 | popd > /dev/null 93 | clone_patch_and_make https://github.com/Lora-net/packet_forwarder.git v4.0.1 94 | mkdir -p artifacts/v2/native 95 | cp packet_forwarder/lora_pkt_fwd/lora_pkt_fwd artifacts/v2/native/ 96 | rm -rf lora_gateway packet_forwarder 97 | 98 | # ----------------------------------------------------------------------------- 99 | # Building packet forwarder for V2 in FTDI (USB) mode 100 | # ----------------------------------------------------------------------------- 101 | 102 | print_header "Building UDP Packet Forwarder for V2 FTDI" 103 | clone_and_patch https://github.com/Lora-net/lora_gateway.git v5.0.1 104 | pushd lora_gateway >> /dev/null 105 | echo "CFG_SPI= ftdi" >> libloragw/library.cfg 106 | make clean all 107 | popd > /dev/null 108 | clone_patch_and_make https://github.com/Lora-net/packet_forwarder.git v4.0.1 109 | mkdir -p artifacts/v2/ftdi 110 | cp packet_forwarder/lora_pkt_fwd/lora_pkt_fwd artifacts/v2/ftdi/ 111 | cp lora_gateway/libloragw/99-libftdi.rules artifacts/v2/ftdi/ 112 | rm -rf lora_gateway packet_forwarder 113 | 114 | # ----------------------------------------------------------------------------- 115 | # Building packet forwarder for Corecells 116 | # ----------------------------------------------------------------------------- 117 | 118 | print_header "Building UDP Packet Forwarder for Corecells" 119 | clone_patch_and_make https://github.com/Lora-net/sx1302_hal.git V2.1.0 120 | mkdir -p artifacts/corecell 121 | cp sx1302_hal/packet_forwarder/lora_pkt_fwd artifacts/corecell/ 122 | cp sx1302_hal/util_chip_id/chip_id artifacts/corecell/ 123 | rm -rf sx1302_hal 124 | 125 | # ----------------------------------------------------------------------------- 126 | # Building packet forwarder for Picocells 127 | # ----------------------------------------------------------------------------- 128 | 129 | print_header "Building UDP Packet Forwarder for Picocells" 130 | clone_patch_and_make https://github.com/Lora-net/picoGW_hal V0.2.3 131 | clone_patch_and_make https://github.com/Lora-net/picoGW_packet_forwarder.git V0.1.0 132 | mkdir -p artifacts/picocell 133 | cp picoGW_packet_forwarder/lora_pkt_fwd/lora_pkt_fwd artifacts/picocell/ 134 | cp picoGW_hal/util_chip_id/util_chip_id artifacts/picocell/chip_id 135 | rm -rf picoGW_packet_forwarder picoGW_hal 136 | 137 | # ----------------------------------------------------------------------------- 138 | # Building packet forwarder for designs based on SX1280 139 | # ----------------------------------------------------------------------------- 140 | 141 | print_header "Building UDP Packet Forwarder for 2.4 GHz" 142 | clone_patch_and_make https://github.com/Lora-net/gateway_2g4_hal V1.1.0 143 | mkdir -p artifacts/2g4 144 | cp gateway_2g4_hal/packet_forwarder/lora_pkt_fwd artifacts/2g4/ 145 | cp gateway_2g4_hal/util_chip_id/chip_id artifacts/2g4/ 146 | rm -rf gateway_2g4_hal 147 | -------------------------------------------------------------------------------- /builder/patches/picoGW_hal.V0.2.3.patch: -------------------------------------------------------------------------------- 1 | diff --git a/libloragw/inc/loragw_mcu.h b/libloragw/inc/loragw_mcu.h 2 | index 938d886..42004dd 100644 3 | --- a/libloragw/inc/loragw_mcu.h 4 | +++ b/libloragw/inc/loragw_mcu.h 5 | @@ -30,7 +30,7 @@ License: Revised BSD License, see LICENSE.TXT file include in the project 6 | #define LGW_MCU_SUCCESS 0 7 | #define LGW_MCU_ERROR -1 8 | 9 | -#define STM32FWVERSION 0x010a0006 /* increment LSB for new version */ 10 | +#define STM32FWVERSION 0x010a0004 /* increment LSB for new version */ 11 | 12 | #define MCU_DELAY_COM_INIT 1000 13 | #define MCU_DELAY_RESET 200 14 | -------------------------------------------------------------------------------- /docker-bake.hcl: -------------------------------------------------------------------------------- 1 | variable "TAG" { default = "latest" } 2 | variable "VERSION" { default = "latest" } 3 | variable "BUILD_DATE" { default = "" } 4 | variable "REGISTRY" { default = "rakwireless/udp-packet-forwarder" } 5 | 6 | group "default" { 7 | targets = ["armv7hf", "aarch64", "amd64"] 8 | } 9 | 10 | target "armv7hf" { 11 | tags = ["${REGISTRY}:armv7hf-latest"] 12 | args = { 13 | "ARCH" = "armv7hf", 14 | "TAG" = "${TAG}", 15 | "VERSION" = "${VERSION}", 16 | "BUILD_DATE" = "${BUILD_DATE}" 17 | } 18 | platforms = ["linux/arm/v7"] 19 | } 20 | 21 | target "aarch64" { 22 | tags = ["${REGISTRY}:aarch64-latest"] 23 | args = { 24 | "ARCH" = "aarch64", 25 | "TAG" = "${TAG}", 26 | "VERSION" = "${VERSION}", 27 | "BUILD_DATE" = "${BUILD_DATE}" 28 | } 29 | platforms = ["linux/arm64"] 30 | } 31 | 32 | target "amd64" { 33 | tags = ["${REGISTRY}:amd64-latest"] 34 | args = { 35 | "ARCH" = "amd64", 36 | "TAG" = "${TAG}", 37 | "VERSION" = "${VERSION}", 38 | "BUILD_DATE" = "${BUILD_DATE}" 39 | } 40 | platforms = ["linux/amd64"] 41 | } 42 | 43 | -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RAKWireless/udp-packet-forwarder/28d17446cc2159750cdbe349238a39b07b2b7e79/logo.png -------------------------------------------------------------------------------- /runner/balena.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | BALENA_DEVICE_DATA=$(curl -sX GET "https://api.balena-cloud.com/v6/device?\$filter=uuid%20eq%20'${BALENA_DEVICE_UUID}'" \ 4 | -H "Content-Type: application/json" \ 5 | -H "Authorization: Bearer ${BALENA_API_KEY}") 6 | 7 | BALENA_ID=$( echo "${BALENA_DEVICE_DATA}" | jq ".d | .[0] | .id" ) 8 | 9 | balena_get_lan_ip() { 10 | echo "${BALENA_DEVICE_DATA}" | jq ".d | .[0] | .ip_address" | sed 's/"//g' | sed 's/ /,/g' 11 | } 12 | 13 | balena_set_variable() { 14 | 15 | local NAME=$1 16 | local VALUE=$2 17 | local VARIABLE_ID 18 | 19 | VARIABLE_ID=$( curl -sX GET "https://api.balena-cloud.com/v6/device_environment_variable" -H "Content-Type: application/json" -H "Authorization: Bearer ${BALENA_API_KEY}" | jq '.d | .[] | select(.name == "'"${NAME}"'") | .id' ) 20 | 21 | if [ -z "${VARIABLE_ID}" ]; then 22 | 23 | curl -sX POST \ 24 | "https://api.balena-cloud.com/v6/device_environment_variable" \ 25 | -H "Content-Type: application/json" \ 26 | -H "Authorization: Bearer ${BALENA_API_KEY}" \ 27 | --data "{\"device\": \"$BALENA_ID\",\"name\": \"${NAME}\",\"value\": \"${VALUE}\"}" >/dev/null 2>&1 28 | 29 | else 30 | 31 | curl -sX PATCH \ 32 | "https://api.balena-cloud.com/v6/device_environment_variable($VARIABLE_ID)" \ 33 | -H "Content-Type: application/json" \ 34 | -H "Authorization: Bearer ${BALENA_API_KEY}" \ 35 | --data "{\"value\": \"${VALUE}\"}" >/dev/null 2>&1 36 | 37 | fi 38 | 39 | } 40 | 41 | balena_set_label() { 42 | 43 | local NAME=$1 44 | local VALUE=$2 45 | local TAG_ID 46 | 47 | TAG_ID=$( curl -sX GET "https://api.balena-cloud.com/v6/device_tag" -H "Content-Type: application/json" -H "Authorization: Bearer ${BALENA_API_KEY}" | jq '.d | .[] | select(.tag_key == "'"${NAME}"'") | .id' ) 48 | if [ -z "${TAG_ID}" ]; then 49 | 50 | curl -sX POST \ 51 | "https://api.balena-cloud.com/v6/device_tag" \ 52 | -H "Content-Type: application/json" \ 53 | -H "Authorization: Bearer ${BALENA_API_KEY}" \ 54 | --data "{\"device\": \"$BALENA_ID\",\"tag_key\": \"${NAME}\",\"value\": \"${VALUE}\"}" >/dev/null 2>&1 55 | 56 | else 57 | 58 | curl -sX PATCH \ 59 | "https://api.balena-cloud.com/v6/device_tag($TAG_ID)" \ 60 | -H "Content-Type: application/json" \ 61 | -H "Authorization: Bearer ${BALENA_API_KEY}" \ 62 | --data "{\"value\": \"${VALUE}\"}" >/dev/null 2>&1 63 | 64 | fi 65 | 66 | } 67 | 68 | 69 | -------------------------------------------------------------------------------- /runner/gateway_eui: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | cd "$( dirname "$0" )" || exit 4 | 5 | # ----------------------------------------------------------------------------- 6 | # Chip ID 7 | # ----------------------------------------------------------------------------- 8 | 9 | function chip_id { 10 | 11 | local DESIGN=$1 12 | local DEVICE=$2 13 | local CHIP_ID_COMMAND 14 | 15 | [[ "$DEVICE" == *"ttyV"* ]] && TIMEOUT=10 || TIMEOUT=3 16 | 17 | CHIP_ID_COMMAND="/app/artifacts/${DESIGN}/chip_id" 18 | if [[ -f $CHIP_ID_COMMAND ]]; then 19 | 20 | if [[ "$DESIGN" == "corecell" ]]; then 21 | [[ "$DEVICE" == *"tty"* ]] && COM_TYPE="-u" 22 | GATEWAY_EUI=$( timeout "${TIMEOUT}s" "$CHIP_ID_COMMAND" "$COM_TYPE" -d "$DEVICE" 2>/dev/null | grep 'EUI' | sed 's/^.*0x//' | tr "[:lower:]" "[:upper:]" ) 23 | [[ -n "${GATEWAY_EUI}" ]] && return 1 24 | fi 25 | 26 | if [[ "$DESIGN" == "2g4" ]] && [[ "$DEVICE" == *"tty"* ]]; then 27 | GATEWAY_EUI=$( timeout "${TIMEOUT}s" "$CHIP_ID_COMMAND" -d "$DEVICE" 2>/dev/null | grep 'EUI' | sed 's/^.*0x//' | tr "[:lower:]" "[:upper:]" ) 28 | [[ -n "${GATEWAY_EUI}" ]] && return 1 29 | fi 30 | 31 | if [[ "$DESIGN" == "picocell" ]] && [[ "$DEVICE" == *"tty"* ]]; then 32 | GATEWAY_EUI=$( timeout "${TIMEOUT}s" "$CHIP_ID_COMMAND" -d "$DEVICE" 2>/dev/null | tr "[:lower:]" "[:upper:]" ) 33 | [[ -n "${GATEWAY_EUI}" ]] && return 1 34 | fi 35 | 36 | fi 37 | 38 | return 0 39 | 40 | } 41 | 42 | # ----------------------------------------------------------------------------- 43 | # Network device 44 | # ----------------------------------------------------------------------------- 45 | 46 | if [[ "${INTERFACE}" == "NET" ]]; then 47 | NETLINK=${DEVICE:-$( /sbin/ip route|awk '/default/ { print $3 ":3333" }' )} 48 | DEVICE="/dev/ttyV0" 49 | socat pty,link=$DEVICE,waitslave "tcp:$NETLINK" & 50 | fi 51 | 52 | # ----------------------------------------------------------------------------- 53 | # Create reset file 54 | # ----------------------------------------------------------------------------- 55 | 56 | # Raspberry Pi requires using libgpiod with gpiochip4 57 | if [[ $( grep -c "Raspberry Pi 5" /proc/cpuinfo ) -eq 0 ]]; then 58 | USE_LIBGPIOD=${USE_LIBGPIOD:-0} 59 | GPIO_CHIP=${GPIO_CHIP:-gpiochip0} 60 | else 61 | USE_LIBGPIOD=${USE_LIBGPIOD:-1} 62 | GPIO_CHIP=${GPIO_CHIP:-gpiochip4} 63 | fi 64 | 65 | # Create reset file 66 | if [[ ${USE_LIBGPIOD:-0} -eq 0 ]]; then 67 | cp reset.sh.legacy reset_lgw.sh 68 | else 69 | cp reset.sh.gpiod reset_lgw.sh 70 | fi 71 | sed -i "s#{{GPIO_CHIP}}#${GPIO_CHIP:-gpiochip0}#" reset_lgw.sh 72 | sed -i "s#{{RESET_GPIO}}#${RESET_GPIO:-6,17}#" reset_lgw.sh 73 | sed -i "s#{{POWER_EN_GPIO}}#${POWER_EN_GPIO:-0}#" reset_lgw.sh 74 | sed -i "s#{{POWER_EN_LOGIC}}#${POWER_EN_LOGIC:-1}#" reset_lgw.sh 75 | chmod +x reset_lgw.sh 76 | 77 | # ----------------------------------------------------------------------------- 78 | # Entry point 79 | # ----------------------------------------------------------------------------- 80 | 81 | if [[ -f /app/config/local_conf.json ]]; then 82 | 83 | GATEWAY_EUI=$( jq '.gateway_conf.gateway_ID' /app/config/local_conf.json | sed 's/"//g' ) 84 | 85 | echo "Gateway EUI: ${GATEWAY_EUI^^} (read from local_conf.conf)" 86 | 87 | elif [[ -f /app/config/global_conf.json ]]; then 88 | 89 | GATEWAY_EUI=$( jq '.gateway_conf.gateway_ID' /app/config/global_conf.json | sed 's/"//g' ) 90 | 91 | echo "Gateway EUI: ${GATEWAY_EUI^^} (read from global_conf.conf)" 92 | 93 | elif [[ "$GATEWAY_EUI_SOURCE" == "chip" ]]; then 94 | 95 | # Get all possible devices 96 | DEVICES=$( ls /dev/spidev* /dev/ttyACM* /dev/ttyUSB* /dev/ttyV* 2> /dev/null ) 97 | 98 | # Look for devices 99 | FOUND=0 100 | for DEVICE in $DEVICES; do 101 | for DESIGN in corecell 2g4 picocell; do 102 | chip_id "$DESIGN" "$DEVICE" 103 | if [[ $? -ne 0 ]] ; then 104 | echo "Gateway EUI: ${GATEWAY_EUI^^} (based on $DESIGN concentrator at $DEVICE)" 105 | FOUND=$(( FOUND + 1 )) 106 | break; 107 | fi 108 | done 109 | done 110 | 111 | if [[ $FOUND -eq 0 ]]; then 112 | echo "No concentrator found, GATEWAY_EUI from concentrator is not possible" 113 | fi 114 | 115 | elif [[ -n "$GATEWAY_EUI" ]]; then 116 | 117 | echo "Gateway EUI: ${GATEWAY_EUI^^} (based on environment variable)" 118 | 119 | else 120 | 121 | # Unset it but keep it global 122 | GATEWAY_EUI_SOURCE="" 123 | 124 | # Try usual interfaces 125 | for INET in eth0 wlan0 usb0 eth1; do 126 | if [[ $( grep -c "^\s*${INET}:" /proc/net/dev ) -eq 1 ]]; then 127 | GATEWAY_EUI_SOURCE=$INET 128 | break 129 | fi 130 | done 131 | 132 | # If none of the above, get the most used NIC based on received bytes 133 | if [[ -z $GATEWAY_EUI_SOURCE ]]; then 134 | GATEWAY_EUI_SOURCE=$( tail -n+3 < /proc/net/dev | sort -k2 -nr | head -n1 | cut -d ":" -f1 | sed 's/ //g' ) 135 | fi 136 | 137 | # Get the Gateway EUI from the source 138 | if [[ -n $GATEWAY_EUI_SOURCE ]]; then 139 | GATEWAY_EUI=$( ip link show "$GATEWAY_EUI_SOURCE" | awk '/ether/ {print $2}' | awk -F: '{print $1$2$3"FFFE"$4$5$6}' ) 140 | echo "Gateway EUI: ${GATEWAY_EUI^^} (based on interface ${GATEWAY_EUI_SOURCE})" 141 | else 142 | echo -e "${COLOR_ERROR}ERROR: No network interface found. Cannot set gateway EUI.${COLOR_END}" 143 | fi 144 | 145 | fi 146 | -------------------------------------------------------------------------------- /runner/reset.sh.gpiod: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | GPIO_CHIP="{{GPIO_CHIP}}" 4 | RESET_GPIO="{{RESET_GPIO}}" 5 | POWER_EN_GPIO="{{POWER_EN_GPIO}}" 6 | POWER_EN_LOGIC="{{POWER_EN_LOGIC}}" 7 | 8 | GPIOSET="gpioset -m time -u 100000 ${GPIO_CHIP}" 9 | 10 | # Enable gateway 11 | if [[ ${POWER_EN_GPIO} -ne 0 ]]; then 12 | echo "Concentrator enabled through ${GPIO_CHIP}:${POWER_EN_GPIO} (using libgpiod)" 13 | ${GPIOSET} ${POWER_EN_GPIO}=${POWER_EN_LOGIC} 2>/dev/null 14 | fi 15 | 16 | # Reset gateway 17 | for GPIO in ${RESET_GPIO//,/ }; do 18 | if [[ ${GPIO} -ne 0 ]]; then 19 | echo "Concentrator reset through ${GPIO_CHIP}:${GPIO} (using libgpiod)" 20 | ${GPIOSET} "${GPIO}"=0 2>/dev/null 21 | ${GPIOSET} "${GPIO}"=1 2>/dev/null 22 | ${GPIOSET} "${GPIO}"=0 2>/dev/null 23 | fi 24 | done 25 | 26 | exit 0 27 | -------------------------------------------------------------------------------- /runner/reset.sh.legacy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | WAIT_GPIO() { 4 | sleep 0.01 5 | } 6 | 7 | RESET_GPIO="{{RESET_GPIO}}" 8 | POWER_EN_GPIO="{{POWER_EN_GPIO}}" 9 | POWER_EN_LOGIC="{{POWER_EN_LOGIC}}" 10 | 11 | # Enable gateway 12 | if [[ ${POWER_EN_GPIO} -ne 0 ]]; then 13 | echo "Concentrator enabled through GPIO${POWER_EN_GPIO} (using sysfs)" 14 | if [[ -d /sys/class/gpio/gpio${POWER_EN_GPIO} ]]; then 15 | echo ${POWER_EN_GPIO} > /sys/class/gpio/unexport; WAIT_GPIO 16 | fi 17 | echo ${POWER_EN_GPIO} > /sys/class/gpio/export 2>/dev/null; WAIT_GPIO 18 | if [[ -d /sys/class/gpio/gpio${POWER_EN_GPIO} ]]; then 19 | echo out > /sys/class/gpio/gpio${POWER_EN_GPIO}/direction; WAIT_GPIO 20 | echo ${POWER_EN_LOGIC} > /sys/class/gpio/gpio${POWER_EN_GPIO}/value; WAIT_GPIO 21 | echo ${POWER_EN_GPIO} > /sys/class/gpio/unexport; WAIT_GPIO 22 | else 23 | echo "Warning: /sys/class/gpio/gpio${POWER_EN_GPIO} does not exist" 24 | fi 25 | fi 26 | 27 | # Reset gateway 28 | for GPIO in ${RESET_GPIO//,/ }; do 29 | if [[ ${GPIO} -ne 0 ]]; then 30 | echo "Concentrator reset through GPIO${GPIO} (using sysfs)" 31 | if [[ -d /sys/class/gpio/gpio${GPIO} ]]; then 32 | echo "${GPIO}" > /sys/class/gpio/unexport; WAIT_GPIO 33 | fi 34 | echo "${GPIO}" > /sys/class/gpio/export 2>/dev/null; WAIT_GPIO 35 | if [[ -d /sys/class/gpio/gpio${GPIO} ]]; then 36 | echo out > "/sys/class/gpio/gpio${GPIO}/direction"; WAIT_GPIO 37 | echo 0 > "/sys/class/gpio/gpio${GPIO}/value"; WAIT_GPIO 38 | echo 1 > "/sys/class/gpio/gpio${GPIO}/value"; WAIT_GPIO 39 | echo 0 > "/sys/class/gpio/gpio${GPIO}/value"; WAIT_GPIO 40 | echo "${GPIO}" > /sys/class/gpio/unexport; WAIT_GPIO 41 | else 42 | echo "Warning: /sys/class/gpio/gpio${GPIO} does not exist" 43 | fi 44 | fi 45 | done 46 | 47 | exit 0 48 | -------------------------------------------------------------------------------- /runner/templates/local_conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "gateway_conf": { 3 | "gateway_ID": "", 4 | "server_address": "", 5 | "serv_port_up": 1700, 6 | "serv_port_down": 1700, 7 | "whitelist_netids": [], 8 | "whitelist_ouis": [], 9 | "gps_tty_path": "", 10 | "stat_interval": 30, 11 | "push_timeout_ms": 100, 12 | "fake_gps": true, 13 | "ref_latitude": 0, 14 | "ref_longitude": 0, 15 | "ref_altitude": 0 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /runner/templates/sx1280/global_conf.global.json: -------------------------------------------------------------------------------- 1 | { 2 | "radio_conf": { 3 | "tty_path": "/dev/ttyACM0", 4 | "lorawan_public": true, 5 | "antenna_gain": 0, 6 | "chan_0": { 7 | "enable": true, 8 | "freq": 2403000000, 9 | "bandwidth": 812000, 10 | "spread_factor": 12, 11 | "rssi_offset": 0.0 12 | }, 13 | "chan_1": { 14 | "enable": true, 15 | "freq": 2479000000, 16 | "bandwidth": 812000, 17 | "spread_factor": 12, 18 | "rssi_offset": 0.0 19 | }, 20 | "chan_2": { 21 | "enable": true, 22 | "freq": 2425000000, 23 | "bandwidth": 812000, 24 | "spread_factor": 12, 25 | "rssi_offset": 0.0 26 | }, 27 | "tx": { 28 | "enable": true, 29 | "tx_freq_min": 2400000000, 30 | "tx_freq_max": 2483500000 31 | } 32 | }, 33 | 34 | "gateway_conf": { 35 | "gateway_ID": "auto", 36 | 37 | "server_address": "localhost", 38 | "serv_port_up": 1700, 39 | "serv_port_down": 1700, 40 | "whitelist_netids": [ ], 41 | "whitelist_ouis": [], 42 | 43 | "keepalive_interval": 10, 44 | "stat_interval": 30, 45 | "push_timeout_ms": 100, 46 | 47 | "forward_crc_valid": true, 48 | "forward_crc_error": false, 49 | "forward_crc_disabled": false 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.au_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 917200000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 915000000, 15 | "tx_freq_max": 928000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 917900000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 916.8 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -400000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 917.0 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -200000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 917.2 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 0 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 917.4 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 200000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 917.6 MHz", 50 | "enable": true, 51 | "radio": 1, 52 | "if": -300000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 917.8 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 918.0 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "Lora MAC, 125kHz, all SF, 918.2 MHz", 68 | "enable": true, 69 | "radio": 1, 70 | "if": 300000 71 | }, 72 | "chan_Lora_std": { 73 | "desc": "Lora MAC, 500kHz, SF8, 917.5 MHz", 74 | "enable": true, 75 | "radio": 0, 76 | "if": 300000, 77 | "bandwidth": 500000, 78 | "spread_factor": 8 79 | }, 80 | "chan_FSK": { 81 | "desc": "disabled", 82 | "enable": false 83 | }, 84 | "tx_lut_0": { 85 | "desc": "TX gain table, index 0", 86 | "pa_gain": 0, 87 | "mix_gain": 9, 88 | "rf_power": -6, 89 | "dig_gain": 0 90 | }, 91 | "tx_lut_1": { 92 | "desc": "TX gain table, index 1", 93 | "pa_gain": 0, 94 | "mix_gain": 11, 95 | "rf_power": -3, 96 | "dig_gain": 0 97 | }, 98 | "tx_lut_2": { 99 | "desc": "TX gain table, index 2", 100 | "pa_gain": 0, 101 | "mix_gain": 15, 102 | "rf_power": 0, 103 | "dig_gain": 0 104 | }, 105 | "tx_lut_3": { 106 | "desc": "TX gain table, index 3", 107 | "pa_gain": 1, 108 | "mix_gain": 8, 109 | "rf_power": 3, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_4": { 113 | "desc": "TX gain table, index 4", 114 | "pa_gain": 1, 115 | "mix_gain": 10, 116 | "rf_power": 6, 117 | "dig_gain": 0 118 | }, 119 | "tx_lut_5": { 120 | "desc": "TX gain table, index 5", 121 | "pa_gain": 1, 122 | "mix_gain": 13, 123 | "rf_power": 10, 124 | "dig_gain": 1 125 | }, 126 | "tx_lut_6": { 127 | "desc": "TX gain table, index 6", 128 | "pa_gain": 1, 129 | "mix_gain": 14, 130 | "rf_power": 11, 131 | "dig_gain": 0 132 | }, 133 | "tx_lut_7": { 134 | "desc": "TX gain table, index 7", 135 | "pa_gain": 2, 136 | "mix_gain": 10, 137 | "rf_power": 12, 138 | "dig_gain": 0 139 | }, 140 | "tx_lut_8": { 141 | "desc": "TX gain table, index 8", 142 | "pa_gain": 2, 143 | "mix_gain": 10, 144 | "rf_power": 13, 145 | "dig_gain": 0 146 | }, 147 | "tx_lut_9": { 148 | "desc": "TX gain table, index 9", 149 | "pa_gain": 2, 150 | "mix_gain": 11, 151 | "rf_power": 14, 152 | "dig_gain": 1 153 | }, 154 | "tx_lut_10": { 155 | "desc": "TX gain table, index 10", 156 | "pa_gain": 2, 157 | "mix_gain": 12, 158 | "rf_power": 16, 159 | "dig_gain": 0 160 | }, 161 | "tx_lut_11": { 162 | "desc": "TX gain table, index 11", 163 | "pa_gain": 3, 164 | "mix_gain": 9, 165 | "rf_power": 20, 166 | "dig_gain": 1 167 | }, 168 | "tx_lut_12": { 169 | "desc": "TX gain table, index 12", 170 | "pa_gain": 3, 171 | "mix_gain": 11, 172 | "rf_power": 23, 173 | "dig_gain": 1 174 | }, 175 | "tx_lut_13": { 176 | "desc": "TX gain table, index 13", 177 | "pa_gain": 3, 178 | "mix_gain": 12, 179 | "rf_power": 25, 180 | "dig_gain": 1 181 | }, 182 | "tx_lut_14": { 183 | "desc": "TX gain table, index 14", 184 | "pa_gain": 3, 185 | "mix_gain": 13, 186 | "rf_power": 26, 187 | "dig_gain": 1 188 | }, 189 | "tx_lut_15": { 190 | "desc": "TX gain table, index 15", 191 | "pa_gain": 3, 192 | "mix_gain": 13, 193 | "rf_power": 27, 194 | "dig_gain": 0 195 | } 196 | }, 197 | "gateway_conf": { 198 | "gateway_ID": "0000000000000000", 199 | 200 | "server_address": "au1.cloud.thethings.network", 201 | "serv_port_up": 1700, 202 | "serv_port_down": 1700, 203 | 204 | "keepalive_interval": 10, 205 | "stat_interval": 30, 206 | "push_timeout_ms": 100, 207 | 208 | "forward_crc_valid": true, 209 | "forward_crc_error": false, 210 | "forward_crc_disabled": false, 211 | 212 | "gps_tty_path": "/dev/i2c-1", 213 | "fake_gps": false, 214 | "ref_latitude": 10, 215 | "ref_longitude": 20, 216 | "ref_altitude": -1, 217 | "autoquit_threshold": 20, 218 | "beacon_period": 0, 219 | "beacon_freq_hz": 923300000, 220 | "beacon_freq_nb": 8, 221 | "beacon_freq_step": 600000, 222 | "beacon_datarate": 12, 223 | "beacon_bw_hz": 500000, 224 | "beacon_power": 27 225 | } 226 | 227 | } 228 | 229 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.cn_470_510.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1255", 11 | "freq": 486600000, 12 | "rssi_offset": -176.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 470000000, 15 | "tx_freq_max": 510000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1255", 20 | "freq": 487400000, 21 | "rssi_offset": -176.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 487.1 MHz", 26 | "enable": true, 27 | "radio": 1, 28 | "if": -300000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 487.3 MHz", 32 | "enable": true, 33 | "radio": 1, 34 | "if": -100000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 487.5 MHz", 38 | "enable": true, 39 | "radio": 1, 40 | "if": 100000 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 487.7 MHz", 44 | "enable": true, 45 | "radio": 1, 46 | "if": 300000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 486.3 MHz", 50 | "enable": true, 51 | "radio": 0, 52 | "if": -300000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 486.5 MHz", 56 | "enable": true, 57 | "radio": 0, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 486.7 MHz", 62 | "enable": true, 63 | "radio": 0, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "Lora MAC, 125kHz, all SF, 486.9 MHz", 68 | "enable": true, 69 | "radio": 0, 70 | "if": 300000 71 | }, 72 | "chan_Lora_std": { 73 | "desc": "disabled", 74 | "enable": false 75 | }, 76 | "chan_FSK": { 77 | "desc": "disabled", 78 | "enable": false 79 | }, 80 | "tx_lut_0": { 81 | "desc": "TX gain table, index 0", 82 | "pa_gain": 0, 83 | "mix_gain": 8, 84 | "rf_power": -6, 85 | "dig_gain": 0 86 | }, 87 | "tx_lut_1": { 88 | "desc": "TX gain table, index 1", 89 | "pa_gain": 0, 90 | "mix_gain": 9, 91 | "rf_power": -3, 92 | "dig_gain": 0 93 | }, 94 | "tx_lut_2": { 95 | "desc": "TX gain table, index 2", 96 | "pa_gain": 0, 97 | "mix_gain": 13, 98 | "rf_power": 0, 99 | "dig_gain": 0 100 | }, 101 | "tx_lut_3": { 102 | "desc": "TX gain table, index 3", 103 | "pa_gain": 1, 104 | "mix_gain": 8, 105 | "rf_power": 3, 106 | "dig_gain": 1 107 | }, 108 | "tx_lut_4": { 109 | "desc": "TX gain table, index 4", 110 | "pa_gain": 1, 111 | "mix_gain": 9, 112 | "rf_power": 6, 113 | "dig_gain": 0 114 | }, 115 | "tx_lut_5": { 116 | "desc": "TX gain table, index 5", 117 | "pa_gain": 2, 118 | "mix_gain": 8, 119 | "rf_power": 10, 120 | "dig_gain": 1 121 | }, 122 | "tx_lut_6": { 123 | "desc": "TX gain table, index 6", 124 | "pa_gain": 2, 125 | "mix_gain": 8, 126 | "rf_power": 11, 127 | "dig_gain": 0 128 | }, 129 | "tx_lut_7": { 130 | "desc": "TX gain table, index 7", 131 | "pa_gain": 2, 132 | "mix_gain": 9, 133 | "rf_power": 12, 134 | "dig_gain": 1 135 | }, 136 | "tx_lut_8": { 137 | "desc": "TX gain table, index 8", 138 | "pa_gain": 2, 139 | "mix_gain": 9, 140 | "rf_power": 13, 141 | "dig_gain": 0 142 | }, 143 | "tx_lut_9": { 144 | "desc": "TX gain table, index 9", 145 | "pa_gain": 2, 146 | "mix_gain": 11, 147 | "rf_power": 14, 148 | "dig_gain": 2 149 | }, 150 | "tx_lut_10": { 151 | "desc": "TX gain table, index 10", 152 | "pa_gain": 2, 153 | "mix_gain": 11, 154 | "rf_power": 16, 155 | "dig_gain": 0 156 | }, 157 | "tx_lut_11": { 158 | "desc": "TX gain table, index 11", 159 | "pa_gain": 3, 160 | "mix_gain": 9, 161 | "rf_power": 20, 162 | "dig_gain": 0 163 | }, 164 | "tx_lut_12": { 165 | "desc": "TX gain table, index 12", 166 | "pa_gain": 3, 167 | "mix_gain": 11, 168 | "rf_power": 23, 169 | "dig_gain": 0 170 | }, 171 | "tx_lut_13": { 172 | "desc": "TX gain table, index 13", 173 | "pa_gain": 3, 174 | "mix_gain": 15, 175 | "rf_power": 25, 176 | "dig_gain": 0 177 | }, 178 | "tx_lut_14": { 179 | "desc": "TX gain table, index 14", 180 | "pa_gain": 3, 181 | "mix_gain": 15, 182 | "rf_power": 26, 183 | "dig_gain": 0 184 | }, 185 | "tx_lut_15": { 186 | "desc": "TX gain table, index 15", 187 | "pa_gain": 3, 188 | "mix_gain": 15, 189 | "rf_power": 27, 190 | "dig_gain": 0 191 | } 192 | }, 193 | "gateway_conf": { 194 | "gateway_ID": "0000000000000000", 195 | 196 | "server_address": "au1.cloud.thethings.network", 197 | "serv_port_up": 1700, 198 | "serv_port_down": 1700, 199 | 200 | "keepalive_interval": 10, 201 | "stat_interval": 30, 202 | "push_timeout_ms": 100, 203 | 204 | "forward_crc_valid": true, 205 | "forward_crc_error": false, 206 | "forward_crc_disabled": false, 207 | 208 | "gps_tty_path": "/dev/i2c-1", 209 | "fake_gps": false, 210 | "ref_latitude": 10, 211 | "ref_longitude": 20, 212 | "ref_altitude": -1, 213 | "autoquit_threshold": 20, 214 | "beacon_period": 0, 215 | "beacon_freq_hz": 508300000, 216 | "beacon_freq_nb": 8, 217 | "beacon_freq_step": 200000, 218 | "beacon_datarate": 10, 219 | "beacon_bw_hz": 125000, 220 | "beacon_power": 27 221 | } 222 | } 223 | 224 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.eu_863_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "antenna_gain": 0, 6 | "radio_0": { 7 | "enable": true, 8 | "type": "SX1257", 9 | "freq": 867500000, 10 | "rssi_offset": -166.0, 11 | "tx_enable": true, 12 | "tx_freq_min": 863000000, 13 | "tx_freq_max": 870000000 14 | }, 15 | "radio_1": { 16 | "enable": true, 17 | "type": "SX1257", 18 | "freq": 868500000, 19 | "rssi_offset": -166.0, 20 | "tx_enable": false 21 | }, 22 | "chan_multiSF_0": { 23 | "enable": true, 24 | "radio": 1, 25 | "if": -400000 26 | }, 27 | "chan_multiSF_1": { 28 | "enable": true, 29 | "radio": 1, 30 | "if": -200000 31 | }, 32 | "chan_multiSF_2": { 33 | "enable": true, 34 | "radio": 1, 35 | "if": 0 36 | }, 37 | "chan_multiSF_3": { 38 | "enable": true, 39 | "radio": 0, 40 | "if": -400000 41 | }, 42 | "chan_multiSF_4": { 43 | "enable": true, 44 | "radio": 0, 45 | "if": -200000 46 | }, 47 | "chan_multiSF_5": { 48 | "enable": true, 49 | "radio": 0, 50 | "if": 0 51 | }, 52 | "chan_multiSF_6": { 53 | "enable": true, 54 | "radio": 0, 55 | "if": 200000 56 | }, 57 | "chan_multiSF_7": { 58 | "enable": true, 59 | "radio": 0, 60 | "if": 400000 61 | }, 62 | "chan_Lora_std": { 63 | "enable": true, 64 | "radio": 1, 65 | "if": -200000, 66 | "bandwidth": 250000, 67 | "spread_factor": 7 68 | }, 69 | "chan_FSK": { 70 | "enable": true, 71 | "radio": 1, 72 | "if": 300000, 73 | "bandwidth": 125000, 74 | "datarate": 50000 75 | }, 76 | "tx_lut_0": { 77 | "pa_gain": 0, 78 | "mix_gain": 9, 79 | "rf_power": -6, 80 | "dig_gain": 0 81 | }, 82 | "tx_lut_1": { 83 | "pa_gain": 0, 84 | "mix_gain": 12, 85 | "rf_power": -3, 86 | "dig_gain": 0 87 | }, 88 | "tx_lut_2": { 89 | "pa_gain": 0, 90 | "mix_gain": 15, 91 | "rf_power": 0, 92 | "dig_gain": 0 93 | }, 94 | "tx_lut_3": { 95 | "pa_gain": 1, 96 | "mix_gain": 8, 97 | "rf_power": 3, 98 | "dig_gain": 1 99 | }, 100 | "tx_lut_4": { 101 | "pa_gain": 1, 102 | "mix_gain": 9, 103 | "rf_power": 6, 104 | "dig_gain": 0 105 | }, 106 | "tx_lut_5": { 107 | "pa_gain": 1, 108 | "mix_gain": 11, 109 | "rf_power": 10, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_6": { 113 | "pa_gain": 1, 114 | "mix_gain": 12, 115 | "rf_power": 11, 116 | "dig_gain": 1 117 | }, 118 | "tx_lut_7": { 119 | "pa_gain": 1, 120 | "mix_gain": 12, 121 | "rf_power": 12, 122 | "dig_gain": 0 123 | }, 124 | "tx_lut_8": { 125 | "pa_gain": 2, 126 | "mix_gain": 11, 127 | "rf_power": 13, 128 | "dig_gain": 1 129 | }, 130 | "tx_lut_9": { 131 | "pa_gain": 2, 132 | "mix_gain": 11, 133 | "rf_power": 14, 134 | "dig_gain": 0 135 | }, 136 | "tx_lut_10": { 137 | "pa_gain": 3, 138 | "mix_gain": 8, 139 | "rf_power": 16, 140 | "dig_gain": 1 141 | }, 142 | "tx_lut_11": { 143 | "pa_gain": 3, 144 | "mix_gain": 8, 145 | "rf_power": 20, 146 | "dig_gain": 0 147 | }, 148 | "tx_lut_12": { 149 | "desc": "TX gain table, index 12", 150 | "pa_gain": 3, 151 | "mix_gain": 12, 152 | "rf_power": 23, 153 | "dig_gain": 1 154 | }, 155 | "tx_lut_13": { 156 | "desc": "TX gain table, index 13", 157 | "pa_gain": 3, 158 | "mix_gain": 13, 159 | "rf_power": 25, 160 | "dig_gain": 0 161 | }, 162 | "tx_lut_14": { 163 | "desc": "TX gain table, index 14", 164 | "pa_gain": 3, 165 | "mix_gain": 13, 166 | "rf_power": 26, 167 | "dig_gain": 0 168 | }, 169 | "tx_lut_15": { 170 | "desc": "TX gain table, index 15", 171 | "pa_gain": 3, 172 | "mix_gain": 13, 173 | "rf_power": 27, 174 | "dig_gain": 0 175 | } 176 | }, 177 | "gateway_conf": { 178 | "gateway_ID": "0000000000000000", 179 | 180 | "server_address": "eu1.cloud.thethings.network", 181 | "serv_port_up": 1700, 182 | "serv_port_down": 1700, 183 | 184 | "keepalive_interval": 10, 185 | "stat_interval": 30, 186 | "push_timeout_ms": 100, 187 | 188 | "forward_crc_valid": true, 189 | "forward_crc_error": false, 190 | "forward_crc_disabled": false, 191 | 192 | "gps_tty_path": "/dev/i2c-1", 193 | "fake_gps": false, 194 | "ref_latitude": 10, 195 | "ref_longitude": 20, 196 | "ref_altitude": -1, 197 | "autoquit_threshold": 20, 198 | "beacon_period": 0, 199 | "beacon_freq_hz": 869525000, 200 | "beacon_freq_nb": 1, 201 | "beacon_freq_step": 0, 202 | "beacon_datarate": 9, 203 | "beacon_bw_hz": 125000, 204 | "beacon_power": 27 205 | } 206 | } 207 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.in_865_867.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 865200000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 865000000, 15 | "tx_freq_max": 867000000, 16 | "tx_notch_freq": 129000 17 | }, 18 | "radio_1": { 19 | "enable": true, 20 | "type": "SX1257", 21 | "freq": 866385000, 22 | "rssi_offset": -166.0, 23 | "tx_enable": false 24 | }, 25 | "chan_multiSF_0": { 26 | "desc": "Lora MAC, 125kHz, all SF, 865.0625 MHz", 27 | "enable": true, 28 | "radio": 0, 29 | "if": -137500 30 | }, 31 | "chan_multiSF_1": { 32 | "desc": "Lora MAC, 125kHz, all SF, 865.4025 MHz", 33 | "enable": true, 34 | "radio": 0, 35 | "if": 202500 36 | }, 37 | "chan_multiSF_2": { 38 | "desc": "Lora MAC, 125kHz, all SF, 865.9850 MHz", 39 | "enable": true, 40 | "radio": 1, 41 | "if": -400000 42 | }, 43 | "chan_multiSF_3": { 44 | "desc": "disabled", 45 | "enable": false 46 | }, 47 | "chan_multiSF_4": { 48 | "desc": "disabled", 49 | "enable": false 50 | }, 51 | "chan_multiSF_5": { 52 | "desc": "disabled", 53 | "enable": false 54 | }, 55 | "chan_multiSF_6": { 56 | "desc": "disabled", 57 | "enable": false 58 | }, 59 | "chan_multiSF_7": { 60 | "desc": "disabled", 61 | "enable": false 62 | }, 63 | "chan_Lora_std": { 64 | "desc": "disabled", 65 | "enable": false 66 | }, 67 | "chan_FSK": { 68 | "desc": "disabled", 69 | "enable": false 70 | }, 71 | "tx_lut_0": { 72 | "pa_gain": 0, 73 | "mix_gain": 9, 74 | "rf_power": -6, 75 | "dig_gain": 0 76 | }, 77 | "tx_lut_1": { 78 | "pa_gain": 0, 79 | "mix_gain": 12, 80 | "rf_power": -3, 81 | "dig_gain": 0 82 | }, 83 | "tx_lut_2": { 84 | "pa_gain": 0, 85 | "mix_gain": 15, 86 | "rf_power": 0, 87 | "dig_gain": 0 88 | }, 89 | "tx_lut_3": { 90 | "pa_gain": 1, 91 | "mix_gain": 8, 92 | "rf_power": 3, 93 | "dig_gain": 1 94 | }, 95 | "tx_lut_4": { 96 | "pa_gain": 1, 97 | "mix_gain": 9, 98 | "rf_power": 6, 99 | "dig_gain": 0 100 | }, 101 | "tx_lut_5": { 102 | "pa_gain": 1, 103 | "mix_gain": 11, 104 | "rf_power": 10, 105 | "dig_gain": 0 106 | }, 107 | "tx_lut_6": { 108 | "pa_gain": 1, 109 | "mix_gain": 12, 110 | "rf_power": 11, 111 | "dig_gain": 1 112 | }, 113 | "tx_lut_7": { 114 | "pa_gain": 1, 115 | "mix_gain": 12, 116 | "rf_power": 12, 117 | "dig_gain": 0 118 | }, 119 | "tx_lut_8": { 120 | "pa_gain": 2, 121 | "mix_gain": 11, 122 | "rf_power": 13, 123 | "dig_gain": 1 124 | }, 125 | "tx_lut_9": { 126 | "pa_gain": 2, 127 | "mix_gain": 11, 128 | "rf_power": 14, 129 | "dig_gain": 0 130 | }, 131 | "tx_lut_10": { 132 | "pa_gain": 3, 133 | "mix_gain": 8, 134 | "rf_power": 16, 135 | "dig_gain": 1 136 | }, 137 | "tx_lut_11": { 138 | "pa_gain": 3, 139 | "mix_gain": 8, 140 | "rf_power": 20, 141 | "dig_gain": 0 142 | }, 143 | "tx_lut_12": { 144 | "desc": "TX gain table, index 12", 145 | "pa_gain": 3, 146 | "mix_gain": 12, 147 | "rf_power": 23, 148 | "dig_gain": 1 149 | }, 150 | "tx_lut_13": { 151 | "desc": "TX gain table, index 13", 152 | "pa_gain": 3, 153 | "mix_gain": 13, 154 | "rf_power": 25, 155 | "dig_gain": 0 156 | }, 157 | "tx_lut_14": { 158 | "desc": "TX gain table, index 14", 159 | "pa_gain": 3, 160 | "mix_gain": 13, 161 | "rf_power": 26, 162 | "dig_gain": 0 163 | }, 164 | "tx_lut_15": { 165 | "desc": "TX gain table, index 15", 166 | "pa_gain": 3, 167 | "mix_gain": 13, 168 | "rf_power": 27, 169 | "dig_gain": 0 170 | } 171 | }, 172 | "gateway_conf": { 173 | "gateway_ID": "0000000000000000", 174 | 175 | "server_address": "eu1.cloud.thethings.network", 176 | "serv_port_up": 1700, 177 | "serv_port_down": 1700, 178 | 179 | "keepalive_interval": 10, 180 | "stat_interval": 30, 181 | "push_timeout_ms": 100, 182 | 183 | "forward_crc_valid": true, 184 | "forward_crc_error": false, 185 | "forward_crc_disabled": false, 186 | 187 | "gps_tty_path": "/dev/i2c-1", 188 | "fake_gps": false, 189 | "ref_latitude": 10, 190 | "ref_longitude": 20, 191 | "ref_altitude": -1, 192 | "autoquit_threshold": 20, 193 | "beacon_period": 0, 194 | "beacon_freq_hz": 866500000, 195 | "beacon_freq_nb": 1, 196 | "beacon_freq_step": 0, 197 | "beacon_datarate": 8, 198 | "beacon_bw_hz": 125000, 199 | "beacon_power": 27 200 | } 201 | 202 | } 203 | 204 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.kr_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 922400000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 920900000, 15 | "tx_freq_max": 923300000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 923000000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 922.1 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -300000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 922.3 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -100000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 922.5 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 100000 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 922.7 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 300000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 922.9 MHz", 50 | "enable": true, 51 | "radio": 1, 52 | "if": -100000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 923.1 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": 100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 923.3 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 300000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "disabled", 68 | "enable": false 69 | }, 70 | "chan_Lora_std": { 71 | "desc": "disabled", 72 | "enable": false 73 | }, 74 | "chan_FSK": { 75 | "desc": "disabled", 76 | "enable": false 77 | }, 78 | "tx_lut_0": { 79 | "desc": "TX gain table, index 0", 80 | "pa_gain": 0, 81 | "mix_gain": 9, 82 | "rf_power": -6, 83 | "dig_gain": 0 84 | }, 85 | "tx_lut_1": { 86 | "desc": "TX gain table, index 1", 87 | "pa_gain": 0, 88 | "mix_gain": 11, 89 | "rf_power": -3, 90 | "dig_gain": 0 91 | }, 92 | "tx_lut_2": { 93 | "desc": "TX gain table, index 2", 94 | "pa_gain": 0, 95 | "mix_gain": 15, 96 | "rf_power": 0, 97 | "dig_gain": 0 98 | }, 99 | "tx_lut_3": { 100 | "desc": "TX gain table, index 3", 101 | "pa_gain": 1, 102 | "mix_gain": 8, 103 | "rf_power": 3, 104 | "dig_gain": 0 105 | }, 106 | "tx_lut_4": { 107 | "desc": "TX gain table, index 4", 108 | "pa_gain": 1, 109 | "mix_gain": 10, 110 | "rf_power": 6, 111 | "dig_gain": 0 112 | }, 113 | "tx_lut_5": { 114 | "desc": "TX gain table, index 5", 115 | "pa_gain": 1, 116 | "mix_gain": 13, 117 | "rf_power": 10, 118 | "dig_gain": 1 119 | }, 120 | "tx_lut_6": { 121 | "desc": "TX gain table, index 6", 122 | "pa_gain": 1, 123 | "mix_gain": 14, 124 | "rf_power": 11, 125 | "dig_gain": 0 126 | }, 127 | "tx_lut_7": { 128 | "desc": "TX gain table, index 7", 129 | "pa_gain": 2, 130 | "mix_gain": 10, 131 | "rf_power": 12, 132 | "dig_gain": 0 133 | }, 134 | "tx_lut_8": { 135 | "desc": "TX gain table, index 8", 136 | "pa_gain": 2, 137 | "mix_gain": 10, 138 | "rf_power": 13, 139 | "dig_gain": 0 140 | }, 141 | "tx_lut_9": { 142 | "desc": "TX gain table, index 9", 143 | "pa_gain": 2, 144 | "mix_gain": 11, 145 | "rf_power": 14, 146 | "dig_gain": 1 147 | }, 148 | "tx_lut_10": { 149 | "desc": "TX gain table, index 10", 150 | "pa_gain": 2, 151 | "mix_gain": 12, 152 | "rf_power": 16, 153 | "dig_gain": 0 154 | }, 155 | "tx_lut_11": { 156 | "desc": "TX gain table, index 11", 157 | "pa_gain": 3, 158 | "mix_gain": 9, 159 | "rf_power": 20, 160 | "dig_gain": 1 161 | }, 162 | "tx_lut_12": { 163 | "desc": "TX gain table, index 12", 164 | "pa_gain": 3, 165 | "mix_gain": 11, 166 | "rf_power": 23, 167 | "dig_gain": 1 168 | }, 169 | "tx_lut_13": { 170 | "desc": "TX gain table, index 13", 171 | "pa_gain": 3, 172 | "mix_gain": 12, 173 | "rf_power": 25, 174 | "dig_gain": 1 175 | }, 176 | "tx_lut_14": { 177 | "desc": "TX gain table, index 14", 178 | "pa_gain": 3, 179 | "mix_gain": 13, 180 | "rf_power": 26, 181 | "dig_gain": 1 182 | }, 183 | "tx_lut_15": { 184 | "desc": "TX gain table, index 15", 185 | "pa_gain": 3, 186 | "mix_gain": 13, 187 | "rf_power": 27, 188 | "dig_gain": 0 189 | } 190 | }, 191 | "gateway_conf": { 192 | "gateway_ID": "0000000000000000", 193 | 194 | "server_address": "au1.cloud.thethings.network", 195 | "serv_port_up": 1700, 196 | "serv_port_down": 1700, 197 | 198 | "keepalive_interval": 10, 199 | "stat_interval": 30, 200 | "push_timeout_ms": 100, 201 | 202 | "forward_crc_valid": true, 203 | "forward_crc_error": false, 204 | "forward_crc_disabled": false, 205 | 206 | "gps_tty_path": "/dev/i2c-1", 207 | "fake_gps": false, 208 | "ref_latitude": 10, 209 | "ref_longitude": 20, 210 | "ref_altitude": -1, 211 | "autoquit_threshold": 20, 212 | "beacon_period": 0, 213 | "beacon_freq_hz": 923100000, 214 | "beacon_freq_nb": 1, 215 | "beacon_freq_step": 0, 216 | "beacon_datarate": 9, 217 | "beacon_bw_hz": 125000, 218 | "beacon_power": 27 219 | } 220 | 221 | } 222 | 223 | 224 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.ru_864_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 864500000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 863000000, 15 | "tx_freq_max": 870000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 869000000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 864.1 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -400000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 864.3 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -200000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 864.5 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 0 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 864.7 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 200000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 864.9 MHz", 50 | "enable": true, 51 | "radio": 0, 52 | "if": 400000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 868.9 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 869.1 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "disabled", 68 | "enable": false 69 | }, 70 | "chan_Lora_std": { 71 | "desc": "disabled", 72 | "enable": false 73 | }, 74 | "chan_FSK": { 75 | "desc": "disabled", 76 | "enable": false 77 | }, 78 | "tx_lut_0": { 79 | "pa_gain": 0, 80 | "mix_gain": 9, 81 | "rf_power": -6, 82 | "dig_gain": 0 83 | }, 84 | "tx_lut_1": { 85 | "pa_gain": 0, 86 | "mix_gain": 12, 87 | "rf_power": -3, 88 | "dig_gain": 0 89 | }, 90 | "tx_lut_2": { 91 | "pa_gain": 0, 92 | "mix_gain": 15, 93 | "rf_power": 0, 94 | "dig_gain": 0 95 | }, 96 | "tx_lut_3": { 97 | "pa_gain": 1, 98 | "mix_gain": 8, 99 | "rf_power": 3, 100 | "dig_gain": 1 101 | }, 102 | "tx_lut_4": { 103 | "pa_gain": 1, 104 | "mix_gain": 9, 105 | "rf_power": 6, 106 | "dig_gain": 0 107 | }, 108 | "tx_lut_5": { 109 | "pa_gain": 1, 110 | "mix_gain": 11, 111 | "rf_power": 10, 112 | "dig_gain": 0 113 | }, 114 | "tx_lut_6": { 115 | "pa_gain": 1, 116 | "mix_gain": 12, 117 | "rf_power": 11, 118 | "dig_gain": 1 119 | }, 120 | "tx_lut_7": { 121 | "pa_gain": 1, 122 | "mix_gain": 12, 123 | "rf_power": 12, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_8": { 127 | "pa_gain": 2, 128 | "mix_gain": 11, 129 | "rf_power": 13, 130 | "dig_gain": 1 131 | }, 132 | "tx_lut_9": { 133 | "pa_gain": 2, 134 | "mix_gain": 11, 135 | "rf_power": 14, 136 | "dig_gain": 0 137 | }, 138 | "tx_lut_10": { 139 | "pa_gain": 3, 140 | "mix_gain": 8, 141 | "rf_power": 16, 142 | "dig_gain": 1 143 | }, 144 | "tx_lut_11": { 145 | "pa_gain": 3, 146 | "mix_gain": 8, 147 | "rf_power": 20, 148 | "dig_gain": 0 149 | }, 150 | "tx_lut_12": { 151 | "desc": "TX gain table, index 12", 152 | "pa_gain": 3, 153 | "mix_gain": 12, 154 | "rf_power": 23, 155 | "dig_gain": 1 156 | }, 157 | "tx_lut_13": { 158 | "desc": "TX gain table, index 13", 159 | "pa_gain": 3, 160 | "mix_gain": 13, 161 | "rf_power": 25, 162 | "dig_gain": 0 163 | }, 164 | "tx_lut_14": { 165 | "desc": "TX gain table, index 14", 166 | "pa_gain": 3, 167 | "mix_gain": 13, 168 | "rf_power": 26, 169 | "dig_gain": 0 170 | }, 171 | "tx_lut_15": { 172 | "desc": "TX gain table, index 15", 173 | "pa_gain": 3, 174 | "mix_gain": 13, 175 | "rf_power": 27, 176 | "dig_gain": 0 177 | } 178 | }, 179 | "gateway_conf": { 180 | "gateway_ID": "0000000000000000", 181 | 182 | "server_address": "eu1.cloud.thethings.network", 183 | "serv_port_up": 1700, 184 | "serv_port_down": 1700, 185 | 186 | "keepalive_interval": 10, 187 | "stat_interval": 30, 188 | "push_timeout_ms": 100, 189 | 190 | "forward_crc_valid": true, 191 | "forward_crc_error": false, 192 | "forward_crc_disabled": false, 193 | 194 | "gps_tty_path": "/dev/i2c-1", 195 | "fake_gps": false, 196 | "ref_latitude": 10, 197 | "ref_longitude": 20, 198 | "ref_altitude": -1, 199 | "autoquit_threshold": 20, 200 | "beacon_period": 0, 201 | "beacon_freq_hz": 869100000, 202 | "beacon_freq_nb": 1, 203 | "beacon_freq_step": 0, 204 | "beacon_datarate": 9, 205 | "beacon_bw_hz": 125000, 206 | "beacon_power": 27 207 | } 208 | 209 | } 210 | 211 | -------------------------------------------------------------------------------- /runner/templates/sx1301/global_conf.us_902_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "antenna_gain": 0, 6 | "radio_0": { 7 | "enable": true, 8 | "type": "SX1257", 9 | "freq": 904300000, 10 | "rssi_offset": -166.0, 11 | "tx_enable": true, 12 | "tx_freq_min": 902000000, 13 | "tx_freq_max": 928000000 14 | }, 15 | "radio_1": { 16 | "enable": true, 17 | "type": "SX1257", 18 | "freq": 905000000, 19 | "rssi_offset": -166.0, 20 | "tx_enable": false 21 | }, 22 | "chan_multiSF_0": { 23 | "enable": true, 24 | "radio": 0, 25 | "if": -400000 26 | }, 27 | "chan_multiSF_1": { 28 | "enable": true, 29 | "radio": 0, 30 | "if": -200000 31 | }, 32 | "chan_multiSF_2": { 33 | "enable": true, 34 | "radio": 0, 35 | "if": 0 36 | }, 37 | "chan_multiSF_3": { 38 | "enable": true, 39 | "radio": 0, 40 | "if": 200000 41 | }, 42 | "chan_multiSF_4": { 43 | "enable": true, 44 | "radio": 1, 45 | "if": -300000 46 | }, 47 | "chan_multiSF_5": { 48 | "enable": true, 49 | "radio": 1, 50 | "if": -100000 51 | }, 52 | "chan_multiSF_6": { 53 | "enable": true, 54 | "radio": 1, 55 | "if": 100000 56 | }, 57 | "chan_multiSF_7": { 58 | "enable": true, 59 | "radio": 1, 60 | "if": 300000 61 | }, 62 | "chan_Lora_std": { 63 | "enable": true, 64 | "radio": 0, 65 | "if": 300000, 66 | "bandwidth": 500000, 67 | "spread_factor": 8 68 | }, 69 | "chan_FSK": { 70 | "enable": false, 71 | "radio": 0, 72 | "if": 300000, 73 | "bandwidth": 250000, 74 | "datarate": 100000 75 | }, 76 | "tx_lut_0": { 77 | "desc": "TX gain table, index 0", 78 | "pa_gain": 0, 79 | "mix_gain": 9, 80 | "rf_power": -6, 81 | "dig_gain": 0 82 | }, 83 | "tx_lut_1": { 84 | "desc": "TX gain table, index 1", 85 | "pa_gain": 0, 86 | "mix_gain": 11, 87 | "rf_power": -3, 88 | "dig_gain": 0 89 | }, 90 | "tx_lut_2": { 91 | "desc": "TX gain table, index 2", 92 | "pa_gain": 0, 93 | "mix_gain": 15, 94 | "rf_power": 0, 95 | "dig_gain": 0 96 | }, 97 | "tx_lut_3": { 98 | "desc": "TX gain table, index 3", 99 | "pa_gain": 1, 100 | "mix_gain": 8, 101 | "rf_power": 3, 102 | "dig_gain": 0 103 | }, 104 | "tx_lut_4": { 105 | "desc": "TX gain table, index 4", 106 | "pa_gain": 1, 107 | "mix_gain": 10, 108 | "rf_power": 6, 109 | "dig_gain": 0 110 | }, 111 | "tx_lut_5": { 112 | "desc": "TX gain table, index 5", 113 | "pa_gain": 1, 114 | "mix_gain": 13, 115 | "rf_power": 10, 116 | "dig_gain": 1 117 | }, 118 | "tx_lut_6": { 119 | "desc": "TX gain table, index 6", 120 | "pa_gain": 1, 121 | "mix_gain": 14, 122 | "rf_power": 11, 123 | "dig_gain": 0 124 | }, 125 | "tx_lut_7": { 126 | "desc": "TX gain table, index 7", 127 | "pa_gain": 2, 128 | "mix_gain": 10, 129 | "rf_power": 12, 130 | "dig_gain": 0 131 | }, 132 | "tx_lut_8": { 133 | "desc": "TX gain table, index 8", 134 | "pa_gain": 2, 135 | "mix_gain": 10, 136 | "rf_power": 13, 137 | "dig_gain": 0 138 | }, 139 | "tx_lut_9": { 140 | "desc": "TX gain table, index 9", 141 | "pa_gain": 2, 142 | "mix_gain": 11, 143 | "rf_power": 14, 144 | "dig_gain": 1 145 | }, 146 | "tx_lut_10": { 147 | "desc": "TX gain table, index 10", 148 | "pa_gain": 2, 149 | "mix_gain": 12, 150 | "rf_power": 16, 151 | "dig_gain": 0 152 | }, 153 | "tx_lut_11": { 154 | "desc": "TX gain table, index 11", 155 | "pa_gain": 3, 156 | "mix_gain": 9, 157 | "rf_power": 20, 158 | "dig_gain": 1 159 | }, 160 | "tx_lut_12": { 161 | "desc": "TX gain table, index 12", 162 | "pa_gain": 3, 163 | "mix_gain": 11, 164 | "rf_power": 23, 165 | "dig_gain": 1 166 | }, 167 | "tx_lut_13": { 168 | "desc": "TX gain table, index 13", 169 | "pa_gain": 3, 170 | "mix_gain": 12, 171 | "rf_power": 25, 172 | "dig_gain": 1 173 | }, 174 | "tx_lut_14": { 175 | "desc": "TX gain table, index 14", 176 | "pa_gain": 3, 177 | "mix_gain": 13, 178 | "rf_power": 26, 179 | "dig_gain": 1 180 | }, 181 | "tx_lut_15": { 182 | "desc": "TX gain table, index 15", 183 | "pa_gain": 3, 184 | "mix_gain": 13, 185 | "rf_power": 27, 186 | "dig_gain": 0 187 | } 188 | }, 189 | "gateway_conf": { 190 | "gateway_ID": "0000000000000000", 191 | 192 | "server_address": "nam1.cloud.thethings.network", 193 | "serv_port_up": 1700, 194 | "serv_port_down": 1700, 195 | 196 | "keepalive_interval": 10, 197 | "stat_interval": 30, 198 | "push_timeout_ms": 100, 199 | 200 | "forward_crc_valid": true, 201 | "forward_crc_error": false, 202 | "forward_crc_disabled": false, 203 | 204 | "gps_tty_path": "/dev/i2c-1", 205 | "fake_gps": false, 206 | "ref_latitude": 10, 207 | "ref_longitude": 20, 208 | "ref_altitude": -1, 209 | "autoquit_threshold": 20, 210 | "beacon_period": 0, 211 | "beacon_freq_hz": 923300000, 212 | "beacon_freq_nb": 8, 213 | "beacon_freq_step": 600000, 214 | "beacon_datarate": 12, 215 | "beacon_bw_hz": 500000, 216 | "beacon_power": 27 217 | } 218 | } 219 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.as_915_921.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 917000000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 915000000, 21 | "tx_freq_max": 921000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 917800000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 58 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 916800000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.as_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 923600000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 915000000, 21 | "tx_freq_max": 928000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 924400000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 58 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923400000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.as_917_920.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 917700000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 917000000, 21 | "tx_freq_max": 920000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 918500000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 58 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 917500000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.as_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 921800000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min":920000000, 21 | "tx_freq_max":923000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 1}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 2}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 3}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 4}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 5}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 6}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 8}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 10}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 12}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 13}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 14}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 16}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 17}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 19} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 922600000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 58 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 921600000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.au_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 917200000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 915000000, 21 | "tx_freq_max": 928000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 917900000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "au1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923300000, 86 | "beacon_freq_nb": 8, 87 | "beacon_freq_step": 600000, 88 | "beacon_datarate": 12, 89 | "beacon_bw_hz": 500000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.cn_470_510.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "single_input_mode": true, 17 | "freq": 486600000, 18 | "rssi_offset": -207.0, 19 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 20 | "tx_enable": true, 21 | "tx_freq_min": 470000000, 22 | "tx_freq_max": 510000000, 23 | "tx_gain_lut":[ 24 | {"rf_power": -6, "pa_gain": 0, "pwr_idx": 0}, 25 | {"rf_power": -3, "pa_gain": 0, "pwr_idx": 1}, 26 | {"rf_power": 0, "pa_gain": 0, "pwr_idx": 2}, 27 | {"rf_power": 3, "pa_gain": 1, "pwr_idx": 3}, 28 | {"rf_power": 6, "pa_gain": 1, "pwr_idx": 4}, 29 | {"rf_power": 10, "pa_gain": 1, "pwr_idx": 5}, 30 | {"rf_power": 11, "pa_gain": 1, "pwr_idx": 6}, 31 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 7}, 32 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 8}, 33 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 9}, 34 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 35 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 11}, 36 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 12}, 37 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 13}, 38 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 14}, 39 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 15} 40 | ] 41 | }, 42 | "radio_1": { 43 | "enable": true, 44 | "type": "SX1250", 45 | "single_input_mode": true, 46 | "freq": 487400000, 47 | "rssi_offset": -207.0, 48 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 49 | "tx_enable": false 50 | }, 51 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 52 | "chan_multiSF_0": {"enable": true, "radio": 1, "if": -300000}, 53 | "chan_multiSF_1": {"enable": true, "radio": 1, "if": -100000}, 54 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": 100000}, 55 | "chan_multiSF_3": {"enable": true, "radio": 1, "if": 300000}, 56 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": -300000}, 57 | "chan_multiSF_5": {"enable": true, "radio": 0, "if": -100000}, 58 | "chan_multiSF_6": {"enable": true, "radio": 0, "if": 100000}, 59 | "chan_multiSF_7": {"enable": true, "radio": 0, "if": 300000}, 60 | "chan_Lora_std": {"enable": false, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7, 61 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 62 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 63 | }, 64 | 65 | "gateway_conf": { 66 | "gateway_ID": "0000000000000000", 67 | 68 | "server_address": "au1.cloud.thethings.network", 69 | "serv_port_up": 1700, 70 | "serv_port_down": 1700, 71 | 72 | "keepalive_interval": 10, 73 | "stat_interval": 30, 74 | "push_timeout_ms": 100, 75 | 76 | "forward_crc_valid": true, 77 | "forward_crc_error": false, 78 | "forward_crc_disabled": false, 79 | 80 | "gps_tty_path": "/dev/i2c-1", 81 | 82 | "ref_latitude": 0.0, 83 | "ref_longitude": 0.0, 84 | "ref_altitude": 0, 85 | "autoquit_threshold": 20, 86 | 87 | "beacon_period": 0, 88 | "beacon_freq_hz": 508300000, 89 | "beacon_freq_nb": 8, 90 | "beacon_freq_step": 200000, 91 | "beacon_datarate": 10, 92 | "beacon_bw_hz": 125000, 93 | "beacon_power": 27 94 | }, 95 | 96 | "debug_conf": { 97 | "ref_payload":[ 98 | {"id": "0xCAFE1234"}, 99 | {"id": "0xCAFE2345"} 100 | ], 101 | "log_file": "loragw_hal.log" 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.eu_433.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "single_input_mode": true, 17 | "freq": 434375000, 18 | "rssi_offset": -207.0, 19 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 20 | "tx_enable": true, 21 | "tx_freq_min": 433050000, 22 | "tx_freq_max": 434900000, 23 | "tx_gain_lut":[ 24 | {"rf_power": -6, "pa_gain": 0, "pwr_idx": 0}, 25 | {"rf_power": -3, "pa_gain": 0, "pwr_idx": 1}, 26 | {"rf_power": 0, "pa_gain": 0, "pwr_idx": 2}, 27 | {"rf_power": 3, "pa_gain": 1, "pwr_idx": 3}, 28 | {"rf_power": 6, "pa_gain": 1, "pwr_idx": 4}, 29 | {"rf_power": 10, "pa_gain": 1, "pwr_idx": 5}, 30 | {"rf_power": 11, "pa_gain": 1, "pwr_idx": 6}, 31 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 7}, 32 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 8}, 33 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 9}, 34 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 35 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 11}, 36 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 12}, 37 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 13}, 38 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 14}, 39 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 15} 40 | ] 41 | }, 42 | "radio_1": { 43 | "enable": true, 44 | "type": "SX1250", 45 | "single_input_mode": true, 46 | "freq": 433575000, 47 | "rssi_offset": -207.0, 48 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 49 | "tx_enable": false 50 | }, 51 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 52 | "chan_multiSF_0": {"enable": true, "radio": 1, "if": -400000}, 53 | "chan_multiSF_1": {"enable": true, "radio": 1, "if": -200000}, 54 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": 0}, 55 | "chan_multiSF_3": {"enable": true, "radio": 1, "if": 200000}, 56 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": -400000}, 57 | "chan_multiSF_5": {"enable": true, "radio": 0, "if": -200000}, 58 | "chan_multiSF_6": {"enable": true, "radio": 0, "if": 0}, 59 | "chan_multiSF_7": {"enable": true, "radio": 0, "if": 200000}, 60 | "chan_Lora_std": {"enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7, 61 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 62 | "chan_FSK": {"enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 63 | }, 64 | 65 | "gateway_conf": { 66 | "gateway_ID": "0000000000000000", 67 | 68 | "server_address": "eu1.cloud.thethings.network", 69 | "serv_port_up": 1700, 70 | "serv_port_down": 1700, 71 | 72 | "keepalive_interval": 10, 73 | "stat_interval": 30, 74 | "push_timeout_ms": 100, 75 | 76 | "forward_crc_valid": true, 77 | "forward_crc_error": false, 78 | "forward_crc_disabled": false, 79 | 80 | "gps_tty_path": "/dev/i2c-1", 81 | 82 | "ref_latitude": 0.0, 83 | "ref_longitude": 0.0, 84 | "ref_altitude": 0, 85 | "autoquit_threshold": 20, 86 | 87 | "beacon_period": 0, 88 | "beacon_freq_hz": 434665000, 89 | "beacon_freq_nb": 1, 90 | "beacon_freq_step": 0, 91 | "beacon_datarate": 9, 92 | "beacon_bw_hz": 125000, 93 | "beacon_power": 27 94 | }, 95 | 96 | "debug_conf": { 97 | "ref_payload":[ 98 | {"id": "0xCAFE1234"}, 99 | {"id": "0xCAFE2345"} 100 | ], 101 | "log_file": "loragw_hal.log" 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.eu_863_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 867500000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 863000000, 21 | "tx_freq_max": 870000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 4}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 5}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 6}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 7}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 8}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 9}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 10}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 11}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 12}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 13}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 14}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 16}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 17}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 18}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 19}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 868500000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 1, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 1, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": -400000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": -200000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 0, "if": 0}, 56 | "chan_multiSF_6": {"enable": true, "radio": 0, "if": 200000}, 57 | "chan_multiSF_7": {"enable": true, "radio": 0, "if": 400000}, 58 | "chan_Lora_std": {"enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 869525000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.in_865_867.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 865200000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 865000000, 21 | "tx_freq_max": 867000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 4}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 5}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 6}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 7}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 8}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 9}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 10}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 11}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 12}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 13}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 14}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 16}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 17}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 18}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 19}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 866385000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -137500}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": 202500}, 52 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": -400000}, 53 | "chan_multiSF_3": {"enable": false, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": false, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": false, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": false, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": false, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": false, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 866500000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 8, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.kr_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 922400000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 920900000, 21 | "tx_freq_max": 923300000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 923000000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -300000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -100000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 100000}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 300000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -100000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": 100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 300000}, 57 | "chan_multiSF_7": {"enable": false, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": false, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "nam1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923100000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.ru_864_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 864500000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 863000000, 21 | "tx_freq_max": 870000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 4}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 5}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 6}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 7}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 8}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 9}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 10}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 11}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 12}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 13}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 14}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 16}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 17}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 18}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 19}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 869000000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": 400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": false, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": false, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 869100000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1302/global_conf.us_902_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 904300000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 923000000, 21 | "tx_freq_max": 928000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 905000000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "nam1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923300000, 86 | "beacon_freq_nb": 8, 87 | "beacon_freq_step": 600000, 88 | "beacon_datarate": 12, 89 | "beacon_bw_hz": 500000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.as_915_921.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "sx1261_conf": { 14 | "rssi_offset": 20, 15 | "spectral_scan": { 16 | "enable": true, 17 | "freq_start": 916600000, 18 | "nb_chan": 8, 19 | "nb_scan": 2000, 20 | "pace_s": 10 21 | }, 22 | "lbt": { 23 | "enable": true, 24 | "rssi_target": -80, 25 | "channels":[ 26 | { "freq_hz": 916600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 27 | { "freq_hz": 916800000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 28 | { "freq_hz": 917000000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 29 | { "freq_hz": 917200000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 30 | { "freq_hz": 917400000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 31 | { "freq_hz": 917600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 32 | { "freq_hz": 917800000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 33 | { "freq_hz": 918000000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 } 34 | ] 35 | } 36 | }, 37 | "radio_0": { 38 | "enable": true, 39 | "type": "SX1250", 40 | "freq": 917000000, 41 | "rssi_offset": -215.4, 42 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 43 | "tx_enable": true, 44 | "tx_freq_min": 915000000, 45 | "tx_freq_max": 921000000, 46 | "tx_gain_lut":[ 47 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 48 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 49 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 50 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 51 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 52 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 53 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 54 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 55 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 56 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 57 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 58 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 59 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 60 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 61 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 62 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 63 | ] 64 | }, 65 | "radio_1": { 66 | "enable": true, 67 | "type": "SX1250", 68 | "freq": 917800000, 69 | "rssi_offset": -215.4, 70 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 71 | "tx_enable": false 72 | }, 73 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 74 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 75 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 76 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 77 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 78 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 79 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 80 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 81 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 82 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 83 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 84 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 85 | }, 86 | 87 | "gateway_conf": { 88 | "gateway_ID": "AA555A0000000000", 89 | 90 | "server_address": "eu1.cloud.thethings.network", 91 | "serv_port_up": 1700, 92 | "serv_port_down": 1700, 93 | 94 | "keepalive_interval": 10, 95 | "stat_interval": 30, 96 | "push_timeout_ms": 100, 97 | 98 | "forward_crc_valid": true, 99 | "forward_crc_error": false, 100 | "forward_crc_disabled": false, 101 | 102 | "gps_tty_path": "/dev/i2c-1", 103 | 104 | "ref_latitude": 0.0, 105 | "ref_longitude": 0.0, 106 | "ref_altitude": 0, 107 | 108 | "beacon_period": 0, 109 | "beacon_freq_hz": 916800000, 110 | "beacon_freq_nb": 1, 111 | "beacon_freq_step": 0, 112 | "beacon_datarate": 9, 113 | "beacon_bw_hz": 125000, 114 | "beacon_power": 27 115 | }, 116 | 117 | "debug_conf": { 118 | "ref_payload":[ 119 | {"id": "0xCAFE1234"}, 120 | {"id": "0xCAFE2345"} 121 | ], 122 | "log_file": "loragw_hal.log" 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.as_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "sx1261_conf": { 14 | "rssi_offset": 20, 15 | "spectral_scan": { 16 | "enable": true, 17 | "freq_start": 923200000, 18 | "nb_chan": 8, 19 | "nb_scan": 2000, 20 | "pace_s": 10 21 | }, 22 | "lbt": { 23 | "enable": true, 24 | "rssi_target": -80, 25 | "channels":[ 26 | { "freq_hz": 923200000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 27 | { "freq_hz": 923400000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 28 | { "freq_hz": 923600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 29 | { "freq_hz": 923800000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 30 | { "freq_hz": 924000000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 31 | { "freq_hz": 924200000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 32 | { "freq_hz": 924400000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 33 | { "freq_hz": 924600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 } 34 | ] 35 | } 36 | }, 37 | "radio_0": { 38 | "enable": true, 39 | "type": "SX1250", 40 | "freq": 923600000, 41 | "rssi_offset": -215.4, 42 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 43 | "tx_enable": true, 44 | "tx_freq_min": 915000000, 45 | "tx_freq_max": 928000000, 46 | "tx_gain_lut":[ 47 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 48 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 49 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 50 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 51 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 52 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 53 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 54 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 55 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 56 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 57 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 58 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 59 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 60 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 61 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 62 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 63 | ] 64 | }, 65 | "radio_1": { 66 | "enable": true, 67 | "type": "SX1250", 68 | "freq": 924400000, 69 | "rssi_offset": -215.4, 70 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 71 | "tx_enable": false 72 | }, 73 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 74 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 75 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 76 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 77 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 78 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 79 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 80 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 81 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 82 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 83 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 84 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 85 | }, 86 | 87 | "gateway_conf": { 88 | "gateway_ID": "AA555A0000000000", 89 | 90 | "server_address": "eu1.cloud.thethings.network", 91 | "serv_port_up": 1700, 92 | "serv_port_down": 1700, 93 | 94 | "keepalive_interval": 10, 95 | "stat_interval": 30, 96 | "push_timeout_ms": 100, 97 | 98 | "forward_crc_valid": true, 99 | "forward_crc_error": false, 100 | "forward_crc_disabled": false, 101 | 102 | "gps_tty_path": "/dev/i2c-1", 103 | 104 | "ref_latitude": 0.0, 105 | "ref_longitude": 0.0, 106 | "ref_altitude": 0, 107 | 108 | "beacon_period": 0, 109 | "beacon_freq_hz": 923400000, 110 | "beacon_freq_nb": 1, 111 | "beacon_freq_step": 0, 112 | "beacon_datarate": 9, 113 | "beacon_bw_hz": 125000, 114 | "beacon_power": 27 115 | }, 116 | 117 | "debug_conf": { 118 | "ref_payload":[ 119 | {"id": "0xCAFE1234"}, 120 | {"id": "0xCAFE2345"} 121 | ], 122 | "log_file": "loragw_hal.log" 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.as_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "sx1261_conf": { 14 | "rssi_offset": 20, 15 | "spectral_scan": { 16 | "enable": true, 17 | "freq_start": 921400000, 18 | "nb_chan": 8, 19 | "nb_scan": 2000, 20 | "pace_s": 10 21 | }, 22 | "lbt": { 23 | "enable": true, 24 | "rssi_target": -80, 25 | "channels":[ 26 | { "freq_hz": 921400000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 27 | { "freq_hz": 921600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 28 | { "freq_hz": 921800000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 29 | { "freq_hz": 922000000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 30 | { "freq_hz": 922200000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 31 | { "freq_hz": 922400000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 32 | { "freq_hz": 922600000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 }, 33 | { "freq_hz": 922800000, "bandwidth": 125000, "scan_time_us": 5000, "transmit_time_ms": 4000 } 34 | ] 35 | } 36 | }, 37 | "radio_0": { 38 | "enable": true, 39 | "type": "SX1250", 40 | "freq": 921800000, 41 | "rssi_offset": -215.4, 42 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 43 | "tx_enable": true, 44 | "tx_freq_min":920000000, 45 | "tx_freq_max":923000000, 46 | "tx_gain_lut":[ 47 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 1}, 48 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 2}, 49 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 3}, 50 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 4}, 51 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 5}, 52 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 6}, 53 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 8}, 54 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 55 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 10}, 56 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 57 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 12}, 58 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 13}, 59 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 14}, 60 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 16}, 61 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 17}, 62 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 19} 63 | ] 64 | }, 65 | "radio_1": { 66 | "enable": true, 67 | "type": "SX1250", 68 | "freq": 922600000, 69 | "rssi_offset": -215.4, 70 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 71 | "tx_enable": false 72 | }, 73 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 74 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 75 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 76 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 77 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 78 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -400000}, 79 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -200000}, 80 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 0}, 81 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 200000}, 82 | "chan_Lora_std": {"enable": true, "radio": 1, "if": 100000, "bandwidth": 250000, "spread_factor": 7, 83 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 84 | "chan_FSK": {"enable": true, "radio": 1, "if": 400000, "bandwidth": 125000, "datarate": 50000} 85 | }, 86 | 87 | "gateway_conf": { 88 | "gateway_ID": "AA555A0000000000", 89 | 90 | "server_address": "eu1.cloud.thethings.network", 91 | "serv_port_up": 1700, 92 | "serv_port_down": 1700, 93 | 94 | "keepalive_interval": 10, 95 | "stat_interval": 30, 96 | "push_timeout_ms": 100, 97 | 98 | "forward_crc_valid": true, 99 | "forward_crc_error": false, 100 | "forward_crc_disabled": false, 101 | 102 | "gps_tty_path": "/dev/i2c-1", 103 | 104 | "ref_latitude": 0.0, 105 | "ref_longitude": 0.0, 106 | "ref_altitude": 0, 107 | 108 | "beacon_period": 0, 109 | "beacon_freq_hz": 921600000, 110 | "beacon_freq_nb": 1, 111 | "beacon_freq_step": 0, 112 | "beacon_datarate": 9, 113 | "beacon_bw_hz": 125000, 114 | "beacon_power": 27 115 | }, 116 | 117 | "debug_conf": { 118 | "ref_payload":[ 119 | {"id": "0xCAFE1234"}, 120 | {"id": "0xCAFE2345"} 121 | ], 122 | "log_file": "loragw_hal.log" 123 | } 124 | } 125 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.au_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 917200000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 915000000, 21 | "tx_freq_max": 928000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 917900000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "au1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923300000, 86 | "beacon_freq_nb": 8, 87 | "beacon_freq_step": 600000, 88 | "beacon_datarate": 12, 89 | "beacon_bw_hz": 500000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.cn_470_510.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "single_input_mode": true, 17 | "freq": 486600000, 18 | "rssi_offset": -207.0, 19 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 20 | "tx_enable": true, 21 | "tx_freq_min": 470000000, 22 | "tx_freq_max": 510000000, 23 | "tx_gain_lut":[ 24 | {"rf_power": -6, "pa_gain": 0, "pwr_idx": 0}, 25 | {"rf_power": -3, "pa_gain": 0, "pwr_idx": 1}, 26 | {"rf_power": 0, "pa_gain": 0, "pwr_idx": 2}, 27 | {"rf_power": 3, "pa_gain": 1, "pwr_idx": 3}, 28 | {"rf_power": 6, "pa_gain": 1, "pwr_idx": 4}, 29 | {"rf_power": 10, "pa_gain": 1, "pwr_idx": 5}, 30 | {"rf_power": 11, "pa_gain": 1, "pwr_idx": 6}, 31 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 7}, 32 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 8}, 33 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 9}, 34 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 35 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 11}, 36 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 12}, 37 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 13}, 38 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 14}, 39 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 15} 40 | ] 41 | }, 42 | "radio_1": { 43 | "enable": true, 44 | "type": "SX1250", 45 | "single_input_mode": true, 46 | "freq": 487400000, 47 | "rssi_offset": -207.0, 48 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 49 | "tx_enable": false 50 | }, 51 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 52 | "chan_multiSF_0": {"enable": true, "radio": 1, "if": -300000}, 53 | "chan_multiSF_1": {"enable": true, "radio": 1, "if": -100000}, 54 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": 100000}, 55 | "chan_multiSF_3": {"enable": true, "radio": 1, "if": 300000}, 56 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": -300000}, 57 | "chan_multiSF_5": {"enable": true, "radio": 0, "if": -100000}, 58 | "chan_multiSF_6": {"enable": true, "radio": 0, "if": 100000}, 59 | "chan_multiSF_7": {"enable": true, "radio": 0, "if": 300000}, 60 | "chan_Lora_std": {"enable": false, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7, 61 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 62 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 63 | }, 64 | 65 | "gateway_conf": { 66 | "gateway_ID": "0000000000000000", 67 | 68 | "server_address": "au1.cloud.thethings.network", 69 | "serv_port_up": 1700, 70 | "serv_port_down": 1700, 71 | 72 | "keepalive_interval": 10, 73 | "stat_interval": 30, 74 | "push_timeout_ms": 100, 75 | 76 | "forward_crc_valid": true, 77 | "forward_crc_error": false, 78 | "forward_crc_disabled": false, 79 | 80 | "gps_tty_path": "/dev/i2c-1", 81 | 82 | "ref_latitude": 0.0, 83 | "ref_longitude": 0.0, 84 | "ref_altitude": 0, 85 | "autoquit_threshold": 20, 86 | 87 | "beacon_period": 0, 88 | "beacon_freq_hz": 508300000, 89 | "beacon_freq_nb": 8, 90 | "beacon_freq_step": 200000, 91 | "beacon_datarate": 10, 92 | "beacon_bw_hz": 125000, 93 | "beacon_power": 27 94 | }, 95 | 96 | "debug_conf": { 97 | "ref_payload":[ 98 | {"id": "0xCAFE1234"}, 99 | {"id": "0xCAFE2345"} 100 | ], 101 | "log_file": "loragw_hal.log" 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.eu_433.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "single_input_mode": true, 17 | "freq": 434375000, 18 | "rssi_offset": -207.0, 19 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 20 | "tx_enable": true, 21 | "tx_freq_min": 433050000, 22 | "tx_freq_max": 434900000, 23 | "tx_gain_lut":[ 24 | {"rf_power": -6, "pa_gain": 0, "pwr_idx": 0}, 25 | {"rf_power": -3, "pa_gain": 0, "pwr_idx": 1}, 26 | {"rf_power": 0, "pa_gain": 0, "pwr_idx": 2}, 27 | {"rf_power": 3, "pa_gain": 1, "pwr_idx": 3}, 28 | {"rf_power": 6, "pa_gain": 1, "pwr_idx": 4}, 29 | {"rf_power": 10, "pa_gain": 1, "pwr_idx": 5}, 30 | {"rf_power": 11, "pa_gain": 1, "pwr_idx": 6}, 31 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 7}, 32 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 8}, 33 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 9}, 34 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 35 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 11}, 36 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 12}, 37 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 13}, 38 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 14}, 39 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 15} 40 | ] 41 | }, 42 | "radio_1": { 43 | "enable": true, 44 | "type": "SX1250", 45 | "single_input_mode": true, 46 | "freq": 433575000, 47 | "rssi_offset": -207.0, 48 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 49 | "tx_enable": false 50 | }, 51 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 52 | "chan_multiSF_0": {"enable": true, "radio": 1, "if": -400000}, 53 | "chan_multiSF_1": {"enable": true, "radio": 1, "if": -200000}, 54 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": 0}, 55 | "chan_multiSF_3": {"enable": true, "radio": 1, "if": 200000}, 56 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": -400000}, 57 | "chan_multiSF_5": {"enable": true, "radio": 0, "if": -200000}, 58 | "chan_multiSF_6": {"enable": true, "radio": 0, "if": 0}, 59 | "chan_multiSF_7": {"enable": true, "radio": 0, "if": 200000}, 60 | "chan_Lora_std": {"enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7, 61 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 62 | "chan_FSK": {"enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 63 | }, 64 | 65 | "gateway_conf": { 66 | "gateway_ID": "0000000000000000", 67 | 68 | "server_address": "eu1.cloud.thethings.network", 69 | "serv_port_up": 1700, 70 | "serv_port_down": 1700, 71 | 72 | "keepalive_interval": 10, 73 | "stat_interval": 30, 74 | "push_timeout_ms": 100, 75 | 76 | "forward_crc_valid": true, 77 | "forward_crc_error": false, 78 | "forward_crc_disabled": false, 79 | 80 | "gps_tty_path": "/dev/i2c-1", 81 | 82 | "ref_latitude": 0.0, 83 | "ref_longitude": 0.0, 84 | "ref_altitude": 0, 85 | "autoquit_threshold": 20, 86 | 87 | "beacon_period": 0, 88 | "beacon_freq_hz": 434665000, 89 | "beacon_freq_nb": 1, 90 | "beacon_freq_step": 0, 91 | "beacon_datarate": 9, 92 | "beacon_bw_hz": 125000, 93 | "beacon_power": 27 94 | }, 95 | 96 | "debug_conf": { 97 | "ref_payload":[ 98 | {"id": "0xCAFE1234"}, 99 | {"id": "0xCAFE2345"} 100 | ], 101 | "log_file": "loragw_hal.log" 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.in_865_867.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 865200000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 865000000, 21 | "tx_freq_max": 867000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 4}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 5}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 6}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 7}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 8}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 9}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 10}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 11}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 12}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 13}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 14}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 16}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 17}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 18}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 19}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 866385000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -137500}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": 202500}, 52 | "chan_multiSF_2": {"enable": true, "radio": 1, "if": -400000}, 53 | "chan_multiSF_3": {"enable": false, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": false, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": false, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": false, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": false, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": false, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 866500000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 8, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.ru_864_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 864500000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 863000000, 21 | "tx_freq_max": 870000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 4}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 5}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 6}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 7}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 8}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 9}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 10}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 11}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 12}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 13}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 14}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 16}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 17}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 18}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 19}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 869000000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 0, "if": 400000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": false, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": false, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "eu1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 869100000, 86 | "beacon_freq_nb": 1, 87 | "beacon_freq_step": 0, 88 | "beacon_datarate": 9, 89 | "beacon_bw_hz": 125000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1303/global_conf.us_902_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX130x_conf": { 3 | "com_type": "SPI", 4 | "com_path": "/dev/spidev0.0", 5 | "lorawan_public": true, 6 | "clksrc": 0, 7 | "antenna_gain": 0, 8 | "full_duplex": false, 9 | "fine_timestamp": { 10 | "enable": false, 11 | "mode": "all_sf" 12 | }, 13 | "radio_0": { 14 | "enable": true, 15 | "type": "SX1250", 16 | "freq": 904300000, 17 | "rssi_offset": -215.4, 18 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 19 | "tx_enable": true, 20 | "tx_freq_min": 923000000, 21 | "tx_freq_max": 928000000, 22 | "tx_gain_lut":[ 23 | {"rf_power": 12, "pa_gain": 1, "pwr_idx": 6}, 24 | {"rf_power": 13, "pa_gain": 1, "pwr_idx": 7}, 25 | {"rf_power": 14, "pa_gain": 1, "pwr_idx": 8}, 26 | {"rf_power": 15, "pa_gain": 1, "pwr_idx": 9}, 27 | {"rf_power": 16, "pa_gain": 1, "pwr_idx": 10}, 28 | {"rf_power": 17, "pa_gain": 1, "pwr_idx": 11}, 29 | {"rf_power": 18, "pa_gain": 1, "pwr_idx": 12}, 30 | {"rf_power": 19, "pa_gain": 1, "pwr_idx": 13}, 31 | {"rf_power": 20, "pa_gain": 1, "pwr_idx": 14}, 32 | {"rf_power": 21, "pa_gain": 1, "pwr_idx": 15}, 33 | {"rf_power": 22, "pa_gain": 1, "pwr_idx": 16}, 34 | {"rf_power": 23, "pa_gain": 1, "pwr_idx": 17}, 35 | {"rf_power": 24, "pa_gain": 1, "pwr_idx": 18}, 36 | {"rf_power": 25, "pa_gain": 1, "pwr_idx": 19}, 37 | {"rf_power": 26, "pa_gain": 1, "pwr_idx": 21}, 38 | {"rf_power": 27, "pa_gain": 1, "pwr_idx": 22} 39 | ] 40 | }, 41 | "radio_1": { 42 | "enable": true, 43 | "type": "SX1250", 44 | "freq": 905000000, 45 | "rssi_offset": -215.4, 46 | "rssi_tcomp": {"coeff_a": 0, "coeff_b": 0, "coeff_c": 20.41, "coeff_d": 2162.56, "coeff_e": 0}, 47 | "tx_enable": false 48 | }, 49 | "chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]}, 50 | "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000}, 51 | "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000}, 52 | "chan_multiSF_2": {"enable": true, "radio": 0, "if": 0}, 53 | "chan_multiSF_3": {"enable": true, "radio": 0, "if": 200000}, 54 | "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000}, 55 | "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000}, 56 | "chan_multiSF_6": {"enable": true, "radio": 1, "if": 100000}, 57 | "chan_multiSF_7": {"enable": true, "radio": 1, "if": 300000}, 58 | "chan_Lora_std": {"enable": true, "radio": 0, "if": 300000, "bandwidth": 500000, "spread_factor": 8, 59 | "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1}, 60 | "chan_FSK": {"enable": false, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000} 61 | }, 62 | 63 | "gateway_conf": { 64 | "gateway_ID": "AA555A0000000000", 65 | 66 | "server_address": "nam1.cloud.thethings.network", 67 | "serv_port_up": 1700, 68 | "serv_port_down": 1700, 69 | 70 | "keepalive_interval": 10, 71 | "stat_interval": 30, 72 | "push_timeout_ms": 100, 73 | 74 | "forward_crc_valid": true, 75 | "forward_crc_error": false, 76 | "forward_crc_disabled": false, 77 | 78 | "gps_tty_path": "/dev/i2c-1", 79 | 80 | "ref_latitude": 0.0, 81 | "ref_longitude": 0.0, 82 | "ref_altitude": 0, 83 | 84 | "beacon_period": 0, 85 | "beacon_freq_hz": 923300000, 86 | "beacon_freq_nb": 8, 87 | "beacon_freq_step": 600000, 88 | "beacon_datarate": 12, 89 | "beacon_bw_hz": 500000, 90 | "beacon_power": 27 91 | }, 92 | 93 | "debug_conf": { 94 | "ref_payload":[ 95 | {"id": "0xCAFE1234"}, 96 | {"id": "0xCAFE2345"} 97 | ], 98 | "log_file": "loragw_hal.log" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.as_915_921.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 917000000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 915000000, 15 | "tx_freq_max": 921000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 917800000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "enable": true, 26 | "radio": 0, 27 | "if": -400000 28 | }, 29 | "chan_multiSF_1": { 30 | "enable": true, 31 | "radio": 0, 32 | "if": -200000 33 | }, 34 | "chan_multiSF_2": { 35 | "enable": true, 36 | "radio": 0, 37 | "if": 0 38 | }, 39 | "chan_multiSF_3": { 40 | "enable": true, 41 | "radio": 0, 42 | "if": 200000 43 | }, 44 | "chan_multiSF_4": { 45 | "enable": true, 46 | "radio": 1, 47 | "if": -400000 48 | }, 49 | "chan_multiSF_5": { 50 | "enable": true, 51 | "radio": 1, 52 | "if": -200000 53 | }, 54 | "chan_multiSF_6": { 55 | "enable": true, 56 | "radio": 1, 57 | "if": 0 58 | }, 59 | "chan_multiSF_7": { 60 | "enable": true, 61 | "radio": 1, 62 | "if": 200000 63 | }, 64 | "chan_Lora_std": { 65 | "enable": true, 66 | "radio": 1, 67 | "if": 100000, 68 | "bandwidth": 250000, 69 | "spread_factor": 7 70 | }, 71 | "chan_FSK": { 72 | "enable": true, 73 | "radio": 1, 74 | "if": 400000, 75 | "bandwidth": 125000, 76 | "datarate": 50000 77 | }, 78 | "tx_lut_0": { 79 | "pa_gain": 0, 80 | "mix_gain": 8, 81 | "rf_power": 3, 82 | "dig_gain": 3 83 | }, 84 | "tx_lut_1": { 85 | "pa_gain": 0, 86 | "mix_gain": 8, 87 | "rf_power": 7, 88 | "dig_gain": 2 89 | }, 90 | "tx_lut_2": { 91 | "pa_gain": 0, 92 | "mix_gain": 9, 93 | "rf_power": 10, 94 | "dig_gain": 1 95 | }, 96 | "tx_lut_3": { 97 | "pa_gain": 0, 98 | "mix_gain": 9, 99 | "rf_power": 11, 100 | "dig_gain": 0 101 | }, 102 | "tx_lut_4": { 103 | "pa_gain": 0, 104 | "mix_gain": 10, 105 | "rf_power": 12, 106 | "dig_gain": 1 107 | }, 108 | "tx_lut_5": { 109 | "pa_gain": 0, 110 | "mix_gain": 10, 111 | "rf_power": 13, 112 | "dig_gain": 0 113 | }, 114 | "tx_lut_6": { 115 | "pa_gain": 0, 116 | "mix_gain": 11, 117 | "rf_power": 14, 118 | "dig_gain": 0 119 | }, 120 | "tx_lut_7": { 121 | "pa_gain": 0, 122 | "mix_gain": 12, 123 | "rf_power": 16, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_8": { 127 | "pa_gain": 3, 128 | "mix_gain": 15, 129 | "rf_power": 20, 130 | "dig_gain": 0 131 | } 132 | }, 133 | "gateway_conf": { 134 | "gateway_ID": "0000000000000000", 135 | 136 | "server_address": "au1.cloud.thethings.network", 137 | "serv_port_up": 1700, 138 | "serv_port_down": 1700, 139 | 140 | "keepalive_interval": 10, 141 | "stat_interval": 30, 142 | "push_timeout_ms": 100, 143 | 144 | "forward_crc_valid": true, 145 | "forward_crc_error": false, 146 | "forward_crc_disabled": false, 147 | 148 | "gps_tty_path": "/dev/ttyAMA0", 149 | "fake_gps": false, 150 | "ref_latitude": 10, 151 | "ref_longitude": 20, 152 | "ref_altitude": -1, 153 | "autoquit_threshold": 20, 154 | "beacon_period": 0, 155 | "beacon_freq_hz": 916800000, 156 | "beacon_freq_nb": 1, 157 | "beacon_freq_step": 0, 158 | "beacon_datarate": 9, 159 | "beacon_bw_hz": 125000, 160 | "beacon_power": 27 161 | } 162 | 163 | } 164 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.as_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 923600000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 915000000, 15 | "tx_freq_max": 928000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 924400000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 923.2 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -400000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 923.4 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -200000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 923.6 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 0 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 923.8 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 200000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 924.0 MHz", 50 | "enable": true, 51 | "radio": 1, 52 | "if": -400000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 924.2 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": -200000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 924.4 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 0 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "Lora MAC, 125kHz, all SF, 924.6 MHz", 68 | "enable": true, 69 | "radio": 1, 70 | "if": 200000 71 | }, 72 | "chan_Lora_std": { 73 | "desc": "Lora MAC, 250kHz, SF7, 924.5 MHz", 74 | "enable": true, 75 | "radio": 1, 76 | "if": 100000, 77 | "bandwidth": 250000, 78 | "spread_factor": 7 79 | }, 80 | "chan_FSK": { 81 | "desc": "FSK 50kbps, 924.8 MHz", 82 | "enable": true, 83 | "radio": 1, 84 | "if": 400000, 85 | "bandwidth": 125000, 86 | "datarate": 50000 87 | }, 88 | "tx_lut_0": { 89 | "pa_gain": 0, 90 | "mix_gain": 8, 91 | "rf_power": 3, 92 | "dig_gain": 3 93 | }, 94 | "tx_lut_1": { 95 | "pa_gain": 0, 96 | "mix_gain": 8, 97 | "rf_power": 7, 98 | "dig_gain": 2 99 | }, 100 | "tx_lut_2": { 101 | "pa_gain": 0, 102 | "mix_gain": 9, 103 | "rf_power": 10, 104 | "dig_gain": 1 105 | }, 106 | "tx_lut_3": { 107 | "pa_gain": 0, 108 | "mix_gain": 9, 109 | "rf_power": 11, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_4": { 113 | "pa_gain": 0, 114 | "mix_gain": 10, 115 | "rf_power": 12, 116 | "dig_gain": 1 117 | }, 118 | "tx_lut_5": { 119 | "pa_gain": 0, 120 | "mix_gain": 10, 121 | "rf_power": 13, 122 | "dig_gain": 0 123 | }, 124 | "tx_lut_6": { 125 | "pa_gain": 0, 126 | "mix_gain": 11, 127 | "rf_power": 14, 128 | "dig_gain": 0 129 | }, 130 | "tx_lut_7": { 131 | "pa_gain": 0, 132 | "mix_gain": 12, 133 | "rf_power": 16, 134 | "dig_gain": 0 135 | }, 136 | "tx_lut_8": { 137 | "pa_gain": 3, 138 | "mix_gain": 15, 139 | "rf_power": 20, 140 | "dig_gain": 0 141 | } 142 | }, 143 | "gateway_conf": { 144 | "gateway_ID": "0000000000000000", 145 | 146 | "server_address": "au1.cloud.thethings.network", 147 | "serv_port_up": 1700, 148 | "serv_port_down": 1700, 149 | 150 | "keepalive_interval": 10, 151 | "stat_interval": 30, 152 | "push_timeout_ms": 100, 153 | 154 | "forward_crc_valid": true, 155 | "forward_crc_error": false, 156 | "forward_crc_disabled": false, 157 | 158 | "gps_tty_path": "/dev/ttyAMA0", 159 | "fake_gps": false, 160 | "ref_latitude": 10, 161 | "ref_longitude": 20, 162 | "ref_altitude": -1, 163 | "autoquit_threshold": 20, 164 | "beacon_period": 0, 165 | "beacon_freq_hz": 923400000, 166 | "beacon_freq_nb": 1, 167 | "beacon_freq_step": 0, 168 | "beacon_datarate": 9, 169 | "beacon_bw_hz": 125000, 170 | "beacon_power": 27 171 | } 172 | 173 | } 174 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.as_917_920.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 917700000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 91700000, 15 | "tx_freq_max": 92000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 918500000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "enable": true, 26 | "radio": 0, 27 | "if": -400000 28 | }, 29 | "chan_multiSF_1": { 30 | "enable": true, 31 | "radio": 0, 32 | "if": -200000 33 | }, 34 | "chan_multiSF_2": { 35 | "enable": true, 36 | "radio": 0, 37 | "if": 0 38 | }, 39 | "chan_multiSF_3": { 40 | "enable": true, 41 | "radio": 0, 42 | "if": 200000 43 | }, 44 | "chan_multiSF_4": { 45 | "enable": true, 46 | "radio": 1, 47 | "if": -400000 48 | }, 49 | "chan_multiSF_5": { 50 | "enable": true, 51 | "radio": 1, 52 | "if": -200000 53 | }, 54 | "chan_multiSF_6": { 55 | "enable": true, 56 | "radio": 1, 57 | "if": 0 58 | }, 59 | "chan_multiSF_7": { 60 | "enable": true, 61 | "radio": 1, 62 | "if": 200000 63 | }, 64 | "chan_Lora_std": { 65 | "enable": true, 66 | "radio": 1, 67 | "if": 100000, 68 | "bandwidth": 250000, 69 | "spread_factor": 7 70 | }, 71 | "chan_FSK": { 72 | "enable": true, 73 | "radio": 1, 74 | "if": 400000, 75 | "bandwidth": 125000, 76 | "datarate": 50000 77 | }, 78 | "tx_lut_0": { 79 | "pa_gain": 0, 80 | "mix_gain": 8, 81 | "rf_power": 3, 82 | "dig_gain": 3 83 | }, 84 | "tx_lut_1": { 85 | "pa_gain": 0, 86 | "mix_gain": 8, 87 | "rf_power": 7, 88 | "dig_gain": 2 89 | }, 90 | "tx_lut_2": { 91 | "pa_gain": 0, 92 | "mix_gain": 9, 93 | "rf_power": 10, 94 | "dig_gain": 1 95 | }, 96 | "tx_lut_3": { 97 | "pa_gain": 0, 98 | "mix_gain": 9, 99 | "rf_power": 11, 100 | "dig_gain": 0 101 | }, 102 | "tx_lut_4": { 103 | "pa_gain": 0, 104 | "mix_gain": 10, 105 | "rf_power": 12, 106 | "dig_gain": 1 107 | }, 108 | "tx_lut_5": { 109 | "pa_gain": 0, 110 | "mix_gain": 10, 111 | "rf_power": 13, 112 | "dig_gain": 0 113 | }, 114 | "tx_lut_6": { 115 | "pa_gain": 0, 116 | "mix_gain": 11, 117 | "rf_power": 14, 118 | "dig_gain": 0 119 | }, 120 | "tx_lut_7": { 121 | "pa_gain": 0, 122 | "mix_gain": 12, 123 | "rf_power": 16, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_8": { 127 | "pa_gain": 3, 128 | "mix_gain": 15, 129 | "rf_power": 20, 130 | "dig_gain": 0 131 | } 132 | }, 133 | "gateway_conf": { 134 | "gateway_ID": "0000000000000000", 135 | 136 | "server_address": "au1.cloud.thethings.network", 137 | "serv_port_up": 1700, 138 | "serv_port_down": 1700, 139 | 140 | "keepalive_interval": 10, 141 | "stat_interval": 30, 142 | "push_timeout_ms": 100, 143 | 144 | "forward_crc_valid": true, 145 | "forward_crc_error": false, 146 | "forward_crc_disabled": false, 147 | 148 | "gps_tty_path": "/dev/ttyAMA0", 149 | "fake_gps": false, 150 | "ref_latitude": 10, 151 | "ref_longitude": 20, 152 | "ref_altitude": -1, 153 | "autoquit_threshold": 20, 154 | "beacon_period": 0, 155 | "beacon_freq_hz": 917500000, 156 | "beacon_freq_nb": 1, 157 | "beacon_freq_step": 0, 158 | "beacon_datarate": 9, 159 | "beacon_bw_hz": 125000, 160 | "beacon_power": 27 161 | } 162 | 163 | } 164 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.as_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public":true, 4 | "clksrc":1, 5 | "antenna_gain":0, 6 | "radio_0":{ 7 | "enable":true, 8 | "type":"SX1257", 9 | "freq":921800000, 10 | "rssi_offset":-166, 11 | "tx_enable":true, 12 | "tx_freq_min":920000000, 13 | "tx_freq_max":923000000 14 | }, 15 | "radio_1":{ 16 | "enable":true, 17 | "type":"SX1257", 18 | "freq": 922600000, 19 | "rssi_offset":-166, 20 | "tx_enable":false 21 | }, 22 | "chan_multiSF_0":{ 23 | "enable":true, 24 | "radio":0, 25 | "if": -400000 26 | }, 27 | "chan_multiSF_1":{ 28 | "enable":true, 29 | "radio":0, 30 | "if": -200000 31 | }, 32 | "chan_multiSF_2":{ 33 | "enable":true, 34 | "radio": 0, 35 | "if": 0 36 | }, 37 | "chan_multiSF_3":{ 38 | "enable":true, 39 | "radio": 0, 40 | "if": 200000 41 | }, 42 | "chan_multiSF_4":{ 43 | "enable":true, 44 | "radio": 1, 45 | "if":-400000 46 | }, 47 | "chan_multiSF_5":{ 48 | "enable":true, 49 | "radio": 1, 50 | "if":-200000 51 | }, 52 | "chan_multiSF_6":{ 53 | "enable":true, 54 | "radio":1, 55 | "if":0 56 | }, 57 | "chan_multiSF_7":{ 58 | "enable":true, 59 | "radio": 1, 60 | "if": 200000 61 | }, 62 | "chan_Lora_std":{ 63 | "enable":true, 64 | "radio":1, 65 | "if":100000, 66 | "bandwidth":250000, 67 | "spread_factor":7 68 | }, 69 | "chan_FSK":{ 70 | "enable":true, 71 | "radio":1, 72 | "if":400000, 73 | "bandwidth":125000, 74 | "datarate":50000 75 | }, 76 | "tx_lut_0": { 77 | "pa_gain": 0, 78 | "mix_gain": 8, 79 | "rf_power": 3, 80 | "dig_gain": 3 81 | }, 82 | "tx_lut_1": { 83 | "pa_gain": 0, 84 | "mix_gain": 8, 85 | "rf_power": 7, 86 | "dig_gain": 2 87 | }, 88 | "tx_lut_2": { 89 | "pa_gain": 0, 90 | "mix_gain": 9, 91 | "rf_power": 10, 92 | "dig_gain": 1 93 | }, 94 | "tx_lut_3": { 95 | "pa_gain": 0, 96 | "mix_gain": 9, 97 | "rf_power": 11, 98 | "dig_gain": 0 99 | }, 100 | "tx_lut_4": { 101 | "pa_gain": 0, 102 | "mix_gain": 10, 103 | "rf_power": 12, 104 | "dig_gain": 1 105 | }, 106 | "tx_lut_5": { 107 | "pa_gain": 0, 108 | "mix_gain": 10, 109 | "rf_power": 13, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_6": { 113 | "pa_gain": 0, 114 | "mix_gain": 11, 115 | "rf_power": 14, 116 | "dig_gain": 0 117 | }, 118 | "tx_lut_7": { 119 | "pa_gain": 0, 120 | "mix_gain": 12, 121 | "rf_power": 16, 122 | "dig_gain": 0 123 | }, 124 | "tx_lut_8": { 125 | "pa_gain": 3, 126 | "mix_gain": 15, 127 | "rf_power": 20, 128 | "dig_gain": 0 129 | } 130 | }, 131 | "gateway_conf":{ 132 | "gateway_ID":"0000000000000000", 133 | "server_address":"au1.cloud.thethings.network", 134 | "serv_port_up":1700, 135 | "serv_port_down":1700, 136 | "forward_crc_disabled":false, 137 | "forward_crc_error":false, 138 | "forward_crc_valid":true, 139 | "keepalive_interval":10, 140 | "stat_interval":30, 141 | "push_timeout_ms":100, 142 | "fake_gps":false, 143 | "autoquit_threshold":30, 144 | "gps_tty_path":"/dev/ttyAMA0", 145 | "beacon_period": 0, 146 | "beacon_freq_hz": 921600000, 147 | "beacon_freq_nb": 1, 148 | "beacon_freq_step": 0, 149 | "beacon_datarate": 9, 150 | "beacon_bw_hz": 125000, 151 | "beacon_power": 27 152 | } 153 | } 154 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.au_915_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 917200000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 915000000, 15 | "tx_freq_max": 928000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 917900000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 916.8 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -400000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 917.0 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -200000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 917.2 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 0 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 917.4 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 200000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 917.6 MHz", 50 | "enable": true, 51 | "radio": 1, 52 | "if": -300000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 917.8 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 918.0 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "Lora MAC, 125kHz, all SF, 918.2 MHz", 68 | "enable": true, 69 | "radio": 1, 70 | "if": 300000 71 | }, 72 | "chan_Lora_std": { 73 | "desc": "Lora MAC, 500kHz, SF8, 917.5 MHz", 74 | "enable": true, 75 | "radio": 0, 76 | "if": 300000, 77 | "bandwidth": 500000, 78 | "spread_factor": 8 79 | }, 80 | "chan_FSK": { 81 | "desc": "disabled", 82 | "enable": false 83 | }, 84 | "tx_lut_0": { 85 | "pa_gain": 0, 86 | "mix_gain": 8, 87 | "rf_power": 3, 88 | "dig_gain": 3 89 | }, 90 | "tx_lut_1": { 91 | "pa_gain": 0, 92 | "mix_gain": 8, 93 | "rf_power": 7, 94 | "dig_gain": 2 95 | }, 96 | "tx_lut_2": { 97 | "pa_gain": 0, 98 | "mix_gain": 9, 99 | "rf_power": 10, 100 | "dig_gain": 1 101 | }, 102 | "tx_lut_3": { 103 | "pa_gain": 0, 104 | "mix_gain": 9, 105 | "rf_power": 11, 106 | "dig_gain": 0 107 | }, 108 | "tx_lut_4": { 109 | "pa_gain": 0, 110 | "mix_gain": 10, 111 | "rf_power": 12, 112 | "dig_gain": 1 113 | }, 114 | "tx_lut_5": { 115 | "pa_gain": 0, 116 | "mix_gain": 10, 117 | "rf_power": 13, 118 | "dig_gain": 0 119 | }, 120 | "tx_lut_6": { 121 | "pa_gain": 0, 122 | "mix_gain": 11, 123 | "rf_power": 14, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_7": { 127 | "pa_gain": 0, 128 | "mix_gain": 12, 129 | "rf_power": 16, 130 | "dig_gain": 0 131 | }, 132 | "tx_lut_8": { 133 | "pa_gain": 3, 134 | "mix_gain": 15, 135 | "rf_power": 20, 136 | "dig_gain": 0 137 | } 138 | }, 139 | "gateway_conf": { 140 | "gateway_ID": "0000000000000000", 141 | 142 | "server_address":"au1.cloud.thethings.network", 143 | "serv_port_up": 1700, 144 | "serv_port_down": 1700, 145 | 146 | "keepalive_interval": 10, 147 | "stat_interval": 30, 148 | "push_timeout_ms": 100, 149 | 150 | "forward_crc_valid": true, 151 | "forward_crc_error": false, 152 | "forward_crc_disabled": false, 153 | 154 | "gps_tty_path": "/dev/ttyAMA0", 155 | "fake_gps": false, 156 | "ref_latitude": 10, 157 | "ref_longitude": 20, 158 | "ref_altitude": -1, 159 | "autoquit_threshold": 20, 160 | "beacon_period": 0, 161 | "beacon_freq_hz": 923300000, 162 | "beacon_freq_nb": 8, 163 | "beacon_freq_step": 600000, 164 | "beacon_datarate": 12, 165 | "beacon_bw_hz": 500000, 166 | "beacon_power": 27 167 | } 168 | 169 | } 170 | 171 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.cn_470_510.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1255", 11 | "freq": 486600000, 12 | "rssi_offset": -176.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 470000000, 15 | "tx_freq_max": 510000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1255", 20 | "freq": 487400000, 21 | "rssi_offset": -176.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 487.1 MHz", 26 | "enable": true, 27 | "radio": 1, 28 | "if": -300000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 487.3 MHz", 32 | "enable": true, 33 | "radio": 1, 34 | "if": -100000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 487.5 MHz", 38 | "enable": true, 39 | "radio": 1, 40 | "if": 100000 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 487.7 MHz", 44 | "enable": true, 45 | "radio": 1, 46 | "if": 300000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 486.3 MHz", 50 | "enable": true, 51 | "radio": 0, 52 | "if": -300000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 486.5 MHz", 56 | "enable": true, 57 | "radio": 0, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 486.7 MHz", 62 | "enable": true, 63 | "radio": 0, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "Lora MAC, 125kHz, all SF, 486.9 MHz", 68 | "enable": true, 69 | "radio": 0, 70 | "if": 300000 71 | }, 72 | "chan_Lora_std": { 73 | "desc": "disabled", 74 | "enable": false 75 | }, 76 | "chan_FSK": { 77 | "desc": "disabled", 78 | "enable": false 79 | }, 80 | "tx_lut_0": { 81 | "desc": "TX gain table, index 0", 82 | "pa_gain": 0, 83 | "mix_gain": 8, 84 | "rf_power": -6, 85 | "dig_gain": 0 86 | }, 87 | "tx_lut_1": { 88 | "desc": "TX gain table, index 1", 89 | "pa_gain": 0, 90 | "mix_gain": 10, 91 | "rf_power": -3, 92 | "dig_gain": 0 93 | }, 94 | "tx_lut_2": { 95 | "desc": "TX gain table, index 2", 96 | "pa_gain": 0, 97 | "mix_gain": 12, 98 | "rf_power": 0, 99 | "dig_gain": 0 100 | }, 101 | "tx_lut_3": { 102 | "desc": "TX gain table, index 3", 103 | "pa_gain": 1, 104 | "mix_gain": 8, 105 | "rf_power": 3, 106 | "dig_gain": 0 107 | }, 108 | "tx_lut_4": { 109 | "desc": "TX gain table, index 4", 110 | "pa_gain": 1, 111 | "mix_gain": 10, 112 | "rf_power": 6, 113 | "dig_gain": 0 114 | }, 115 | "tx_lut_5": { 116 | "desc": "TX gain table, index 5", 117 | "pa_gain": 1, 118 | "mix_gain": 12, 119 | "rf_power": 10, 120 | "dig_gain": 0 121 | }, 122 | "tx_lut_6": { 123 | "desc": "TX gain table, index 6", 124 | "pa_gain": 1, 125 | "mix_gain": 13, 126 | "rf_power": 11, 127 | "dig_gain": 0 128 | }, 129 | "tx_lut_7": { 130 | "desc": "TX gain table, index 7", 131 | "pa_gain": 2, 132 | "mix_gain": 9, 133 | "rf_power": 12, 134 | "dig_gain": 0 135 | }, 136 | "tx_lut_8": { 137 | "desc": "TX gain table, index 8", 138 | "pa_gain": 1, 139 | "mix_gain": 15, 140 | "rf_power": 13, 141 | "dig_gain": 0 142 | }, 143 | "tx_lut_9": { 144 | "desc": "TX gain table, index 9", 145 | "pa_gain": 2, 146 | "mix_gain": 10, 147 | "rf_power": 14, 148 | "dig_gain": 0 149 | }, 150 | "tx_lut_10": { 151 | "desc": "TX gain table, index 10", 152 | "pa_gain": 2, 153 | "mix_gain": 11, 154 | "rf_power": 16, 155 | "dig_gain": 0 156 | }, 157 | "tx_lut_11": { 158 | "desc": "TX gain table, index 11", 159 | "pa_gain": 3, 160 | "mix_gain": 9, 161 | "rf_power": 20, 162 | "dig_gain": 0 163 | }, 164 | "tx_lut_12": { 165 | "desc": "TX gain table, index 12", 166 | "pa_gain": 3, 167 | "mix_gain": 10, 168 | "rf_power": 23, 169 | "dig_gain": 0 170 | }, 171 | "tx_lut_13": { 172 | "desc": "TX gain table, index 13", 173 | "pa_gain": 3, 174 | "mix_gain": 11, 175 | "rf_power": 25, 176 | "dig_gain": 0 177 | }, 178 | "tx_lut_14": { 179 | "desc": "TX gain table, index 14", 180 | "pa_gain": 3, 181 | "mix_gain": 12, 182 | "rf_power": 26, 183 | "dig_gain": 0 184 | }, 185 | "tx_lut_15": { 186 | "desc": "TX gain table, index 15", 187 | "pa_gain": 3, 188 | "mix_gain": 14, 189 | "rf_power": 27, 190 | "dig_gain": 0 191 | } 192 | }, 193 | "gateway_conf": { 194 | "gateway_ID": "0000000000000000", 195 | 196 | "server_address":"au1.cloud.thethings.network", 197 | "serv_port_up": 1700, 198 | "serv_port_down": 1700, 199 | 200 | "keepalive_interval": 10, 201 | "stat_interval": 30, 202 | "push_timeout_ms": 100, 203 | 204 | "forward_crc_valid": true, 205 | "forward_crc_error": false, 206 | "forward_crc_disabled": false, 207 | 208 | "gps_tty_path": "/dev/ttyAMA0", 209 | "fake_gps": false, 210 | "ref_latitude": 10, 211 | "ref_longitude": 20, 212 | "ref_altitude": -1, 213 | "autoquit_threshold": 20, 214 | "beacon_period": 0, 215 | "beacon_freq_hz": 508300000, 216 | "beacon_freq_nb": 8, 217 | "beacon_freq_step": 200000, 218 | "beacon_datarate": 10, 219 | "beacon_bw_hz": 125000, 220 | "beacon_power": 27 221 | } 222 | } 223 | 224 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.eu_863_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "antenna_gain": 0, 6 | "radio_0": { 7 | "enable": true, 8 | "type": "SX1257", 9 | "freq": 867500000, 10 | "rssi_offset": -166.0, 11 | "tx_enable": true, 12 | "tx_freq_min": 863000000, 13 | "tx_freq_max": 870000000 14 | }, 15 | "radio_1": { 16 | "enable": true, 17 | "type": "SX1257", 18 | "freq": 868500000, 19 | "rssi_offset": -166.0, 20 | "tx_enable": false 21 | }, 22 | "chan_multiSF_0": { 23 | "enable": true, 24 | "radio": 1, 25 | "if": -400000 26 | }, 27 | "chan_multiSF_1": { 28 | "enable": true, 29 | "radio": 1, 30 | "if": -200000 31 | }, 32 | "chan_multiSF_2": { 33 | "enable": true, 34 | "radio": 1, 35 | "if": 0 36 | }, 37 | "chan_multiSF_3": { 38 | "enable": true, 39 | "radio": 0, 40 | "if": -400000 41 | }, 42 | "chan_multiSF_4": { 43 | "enable": true, 44 | "radio": 0, 45 | "if": -200000 46 | }, 47 | "chan_multiSF_5": { 48 | "enable": true, 49 | "radio": 0, 50 | "if": 0 51 | }, 52 | "chan_multiSF_6": { 53 | "enable": true, 54 | "radio": 0, 55 | "if": 200000 56 | }, 57 | "chan_multiSF_7": { 58 | "enable": true, 59 | "radio": 0, 60 | "if": 400000 61 | }, 62 | "chan_Lora_std": { 63 | "enable": true, 64 | "radio": 1, 65 | "if": -200000, 66 | "bandwidth": 250000, 67 | "spread_factor": 7 68 | }, 69 | "chan_FSK": { 70 | "enable": true, 71 | "radio": 1, 72 | "if": 300000, 73 | "bandwidth": 125000, 74 | "datarate": 50000 75 | }, 76 | "tx_lut_0": { 77 | "pa_gain": 0, 78 | "mix_gain": 8, 79 | "rf_power": 3, 80 | "dig_gain": 3 81 | }, 82 | "tx_lut_1": { 83 | "pa_gain": 0, 84 | "mix_gain": 8, 85 | "rf_power": 6, 86 | "dig_gain": 2 87 | }, 88 | "tx_lut_2": { 89 | "pa_gain": 0, 90 | "mix_gain": 9, 91 | "rf_power": 10, 92 | "dig_gain": 1 93 | }, 94 | "tx_lut_3": { 95 | "pa_gain": 0, 96 | "mix_gain": 9, 97 | "rf_power": 11, 98 | "dig_gain": 0 99 | }, 100 | "tx_lut_4": { 101 | "pa_gain": 0, 102 | "mix_gain": 10, 103 | "rf_power": 12, 104 | "dig_gain": 1 105 | }, 106 | "tx_lut_5": { 107 | "pa_gain": 0, 108 | "mix_gain": 10, 109 | "rf_power": 13, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_6": { 113 | "pa_gain": 0, 114 | "mix_gain": 11, 115 | "rf_power": 14, 116 | "dig_gain": 0 117 | }, 118 | "tx_lut_7": { 119 | "pa_gain": 0, 120 | "mix_gain": 12, 121 | "rf_power": 16, 122 | "dig_gain": 0 123 | }, 124 | "tx_lut_8": { 125 | "pa_gain": 3, 126 | "mix_gain": 15, 127 | "rf_power": 0, 128 | "dig_gain": 0 129 | } 130 | }, 131 | "gateway_conf": { 132 | "gateway_ID": "0000000000000000", 133 | 134 | "server_address":"eu1.cloud.thethings.network", 135 | "serv_port_up": 1700, 136 | "serv_port_down": 1700, 137 | 138 | "keepalive_interval": 10, 139 | "stat_interval": 30, 140 | "push_timeout_ms": 100, 141 | 142 | "forward_crc_valid": true, 143 | "forward_crc_error": false, 144 | "forward_crc_disabled": false, 145 | 146 | "gps_tty_path": "/dev/ttyAMA0", 147 | "fake_gps": false, 148 | "ref_latitude": 10, 149 | "ref_longitude": 20, 150 | "ref_altitude": -1, 151 | "autoquit_threshold": 20, 152 | "beacon_period": 0, 153 | "beacon_freq_hz": 869525000, 154 | "beacon_freq_nb": 1, 155 | "beacon_freq_step": 0, 156 | "beacon_datarate": 9, 157 | "beacon_bw_hz": 125000, 158 | "beacon_power": 27 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.in_865_867.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 865200000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 865000000, 15 | "tx_freq_max": 867000000, 16 | "tx_notch_freq": 129000 17 | }, 18 | "radio_1": { 19 | "enable": true, 20 | "type": "SX1257", 21 | "freq": 866385000, 22 | "rssi_offset": -166.0, 23 | "tx_enable": false 24 | }, 25 | "chan_multiSF_0": { 26 | "desc": "Lora MAC, 125kHz, all SF, 865.0625 MHz", 27 | "enable": true, 28 | "radio": 0, 29 | "if": -137500 30 | }, 31 | "chan_multiSF_1": { 32 | "desc": "Lora MAC, 125kHz, all SF, 865.4025 MHz", 33 | "enable": true, 34 | "radio": 0, 35 | "if": 202500 36 | }, 37 | "chan_multiSF_2": { 38 | "desc": "Lora MAC, 125kHz, all SF, 865.9850 MHz", 39 | "enable": true, 40 | "radio": 1, 41 | "if": -400000 42 | }, 43 | "chan_multiSF_3": { 44 | "desc": "disabled", 45 | "enable": false 46 | }, 47 | "chan_multiSF_4": { 48 | "desc": "disabled", 49 | "enable": false 50 | }, 51 | "chan_multiSF_5": { 52 | "desc": "disabled", 53 | "enable": false 54 | }, 55 | "chan_multiSF_6": { 56 | "desc": "disabled", 57 | "enable": false 58 | }, 59 | "chan_multiSF_7": { 60 | "desc": "disabled", 61 | "enable": false 62 | }, 63 | "chan_Lora_std": { 64 | "desc": "disabled", 65 | "enable": false 66 | }, 67 | "chan_FSK": { 68 | "desc": "disabled", 69 | "enable": false 70 | }, 71 | "tx_lut_0": { 72 | "pa_gain": 0, 73 | "mix_gain": 8, 74 | "rf_power": 3, 75 | "dig_gain": 3 76 | }, 77 | "tx_lut_1": { 78 | "pa_gain": 0, 79 | "mix_gain": 8, 80 | "rf_power": 6, 81 | "dig_gain": 2 82 | }, 83 | "tx_lut_2": { 84 | "pa_gain": 0, 85 | "mix_gain": 9, 86 | "rf_power": 10, 87 | "dig_gain": 1 88 | }, 89 | "tx_lut_3": { 90 | "pa_gain": 0, 91 | "mix_gain": 9, 92 | "rf_power": 11, 93 | "dig_gain": 0 94 | }, 95 | "tx_lut_4": { 96 | "pa_gain": 0, 97 | "mix_gain": 10, 98 | "rf_power": 12, 99 | "dig_gain": 1 100 | }, 101 | "tx_lut_5": { 102 | "pa_gain": 0, 103 | "mix_gain": 10, 104 | "rf_power": 13, 105 | "dig_gain": 0 106 | }, 107 | "tx_lut_6": { 108 | "pa_gain": 0, 109 | "mix_gain": 11, 110 | "rf_power": 14, 111 | "dig_gain": 0 112 | }, 113 | "tx_lut_7": { 114 | "pa_gain": 0, 115 | "mix_gain": 12, 116 | "rf_power": 16, 117 | "dig_gain": 0 118 | }, 119 | "tx_lut_8": { 120 | "pa_gain": 3, 121 | "mix_gain": 15, 122 | "rf_power": 0, 123 | "dig_gain": 0 124 | } 125 | }, 126 | "gateway_conf": { 127 | "gateway_ID": "0000000000000000", 128 | 129 | "server_address":"eu1.cloud.thethings.network", 130 | "serv_port_up": 1700, 131 | "serv_port_down": 1700, 132 | 133 | "keepalive_interval": 10, 134 | "stat_interval": 30, 135 | "push_timeout_ms": 100, 136 | 137 | "forward_crc_valid": true, 138 | "forward_crc_error": false, 139 | "forward_crc_disabled": false, 140 | 141 | "gps_tty_path": "/dev/ttyAMA0", 142 | "fake_gps": false, 143 | "ref_latitude": 10, 144 | "ref_longitude": 20, 145 | "ref_altitude": -1, 146 | "autoquit_threshold": 20, 147 | "beacon_period": 0, 148 | "beacon_freq_hz": 866500000, 149 | "beacon_freq_nb": 1, 150 | "beacon_freq_step": 0, 151 | "beacon_datarate": 8, 152 | "beacon_bw_hz": 125000, 153 | "beacon_power": 27 154 | } 155 | 156 | } 157 | 158 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.kr_920_923.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 922400000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 920900000, 15 | "tx_freq_max": 923300000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 923000000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 922.1 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -300000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 922.3 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -100000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 922.5 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 100000 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 922.7 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 300000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 922.9 MHz", 50 | "enable": true, 51 | "radio": 1, 52 | "if": -100000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 923.1 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": 100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 923.3 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 300000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "disabled", 68 | "enable": false 69 | }, 70 | "chan_Lora_std": { 71 | "desc": "disabled", 72 | "enable": false 73 | }, 74 | "chan_FSK": { 75 | "desc": "disabled", 76 | "enable": false 77 | }, 78 | "tx_lut_0": { 79 | "pa_gain": 0, 80 | "mix_gain": 8, 81 | "rf_power": 3, 82 | "dig_gain": 3 83 | }, 84 | "tx_lut_1": { 85 | "pa_gain": 0, 86 | "mix_gain": 8, 87 | "rf_power": 7, 88 | "dig_gain": 2 89 | }, 90 | "tx_lut_2": { 91 | "pa_gain": 0, 92 | "mix_gain": 9, 93 | "rf_power": 10, 94 | "dig_gain": 1 95 | }, 96 | "tx_lut_3": { 97 | "pa_gain": 0, 98 | "mix_gain": 9, 99 | "rf_power": 11, 100 | "dig_gain": 0 101 | }, 102 | "tx_lut_4": { 103 | "pa_gain": 0, 104 | "mix_gain": 10, 105 | "rf_power": 12, 106 | "dig_gain": 1 107 | }, 108 | "tx_lut_5": { 109 | "pa_gain": 0, 110 | "mix_gain": 10, 111 | "rf_power": 13, 112 | "dig_gain": 0 113 | }, 114 | "tx_lut_6": { 115 | "pa_gain": 0, 116 | "mix_gain": 11, 117 | "rf_power": 14, 118 | "dig_gain": 0 119 | }, 120 | "tx_lut_7": { 121 | "pa_gain": 0, 122 | "mix_gain": 12, 123 | "rf_power": 16, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_8": { 127 | "pa_gain": 3, 128 | "mix_gain": 15, 129 | "rf_power": 20, 130 | "dig_gain": 0 131 | } 132 | }, 133 | "gateway_conf": { 134 | "gateway_ID": "0000000000000000", 135 | 136 | "server_address":"au1.cloud.thethings.network", 137 | "serv_port_up": 1700, 138 | "serv_port_down": 1700, 139 | 140 | "keepalive_interval": 10, 141 | "stat_interval": 30, 142 | "push_timeout_ms": 100, 143 | 144 | "forward_crc_valid": true, 145 | "forward_crc_error": false, 146 | "forward_crc_disabled": false, 147 | 148 | "gps_tty_path": "/dev/ttyAMA0", 149 | "fake_gps": false, 150 | "ref_latitude": 10, 151 | "ref_longitude": 20, 152 | "ref_altitude": -1, 153 | "autoquit_threshold": 20, 154 | "beacon_period": 0, 155 | "beacon_freq_hz": 923100000, 156 | "beacon_freq_nb": 1, 157 | "beacon_freq_step": 0, 158 | "beacon_datarate": 9, 159 | "beacon_bw_hz": 125000, 160 | "beacon_power": 27 161 | } 162 | 163 | } 164 | 165 | 166 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.ru_864_870.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "clksrc_desc": "radio_1 provides clock to concentrator for most devices except MultiTech. For MultiTech set to 0.", 6 | "antenna_gain": 0, 7 | "antenna_gain_desc": "antenna gain, in dBi", 8 | "radio_0": { 9 | "enable": true, 10 | "type": "SX1257", 11 | "freq": 864500000, 12 | "rssi_offset": -166.0, 13 | "tx_enable": true, 14 | "tx_freq_min": 863000000, 15 | "tx_freq_max": 870000000 16 | }, 17 | "radio_1": { 18 | "enable": true, 19 | "type": "SX1257", 20 | "freq": 869000000, 21 | "rssi_offset": -166.0, 22 | "tx_enable": false 23 | }, 24 | "chan_multiSF_0": { 25 | "desc": "Lora MAC, 125kHz, all SF, 864.1 MHz", 26 | "enable": true, 27 | "radio": 0, 28 | "if": -400000 29 | }, 30 | "chan_multiSF_1": { 31 | "desc": "Lora MAC, 125kHz, all SF, 864.3 MHz", 32 | "enable": true, 33 | "radio": 0, 34 | "if": -200000 35 | }, 36 | "chan_multiSF_2": { 37 | "desc": "Lora MAC, 125kHz, all SF, 864.5 MHz", 38 | "enable": true, 39 | "radio": 0, 40 | "if": 0 41 | }, 42 | "chan_multiSF_3": { 43 | "desc": "Lora MAC, 125kHz, all SF, 864.7 MHz", 44 | "enable": true, 45 | "radio": 0, 46 | "if": 200000 47 | }, 48 | "chan_multiSF_4": { 49 | "desc": "Lora MAC, 125kHz, all SF, 864.9 MHz", 50 | "enable": true, 51 | "radio": 0, 52 | "if": 400000 53 | }, 54 | "chan_multiSF_5": { 55 | "desc": "Lora MAC, 125kHz, all SF, 868.9 MHz", 56 | "enable": true, 57 | "radio": 1, 58 | "if": -100000 59 | }, 60 | "chan_multiSF_6": { 61 | "desc": "Lora MAC, 125kHz, all SF, 869.1 MHz", 62 | "enable": true, 63 | "radio": 1, 64 | "if": 100000 65 | }, 66 | "chan_multiSF_7": { 67 | "desc": "disabled", 68 | "enable": false 69 | }, 70 | "chan_Lora_std": { 71 | "desc": "disabled", 72 | "enable": false 73 | }, 74 | "chan_FSK": { 75 | "desc": "disabled", 76 | "enable": false 77 | }, 78 | "tx_lut_0": { 79 | "pa_gain": 0, 80 | "mix_gain": 8, 81 | "rf_power": 3, 82 | "dig_gain": 3 83 | }, 84 | "tx_lut_1": { 85 | "pa_gain": 0, 86 | "mix_gain": 8, 87 | "rf_power": 6, 88 | "dig_gain": 2 89 | }, 90 | "tx_lut_2": { 91 | "pa_gain": 0, 92 | "mix_gain": 9, 93 | "rf_power": 10, 94 | "dig_gain": 1 95 | }, 96 | "tx_lut_3": { 97 | "pa_gain": 0, 98 | "mix_gain": 9, 99 | "rf_power": 11, 100 | "dig_gain": 0 101 | }, 102 | "tx_lut_4": { 103 | "pa_gain": 0, 104 | "mix_gain": 10, 105 | "rf_power": 12, 106 | "dig_gain": 1 107 | }, 108 | "tx_lut_5": { 109 | "pa_gain": 0, 110 | "mix_gain": 10, 111 | "rf_power": 13, 112 | "dig_gain": 0 113 | }, 114 | "tx_lut_6": { 115 | "pa_gain": 0, 116 | "mix_gain": 11, 117 | "rf_power": 14, 118 | "dig_gain": 0 119 | }, 120 | "tx_lut_7": { 121 | "pa_gain": 0, 122 | "mix_gain": 12, 123 | "rf_power": 16, 124 | "dig_gain": 0 125 | }, 126 | "tx_lut_8": { 127 | "pa_gain": 3, 128 | "mix_gain": 15, 129 | "rf_power": 0, 130 | "dig_gain": 0 131 | } 132 | }, 133 | "gateway_conf": { 134 | "gateway_ID": "0000000000000000", 135 | 136 | "server_address":"eu1.cloud.thethings.network", 137 | "serv_port_up": 1700, 138 | "serv_port_down": 1700, 139 | 140 | "keepalive_interval": 10, 141 | "stat_interval": 30, 142 | "push_timeout_ms": 100, 143 | 144 | "forward_crc_valid": true, 145 | "forward_crc_error": false, 146 | "forward_crc_disabled": false, 147 | 148 | "gps_tty_path": "/dev/ttyAMA0", 149 | "fake_gps": false, 150 | "ref_latitude": 10, 151 | "ref_longitude": 20, 152 | "ref_altitude": -1, 153 | "autoquit_threshold": 20, 154 | "beacon_period": 0, 155 | "beacon_freq_hz": 869100000, 156 | "beacon_freq_nb": 1, 157 | "beacon_freq_step": 0, 158 | "beacon_datarate": 9, 159 | "beacon_bw_hz": 125000, 160 | "beacon_power": 27 161 | } 162 | 163 | } 164 | 165 | -------------------------------------------------------------------------------- /runner/templates/sx1308/global_conf.us_902_928.json: -------------------------------------------------------------------------------- 1 | { 2 | "SX1301_conf": { 3 | "lorawan_public": true, 4 | "clksrc": 1, 5 | "antenna_gain": 0, 6 | "radio_0": { 7 | "enable": true, 8 | "type": "SX1257", 9 | "freq": 904300000, 10 | "rssi_offset": -166.0, 11 | "tx_enable": true, 12 | "tx_freq_min": 902000000, 13 | "tx_freq_max": 928000000 14 | }, 15 | "radio_1": { 16 | "enable": true, 17 | "type": "SX1257", 18 | "freq": 905000000, 19 | "rssi_offset": -166.0, 20 | "tx_enable": false 21 | }, 22 | "chan_multiSF_0": { 23 | "enable": true, 24 | "radio": 0, 25 | "if": -400000 26 | }, 27 | "chan_multiSF_1": { 28 | "enable": true, 29 | "radio": 0, 30 | "if": -200000 31 | }, 32 | "chan_multiSF_2": { 33 | "enable": true, 34 | "radio": 0, 35 | "if": 0 36 | }, 37 | "chan_multiSF_3": { 38 | "enable": true, 39 | "radio": 0, 40 | "if": 200000 41 | }, 42 | "chan_multiSF_4": { 43 | "enable": true, 44 | "radio": 1, 45 | "if": -300000 46 | }, 47 | "chan_multiSF_5": { 48 | "enable": true, 49 | "radio": 1, 50 | "if": -100000 51 | }, 52 | "chan_multiSF_6": { 53 | "enable": true, 54 | "radio": 1, 55 | "if": 100000 56 | }, 57 | "chan_multiSF_7": { 58 | "enable": true, 59 | "radio": 1, 60 | "if": 300000 61 | }, 62 | "chan_Lora_std": { 63 | "enable": true, 64 | "radio": 0, 65 | "if": 300000, 66 | "bandwidth": 500000, 67 | "spread_factor": 8 68 | }, 69 | "chan_FSK": { 70 | "enable": false, 71 | "radio": 0, 72 | "if": 300000, 73 | "bandwidth": 250000, 74 | "datarate": 100000 75 | }, 76 | "tx_lut_0": { 77 | "pa_gain": 0, 78 | "mix_gain": 8, 79 | "rf_power": 3, 80 | "dig_gain": 3 81 | }, 82 | "tx_lut_1": { 83 | "pa_gain": 0, 84 | "mix_gain": 8, 85 | "rf_power": 7, 86 | "dig_gain": 2 87 | }, 88 | "tx_lut_2": { 89 | "pa_gain": 0, 90 | "mix_gain": 9, 91 | "rf_power": 10, 92 | "dig_gain": 1 93 | }, 94 | "tx_lut_3": { 95 | "pa_gain": 0, 96 | "mix_gain": 9, 97 | "rf_power": 11, 98 | "dig_gain": 0 99 | }, 100 | "tx_lut_4": { 101 | "pa_gain": 0, 102 | "mix_gain": 10, 103 | "rf_power": 12, 104 | "dig_gain": 1 105 | }, 106 | "tx_lut_5": { 107 | "pa_gain": 0, 108 | "mix_gain": 10, 109 | "rf_power": 13, 110 | "dig_gain": 0 111 | }, 112 | "tx_lut_6": { 113 | "pa_gain": 0, 114 | "mix_gain": 11, 115 | "rf_power": 14, 116 | "dig_gain": 0 117 | }, 118 | "tx_lut_7": { 119 | "pa_gain": 0, 120 | "mix_gain": 12, 121 | "rf_power": 16, 122 | "dig_gain": 0 123 | }, 124 | "tx_lut_8": { 125 | "pa_gain": 3, 126 | "mix_gain": 15, 127 | "rf_power": 20, 128 | "dig_gain": 0 129 | } 130 | }, 131 | "gateway_conf": { 132 | "gateway_ID": "0000000000000000", 133 | 134 | "server_address":"nam1.cloud.thethings.network", 135 | "serv_port_up": 1700, 136 | "serv_port_down": 1700, 137 | 138 | "keepalive_interval": 10, 139 | "stat_interval": 30, 140 | "push_timeout_ms": 100, 141 | 142 | "forward_crc_valid": true, 143 | "forward_crc_error": false, 144 | "forward_crc_disabled": false, 145 | 146 | "gps_tty_path": "/dev/ttyAMA0", 147 | "fake_gps": false, 148 | "ref_latitude": 10, 149 | "ref_longitude": 20, 150 | "ref_altitude": -1, 151 | "autoquit_threshold": 20, 152 | "beacon_period": 0, 153 | "beacon_freq_hz": 923300000, 154 | "beacon_freq_nb": 8, 155 | "beacon_freq_step": 600000, 156 | "beacon_datarate": 12, 157 | "beacon_bw_hz": 500000, 158 | "beacon_power": 27 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /ser2net.yaml: -------------------------------------------------------------------------------- 1 | connection: &con3333 2 | accepter: tcp,0.0.0.0,3333 3 | enable: on 4 | options: 5 | kickolduser: true 6 | connector: serialdev, 7 | /dev/ttyACM0, 8 | 115200n81,local 9 | 10 | --------------------------------------------------------------------------------