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

    Receiving (downlink) messages using Sigfox

    Scheduled Pinned Locked Moved FiPy
    sigfoxdownlink
    2 Posts 2 Posters 17 Views 2 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
      Nicolas Philips
      last edited by

      I have been testing with Sigfox for a while.

      When sending to the Sigfox backend (uplink), my messages always get received with at least 4/5 bars of reception according to the Sigfox backend.
      But the 4 downlink messages do not get received, while the Sigfox backend reports that the downlink was successful.

      After many days (because of the limited attempts) of trying things, I came to the conclusion that I can receive in other physical locations without problems, while the Sigfox backend also reports 4/5 bars of reception. Is there anyone else with a supposedly good uplink that also works all the time, but no downlink?

      The following code was used:

      from network import Sigfox
      import socket
      # init Sigfox for RCZ1 (Europe)
      sigfox = Sigfox(mode=Sigfox.SIGFOX, rcz=Sigfox.RCZ1)
      
      # create a Sigfox socket
      s = socket.socket(socket.AF_SIGFOX, socket.SOCK_RAW)
      
      # make the socket blocking
      s.setblocking(True)
      
      # configure it as DOWNLINK specified by 'True'
      s.setsockopt(socket.SOL_SIGFOX, socket.SO_RX, True)
      
      # send some bytes and request DOWNLINK
      s.send(bytes([1, 2, 3]))
      
      # await DOWNLINK message
      r = s.recv(32)
      print(ubinascii.hexlify(r))
      

      (@pycom just letting r = s.recv(32) return the error would be great instead of quitting the program with the ENET_TIMEOUT error... I need to save my runtime to flash before calling s.recv()...).

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

        I don't know anything about sigfox, but I know a fair bit about radios.

        If operating from other locations which are a similar distance from the peer sigfox device is successful, then there is a good chance that, all other things being equal, you have a local noise source that is decreasing the signal to noise ratio in your sigfox receiver below that at which the modem works.

        Options to mitigate this might include some combination of:

        1. Operating from a different location
        2. Using a directional antenna pointed at the peer node. This may increase received signal and reduce pickup of local noise.
        3. Identify and remove the noise source, or if very localised, move your device a bit further away.
        4. Operate on a different frequency or an entirely different frequency band.

        You could try using some sort of communications receiver or scanner to listen to the operating frequency, but these days using something like an RTL-SDR with suitable software defined radio software should allow you to see the state of the appropriate part of the radio spectrum and ascertain what kind of problem you may have.

        As a radio ham, with lots of radios, I find that they have a high tendency to interfere with each other, even when operating in separate bands, as they are usually harmonically related, thus transmissions around 145 MHZ interfered with stuff around 435 MHz, whilst stuff on 434MHz hit stuff in the 868MHz ISM band. Note that USB cables have a tendency to radiate strongly around the 430-440MHz band and may affect the 868MHz band quite strongly too, so you might have some luck in avoiding proximity to USB cables and perhaps also monitors or TV screens.

        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