The Teseo-LIV3 GPS module (as used in shabaz ' GPS / Galileo / BeiDou / GLONASS receiver) talks UART and I2C. I'm writing an OO driver for it, for embedded systems. The firmware is now ready for a release.
GitHub Release 0.1, with binaries.
image: actual output of the firmware for Pico
Functionality:
- Talks to ST Teseo-LIV3 GPS in query-response mode.
you send a query, and get the reply - UART and I2C supported.
same functionality with both protocols. - predefined functionality for NMEA commands $GPGLL, $GLGSV, $GPRMC.
low level write, read, and parse functions can be used for the other NMEA commands - reply validation.
for the predefined functions, the library validates the NMEA status line - supports commands that return single and multiline lines of data.
single line commands fill a string with the response.
multiline commands fill a vector of strings with all response lines. The library reports the count of lines. - initialisation option.
you can pre-program the Teseo to work in reply-response mode (persistent).
but if you want to keep the factory settings, the library can configure the Teseo (nonpersistent) - platform independent.
will work on any platform, that supports UART or I2C
you provide the reader and writer for the protocol, and (optionally) a reset function.
current firmware example tests the lib with a Raspberry Pico
Pico connections for I2C, UART and shared functions
A connection deep dive in available in this post: C++ library for ST Teseo GPS - pt. 4: PCB to Pico hardware connections . The instructions will work for different Teseo boards. I used the board that shabaz published on the e14 community: Fun With Arduino, Global Navigation Satellite Systems (GNSS) and Teseo III .
Pico resources used only if you use I2C:
- I2C0
- SDA: GP16 (Pico I2C0 SDA)
- SCL: GP17 (Pico I2C0 SCL)
- baud: 100 * 1000
for I2C, SDA connects to SDA and SCL to SCL. The PCB that I use has the pull-ups for I2C.
Pico resources used only if you use UART:
- UART1
- TX: GP4 (Pico UART1 RX)
- RX: GP5 (Pico UART1 Tx)
- baud: 9600
- UART1 RX interrupt
for UART, RX connects to TX and vice versa
Pico common resources:
- RESET: GP18 (optional)
- 5V: VBUS
- 0V: GND
image: how to hook up the Teseo PCB to a Pico.
The binary firmware file (.uf2) - built for I2C - can be downloaded from GitHub.
Next post: C++ library for ST Teseo GPS - pt. 6: running library built-in requests, and free conversations
visit the github repository (git clone https://github.com/jancumps/pico_gps_teseo.git --recursive)
view the online documentation
Link to all posts.