
•Middlewares: contains a library for the NMEA protocol support (for example, for NMEA message parsing),
a FreeRTOS library for task scheduling management, an A-GNSS library for assisted GNSS support, and a
cJSON library for JSON message parsing.
•Projects: contains the sample applications used to access the GNSS data provided for the NUCLEO-
F401RE, NUCLEO-L476RG, NUCLEO-L073RZ, and NUCLEO-U575ZI-Q platforms and a sample
application for A-GNSS provided for the B-L475E-IOT01A discovery kit for IoT nodes. All the applications
are available under three development environments: IAR Embedded Workbench for Arm (IAR-EWARM),
RealView Microcontroller Development Kit (MDK-ARM), and STM32CubeIDE.
•Utilities: contains a “PC_Software” folder with a Java utility to update the Teseo-LIV3F device firmware.
2.4 APIs
Detailed technical information about the APIs available to the user can be found in a compiled HTML file located
inside the “Documentation” folder of the software package where all the functions and parameters are fully
described.
2.5 GetPos sample application
An example application using the X-NUCLEO-GNSS1A1 expansion board with a NUCLEO-L476RG board is
included in the package (in the folder ROOT_DIR\Projects\STM32L476RG-Nucleo\Applications\GetPos). Ready
to be built projects are available for multiple IDEs.
In this application, real-time GNSS data received by the Teseo-LIV3F device can be displayed through a serial
connection and a serial terminal on a PC.
The GetPos application is built on top of the FreeRTOS support introducing a task (consumer), to parse the
messages (enqueued in a shared queue) coming from the Teseo-LIV3F device, and a task (listener) to parse
commands coming from the serial terminal.
The sample application also shows three advanced features supported by the Teseo-LIV3F device:
•Geofencing: allows the Teseo-LIV3F receiver to raise an NMEA message when the resolved GNSS position
is close to enter or exit from a specific circle.
•Odometer: provides information on the traveled distance using only the resolved GNSS position.
•Data Logging: allows the Teseo-LIV3F receiver to save the resolved GNSS position on the local flash
memory to be retrieved on demand from the host.
The Teseo-LIV3F device sends the received GNSS data via UART (or I²C) to the STM32 microcontroller on the
STM32 Nucleo board according to the NMEA 0183 version 4.0 protocol. At compile time, the user can choose
the interface to receive data (setting the macro USE_I2C in the file gnss1a1_conf.h) and also enable a specific
feature (setting the corresponding macro in the file teseo_liv3f_conf.h).
2.5.1 GetPos usage procedure
The following instructions show how to use the GetPos sample application to return information relating to a
GNSS position.
UM2334
APIs
UM2334 - Rev 7 page 5/19