smôl ZOE-M8Q Hookup Guide

Contributors: PaulZC
Favorited Favorite 0


smôl is a new board format and, as the name suggests, they're really small!

smôl ZOE-M8Q


The smôl ZOE-M8Q is a GNSS (Global Navigation Satellite System) receiver board based on the excellent u-blox ZOE-M8Q.

Each smôl board measures just 1.60" by 0.42" (40.6mm by 10.7mm). We made the boards just wide enough so we could squeeze USB-C and 16-way Flexible Printed Circuit (FPC) connectors on there. Some of the boards have components on both top and bottom layers which again helps keep the boards small.

smôl boards are designed to stack one on top of the other, using 16-way 0.5mm-pitch FPCs to provide the interconnect from one board to the next. Each board has an IN FPC connector on the bottom layer and an OUT FPC connector on the top layer. The boards stack in a zig-zag daisy chain; signals and power are passed from one board to the next up and down the chain through the FPCs.

Required Materials

As a minimum, you're going to need a u.FL GNSS antenna:

Molex Flexible GNSS Antenna - U.FL (Adhesive)

Molex Flexible GNSS Antenna - U.FL (Adhesive)


The ZOE-M8Q Peripheral Board is part of the smôl ecosystem. Why not pair it with one of the smôl Processor Boards?

smôl ESP32

1 Retired

To be able to reduce the sleep current below 10µA, you're going to want to pair the ESP32 with one of our intelligent smôl Power Boards:

smôl Power Board LiPo

smôl Power Board LiPo

smôl Power Board AAA

smôl Power Board AAA


Don't forget that you will need Flexible Printed Circuits to connect your smôl boards together. You're going to need one FPC per board. Our 36mm FPC is the perfect length if you want the smôl boards to stack neatly, one on top of the other.

smôl 36mm 16-way Flexible Printed Circuit


Need to do some prototyping with smôl? Or want to connect the smôl ZOE-M8Q to another Qwiic board? The smôl Header is perfect for that:

smôl Header

smôl Header


Suggested Reading

This is the hookup guide for the smôl ZOE-M8Q Peripheral Board. Click the button below if you want to find out more about smôl itself.

We recommend taking a look through the following tutorials if you are not familiar with the concepts covered in them:


An introduction to I2C, one of the main embedded communications protocols in use today.

Three Quick Tips About Using U.FL

Quick tips regarding how to connect, protect, and disconnect U.FL connectors.

Hardware Overview

In this section we'll cover what's included on the smôl ZOE-M8Q Peripheral Board.

GNSS Capabilities

The u-blox ZOE-M8Q is able to connect to up to three different GNSS constellations at a time making it very accurate for its size.

smôl ZOE-M8Q and support components

Below are the listed capabilities of the GNSS unit:

Horizontal Position Accuracy 2.5m2.5m4m3m3m
Max Navigation Update Rate ROM 10Hz 18Hz 18Hz 18Hz 18Hz
Flash 5Hz 10Hz 10Hz 10Hz 10Hz
Time-To-First-Fix Cold Start 26s 29s 30s 34s 45s
Hot Start 1s 1s 1s 1s 1s
SensitivityTracking and Navigation -167dBm -166dBm -166dBm -160dBm -159dBm
Reacquisition -160dBm -160dBm -156dBm -157dBm -153dBm
Cold Start-148dBm -148dBm -145dBm -143dBm -138dBm
Hot Start -157dBm -157dBm -156dBm -155dBm -151dBm
Velocity Accuracy 0.05m/s
Heading Accuracy 0.3 degrees


Power for this board - and all smôl boards - should be 3.3V.


The small metal disk in the center of the board is a small lithium battery. This battery does not provide power to the IC like the 3.3V system does, but to relevant systems inside the IC that allow for a quick reconnection to satellites. The time to first fix will be about ~29 seconds, but after the product has a lock, that battery will allow for a one second time to first fix. This is known as a hot start and lasts for four hours after the board is powered down. The battery provides over a year's worth of power to the backup system and charges slowly when smôl 3.3V is powered.

