LoRa Basics Modem and LoRa Edge documentation

Scenario - GNSS Scan with ROSE


The LoRa Cloud™ Services enable the use of scanned GNSS signal measurements for determining the location of an end device. Here, we review the requirements for processing an assisted GNSS scan or autonmous GNSS scan by the LR111x device and returning the location data to the application server.

When using the assisted GNSS scan, the assistance (aiding) position is used by the LoRa Cloud GNSS solver, and must be within +/-150km of the actual position of the device.

The aiding position is taken from the NAV message (in the case of the LoRa Edge™ Tracker Reference Design) or from the application server. If both of these are absent, it is roughly estimated by the Doppler solver within the LoRa Cloud™ Modem & Geolocation Services.

The LoRa Cloud™ Modem & Geolocation Services issue an aiding position downlink whenever at least one of the following conditions are met:

  1. No aiding position is contained in the NAV message from the device.

  2. The Doppler error flag from the device is set for at least one observation inside the NAV message.

  3. The aiding position inside the NAV message is present, but with more than a 150km two-dimensional error when compared to the gnss_aiding_position passed in the API call from the application server.

  4. The aiding position inside the NAV message is present, but with more than a 150km two-dimensional error when compared to the position solution computed by the solver.

The device can detect that its aiding position is wrong based on the available satellites and the current time. For aiding position errors greater than 400-500km from the actual device location, the device will set the Doppler error flag and will limit the GNSS scan to search only for strong satellite signals, to avoid wasting energy.


LoRa Basics™ Modem

LoRa Basics™ Modem-E

The Semtech radio must be an LR111x.



Prerequisites for LoRa Basics™ Modem:

  • No additional requirements

Prerequisites for LoRa Basics™ Modem-E:

  • No additional requirements

Step-by-Step Procedure

  1. Make sure the stream interface has been initialized. See the Reliable Octet Stream Encoding (ROSE) documentation for details.

  2. Complete the precursor steps associated with performing an assisted GNSS scan. See the GNSS Assisted Scan scenario for details.

  3. If the first byte of the NAV message is 0x00, the GNSS scan failed. The rest of the payload will indicate the status. For more information, see the LoRa Basics Modem-E Reference Manual.

  4. If the first byte of the NAV message is 0x01, the scan succeeded.

  5. Use the modem_send_stream_data() command to send the rest of the payload (that is, the NAV message without the first byte) to the modem.

  6. The modem should return the code OK and then start the streaming process to the application server.

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

  8. The LoRa Cloud™ Modem & Geolocation Services take the streaming packets and return the complete NAV message when the stream record is reassembled.

  9. The application server is responsible for recognizing this data as a GNSS scan, and for passing it back to the LoRa Cloud™ Modem & Geolocation Services for computation of the GNSS position.

  10. The LoRa Cloud™ Modem & Geolocation Services will return a location (if one can be computed). It may also return a downlink, such as the assistance position update.

@startuml gnss_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-GNSS Scan  ==note over MCU, LR1110 #AAAAAA: Perform GNSS scan== Precursor-Stream Init ==Note over MCU, LR1110 #AAAAAA: Initialize data stream== Streaming == LR1110 -> MCU : GNSS assisted scan \n(successfully completed)MCU -> LR1110 : Send NAV bytes to Modem-E' note 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 : GNSS NAV message            group <back:#ADD8E6>process GNSS</back>[send GNSS to MGS]                AppS -> LCS : GNSS NAV to MGS                LCS -> AppS : GNSS packet (location compute \nresponse may include aiding)            end        AppS -> NS : GNSS packet (if aiding data)        end    NS -> GW : GNSS packet  \n(if aiding data)    GW -> LR1110 : GNSS packet  \n(if aiding data)end                    end@enduml

Used By

MCU, LR111x/LoRa Edge™ chip, LoRaWAN® network server, application server, Modem & Geolocation API


None at this time.