Welcome to the Pycom forum Forum
    • \[\[global:header.categories\]\]
    • \[\[global:header.recent\]\]
    • \[\[global:header.tags\]\]
    • \[\[global:header.popular\]\]
    • Login

    Explore Pybytes | Official Documentation | Report a Firmware Bug/Issue | GitHub

    LoPy Nano-Gateway

    Scheduled Pinned Locked Moved Guides
    62 Posts 27 Posters 50.6k Views 31 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • bmarkusB Offline
      bmarkus @gertjanvanhethof
      last edited by

      @gertjanvanhethof said in LoPy Nano-Gateway:

      @bmarkus

      Thanks for the answer.

      Is it possible to read LoRaWAN data on LoRA level (not WAN level)?
      So building micropython code to get the encrypted data and use the network key to decrypt it and the app key to decrypt the app payload myself.
      Is this an opportunity?

      LoRaWAN specification is public, you can decode LoRaWAN packets and if you know the keys you can decrypt. The main issue is the radio layer, you can listen on single frequency and you can decode only a fixed preselected SF.

      1 Reply Last reply Reply Quote 0
      • B Offline
        brotherdust
        last edited by

        @Roberto, both the gateway and node code crash my LoPy's. I did a factory reset on them thinking maybe my code was involved. Nope.

        Here's the console log:

        rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
        configsip: 0, SPIWP:0x00
        clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
        mode:QIO, clock div:2
        load:0x3fff9010,len:8
        load:0x3fff9018,len:312
        load:0x40078000,len:2348
        ho 0 tail 12 room 4
        load:0x4009f000,len:1364
        entry 0x4009f2f8
        ˜øXTAL 40Mep 26 2016 22:32:10
        frc2_timer_task_hdl:3ffda618, prio:22, stack:2048
        tcpip_task_hdlxxx : 3ffdede4, prio:18,stack:2048
        phy_version: 123, Sep 13 2016, 20:01:58, 0
        pp_task_hdl : 3ffea6b4, prio:23, stack:8192
        mode : softAP(24:0a:c4:00:b6:41)
        dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)
        dhcp server start:(ip: 192.168.4.1, mask: 255.255.255.0, gw: 192.168.4.1)
        MicroPython d78a5a3 on 2016-11-05; LoPy with ESP32
        Type "help()" for more information.
        >>>
        paste mode; Ctrl-C to cancel, Ctrl-D to finish
        === import socket
        === import struct
        === from network import LoRa
        ===
        === # A basic package header, B: 1 byte for the deviceId, B: 1 byte for the pkg size, %ds: Formated string for string
        === _LORA_PKG_FORMAT = "!BB%ds"
        === # A basic ack package, B: 1 byte for the deviceId, B: 1 bytes for the pkg size, B: 1 byte for the Ok (200) or error messages
        === _LORA_PKG_ACK_FORMAT = "BBB"
        ===
        === # Open a LoRa Socket, use rx_iq to avoid listening to our own messages
        === lora = LoRa(mode=LoRa.LORA, rx_iq=True)
        === lora_sock = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
        === lora_sock.setblocking(False)
        ===
        === while (True):
        ===     recv_pkg = lora_sock.recv(512)
        ===     if (len(recv_pkg) > 2):
        ===         recv_pkg_len = recv_pkg[1]
        ===
        ===         device_id, pkg_len, msg = struct.unpack(_LORA_PKG_FORMAT % recv_pkg_len, recv_pkg)
        ===
        === # If the uart = machine.UART(0, 115200) and os.dupterm(uart) are set in the boot.py this print should appear in the serial port
        ===         print('Device: %d - Pkg:  %s' % (device_id, msg))
        ===
        ===         ack_pkg = struct.pack(_LORA_PKG_ACK_FORMAT, device_id, 1, 200)
        ===         lora_sock.send(ack_pkg)
        ===
        Task watchdog got triggered. The following tasks did not feed the watchdog in time:
        Tasks currently running:
        CPU 0: MicroPy
        Aborting.
        Guru Meditation Error: Core   0 panic'ed (Unhandled debug exception)
        Register dump:
        PC      :  400e7078  PS      :  00060036  A0      :  800f221e  A1      :  3ffd5440
        A2      :  0000000a  A3      :  0000000a  A4      :  00000004  A5      :  00000000
        A6      :  00000000  A7      :  fffffff8  A8      :  00000000  A9      :  3ffd53b0
        A10     :  00000000  A11     :  3ffdd923  A12     :  3ffd537f  A13     :  00000030
        A14     :  00000000  A15     :  00000200  SAR     :  00000013  EXCCAUSE:  00000001
        EXCVADDR:  00000000  LBEG    :  4000c46c  LEND    :  4000c477  LCOUNT  :  00000000
        CPU halted.
        
        R 2 Replies Last reply Reply Quote 0
        • K Offline
          KDHeard
          last edited by

          @Roberto @daniel I have the same issue as brotherdust.

          Reading up about the 'struct' I found a commen that in ypython the name if the module has changed - refer point 11:

          https://github.com/micropython/micropython/wiki/Differences

          I changed the code to reflect 'ustruct' and the LoPys no longer crash and I can still see them with my Pymakr - however they are not connecting..

          Kind regards

          Kevin Heard - Founder
          DLI Systems
          www.dli.systems| Do - Learn - Improve

          1 Reply Last reply Reply Quote 0
          • R Offline
            Roberto @brotherdust
            last edited by

            Hi @brotherdust,

            A CRC its not required as it is included in the protocol. You can still implement it if you want. I tried this in a project we have running just to make sure and all the checksums are positive

            1 Reply Last reply Reply Quote 1
            • R Offline
              Roberto @gertjanvanhethof
              last edited by

              Hi @gertjanvanhethof
              I'll provide a new code example this week on the blog section that might answer your question.

              Best,
              Roberto

              1 Reply Last reply Reply Quote 0
              • R Offline
                Roberto @brotherdust
                last edited by

                Hi @brotherdust
                This issue is not related to the nano-gateway code, it is a known issue regarding the WatchDog and we will be addressing it soon, i'll keep you informed with a fix for this.

                1 Reply Last reply Reply Quote 0
                • R Offline
                  Roberto @brotherdust
                  last edited by

                  Hi @brotherdust,

                  The watchdog problem was fixed in the new firamware version, please download it since this is important not only for the nano-gateway but for all the other apps you want to run as well.

                  The update is here:
                  https://www.pycom.io/support/supportdownloads/

                  Please test the nano-gateway code afterwards to make sure that everything is working

                  Best,
                  Roberto

                  1 Reply Last reply Reply Quote 0
                  • K Offline
                    kgadeshi
                    last edited by

                    @Roberto
                    Is it possible to implement some kind of ranging algorithm in LoRa. So that one can calculate the distance between the nodes to the gateway or something along those lines? Thanks.

                    1 Reply Last reply Reply Quote 0
                    • L Offline
                      livius
                      last edited by

                      time measurement should be then in nanoseconds i believe
                      you can send signal and wait for receive and calc distance divide time by two ;-)

                      think about people first, then computers

                      1 Reply Last reply Reply Quote 0
                      • D Offline
                        daniel
                        last edited by

                        @kgadeshi with the RSSI of the received packet and knowing the amount of power that was used to transmit it, the free space loss formula can be used to estimate the distance between the 2 nodes.

                        1 Reply Last reply Reply Quote 0
                        • B Offline
                          Batilan
                          last edited by Batilan

                          You might also have a look at these resources:

                          • An extensive discussion on the TTN forum
                          • An article by Linklabs stating the issues especially for LoRa (they do have competing products, but the reasoning seems sound)
                          1 Reply Last reply Reply Quote 0
                          • X Offline
                            Xykon administrators
                            last edited by

                            After quite a bit of trial and error I have managed to get the LoPy to "talk" in P2P mode to a Dragino LoRa/GPS hat (which uses the same SX1272 chip that's in the LoPy.

                            For anyone interested I have posted some more details here and have made the source code for the LoPy and Raspberry Pi available on github.

                            Christian Ehlers

                            A 1 Reply Last reply Reply Quote 4
                            • A Offline
                              arista @Xykon
                              last edited by

                              This is extremely exiting, since I have exactly the same hardware! I hope I'll have some time this month to test your code, @Xykon, and make the bits fly.

                              1 Reply Last reply Reply Quote 1
                              • A Offline
                                angel.imaz
                                last edited by

                                Hello.

                                It would be great to get a proper tutorial on how to do a http request from a lora through a nano gateway.

                                I backed you in KS because you made a big point of making this possible. It is great to have the device. But really not very user friendly at all. And you are already launching a new one with more radios. Yet you still have not make LoPy work as promised.

                                Please help!

                                Thank you!

                                Angel

                                B 1 Reply Last reply Reply Quote 1
                                • B Offline
                                  bioagbob @angel.imaz
                                  last edited by

                                  Ditto. What's LoRa without a gateway!? Time for proper documentation on this product feature.

                                  1 Reply Last reply Reply Quote 0
                                  • D Offline
                                    daniel
                                    last edited by

                                    @angel-imaz please see my post here:

                                    https://forum.pycom.io/topic/98/lopy-as-lorawan-basestation/20

                                    Our team is working on examples and there will be in the docs soon. If you need a HTTP client library, please try this one out: https://github.com/micropython/micropython-lib/tree/master/http.client

                                    1 Reply Last reply Reply Quote 0
                                    • O Offline
                                      Oneillsite
                                      last edited by

                                      A good way to test it:
                                      2 Lopy's with PymakrBoard connected on 2 usb ports
                                      2 instances of Pymakr

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        microman7k
                                        last edited by

                                        Hi,

                                        I test this sample but after about one hour of working i get "ValueError: buffer too small" on nano gateway. Any clues why?

                                        Firmware: (sysname='LoPy', nodename='LoPy', release='0.9.7.b1', version='v1.8.6-234-g765f2bc on 2016-12-02', machine='LoPy with ESP32')

                                        Best Regards

                                        O 1 Reply Last reply Reply Quote 0
                                        • O Offline
                                          Oneillsite @microman7k
                                          last edited by

                                          @microman7k Hi, first of all you should update the firmware of your Lopy.

                                          M 1 Reply Last reply Reply Quote 0
                                          • M Offline
                                            microman7k @Oneillsite
                                            last edited by

                                            @Oneillsite On the latest firmware (1.0.1.b1), results are even worse. After one event i get:

                                            execfile('nanogw.py')
                                            D: 1 P: b'22.5'
                                            E (200196) wifi: error malloc bcn_param

                                            Traceback (most recent call last):
                                            File "<stdin>", line 1, in <module>
                                            File "nanogw.py", line 20, in <module>
                                            ValueError: buffer too small

                                            O 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 2 / 4
                                            • First post
                                              Last post

                                            Pycom on Twitter

                                            Pycom