smôl ZOE-M8Q backup battery


There is only one jumper on the top of this product, labelled V_ANT. By default, 3.3V power is provided on the u.FL connector for an active antenna. Cutting the V_ANT jumper disconnects the 3.3V power.

This is a picture of the board with the V_ANT jumper highlighted.

u.FL Connector

The u.FL connector on the board is where you will plug in your antenna. This is a compact connector for RF antennas, that has the same function as the traditional SMA connector. You may be more familiar and even own some antennas that use SMA connectors; never fear, we carry a U.FL to SMA cable adapter. Check out our tutorial on using U.FL connectors, if this is your first.

Pictured is the small u.FL connector

Power Switching

The smôl ZOE-M8Q includes an on-board power switch (MOSFET):

smôl ZOE-M8Q power switch

Power for the ZOE-M8Q is controlled via the smôl GPIO0 signal. Leave GPIO0 floating or pull high to disable power to the ZOE-M8Q (default state). Pull the smôl GPIO0 signal low to enable power for the ZOE-M8Q.

FPC Connections

Like all of our smôl boards, the ZOE-M8Q Peripheral Board is equipped with two 16-way 0.5mm-pitch Flexible Printed Circuit connectors. FPCs are used to link the smôl boards together in a daisy-chain.

The pin-out for the smôl ZOE-M8Q IN connector is as follows:

IN Connector Pin No.Signal NameFunctionNotes
1PROC_PWR_ENProcessor Power EnableNot used
23V33.3V Power Rail
3GNDPower Ground / 0V
4SCLKSPI ClockNot used
5COPISPI Controller Out Peripheral InNot used
6CIPOSPI Controller In Peripheral OutNot used
7CS0SPI Chip Select 0Not used
8CS1SPI Chip Select 1Not used
9CS2SPI Chip Select 2Not used
10GPIO0ZOE-M8Q Power ControlPull low to enable power for the ZOE-M8Q
11GPIO1General Purpose Input / Output 1Connected to Pin 10 (GPIO0) on the OUT connector
12SDAI2C DataUsed for ZOE-M8Q communication
13SCLI2C ClockUsed for ZOE-M8Q communication
14GNDPower Ground / 0V
153V33.3V Power Rail
16V_USBUSB Power Rail (5V)Not used

The pin-out for the smôl ZOE-M8Q OUT connector is as follows:

OUT Connector Pin No.Signal NameFunctionNotes
1PROC_PWR_ENProcessor Power EnableNot used
23V33.3V Power Rail
3GNDPower Ground / 0V
4SCLKSPI ClockNot used
5COPISPI Controller Out Peripheral InNot used
6CIPOSPI Controller In Peripheral OutNot used
7CS0SPI Chip Select 0Not used
8CS1SPI Chip Select 1Not used
9CS2SPI Chip Select 2Not used
10GPIO0General Purpose Input / Output 0Connected to Pin 11 (GPIO1) on the IN connector
11GPIO1Not connected
12SDAI2C DataUsed for ZOE-M8Q communication
13SCLI2C ClockUsed for ZOE-M8Q communication
14GNDPower Ground / 0V
153V33.3V Power Rail
16V_USBUSB Power Rail (5V)Not used

We use a technique called waterfalling on the GPIO signals. If you haven't used waterfalling before, please check out the smôl Hookup Guide.

smôl Specifics


  • I2C
  • Default Address: 0x42 (unshifted)


  • GPIO0 controls the power for the ZOE-M8Q
    • Pull GPIO0 high or leave floating to disable power for the ZOE-M8Q (default state)
    • Pull GPIO0 low to enable power for the ZOE-M8Q

Please remember that the smôl GPIO pins use waterfalling. The Arduino digital pin number for GPIO0 will depend on which Processor Board you are using and where the ZOE-M8Q is placed in the smôl stack. Please consult the smôl Hookup Guide for more details.

