

The GPS Matek M10-5883 is a high-performance GPS module designed for applications requiring precise positioning and navigation. It features a 10Hz update rate, a built-in antenna, and support for multiple GNSS (Global Navigation Satellite Systems), including GPS, GLONASS, Galileo, and BeiDou. This module is particularly well-suited for drones, robotics, and other systems where accurate and reliable location data is critical.








The GPS Matek M10-5883 module is designed to deliver high accuracy and reliability. Below are its key technical specifications:
| Parameter | Specification |
|---|---|
| GNSS Support | GPS, GLONASS, Galileo, BeiDou |
| Update Rate | 10Hz |
| Position Accuracy | < 1.5m CEP |
| Sensitivity | -167 dBm (tracking), -160 dBm (cold start) |
| Operating Voltage | 3.3V - 5.5V |
| Current Consumption | ~50mA |
| Communication Interface | UART (default: 9600 baud rate) |
| Built-in Antenna | Yes |
| Magnetometer | HMC5883L (3-axis digital compass) |
| Dimensions | 25mm x 25mm x 10mm |
| Weight | ~10g |
The GPS Matek M10-5883 module has a standard pinout for easy integration into your projects. Below is the pin configuration:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power input (3.3V - 5.5V) |
| 2 | GND | Ground |
| 3 | TX | UART Transmit (data output from GPS module) |
| 4 | RX | UART Receive (data input to GPS module) |
| 5 | SDA | I2C Data line for magnetometer (HMC5883L) |
| 6 | SCL | I2C Clock line for magnetometer (HMC5883L) |
VCC pin to a 3.3V or 5V power source and the GND pin to ground.TX and RX pins to interface with a microcontroller or computer. Ensure the baud rate is set to 9600 (default).SDA and SCL pins to the corresponding I2C pins on your microcontroller.Below is an example of how to connect and use the GPS Matek M10-5883 with an Arduino UNO:
| GPS Pin | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TX | D4 (via SoftwareSerial) |
| RX | D3 (via SoftwareSerial) |
| SDA | A4 |
| SCL | A5 |
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_HMC5883_U.h>
// Create a SoftwareSerial instance for GPS communication
SoftwareSerial gpsSerial(4, 3); // RX, TX
// Create an instance of the HMC5883L magnetometer
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
void setup() {
// Initialize serial communication
Serial.begin(9600);
gpsSerial.begin(9600); // GPS default baud rate
// Initialize magnetometer
if (!mag.begin()) {
Serial.println("Magnetometer not detected. Check wiring!");
while (1);
}
Serial.println("Magnetometer initialized.");
}
void loop() {
// Read GPS data
while (gpsSerial.available()) {
char c = gpsSerial.read();
Serial.print(c); // Print GPS data to Serial Monitor
}
// Read magnetometer data
sensors_event_t event;
mag.getEvent(&event);
Serial.print("Magnetometer Heading (X, Y, Z): ");
Serial.print(event.magnetic.x);
Serial.print(", ");
Serial.print(event.magnetic.y);
Serial.print(", ");
Serial.println(event.magnetic.z);
delay(1000); // Delay for readability
}
No GPS Fix:
No Data Output:
Magnetometer Not Detected:
Inaccurate Magnetometer Readings:
Q: Can I use the GPS Matek M10-5883 indoors?
A: While the module may work indoors near windows, it is designed for outdoor use where it can receive satellite signals without obstruction.
Q: How do I change the GPS update rate?
A: The update rate can be configured using specific commands sent via UART. Refer to the module's datasheet for details.
Q: Is the module compatible with 3.3V microcontrollers?
A: Yes, the module supports both 3.3V and 5V logic levels.
Q: Can I use the magnetometer without the GPS?
A: Yes, the HMC5883L magnetometer can be used independently via the I2C interface.