pygate, wipy & TTN no data
-
Hello,
I think I did everything ok, as on the manuals, but gateway is still disconected on TTNOn my pygate I have:
boot. py# boot.py -- run on boot-up import machine import pycom from _pybytes import Pybytes from _pybytes_config import PybytesConfig # We want to save a little bit power # Disable Heartbeat LED pycom.heartbeat_on_boot(False) # Enable Pybytes pybytes_conf = PybytesConfig().read_config() pybytes = Pybytes(pybytes_conf) pybytes.start() # disable debug messages machine.pygate_debug_level(1) # Proceed with main.py machine.main('main.py')
global_conf.json (downloaded from TTN);
{ "SX1301_conf": { "lorawan_public": true, "clksrc": 1, "antenna_gain": 0, "radio_0": { "enable": true, "type": "SX1257", "freq": 867500000, "rssi_offset": -166, "tx_enable": true, "tx_freq_min": 863000000, "tx_freq_max": 870000000 }, "radio_1": { "enable": true, "type": "SX1257", "freq": 868500000, "rssi_offset": -166, "tx_enable": false }, "chan_multiSF_0": { "enable": true, "radio": 1, "if": -400000 }, "chan_multiSF_1": { "enable": true, "radio": 1, "if": -200000 }, "chan_multiSF_2": { "enable": true, "radio": 1, "if": 0 }, "chan_multiSF_3": { "enable": true, "radio": 0, "if": -400000 }, "chan_multiSF_4": { "enable": true, "radio": 0, "if": -200000 }, "chan_multiSF_5": { "enable": true, "radio": 0, "if": 0 }, "chan_multiSF_6": { "enable": true, "radio": 0, "if": 200000 }, "chan_multiSF_7": { "enable": true, "radio": 0, "if": 400000 }, "chan_Lora_std": { "enable": true, "radio": 1, "if": -200000, "bandwidth": 250000, "spread_factor": 7 }, "chan_FSK": { "enable": true, "radio": 1, "if": 300000, "bandwidth": 125000, "datarate": 50000 }, "tx_lut_0": { "pa_gain": 0, "mix_gain": 8, "rf_power": -6, "dig_gain": 0 }, "tx_lut_1": { "pa_gain": 0, "mix_gain": 10, "rf_power": -3, "dig_gain": 0 }, "tx_lut_2": { "pa_gain": 0, "mix_gain": 12, "rf_power": 0, "dig_gain": 0 }, "tx_lut_3": { "pa_gain": 1, "mix_gain": 8, "rf_power": 3, "dig_gain": 0 }, "tx_lut_4": { "pa_gain": 1, "mix_gain": 10, "rf_power": 6, "dig_gain": 0 }, "tx_lut_5": { "pa_gain": 1, "mix_gain": 12, "rf_power": 10, "dig_gain": 0 }, "tx_lut_6": { "pa_gain": 1, "mix_gain": 13, "rf_power": 11, "dig_gain": 0 }, "tx_lut_7": { "pa_gain": 2, "mix_gain": 9, "rf_power": 12, "dig_gain": 0 }, "tx_lut_8": { "pa_gain": 1, "mix_gain": 15, "rf_power": 13, "dig_gain": 0 }, "tx_lut_9": { "pa_gain": 2, "mix_gain": 10, "rf_power": 14, "dig_gain": 0 }, "tx_lut_10": { "pa_gain": 2, "mix_gain": 11, "rf_power": 16, "dig_gain": 0 }, "tx_lut_11": { "pa_gain": 3, "mix_gain": 9, "rf_power": 20, "dig_gain": 0 }, "tx_lut_12": { "pa_gain": 3, "mix_gain": 10, "rf_power": 23, "dig_gain": 0 }, "tx_lut_13": { "pa_gain": 3, "mix_gain": 11, "rf_power": 25, "dig_gain": 0 }, "tx_lut_14": { "pa_gain": 3, "mix_gain": 12, "rf_power": 26, "dig_gain": 0 }, "tx_lut_15": { "pa_gain": 3, "mix_gain": 14, "rf_power": 27, "dig_gain": 0 } }, "gateway_conf": { "gateway_ID": "2462ABFFFEF4Dxxx", "server_address": "eu1.cloud.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700, "servers": [ { "gateway_ID": "2462ABFFFEF4Dxxx", "server_address": "eu1.cloud.thethings.network", "serv_port_up": 1700, "serv_port_down": 1700, "serv_enabled": true } ] } }
main. py
from network import WLAN import time import machine from machine import RTC import pycom print('\nStarting LoRaWAN concentrator') # Disable Hearbeat pycom.heartbeat(False) # Define callback function for Pygate events def machine_cb (arg): evt = machine.events() if (evt & machine.PYGATE_START_EVT): # Green pycom.rgbled(0x103300) elif (evt & machine.PYGATE_ERROR_EVT): # Red pycom.rgbled(0x331000) elif (evt & machine.PYGATE_STOP_EVT): # RGB off pycom.rgbled(0x000000) # register callback function machine.callback(trigger = (machine.PYGATE_START_EVT | machine.PYGATE_STOP_EVT | machine.PYGATE_ERROR_EVT), handler=machine_cb) print('Connecting to WiFi...', end='') # Connect to a Wifi Network wlan = WLAN(mode=WLAN.STA) wlan.connect(ssid='<SSID>', auth=(WLAN.WPA2, "<PASSWORD>")) while not wlan.isconnected(): print('.', end='') time.sleep(1) print(" OK") # Sync time via NTP server for GW timestamps on Events print('Syncing RTC via ntp...', end='') rtc = RTC() rtc.ntp_sync(server="pool.ntp.org") while not rtc.synced(): print('.', end='') time.sleep(.5) print(" OK\n") # Read the GW config file from Filesystem with open('/flash/global_config.json','r') as fp: buf = fp.read() # Start the Pygate machine.pygate_init(buf) # disable degub messages # machine.pygate_debug_level(1)
pybytes_config.json
I folow manuals and create in TTN Aplication and gateway:
and to mention, when I restart pygate I get this:
>>> WMAC: 2462ABF4Dxxx Firmware: 1.20.2.r6 Pybytes: 1.7.1 WMAC: 2462ABF4Dxxx Firmware: 1.20.2.r6 Pybytes: 1.7.1 Initialized watchdog for WiFi and LTE connection with timeout 1260000 ms WiFi connection established Connected to MQTT mqtt.pybytes.pycom.io Pybytes connected successfully (using the built-in pybytes library) Traceback (most recent call last): File "boot.py", line 16, in <module> AttributeError: 'module' object has no attribute 'pygate_debug_level' Starting LoRaWAN concentrator Traceback (most recent call last): File "main.py", line 25, in <module> AttributeError: 'module' object has no attribute 'callback' Pycom MicroPython 1.20.2.r6 [v1.11-c5a0a97] on 2021-10-28; WiPy with ESP32 Pybytes Version: 1.7.1 Type "help()" for more information. >>>
What did I do wrong?
-
@jcaron
wii that was it.
I can’t tell you how happy I am that after many days of trying it finally works! : D
-
@Gregor-Leban it does look better now. You must be missing the global_config.json (not global_conf.json).
-
Now I did it again. But I'm still disconected on TTN gateway
Connecting to COM3... WMAC: 2462ABF4Dxxx Firmware: 1.20.2.r6 Pybytes: 1.7.1 Initialized watchdog for WiFi and LTE connection with timeout 1260000 ms WiFi connection established Connected to MQTT mqtt.pybytes.pycom.io Pybytes connected successfully (using the built-in pybytes library) Pybytes configuration read from /flash/pybytes_config.json Starting LoRaWAN concentrator Connecting to WiFi... OK Syncing RTC via ntp...... OK Traceback (most recent call last): File "main.py", line 48, in <module> OSError: [Errno 2] ENOENT Pycom MicroPython 1.20.2.r6 [v1.11-c5a0a97] on 2021-10-28; WiPy with ESP32 Pybytes Version: 1.7.1 Type "help()" for more information.
-
@Gregor-Leban did you flash the WiPy with the Pygate version of the firmware? Use the firmware upgrade tool and make sure you pick the right version.