Sidewalk: The IoT network from Amazon
08.05.2024
Elektronik | Funk | Software
Der Technik-Blog
Currently there are more and more issues with the TTGO & LILYGO ESP32 GPS board regarding a not working GPS module. Unfortunately there are updates for these boards over the years with various changes to the hardware or pin mapping. For example, the LoRaWAN GPS Tracker project was developed and tested a year ago with a TTGO/LILYGO board version T22_V1.1 20191212. At various distributors like Amazon and so on, newer models with e.g. version number T22_V1.1 20220222 are shipped in the meantime, where obviously the GPS module does not work properly at a first look.
LoRaWAN GPS Tracker - Part 1: Starting up NEO6 GPS
TTGO LoRaWAN GPS Board
Many LoRaWAN GPS projects with the TTGO T-BEAM & LILYGO board work with NMEA datasets. The NEO6 GPS module sends out current position data at a specified interval via a serial interface in NMEA format. For example, the GGA-Dataset contains the current position (latitude & longitude), altitude, number of GPS satellites, and more. Then this dataset is received serially by a microcontroller and broken down into individual parameters. With newer NEO6 GPS modules on the TTGO boards this data transmission was deactivated by the manufacturer and must be reactivated from now on by the user himself.
The activation is done directly via the microcontroller itself. For this purpose, a small program code must be uploaded via the Arduino IDE, which reactivates the NMEA-0183 protocol and thus the GGA dataset by means of a sequence of serial commands. This activation usually has to be done once and remains permanently stored in the GPS module afterwards. Additionally the following library must be installed before uploading the program: Sparkfun Ublox Arduino Library
The following code example activates NMEA-0183 on a NEO6 GPS module:
//More information at: https://www.aeq-web.com #include <SparkFun_Ublox_Arduino_Library.h> #define SERIAL1_RX 34 // GPS_TX -> 34 #define SERIAL1_TX 12 // 12 -> GPS_RX SFE_UBLOX_GPS NEO6GPS; void setup() { Serial.begin(115200); while (!Serial); Serial.println("Serial is open now"); Serial1.begin(9600, SERIAL_8N1, SERIAL1_RX, SERIAL1_TX); delay(300); do { if (NEO6GPS.begin(Serial1)) { Serial.println("GPS connection ok"); NEO6GPS.setUART1Output(COM_TYPE_NMEA); NEO6GPS.saveConfiguration(); Serial.println("Enable NMEA"); NEO6GPS.disableNMEAMessage(UBX_NMEA_GLL, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_GSA, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_GSV, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_VTG, COM_PORT_UART1); NEO6GPS.disableNMEAMessage(UBX_NMEA_RMC, COM_PORT_UART1); NEO6GPS.enableNMEAMessage(UBX_NMEA_GGA, COM_PORT_UART1); NEO6GPS.saveConfiguration(); Serial.println("NMEA-GGA for AEQ-WEB GPS-Tracker enabled!"); break; } delay(1000); } while(1); } void loop() { if (Serial1.available()) { Serial.write(Serial1.read()); } }
After the sample code has been successfully uploaded to the board, the Serial Monitor should display the following output:
This example deactivates some NMEA datasets and only activates GGA, which is necessary for the TTGO/LILYGO LoRaWAN GPS Tracker project.
In general, it should be checked before, if the GPS module is supplied with power at all. Many boards have a power management IC like for example the AXP192, where the power supply has to be enabled in the software first. If the board is operated outside, the GPS LED of NEO6 should start flashing after about 5 minutes (in exceptional cases also 10 minutes). If this is not the case, the power supply of the GPS module must be checked first.
Every day hundreds of meteorological radiosondes fall from the sky. In this article we convert a radiosonde into a GPS tracker for APRS, RTTY & CW
read moreAlternative payload decoder for the SenseCAP T1000 LoRaWAN GPS tracker. Compatible with TTN Mapper, LoWTrack and other apps.
read moreAEQ-WEB © 2015-2024 All Right Reserved