Arduino Example: Get Position

If you are using the smôl ESP32 Processor Board, you are going to want to install the CP210x USB Driver and Arduino Boards Package for the ESP32 first. Please see the smôl ESP32 Hookup Guide for more details.

The smôl ZOE-M8Q GNSS peripheral board is fully compatible with the SparkFun u-blox GNSS Arduino Library. You can install the library through the Arduino IDE Library Manager by searching for SparkFun u-blox GNSS. Alternatively, you can grab the library from GitHub or can download it as a zip file by clicking the button below:

The following example is based on Example3_GetPosition from the u-blox GNSS library. The only difference is the two extra lines of code which pull GPIO0 low to enable power for the ZOE-M8Q. Upload the code onto your processor board and open the Serial Monitor or a terminal emulator at 115200 baud to see the output.

#include <Wire.h> //Needed for I2C to GNSS

#include <SparkFun_u-blox_GNSS_Arduino_Library.h> //http://librarymanager/All#SparkFun_u-blox_GNSS

void setup()

  Serial.println("SparkFun u-blox example for the smôl ZOE-M8Q");

  // GNSS power is disabled by default on the smôl ZOE-M8.
  // We need to pull GPIO0 low to enable the power.
  // On the smôl ESP32, GPIO0 is connected to digital pin 27.
  // smôl uses waterfalling:
  //  If you have an intermediate smôl board between the ESP32 and the ZOE-M8Q
  //  and that board also uses GPIO0, then the ZOE-M8Q's power enable will be connected
  //  to GPIO1 instead which is digital pin 26 on the smôl ESP32.
  pinMode(27, OUTPUT);
  digitalWrite(27, LOW); // Pull GPIO0 (digital pin 27) low to enable power for the ZOE-M8Q

  delay(1000); // Give the ZOE-M8Q some time to power up


  //myGNSS.enableDebugging(); //Uncomment this line to enable helpful debug messages on Serial

  if (myGNSS.begin() == false) //Connect to the u-blox module using Wire port
    Serial.println(F("u-blox GNSS not detected at default I2C address. Please check wiring. Freezing."));
    while (1);

  myGNSS.setI2COutput(COM_TYPE_UBX); //Set the I2C port to output UBX only (turn off NMEA noise)
  myGNSS.saveConfigSelective(VAL_CFG_SUBSEC_IOPORT); //Save (only) the communications port settings to flash and BBR

void loop()
  //The module only responds when a new position is available

  Serial.print(" ");

  Serial.print(F(" Lat: "));

  Serial.print(F(" Long: "));
  Serial.print(F(" (degrees * 10^-7)"));

  Serial.print(F(" Alt: "));
  Serial.print(F(" (mm)"));

  Serial.print(F(" SIV: "));



If the smôl ZOE-M8Q does not appear to be working, have you remembered to pull its GPIO0 signal low to enable the power? By default, power for the ZOE-M8Q is disabled. Pulling GPIO0 low enables the power.

If you are connecting to the smôl ZOE-M8Q via the smôl Header - without a Processor Board - you will need to tie the correct GPIO signal to GND with a jumper wire.

The Molex Flexible GNSS Antenna - u.FL is designed to work without a ground plane. It works best when positioned at least 40mm away from a ground plane. You will get little or no signal if: you stick the antenna to a metal enclosure, or position the antenna close to your battery or circuit boards. Position the antenna in clear space for best results. Please refer to the antenna Application Specification for more details.

Not working as expected and need help? SparkX products are rapidly produced to bring you the most cutting edge technology as it becomes available. These products are tested but come with no guarantees. Live technical support is not available for SparkX products. Head on over to our forum for support or to ask a question and we will get back to you as soon as we can.

Resources and Going Further

For more information about the smôl ZOE-M8Q Peripheral Board, check out the following links:

smôl ZOE-M8Q Documentation:

smôl Documentation: