GPS Tracker Project with ESP32-S3 (Heltec V4) and Reyax RYS352A GNSS Module

Hi everyone,

I wanted to share a recent project I’ve been working on using the Heltec WiFi LoRa 32 V4 (ESP32-S3) and the Reyax RYS352A multi-GNSS module.

The aim was to build a standalone GPS tracker that doesn’t depend on cloud services or paid subscriptions. Instead, the ESP32 hosts a small web server that allows any device on the same Wi-Fi network to view the current location and travel history.

Hardware

  • Heltec WiFi LoRa 32 V4 (ESP32-S3)
  • Reyax RYS352A GNSS Module
  • Breadboard Power Supply
  • 12V Battery

Wiring

RYS352A VCC  -> 3.3V
RYS352A GND  -> GND
RYS352A TXD  -> GPIO38

Project Overview

The RYS352A is a multi-GNSS receiver based on the Airoha AG3352 chipset and supports:

  • GPS
  • GLONASS
  • Galileo
  • BeiDou
  • QZSS

It outputs NMEA 0183 sentences at 115200 baud, which the ESP32-S3 parses to obtain:

  • Latitude
  • Longitude
  • Altitude
  • Satellite count

The current coordinates are displayed on the Heltec board’s onboard OLED, while a browser-based interface displays the current position and movement trail using OpenStreetMap.

I’m currently considering a few enhancements:

  • Geofencing notifications.
  • SD card logging.
  • Power optimization for battery operation.

Has anyone here worked with GNSS modules on ESP32-S3 boards? I’d be particularly interested in hearing about techniques for improving time-to-first-fix and reducing power consumption.

I’ve written up the complete build, including schematics, source code, and testing notes on Play with Circuit:

Thanks, and I’d love to hear any suggestions from the community!

2 Likes

Hi Rachana!

Welcome to the forum!

The browser interface is a great addition - would it be possible to send through a screenshot of the UI? (A mock might be best - please dont expose any locations!)

If you are doing a cold start each time, that will impact your TTFF - hot starts are preferred where this is a critical factor in a design.

Power consumption is a whole subject! Many approaches to reduce this number can be taken - sleep modes, powering down peripherals, etc

Keen to see where this goes!
Liam

In short the GPS needs a good time lock and its location. In a very low level GPS this and take a while e.g. 10-15 mins or longer if its having trouble.

Their is AGNSS, which helps by using the internet to get data to help it get a lock; It helps, but does not meet your “offline” mode.

Even better is the built in EASY mode. The gps one it gets its first lock, will try to hold data to help predict some things… that GPS claims a cold start with easy (which should be on by default) claims a cold start in 12 seconds.
Key Note: this assumes that battery is holding its charge. From memory the data is only valid for a few days, so short times between cold starts would help.

The main table you want to look out would be

Note how the easy claims to be faster then AGNSS, so that looks to be you best bet.

from google AI

So check the full datasheet and you can check the status etc.

1 Like