GPS Development Board | ANTENOVA M20050-1 and ATGM332D-5N31
A KiCad breakout board for evaluating two GPS modules side by side — the ANTENOVA M20050-1 and the ATGM332D-5N31 — plus two footprints for 20 mm coin‑cell holders that keep the module's almanac powered for a warm start.
Step 1Define
It is one of the breakout boards for the EJA "Intelligent Popup Buoy" project (2021 Hackaday Dream Team): every candidate part for the EJA M board was tried first on a small dedicated PCB. Both modules speak plain NMEA over UART and share an identical header pinout here, so the same firmware runs against either. The ATGM332D-5N31 was the one carried into EJA M.
What It Had to Do
- CompareCarry both candidate modules, the ANTENOVA M20050‑1 and the ATGM332D‑5N31, each in its own section with its own headers, exercised one at a time
- InterfaceNMEA over UART on the same header pinout for both modules, so one ESP32 sketch runs against either
- AntennaA U.FL connector per module for an external active antenna
- BackupA coin‑cell backup input per module, to keep the almanac powered for a warm start
- HolderTwo 20 mm coin‑cell holder footprints, a Linx BAT‑HLD‑001 retainer and a Keystone 1066 open holder, so the mechanically better one could be picked for the buoy
- BreakoutEach module's UART (TX, RX) and I2C (SDA, SCL) on 2.54 mm headers
Step 3Build
Schematic
ANTENOVA M20050-1
Schematic of the GPS Dev Board: Circuit for the GPS ANTENOVA M20050-1.
ATGM332D-5N31
Schematic of the GPS Dev Board: Circuit for the GPS ATGM332D-5N31.
Additional Coin Battery Holders
Schematic of the GPS Dev Board: Circuit to test coin cell battery holders.
Bill of Materials
PCB
3D Model of the PCB design of the GPS Dev Board.
3D Model of the PCB design of the GPS Dev Board.
Firmware
The Firmware/ folder in the repository has an Arduino sketch for each module (esp32_atgm332d and esp32_antenova_m20050) — the same code with a different banner, since only one module is exercised at a time.
- The ESP32's
Serial2runs at 9600 baud on GPIO16 (RX) / GPIO17 (TX), wired to the module's UART header. - The FuGPS library parses the NMEA stream; the sketch requests
RMC + GGAsentences. - On a fix it prints fix quality, satellite count, HDOP, altitude and a ready‑to‑click
google.com/mapslink with the current coordinates; if the module goes quiet for ~10 s it prints a "not responding" warning.
Step 4Test
Bench Test
Test rig — the board's UART header wired to an ESP32; an active antenna goes on the U.FL connector.
Wire VIN→3V3, GND→GND, TX→GPIO16, RX→GPIO17, open the matching sketch (ESP32 board support + the FuGPS library installed) and watch the serial monitor at 115200 baud. A first outdoor fix takes a few minutes cold, seconds warm with the backup cell fitted.
In August 2021 I wired the ATGM332D‑5N31 section to an ESP32 devkit on this rig.