Skip to product information
1 of 3

GPS Module (ATGM336H-6N-74)

GPS Module (ATGM336H-6N-74)

SKU:AX22-0058

Pinpoint location without the wait. This module runs on ZHONGKEWEI's AT6668 chip and locks onto Beidou-2, Beidou-3, GALILEO, GPS, QZSS, and GLONASS all at once, so it finds and holds a fix faster and more reliably than single-system GPS, even in cities, forests, and other tough spots. Expect roughly 2.5 m accuracy and 1–10 updates per second, backed by −162 dBm tracking sensitivity for reception in deep shadow, all from a footprint small enough to drop into any project.

An SMA connector on the edge takes an external antenna, which does most of the work. GPS signals are faint and line-of-sight, so walls and roofs block them, meaning indoors you'll get a slow, drifting fix or none at all.

Antenna is included!

Regular price $20.99
Regular price Sale price $20.99
Sale Sold out
View full details

Technical details

  • ZHONGKEWEI ATGM336H-6N-74 GNSS module
  • Multi-constellation: GPS, BeiDou, GLONASS, Galileo, QZSS & SBAS
  • Simultaneous all-constellation reception (AT6668 chip)
  • ≤2.5 m positioning accuracy
  • Up to 10 Hz update rate
  • −162 dBm tracking sensitivity
  • Standard NMEA 0183 output over UART
  • PPS (pulse-per-second) timing output
  • 22 mm × 22 mm square
  • 4× ⌀2.7 mm Mounting Holes
  • Arduino IDE Compatible
  • MicroPython Compatible
  • MicroBlocks Compatible
Component datasheet (opens in a new tab)

Drag to rotate

Pinout & connections

Pinout & connections

Technical Resources

GPS Module (ATGM336H-6N-74) - (AX22-0058)

Drag to rotate

Arduino example

ax22-0058.ino
#include <HardwareSerial.h>
#include <TinyGPSPlus.h>

HardwareSerial GPS(1);
TinyGPSPlus gps;

volatile bool ppsFired = false;

void IRAM_ATTR onPPS() {
  ppsFired = true;
}

void setup() {
  Serial.begin(115200);
  GPS.begin(9600, SERIAL_8N1, P1_IO1, P1_IO2);
  pinMode(P1_IO0, INPUT);
  attachInterrupt(digitalPinToInterrupt(P1_IO0), onPPS, RISING);
  Serial.println("GNSS receiver started — waiting for fix...");
}

void loop() {
  while (GPS.available()) {
    gps.encode(GPS.read());
  }

  if (ppsFired) {
    ppsFired = false;

    if (gps.location.isValid()) {
      Serial.print("PPS | Lat: ");
      Serial.print(gps.location.lat(), 6);
      Serial.print("  Lon: ");
      Serial.print(gps.location.lng(), 6);
      Serial.print("  Alt: ");
      Serial.print(gps.altitude.meters(), 1);
      Serial.print("m  Sats: ");
      Serial.print(gps.satellites.value());
      Serial.print("  UTC: ");
      if (gps.time.isValid()) {
        char t[9];
        snprintf(t, sizeof(t), "%02d:%02d:%02d",
                 gps.time.hour(), gps.time.minute(), gps.time.second());
        Serial.print(t);
      } else {
        Serial.print("--:--:--");
      }
      Serial.println();
    } else {
      Serial.print("PPS | No fix yet — satellites seen: ");
      Serial.println(gps.satellites.isValid() ? gps.satellites.value() : 0);
    }
  }
}