New firmware release 1.6.7.b1 (LoRaWAN Nano Gateway with TTN example!!)

  • Pybytes Beta

    @daniel Excellent! Seems no need to directly alter the join command since the 'dr' parameter also uses a config parameter, 'LORA_NODE_DR'. I'm looking at the latest example on Github.

  • @jomifo yes, if you change the spreading factor to 12 ("SF12BW125") the range will be much better. Do this both on the nano-gateway and in the node. You also need to tweak the Join command like this:

    lora.join(activation, auth, * ,timeout=None, dr=None)

    Specify the dr and make it 0 (which is the same as SF12BW125).


  • Pybytes Beta

    I have successfully used the nanogateway example code to push some temperature sensor data (MCP9808) to TTN and am happy about that. Now I'm wondering are there ways using this example to configure LoRa to increase the range? I see the LORA_GW_DR = "SF7BW125" property in the config, but am unsure how or if this can be used to tweak Lora.

  • @jmarcelino Thanks for clarifying.
    As for the second issue, this is now resolved (had to do with encryption on the LoRaWAN).

  • @RobTuDelft
    Though the process doesn't actually guarantee unique numbers there is a convention to add FFFE in the middle to expand the 48-bit MAC to the EUI64 expected by the Things Network.

    I'm not sure what you mean in the LoRa problem. Is this with mode=LoRa.LORA or mode=LoRa.LORAWAN? And what is the "the other end": another LoPy, a LoRaWAN network server or something else?

  • @jmarcelino Great, thanks. Machine unique ID/MAC (machine.unique_id()) can be used directly, without any changes or what is the convention here? Noticed the checkbox indeed.

    Now I have another quesiton pertaining LoRa transmission. When I send the payload ("hi") as lora_sock.send(bytes([0x68, 0x69])) or as lora_sock.send('hi') the payload ends up as cc26 for example on the other end; which if I translate to ascii again is not "hi". Any clue what is happening here?

  • @RobTuDelft
    Your gateway ID has to be a EUI64 (hexadecimal) e.g. 240ac4fffe008d44 which for now you can base on your WiFi hardware address.

    That's what TTN accepts too. Have you registered your gateway there as the packet forwarder type? They've changed this now to "I'm using the legacy packet forwarder" checkbox, make sure it's ticked.

  •  File "", line 12, in <module>                                                                                  
      File "", line 94, in start                                                                              
      File "", line 161, in _push_data                                                                        
    ValueError: odd-length string

    My gateway id is 'gateway-rob', should I change that?

  • @bihut const() is a kind of Micropython directive, not a function. It's kind of similar to #define in C.

  • In the file, where is the function const()?. Because const(2), const(1), etc. is not recognized.

    Thanks in advance.

  • This post is deleted!

  • @daniel
    I just upgraded my board and see - but no info about this version

    (sysname='WiPy', nodename='WiPy', release='1.6.8.b1', version='v1.8.6-504-gff1098f6 on 2017-03-13', machine='WiPy with ESP32')

    also after upgrade i now have:

    OSError: I2C bus error

  • Hi,

    Will the nano gateway work with any node or just Lopys? For example, will Multitech's mDot work?


  • Hello,

    first of all, the LoraWAN Nano Gateway works great!!

    I used the HTTP Intergration of the TTN it post the received data to my PHP script and the PHP script placed the data in my own database.

    I have used the HTTP intergration below.

    I see that is possible that I can receive also the Latitude, longitude and altitude of the device. without place this in the payload, but this is not implement in python script.
    Is it possible to implement this in python without put this values in the raw payload?

    "latitude": 52.2345,               // Latitude of the device
    "longitude": 6.2345,              // Longitude of the device
    "altitude": 2                            // Altitude of the device

    Best Regards,

  • @livius

    Hello Livius.

    Here is what I see on my W UART REPL:

    I (146522) wifi: mode : sta (24:0a:c4:00:84:44)
    I (146523) wifi: sleep disable
    I (146650) wifi: n:1 0, o:6 0, ap:255 255, sta:1 0, prof:6
    I (147638) wifi: state: init -> auth (b0)
    I (147640) wifi: state: auth -> assoc (0)
    I (147643) wifi: state: assoc -> run (10)
    I (147662) wifi: connected with IANNIS, channel 1
    WiFi connected!

    Push ack
    I (157644) wifi: pm start, type:0

    Pull ack
    Pull ack
    Push ack
    Guru Meditation Error of type LoadProhibited occurred on core 0. Exception was unhandled.
    Register dump:
    PC : 0x400f6f9f PS : 0x00060b30 A0 : 0x800d8428 A1 : 0x3ffc5c30
    A2 : 0x000330d0 A3 : 0x3ffc666c A4 : 0x00000001 A5 : 0x00000000
    A6 : 0x00000000 A7 : 0x00000000 A8 : 0x800f5ed2 A9 : 0x3ffe96c0
    A10 : 0x00000001 A11 : 0x00000001 A12 : 0x3ffe21b0 A13 : 0x00000010
    A14 : 0x3ffe9830 A15 : 0x3ffe9790 SAR : 0x00000013 EXCCAUSE: 0x0000001c
    EXCVADDR: 0x000330d0 LBEG : 0x400f296c LEND : 0x400f2974 LCOUNT : 0x00000000

    Backtrace: 0x400f6f9f:0x3ffc5c30 0x400d8428:0x3ffc5c70 0x400d85b8:0x3ffc5c90 0x400d862b:0x3ffc5cb0 0x400d8b38:0x3ffc5ce0 0x400d8d52:0x3ffc5d00 0x400d7eff:0x3ffc5d40

    ================= CORE DUMP START =================

    Here is a coredump. I haven't copied it.

    ================= CORE DUMP END =================
    ets Jun 8 2016 00:22:57

    rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0x00
    mode:QIO, clock div:2
    entry 0x4009fde4
    I (1542) wifi: wifi firmware version: 2a22b2d
    I (1558) wifi: pp_task_hdl : 3ffd72f8, prio:23, stack:8192
    I (1558) wifi: Init lldesc rx mblock:10
    I (1558) wifi: Init lldesc rx ampdu len mblock:7
    I (1560) wifi: Init lldesc rx ampdu entry mblock:4
    I (1565) wifi: sleep disable
    I (2553) wifi: frc2_timer_task_hdl:3ffdd348, prio:22, stack:2048
    I (2574) wifi: mode : softAP (24:0a:c4:00:84:45)
    MicroPython v1.8.6-493-g99ac80fe on 2017-03-03; LoPy with ESP32
    Type "help()" for more information.

  • @gerkez Ok, then you should not be experiance problems from rf reflections, and should be able to rule it out.
    I doubt you are working on a conductive table ;-)

  • @Shaun
    I am using a pycom expansion board with LoPy

  • @gerkez Are you using a custom base PCB (your own) or are you using the Pycom expansion PCB?
    I ask, as you may be running into the WiPy resetting due to rf reflections issue.

  • @zmrzli
    Which password do you mean?

  • @Colateral
    My problem was that password was not long enough. Once I changed it, it worked fine. It would be better if some indication was given about a problem from WiPy, but no big deal, once understood...!

Log in to reply

Pycom on Twitter