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

    Send Lora message to non pycom device

    Scheduled Pinned Locked Moved LoPy
    channelfrequencylora
    16 Posts 4 Posters 4.0k Views 4 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.
    • P Offline
      pkilcoyne
      last edited by

      Hi,
      I just got my LoPy device up and running, I'm using a simple script to send a "hello" message via Lora to another Lora board, the connect2Pi;
      http://www.lprs.co.uk/development-tools/evaluation-tools/easyradio-usb-rf-dongles/eraconnect2pi-rf-dongle.html

      Here's my script:

      from network import LoRa
      import socket
      import machine
      import time

      lora = LoRa(mode=LoRa.LORA, frequency=863000000)
      s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
      counter = 0
      while True:

      s.setblocking(True)
      s.send('Hello')
      print('Hello sent...{}'.format(counter))
      counter += 1
      
      
      if counter >= 100:  # reset counter at 100
          counter = 1
      time.sleep(1)
      

      My connect2Pi does not seem to be receiving any data. It has the following settings:

      channel0
      Power level: P9
      Bandwidth: B0
      Band Plan: b0

      I'm by no means a Lora expert but has anyone any ideas/ suggestions?

      Thanks,

      Paul

      J X 2 Replies Last reply Reply Quote 0
      • J Offline
        jcaron @pkilcoyne
        last edited by

        @pkilcoyne A few things to check:

        • have you properly upgraded the LoPy firmware (os.uname will tell you the version you're running)?
        • do you have an antenna connected to the LoPy, on the right port (the one next to the LED)?
        • does the band plan / channel match the frequency you're sending on?
        • have you tried setting different data rates?
        P 1 Reply Last reply Reply Quote 0
        • X Offline
          Xykon administrators @pkilcoyne
          last edited by

          @pkilcoyne said in Send Lora message to non pycom device:

          http://www.lprs.co.uk/development-tools/evaluation-tools/easyradio-usb-rf-dongles/eraconnect2pi-rf-dongle.html

          According to the datasheet: Utilising proprietary LPRS easyRadio technology operating in the 868MHz (UK & Europe) & 915MHz (US) Industrial Scientific & Medical (ISM) bands the Connect2Pi USB ‘dongle’ provides a simple ‘wireless bridge’ between Raspberry Pi (Pi2Pi), a Raspberry Pi and a PC or any other device that supports USB serial communications.

          Maybe I'm missing something but I can't see any mention of that thing using LoRa.

          Christian Ehlers

          J 1 Reply Last reply Reply Quote 2
          • J Offline
            jmarcelino @Xykon
            last edited by

            Yes, the LPRS easyRadio system is based on the TI CC430F5137 and uses FSK not LoRa.

            1 Reply Last reply Reply Quote 1
            • P Offline
              pkilcoyne
              last edited by

              Thanks all,
              so the EasyRadio modules not being LoRa I wasn't testing like with like...got it.

              Many thanks,

              Paul

              1 Reply Last reply Reply Quote 0
              • P Offline
                pkilcoyne
                last edited by

                @xykon said in Send Lora message to non pycom device:

                aybe I'm missing something but I can't see any mention of that thing using LoRa.

                I found this, which mentions LoRa, on their website:

                http://www.lprs.co.uk/products/easyradio-ism-modules/era-lora-through-hole-modules.html

                Curious...

                X 1 Reply Last reply Reply Quote 0
                • X Offline
                  Xykon administrators @pkilcoyne
                  last edited by

                  @pkilcoyne That is not the same module you linked in your initial post.

                  Can you please confirm which module you're trying to use?

                  Christian Ehlers

                  P 1 Reply Last reply Reply Quote 0
                  • P Offline
                    pkilcoyne @Xykon
                    last edited by

                    @xykon said in Send Lora message to non pycom device:

                    Can you please confirm which module you're trying to use?

                    Yes sorry about my first post, the latter module is the one I'm actually using, the ERA-LORA.

                    For the ERA-LORA there is a companion software where you can select the following attributes:

                    Radio power level: P9 - the highest
                    Channel: 0 ( 0-31)
                    bandwidth: 500kHz
                    band plan: b0 - 869.85MHz
                    Spreading Factor: SF10

                    I just don't know how to match the above with the LoPy modules so they can communicate.

                    Regards,

                    Paul

                    1 Reply Last reply Reply Quote 0
                    • P Offline
                      pkilcoyne @jcaron
                      last edited by

                      @jcaron

                      os.uname()
                      (sysname='LoPy', nodename='LoPy', release='1.10.1.b1', version='v1.8.6-839-g536c958c on 2017-11-15', machine='LoPy with ESP32', lorawan='1.0.0')

                      Antenna attached.

                      I don't know how to match band plan / channel to the frequency I'm sending on :(

                      Do you mean UART data rates or rates at which I send over the air? Not sure how to adjust these.

                      Thanks,

                      Paul

                      J 1 Reply Last reply Reply Quote 0
                      • J Offline
                        jmarcelino @pkilcoyne
                        last edited by jmarcelino

                        @pkilcoyne
                        All the information you need how to set the module and what frequencies their “channels” really mean is in their datasheet.
                        http://www.lprs.co.uk/assets/files/eRA_LoRa_FCC_V1.22.pdf

                        You just need to come with with a common set of values for both modules and in the LoPy case set those when initializing the LoRa class

                        P 2 Replies Last reply Reply Quote 1
                        • P Offline
                          pkilcoyne @jmarcelino
                          last edited by

                          @jmarcelino said in Send Lora message to non pycom device:

                          set

                          Hi again,
                          thanks for the link, I've looked through it and I've matched relevant parameters. Also, I've contacted the manufacturer and they said I also need to match the "group ID", default is 1234, but I cannot see any reference to this parameter in the Pycom documentation.

                          Any ideas?

                          Thanks,

                          Paul

                          J 1 Reply Last reply Reply Quote 0
                          • J Offline
                            jmarcelino @pkilcoyne
                            last edited by

                            @pkilcoyne
                            Group ID is not a LoRa radio parameter so I'd guess it's just some data that gets sent - like a number prefix.

                            Once you match the two unit's radio parameters try to see if you receive any data on the LoPy if you try to send from your device... maybe the Group ID will show up there.

                            I guess you can also ask the manufacturer to explain what Group ID is.

                            P 1 Reply Last reply Reply Quote 0
                            • P Offline
                              pkilcoyne @jmarcelino
                              last edited by

                              @jmarcelino Hi again,
                              so what I've done since is send messages between two LPRS devices sucessfully. The LoPy does not seem to receive these messages nor does it's programmed TX messages be received by either LPRS device.

                              Right now I have two parallel "lora" networks, one of two LPRS devices sending and receiving messages and one of two LoPy devices.

                              Maybe they just aren't meant to work together.

                              Paul

                              J 1 Reply Last reply Reply Quote 0
                              • J Offline
                                jmarcelino @pkilcoyne
                                last edited by jmarcelino

                                @pkilcoyne
                                What does your LoRa initialisation look like? Are you setting LoRa.BW_500KHZ etc?

                                You may have to play with the public and rx_iq settings. Sorry I don’t know what your other device expects for those.

                                P 1 Reply Last reply Reply Quote 0
                                • P Offline
                                  pkilcoyne @jmarcelino
                                  last edited by jmarcelino

                                  @jmarcelino Hello again,
                                  thanks for your reply, below is my current script on the LoPy:

                                  from network import LoRa
                                  import socket
                                  import machine
                                  import time
                                  # initialize LoRa in LORA mode
                                  # more params can also be given, like frequency, tx power and spreading factor
                                  lora = LoRa(mode=LoRa.LORA, frequency=869850000, sf=10, bandwidth=LoRa.BW_250KHZ, public=True)
                                  # create a raw LoRa socket
                                  s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
                                  
                                  counter = 0
                                  while True:
                                      # send some data
                                      s.setblocking(True)
                                      s.send('Hello_from_LoPy')
                                      print('Hello_from_LoPy...{}'.format(counter))
                                      counter += 1
                                  
                                      # get any data received...
                                      s.setblocking(False)
                                      data = s.recv(64)
                                      print(data)
                                      if counter >= 100:  # reset counter at 100
                                          counter = 1
                                      time.sleep(1)
                                      # wait a random amount of time
                                      time.sleep(5)
                                      #time.sleep(machine.rng() & 0x0F)
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • P Offline
                                    pkilcoyne @jmarcelino
                                    last edited by pkilcoyne

                                    @jmarcelino said in Send Lora message to non pycom device:

                                    You just need to come with with a common set of values for both modules and in the LoPy case set those when initializing the LoRa class

                                    Hi again, sorry for the delay in the update. So below is what I've set my LOPY to:

                                    lora = LoRa(mode=LoRa.LORA, region=LoRa.EU868, sf=12, frequency=869850000, bandwidth=LoRa.BW_125KHZ, public=True)
                                    s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)

                                    Seems fairly standard, but what does the "public" parameter do?

                                    On the ERA-LORA side via the companion GUI software I have the following st:

                                    Bandplan (frequency): 869.85MHz
                                    Bandwidth: 125KHz
                                    Channel: 0
                                    Spreading Factor: 12

                                    This seems to be a match on both sides though I still cannot get them to communicate :(

                                    Does the LOPY use any encryption by default?

                                    Any other defaults I need to be aware of?

                                    Thanks,

                                    Paul

                                    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 / 1
                                    • First post
                                      Last post

                                    Pycom on Twitter

                                    Pycom