
Overview
If you are experimenting with monitoring fleets, high-altitude scientific experiments, or any kind of project requiring localization of devices, the MKR GPS Shield will offer you the functionality you need, and it is plug 'n' play!
The MKR GPS Shield is based on the u-blox SAM-M8Q GNSS (Global Navigation Satellite System) module. It is meant to be used on top of boards in the MKR format, but thanks to its Eslov connector, it is also possible to hook it up to any board having that kind of connector available using a cable.
This module is designed to operate with different positioning services concurrently. It receives and processes the signals from GPS, GLONASS, and Galileo. It interfaces with Arduino boards either through a serial interface, when used with headers and put on top of a MKR board, or through an I2C interface and a dedicated ESLOV cable supplied as bundle.
Configuration Commands and Backup
The GPS module can be configured via special commands. We have included an on-board battery holder for the system to keep the configurations made via software. This can be convenient when e.g. changing the operation mode of the GPS to 1g, something common in high altitude experiments, where specific settings away from the default ones are needed for the device.
Another example is the use of Galileo's localization option, which is disabled by default, but can be enabled by sending a configuration message (UBXCFG-GNSS) to the receiver. You can find a detailed description of all of the commands in the protocol here.
Getting Started
Our Arduino_MKRGPS library handles the two different interfaces and offer a consistent set of APIs designed for a full usage of the GPS acquired information
Need Help?
Check the Arduino Forum for questions about the Arduino Language, or how to make your own Projects with Arduino. Need any help with your board please get in touch with the official Arduino User Support as explained in our Contact Us page.
Warranty
You can find here your board warranty information.
Tech specs
GNSS receiver | u-blox module SAM-M8Q (datasheet) |
Connectors | MKR headers / Eslov |
Input Voltage | 3.3V |
Operating Voltage | 3.3V |
Backup battery | CR1216 |
Communication | Serial / I2C / DCC |
Length | 45 mm |
Width | 25 mm |
Weight | 14 gr. |
Conformities
Resources for Safety and Products
Manufacturer Information
The production information includes the address and related details of the product manufacturer.
Arduino S.r.l.
Via Andrea Appiani, 25
Monza, MB, IT, 20900
https://www.arduino.cc/
Responsible Person in the EU
An EU-based economic operator who ensures the product's compliance with the required regulations.
Arduino S.r.l.
Via Andrea Appiani, 25
Monza, MB, IT, 20900
Phone: +39 0113157477
Email: support@arduino.cc
Documentation
OSH: Schematics
The Arduino MKR GPS Shield is open-source hardware! You can build your own board using the following files:
EAGLE FILES IN .ZIP SCHEMATICS IN .PDF
Additional I2C Port
The MKR GPS Shield has an additional connector meant as an extension of the I2C bus. It's a small form factor 5-pin connector with 1.0 mm pitch. The mechanical details of the connector can be found in the connector's datasheet.
The I2C port, also referred to as the Eslov self-identification port within Arduino, comes with: SDA, SCL, GND, +5V, and an extra digital pin meant to send an alarm to the otherwise plain I2C devices connected to it. The pinout is shown in the following image:
If you are interested in designing your own modules for Arduino boards with this expansion port, the connector we suggest using is code: SHR-05V-S-B, also in the picture.
Learn more
Get Inspired

If you’re interested in embedded machine learning (TinyML) on the Arduino Nano 33 BLE Sense, you’ll have found a ton of on-board sensors — digital microphone, accelerometer, gyro, magnetometer, light, proximity, temperature, humidity and color — but realized that for vision you need to attach an external camera. In this article, we will show you how to get image data from a low-cost VGA camera module. We’ll be using the Arduino_OVD767x library to make the software side of things simpler. Hardware setup To get started, you will need: Arduino Nano 33 BLE Sense with headersOV7670 CMOS VGA Camera Module 16x female to female jumper wiresA microUSB cable to connect to your Arduino You can of course get a board without headers and solder instead, if that's your preference. The one downside to this setup is that (in module form) there are a lot of jumpers to connect. It’s not hard but you need to take care to connect the right cables at either end. You can use tape to secure the wires once things are done, lest one comes loose. You need to connect the wires as follows: Software setup First, install the Arduino IDE or register for Arduino Create tools. Once you install and open your environment, the camera library is available in the library manager. Install the Arduino IDE or register for Arduino CreateTools > Manage Libraries and search for the OV767 libraryPress the Install button Now, we will use the example sketch to test the cables are connected correctly: Examples > Arduino_OV767X > CameraCaptureRawBytesUncomment (remove the //) from line 48 to display a test pattern Compile and upload to your board Your Arduino is now outputting raw image binary over serial. To view this as an image we’ve included a special application to view the image output from the camera using Processing. Processing is a simple programming environment that was created by graduate students at MIT Media Lab to make