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

    LoRa and Sigfox RSSI

    Scheduled Pinned Locked Moved FiPy
    8 Posts 3 Posters 110 Views 3 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.
    • B Offline
      bitvijays
      last edited by

      Hello All,

      Is it possible to get Lora/ Sigfox RSSI value without the downlink messages? I am aware of lora.stats and sigfox.rssi function which provide the rssi value after a downlink message has been received.

      If not, when Lora sends a Lora.join message, it receives the accept message from the server, wouldn't that count as a lora downlink message?

      Also, Does lora/ sigfox checks for network coverage before sending any message or they just send it blindly and hope that there's coverage and they might receive a response?

      Thank you :)

      1 Reply Last reply Reply Quote 0
      • G Offline
        Gijs
        last edited by

        Also, Does lora/ sigfox checks for network coverage before sending any message or they just send it blindly and hope that there's coverage and they might receive a response?

        Yes, the messages are sent blindly. At least for LoRa, there is only a downlink when you prepare a packet for downlink. There is no space for sending acknowledgements.

        J 1 Reply Last reply Reply Quote 0
        • J Offline
          jcaron @Gijs
          last edited by

          @Gijs You can send confirmed messages, which will trigger an acknowledgment. With the usual caveats related to duty cycles and so on, depending on the region, so confirmed messages usually have to remain the exception rather than the rule (unless you send very, very, very few messages).

          B G 2 Replies Last reply Reply Quote 1
          • B Offline
            bitvijays @jcaron
            last edited by

            @jcaron By confirmed messages, do you meant, Downlink messages which are basically sent by Sigfox callback (the below pic)
            61ea034f-9b7f-4b8b-acaf-9fa5b39b7d75-image.png

            and Lora messages downlink (for example TTN)

            3fc6f1a2-d2b4-4118-87d4-7d64aa5b1c28-image.png

            @Gijs Thanks for the answer. So, there is no way to know beforehand whether Lora and Sigfox network is even available and find out the RSSI or signal strength.

            Thanks for the support :)

            J 1 Reply Last reply Reply Quote 0
            • J Offline
              jcaron @bitvijays
              last edited by

              @bitvijays A confirmed message is a message sent with a flag in the header asking for an ack. Confirmed messages exist in both directions (uplink and downlink), though in general (and in your case) it is set on uplinks.

              You can set packets to be confirmed using:

              s.setsockopt(socket.SOL_LORA, socket.SO_CONFIRMED, True)
              

              You can set the number of retries using tx_retries in lora.init or the LoRa constructor.

              But remember, it means the gateway will have to send a downlink, and in many regions duty cycle limitations and other rules will mean they can't do that very often, especially at low data rates (SF12 and such). That's the reason why TTN for instance only allow 10 downlinks a day per node, and that includes the ACKs for confirmed messages.

              As to your question about the network being available, no, you can't know. LoRa devices do not maintain a connection to the network, there are no broadcasts from the network, this is very different from what happens in a cellular network.

              For a fixed node, if you previously joined the network at the same locations, chances are you can still send data, unless you were really at the the RSSI/SNR limits and conditions have changed, or of course the gateway isn't available. That's the reason it is recommended to have multiple gateways with overlapping coverage.

              Note that what you are most interested in is the RSSI at the gateway, not at the node. Even though there's some symmetry, there are enough asymmetric parameters in play that they're not necessarily the same.

              For mobile nodes, well, you just send and pray.

              B 1 Reply Last reply Reply Quote 1
              • B Offline
                bitvijays @jcaron
                last edited by

                Thanks @jcaron really appreciate the explanation.

                Another quick query, Currently

                1. Lora Device with Class A sends a message and then have two receive windows after 1 second and 2 seconds which means that for sending the next message we have minimum wait for 3 seconds. Is there a way to define that "do not wait for recieve windows". When we set the socket as non-confirmed by s.setsockopt(socket.SOL_LORA, socket.SO_CONFIRMED, False), does it still creates two receive window?

                2. Sigfox device takes around 2 seconds to send a 12 bytes payload. However, as it further repeats the transmission on two different frequencies for reliability. The total time takes around 6 seconds which means to send the second message we have to wait for 6 seconds. Is there a way to only send it once rather than thrice at different frequencies?

                Thank you :)

                J 1 Reply Last reply Reply Quote 0
                • J Offline
                  jcaron @bitvijays
                  last edited by

                  @bitvijays listening during the receive windows is mandatory for a LoRaWAN-compliant device. The network could need a downlink to send MAC commands to change settings, and the end-device must listen for those and comply with their instructions.

                  If you don’t want that you’ll have to build your own networking stack on top of raw LoRa, but you’ll quickly find out you probably have to add a lot of the functionality of LoRaWAN.

                  You can control whether the LoPy repeats SigFox packets or not, see https://forum.pycom.io/topic/6057/lopy4-sending-duplicate-messager-using-sigfox/4

                  However note that this reduced resilience and increases chances of packet loss.

                  1 Reply Last reply Reply Quote 2
                  • G Offline
                    Gijs @jcaron
                    last edited by

                    @jcaron Ah yes, totally forgot about the feature.. Thanks for correcting me!
                    Indeed it depends on your country's duty cycle limit how much airtime you get and whether it is viable to send the acknowledgements. Generally, LoRa applications are okay with a few dropped packets. Do not make someones life depend on a LoRa packet arriving ;)

                    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