LoRa Basics Modem and LoRa Edge documentation

Scenario - Wi-Fi Scan with ROSE


The LoRa Cloud™ Modem & Geolocation Services enable the use of scanned Wi-Fi signal measurements for determining the location of an end device. This chapter reviews the requirements for processing a Wi-Fi scan by an LR111x chip and for returning it to the application server. There is no assistance data required for Wi-Fi scans.



  • The device must have performed a Wi-Fi scan. See the LoRa Basics™ Wi-Fi Passive Scan scenario for details.

  • The device must have initialized streaming data on the LR1110 chip with the StreamInit() command (0x062E).

Prerequisites for LoRa Basics™ Modem:

  • No additional requirements

Prerequisites for LoRa Basics™ Modem-E:

  • No additional requirements

Step-by-Step Procedure

  1. Complete the prerequisite steps above. The result will be a TLV set of values from the LoRa Basics Modem-E / LR1110.

  2. Make sure the stream interface has been initialized. For more information, see Reliable Octet Stream Encoding (ROSE).

  3. Send the Wi-Fi scan data to the LoRa Basics Modem-E / LR1110 via the SendStreamData() command.

  4. If the LoRa Basics Modem-E has accepted the data for transmission via streaming, it will return a status of OK.


    The LoRa Basics Modem-E manages the data streaming process, including how to combine the data for uplink via ROSE.

  5. Data is placed in the LoRa Basics Modem-E, in a queue for buffering and inclusion in the stream.

  6. Whenever the modem’s internal buffer contains data records, packets with redundancy and optional encryption are sent autonomously.

  7. The application server receives the streaming packet and forwards it to the LoRa Cloud Modem & Geolocation Services.

  8. The LoRa Cloud Services takes the streaming packets. When a completed source Wi-Fi scan is fully uploaded, it returns the original Wi-Fi scan data, decoded.

  9. The application server is responsible for recognizing this data as a Wi-Fi scan, and for passing it back to the LoRa Cloud Services so the position can be computed based on the Wi-Fi scan data. For more information, see the LoRa Cloud Modem & Geolocation Services API.

@startuml wifi_processbox Device #ADD8E6    participant "End-Device Application" as MCU #ADD8E6    participant "LoRa Basics™\nModem-E" as LR1110 #00ADEFend boxbox LoRaWAN® #AAAAAA    participant "Gateway" as GW #D3D3D3    participant "Network Server" as NS  #D3D3D3end boxbox Cloud #ADD8E6    participant "Application Server" as AppS #ADD8E6end boxbox LoRa Cloud™ #00ADEF    participant "Modem & Geolocation Services" as LCS #00ADEFend boxlegend left|=             |= Owner || <#00ADEF>    | Semtech || <#ADD8E6>    | Customer || <#D3D3D3>    | Ecosystem |endlegend== Precursor-WiFi Scan  ==note over MCU, LR1110 #AAAAAA: Perform GNSS scan== Precursor-Stream Init ==Note over MCU, LR1110 #AAAAAA: Initialize data stream== Streaming == LR1110 -> MCU : WiFi scan (successfully completed)MCU -> LR1110 : Send TLV bytes to Modem-Enote right: Note: tag can be for patch or embedded antenna (this is informational only)group ROSE [if fail]     LR1110 -> MCU : Message send failelse success    LR1110 -> MCU : Message send OK    loop handle message log        LR1110 -> LR1110 : Add to stream buffer        LR1110 -> GW : Stream packet        GW -> NS: Stream packet        NS -> AppS : Stream packet        group <back:#ADD8E6>parse MGS message</back>[repeat until packet complete]            AppS -> LCS : Stream packet #1            AppS -> LCS : Stream packet #2            AppS -> LCS : ...            AppS -> LCS : Stream packet #N            LCS -> AppS : WiFi TLV message            group <back:#ADD8E6>process Wi-Fi</back>[send Wi-Fi to MGS]                AppS -> LCS : WiFi TLV to MGS                LCS -> AppS : WiFi location packet             end        endend                    end@enduml

Used By

MCU, LR111x/LoRa Edge chip, LoRaWAN® network server, application server, LoRa Cloud™ Services


  • No suggestions at this time.