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

    Connect LoPy LoRa with Semtech Board

    Scheduled Pinned Locked Moved Comments & Feedback
    lorasemtechpacket lossparsing
    1 Posts 1 Posters 715 Views 1 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.
    • N Offline
      nikkson
      last edited by

      Hello,

      I am trying to connect Semtech LoRa development board with LoPy. I am sending 9 bytes of payload from Semtech board each 2 seconds. Format of the packet that is sent from Semtech board is: first 4 bytes are unsigned int (used for packet ID), other 5 bytes are dummy.

      I am able to receive packets on LoPy, but with following problems:

      • Not able to receive each packet, but every second (packet loss is 50%)
      • Able to extract packet ID properly only if reading first two bytes: _LORA_PKG_FORMAT = "H" (unsigned short int, 2 bytes). If I put _LORA_PKG_FORMAT = "I" (unsigned int, 4 bytes), it is decoded as garbage.

      Code that I used for reception is given below:

      import pycom
      import socket
      import time
      import struct
      from network import LoRa
      pycom.heartbeat(False)
      pycom.rgbled(0xffffff)
      _LORA_PKG_FORMAT = "I"
      lora = LoRa(mode=LoRa.LORA,
      frequency=868000000,
      power_mode=LoRa.ALWAYS_ON,
      tx_power=14,
      bandwidth=LoRa.BW_125KHZ,
      sf=10,
      preamble=8,
      coding_rate=LoRa.CODING_4_6,
      tx_iq=False,
      rx_iq=False,
      public=False)

      s = socket.socket(socket.AF_LORA, socket.SOCK_RAW)
      s.setblocking(False)
      while True:
      rxBuf = s.recv(9)
      if (len(rxBuf) > 0)
      rxData = struct.unpack(_LORA_PKG_FORMAT, rxBuf)
      print(rxData)

      Does anyone have an idea what should be done to receive each packet and to properly decode all four bytes?

      Cheers, Nikola

      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