FiPy simultaneously LoRaWAN and Sigfox multiple sockets problem (only one LoRaWAN message)

  • Hi,

    I found a cause on a problem that some people are facing (forum TTN).

    Sigfox and LoRaWAN works fine on the FiPy, except, not together.
    Together, LoRaWAN just joins by OTAA en can send just 1 data message. After the first data message, LoRaWAN communicatie stops working without an error.

    My code:
    alt text

    alt text

    alt text

    When I comment out the 4 lines starting with 'sigsock' (my way to disable sigfox), then LoRaWAN works fine and all the message pass trough. When I enable sigfox again, only the join is working and 1 message after the join.

    (sysname='FiPy', nodename='FiPy', release='1.17.3.b1', version='v1.8.6-849-83e2f 7f on 2018-03-19', machine='FiPy with ESP32', lorawan='1.0.2', sigfox='1.0.1')

    Anyone the same problem over here?
    Anyone a solution?

    Thanks in advance.

  • @jmarcelino how do you make a denit() of LoRa or Sigfox please ?

  • Good evening,

    Is anyone from Pycom able to provide an update to this issue? Resetting the device when wanting to switch between LoRa/Sigfox doesn't feel like the answer but seems to be the only way of currently doing it.


  • @raaden89 it should work. I had only problems when sending first data to Sigfox and later to TTN.

  • @tvetter1976 hi, i'm looking for the same solution, i need to send first over lora on TTN, and if it doesn't connect send over sigfox, can you help me posting your solution?

  • I found a soultiution which worked for me. I first send data over Lorwan (TTN) and after that I send the data over Sigfox. Then Fipy is deepsleeping and starting again.
    When I start with sigfox I was not able to send data to TTN later on.

  • @jmarcelino Can you tell me how to denit Lora or Sigfox ? I also try to use both, but until now I found no solution.

  • Sorry it's taken a couple of days to post back - just wanted to make sure I'd thoroughly tested your suggestions.

    @paul-thornton Yes, pretty much. I've found Sigfox to be very good at uplink for critical payloads but the downlink is too unreliable (Don't think this is the Fipy's fault, I've heard many other cases). LoRaWAN on the otherhand I've found to be much better at getting data back to the device (even if just ACKs) and the payload is much larger - as an added bonus I'm able to use private LoRa infratructure. Unfortunately NB-IoT is still being rolled out in the UK so I'm not able to make use of that just yet. In order to solve this I wasn't expecting to be able to use both LoRa & Sigfox simultaneously but had hoped to be able to de-init one in order to use the other as a way to boost the likelyhood of data reaching my server.

    @Eric73 I really appreciate the suggestion but it doesn't appear to be making a difference, I had thought of doing this while reading the docs but hadn't tried because I have no idea how the firmware reconfigures the 868Mhz transceiver when initialising for either protocol. Do you have any other suggestions?

    If it's not currently possible I wonder if it's something that could be considered in a later firmware release, not sure if @leare86 is still active but perhaps a solution does exist.

  • @wrmtech I'm actually a little curious to what the usecase is for using both sigfox and lora in the same setup. Just to cover both bases in terms of network coverage?

    But yes. I dont think you'll be able to have both running in parallel at best you'll be swapping between them both constantly. @Eric73 Looks like he might have a solution. but like him I have no idea if that's likely to work.

  • Hi, Sigfox and lorawan use same chip but in very different way. I suggest you to test the following sequence.

    After the lora-join network is done then send data frame wih lorawan (wait for rx ) then close the socket and then use lora.nvram_save() function.

    Create and send your frame on sigfox network, close socket once is done.
    When you need to send lorawan frame then use first lora.nvram_restore()
    send your frame and after call again lora.nvram_save() (to save the framecnt used in lorawan)

    If it work, keep the restore/send frame/save scheme when you switch from one network to another.

    I am not sure if it work or not, but i suggest you to test and see what happend.

  • Guys,

    I'm having exactly the same issue, I can init both Sigfox & LoRa (OTAA) then successfully TX on Sigfox indefinately. As Sigfox doesn't seem to have a deinit function I'm closing the Sigfox socket before trying to send on LoRa - which initally appears successful, however nothing is recieved on the LoRa network other than the first OTAA transaction. I know it's not a coding issue because when I disable the Sigfox part LoRa works just fine.

    Has anyone managed to find an answer to this problem? Perhaps there's a process I should be following?

    Any help greatly appreciated.


  • This post is deleted!

  • @leare86
    Because Sigfox and LoRa share the same chip you can't currently have both enabled at the same time.

    Either init LoRa and Sigfox depending on the one you want to use. You can also deinit one and init the other to switch between protocols.

Pycom on Twitter