GPSProvider wrapper library for STMicroelectronics' X-NUCLEO-GNSS1A1 Expansion Board.

Dependents:   TeseoLocation

X_NUCLEO_GNSS1A1 Library

GPS_Provider wrapper library for STMicroelectronics' X-NUCLEO-GNSS1A1 component.

Overview

This library includes drivers for ST’s Teseo-LIV3F Global Navigation Satellite System (GNSS) device and middleware for the NMEA protocol support. This firmware package implements the port of the GPS_Provider to STMicroelectronics' X-NUCLEO-GNSS1A1 GNSS Expansion Board.

The key features of the library are:

  • Complete software to build applications using Teseo-LIV3F GNSS device
  • Middleware for the NMEA protocol support

Furthermore the library provides the following advanced features:

  • Geofencing - allows the Teseo-LIV3F receiver to raise a NMEA message when the resolved GNSS position is close to or entering or exiting 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 locally on the flash the resolved GNSS position to be retrieved on demand from the Host

Hardware description

The X-NUCLEO-GNSS1A1 is a Global Navigation Satellite System Expansion Board usable with the STM32 Nucleo system and other Arduino compatible platforms. It is designed around the STMicroelectronics Teseo-LIV3F GNSS receiver IC working on multiple constellations (GPS/Galileo/Glonass/BeiDou/QZSS).

The Teseo-LIV3F module is designed for top performance in a minimal space. Within its 10x10mm compact size, Teseo-LIV3F offers superior accuracy thanks to the on board 26MHz Temperature Compensated Crystal Oscillator (TCXO) and a reduced Time To First Fix (TTFF) relying to its dedicated 32KHz Real Time Clock (RTC) oscillator.

The X-NUCLEO-GNSS1A1, hosting the Teseo-LIV3F, is compatible with Arduino UNO R3 connector layout and interfaces with the MCU via the UART channel. To connect by serial port the GNSS receiver and the host the following parameters must be used:

  • 8 data bits
  • No parity
  • 1 stop bit
  • 9600 bauds

A GPS/GLONASS/Beidou antenna, distributed along with the X-NUCLEO-GNSS1A1 Expansion Board, must be connected to the antenna connector present on the Expansion Board. For the X-NUCLEO-GNSS1A1 proper operations, the following jumper settings must be used:

  • J2 open
  • J3 closed
  • J4 closed
  • J5 open
  • J6 closed
  • J7 closed
  • J8 open
  • J9 closed
  • J10 open
  • J11 closed
  • J12 closed
  • J13 closed
  • J14 closed
  • J15 closed

Tested platforms

This firmware has been tested on STM32 NUCLEO-F401RE

Example Application

To run GNSS example applications using X-NUCLEO-GNSS1A1 Expansion Board based on mbed OS, please refer to TeseoLocation page.

Committer:
apalmieri
Date:
Thu Jan 14 09:29:14 2021 +0000
Revision:
5:1fe1ba1f0013
Parent:
3:2d568ec8da14
Get GNSS library aligned with mbed-os-6.6.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apalmieri 0:a77f1f1f8318 1 /**
apalmieri 0:a77f1f1f8318 2 ******************************************************************************
apalmieri 0:a77f1f1f8318 3 * @file teseo_config.h
apalmieri 0:a77f1f1f8318 4 * @author AST / Central Labs
apalmieri 0:a77f1f1f8318 5 * @version V1.0
apalmieri 0:a77f1f1f8318 6 * @date May, 2017
apalmieri 0:a77f1f1f8318 7 * @brief Configuration header file for the X_NUCLEO_PLC01A1 expansion board.
apalmieri 0:a77f1f1f8318 8 ******************************************************************************
apalmieri 0:a77f1f1f8318 9 * @attention
apalmieri 0:a77f1f1f8318 10 *
apalmieri 0:a77f1f1f8318 11 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
apalmieri 0:a77f1f1f8318 12 *
apalmieri 0:a77f1f1f8318 13 * Redistribution and use in source and binary forms, with or without modification,
apalmieri 0:a77f1f1f8318 14 * are permitted provided that the following conditions are met:
apalmieri 0:a77f1f1f8318 15 * 1. Redistributions of source code must retain the above copyright notice,
apalmieri 0:a77f1f1f8318 16 * this list of conditions and the following disclaimer.
apalmieri 0:a77f1f1f8318 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
apalmieri 0:a77f1f1f8318 18 * this list of conditions and the following disclaimer in the documentation
apalmieri 0:a77f1f1f8318 19 * and/or other materials provided with the distribution.
apalmieri 0:a77f1f1f8318 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
apalmieri 0:a77f1f1f8318 21 * may be used to endorse or promote products derived from this software
apalmieri 0:a77f1f1f8318 22 * without specific prior written permission.
apalmieri 0:a77f1f1f8318 23 *
apalmieri 0:a77f1f1f8318 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
apalmieri 0:a77f1f1f8318 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
apalmieri 0:a77f1f1f8318 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
apalmieri 0:a77f1f1f8318 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
apalmieri 0:a77f1f1f8318 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
apalmieri 0:a77f1f1f8318 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
apalmieri 0:a77f1f1f8318 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
apalmieri 0:a77f1f1f8318 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
apalmieri 0:a77f1f1f8318 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
apalmieri 0:a77f1f1f8318 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
apalmieri 0:a77f1f1f8318 34 *
apalmieri 0:a77f1f1f8318 35 ******************************************************************************
apalmieri 0:a77f1f1f8318 36 */
apalmieri 0:a77f1f1f8318 37
apalmieri 0:a77f1f1f8318 38 /* Define to prevent recursive inclusion -------------------------------------*/
apalmieri 0:a77f1f1f8318 39
apalmieri 0:a77f1f1f8318 40 #ifndef __TESEO_CONFIG_H__
apalmieri 0:a77f1f1f8318 41 #define __TESEO_CONFIG_H__
apalmieri 0:a77f1f1f8318 42
apalmieri 0:a77f1f1f8318 43 /* TESEO PINs. */
apalmieri 0:a77f1f1f8318 44 #define TESEO_PIN_RESET D7
apalmieri 0:a77f1f1f8318 45 #define TESEO_PIN_WAKEUP D13
apalmieri 0:a77f1f1f8318 46 #define TESEO_PIN_PPS NC//D6
apalmieri 0:a77f1f1f8318 47
apalmieri 0:a77f1f1f8318 48 /* UART */
apalmieri 0:a77f1f1f8318 49 #define TESEO_PIN_RX D8
apalmieri 0:a77f1f1f8318 50 #define TESEO_PIN_TX D2
apalmieri 0:a77f1f1f8318 51
apalmieri 0:a77f1f1f8318 52 #define LOC_LED2 D6
apalmieri 0:a77f1f1f8318 53
apalmieri 0:a77f1f1f8318 54 #endif /* __TESEO_CONFIG_H__ */