# Project 8: Automatic and Corrective Positioning of LoRa Stations via Wifi/Cellular/BLE/LoRa Geolocation
The positioning of LoRa stations can be performed either manually through the server console or by using a GNSS module (GPS, Beidou, etc.).
In the first case, the station installer may make an error. In the second case, the station’s GNSS module may be jammed, spoofed, or out of range of the GNSS constellations.
Most LoRa stations have Ethernet, Wifi, Cellular, and BLE interfaces. The Wifi, Cellular, and BLE interfaces allow for the identification of nearby Wifi/Cellular networks or BLE beacons. The most modern gateways are equipped with the SX1303, which can timestamp the arrival of messages with an accuracy of a few nanoseconds.
Real-Time Location Services (RTLS) using signal strength from Wifi access points, cellular BTS, or BLE Beacons. These services use large network signature databases.
A software probe installed in the firmware or the Linux distribution of certain LoRa gateways can query the available interfaces and transmit this information:
* via the gateway’s IP interface using an extension to the LoRaPacketForwarder and BasicStation messages
* or via the LoRa interface as a fallback when the IP interface is cut off (e.g., cable break, disconnection, RF jamming). The information is transmitted in a DataUp message, similar to what the Semtech LR11x0 components do for the LoRaCloud location service.
The objective of this project is to:
* Add a software probe in the firmware or Linux distribution of certain LoRa gateways used by CampusIoT.
* Extend the Chirpstack LoRaWAN server with a microservice for the correction of the stations’ (and objects’) positions managed by the server. This service will query one or more Wifi, cellular, or BLE geolocation services or LoRa 2.4GHz and 868MHz coverage proof.
The microservice will be dockerized for integration into the Chirpstack server composition and will have a REST API.
It will query one or more Wifi/Cellular/BLE geolocation services and TDOA-based LoRa geolocation.
It will store the resolved location information either in the gateway metadata or in position fields.
The equipment available for this project includes:
* A LoRa Multitech Linux MTCDT station (donated by Brian Wild)
* A LoRa Kerlink iFemto Linux MTCDT station (donated by Kerlink)
* A LoRa ecoSignal station (ESP32 on FreeRTOS)
* A LoRa RPI + Corecell station (Linux/Raspian) donated by Semtech
* A LoRa RPI + Picocell station (Linux/Raspian) donated by Semtech
The documentation should be carefully written in English to ensure the project can be contributed as open-source to the Chirpstack community or the LoRa Alliance to enrich the LoRa Basic Station specification.