Skip to main content

MicoAir GPS Module User Manual

A GPS module is what lets an autopilot know where it is, and therefore what makes position hold, return-to-home and waypoint missions possible at all. The modules on this page are the ordinary, everyday kind: a GNSS receiver and a magnetic compass in one small puck, on one cable, for a price that makes fitting one to every build reasonable.

Four models share the same connector, the same wiring and the same setup procedure, differing in receiver chip, size and update rate:

MG-A01M10G-5883MG-902MG-903
GNSS chipu-blox M10050u-blox M10050u-blox M9140u-blox M9140
CompassQMC5883LQMC5883LQMC5883LIST8310
Concurrent constellations3344
Navigation update rate10 Hz5 Hz25 Hz25 Hz
Max satellites32323232
Tracking sensitivity−167 dBm−167 dBm−167 dBm−167 dBm
Size25 × 25 × 8 mm20 × 20 × 8 mm25 × 25 × 8 mm20 × 20 × 8 mm
Weight12 g7 g12 g7 g

All four have on-board flash, speak NMEA and UBX, and use an SH1.0-6P connector.

What "concurrent constellations" means

There are several independent satellite navigation systems in orbit — GPS (US), GLONASS (Russia), BeiDou (China), Galileo (EU) and QZSS (Japan). A receiver that can track more of them at once sees more satellites, which matters most where the sky is partly blocked: near buildings, under trees, in a valley. Three concurrent is fine for open-field flying; four helps in cluttered places.

Satellite signals received

  • MG-A01 / M10G-5883 — GPS L1 C/A; GLONASS L1OF; BeiDou B1I/B1C; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A
  • MG-902 / MG-903 — GPS L1 C/A; GLONASS L1OF; BeiDou B1I; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A

Which one should you buy?

  • M10G-5883 — the default choice. Small, light, 20 × 20 mm, and the M10 generation's low power draw. A 5 Hz position update is more than enough for a multirotor flying waypoints.
  • MG-903 — the same 20 × 20 mm footprint with the M9140's four-constellation reception and a 25 Hz update rate, plus the IST8310 compass, which is the magnetometer most ArduPilot builders prefer. The upgrade pick at this size, and a drop-in replacement for older M9N-5883 modules.
  • MG-A01 — the 25 × 25 mm version of the M10G-5883, with a bigger antenna patch and a 10 Hz update rate. Larger antenna, slightly better reception, more space needed on the airframe.
  • MG-902 — the 25 × 25 mm M9140 module with a QMC5883L compass.

Where to buy

Ships from Canada with free Canada-wide shipping:

Need centimetre accuracy instead of metre accuracy? See the MA-RTK series and What Is RTK?.

The modules

M10G-5883

MicoAir M10G-5883 GPS module with QMC5883L compass, 20 x 20 mm

ItemSpecification
GNSS chipu-blox M10050
Compass chipQMC5883L
ConstellationsGPS L1 C/A; GLONASS L1OF; BeiDou B1I/B1C; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A
Concurrent constellations3
Navigation update rate5 Hz
Max satellites32
Tracking sensitivity−167 dBm
Flashon board
ProtocolsNMEA / UBX
Size / weight20 × 20 × 8 mm / 7 g
ConnectorSH1.0-6P

MG-903

MicoAir MG-903 GNSS module with IST8310 compass, 20 x 20 mm

ItemSpecification
GNSS chipu-blox M9140
Compass chipIST8310
ConstellationsGPS L1 C/A; GLONASS L1OF; BeiDou B1I; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A
Concurrent constellations4
Navigation update rate25 Hz
Max satellites32
Tracking sensitivity−167 dBm
Flashon board
ProtocolsNMEA / UBX
Size / weight20 × 20 × 8 mm / 7 g
ConnectorSH1.0-6P

MG-A01

MicoAir MG-A01 M10 GNSS module with compass, 25 x 25 mm

ItemSpecification
GNSS chipu-blox M10050
Compass chipQMC5883L
ConstellationsGPS L1 C/A; GLONASS L1OF; BeiDou B1I/B1C; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A
Concurrent constellations3
Navigation update rate10 Hz
Max satellites32
Tracking sensitivity−167 dBm
Flashon board
ProtocolsNMEA / UBX
Size / weight25 × 25 × 8 mm / 12 g
ConnectorSH1.0-6P

MG-902

ItemSpecification
GNSS chipu-blox M9140
Compass chipQMC5883L
ConstellationsGPS L1 C/A; GLONASS L1OF; BeiDou B1I; Galileo E1B/C; QZSS L1 C/A/S; SBAS L1 C/A
Concurrent constellations4
Navigation update rate25 Hz
Max satellites32
Tracking sensitivity−167 dBm
Flashon board
ProtocolsNMEA / UBX
Size / weight25 × 25 × 8 mm / 12 g
ConnectorSH1.0-6P

Baud rates and protocol

SettingValue
Module factory baud rate (all four)115200
Module factory protocolUBX, NAV-PVT messages
Chip default baud — MG-A01 / M10G-588338400
Chip default baud — MG-902 / MG-9039600

The two rows worth understanding: the chip default and the module default are different numbers. MicoAir configures each module to 115200 before it ships, so 115200 is what you will actually see. The chip default only reappears if the module's saved configuration is wiped — and it can be set back with u-blox’s u-center tool.

In normal use you do not need to touch any of this. ArduPilot and PX4 detect a u-blox receiver and configure the port themselves.

Wiring

All four modules use the same SH1.0-6P connector with the same pin order:

Wiring a MicoAir GPS module to a flight controller — GND, 5V, crossed Rx/Tx, and SCL/SDA for the compass

Module pinConnect toCarries
GNDflight controller GNDpower ground
5Vflight controller 5 Vpower
Rxflight controller UART TxGPS data
Txflight controller UART RxGPS data
SCLflight controller SCLcompass (I2C)
SDAflight controller SDAcompass (I2C)

Two things to hold on to:

Rx and Tx cross. "Rx" means this device receives, so it has to meet the other device's transmit line. Using the supplied cable into a flight controller's dedicated GPS port, this is already done for you.

There are two separate sensors on this cable. The GNSS receiver talks over the UART (Rx/Tx); the compass talks over I2C (SCL/SDA). They are independent — which is exactly why "GPS works, compass missing" is such a common and such a solvable fault.

Compass orientation

The compass inside the module is soldered at some fixed angle to the module's own outline, and the flight controller has no way to know what that angle is. You tell it with an orientation parameter — and the value depends on which module you have, because the four do not all mount their magnetometer the same way round.

These values assume the normal mounting: connector pointing towards the tail, printed label facing up.

Compass orientation parameters for MicoAir GPS modules on ArduPilot, PX4, INAV and Betaflight

Mounting the module at some other angle? The External Compass Orientation guide covers all four rotations and the arithmetic behind them.

FirmwareMG-A01M10G-5883MG-902MG-903
ArduPilotYAW90YAW270YAW90YAW270
PX4ROTATION_PITCH_180ROTATION_ROLL_180ROTATION_PITCH_180ROTATION_ROLL_180_YAW_90
INAVCW 0° flipCW 180° flipCW 0° flipCW 270° flip
BetaflightCW 0° flipCW 180° flipCW 0° flipCW 270° flip
Mount it differently and these values change

If you rotate the module on the airframe — connector to the front, or sideways — the orientation parameter has to change to match. Set it for how the module actually sits, then confirm with a compass calibration and a check that the heading on the map turns the same way the aircraft does.

After setting the orientation, run the normal compass calibration in your ground station. A compass that has never been calibrated on the airframe it is bolted to will be wrong no matter how correct the orientation parameter is.

Mounting

The compass is the reason GPS modules go on masts. A magnetometer measures the Earth's magnetic field, which is weak — and the current flowing through your battery leads and ESCs produces a field that is not weak at all, right next to it.

  • Mount the module as far from power wiring, ESCs and motors as practical, usually on a short mast above the frame.
  • Keep the module's label facing up and its antenna patch with a clear view of the sky — no carbon plate, canopy or battery above it.
  • Keep it away from the video transmitter and its antenna.
  • Fix it rigidly. A module that can rotate under vibration produces a heading that drifts with it.
  • Calibrate the compass after the aircraft is fully assembled, with the battery in its flying position.

Easily confused points

GPS and compass are two different sensors sharing one plug. "No GPS" and "no compass" are different faults with different causes — the UART pair for one, the I2C pair for the other.

The orientation parameter is not the same as the flight controller's orientation. AHRS_ORIENTATION (ArduPilot) describes how the flight controller is mounted. The compass parameter here describes how the compass is mounted. Setting one when you meant the other gives a heading that is wrong in a confusing way.

The chip's default baud rate is not the module's baud rate. The module ships at 115200 regardless of what the chip's datasheet default is.

Satellite count is not fix quality. A module reporting 20 satellites can still be giving a poor position if HDOP is high or the signals are reflections off a nearby building. Watch HDOP and the reported accuracy figures, not just the satellite count.

A compass that has not been calibrated on the airframe is not a working compass, even with the correct orientation set. Both steps are required.

MG-903 is not "MG-902 plus one". They share a GNSS chip, but the 903 is the 20 × 20 mm board with an IST8310 compass while the 902 is the 25 × 25 mm board with a QMC5883L — and their orientation parameters differ accordingly.

Troubleshooting

SymptomWhat to check
No GPS detected at allRx/Tx crossed? Flight controller port set to GPS? Module powered — is the 5 V pin live?
GPS detected, no satellitesTake it outdoors with a clear sky view. A first fix after long storage can take several minutes. Check nothing is above the antenna patch.
GPS fine, compass missingThe I2C pair: SCL and SDA connected, not swapped, and reaching the flight controller's I2C pins.
Heading points the wrong wayWrong orientation value for your specific module — check the table above, remembering the four are not the same.
Heading wanders during throttle changesMagnetic interference from power wiring. Move the module further from the battery leads and ESCs, then recalibrate.
Satellite count good, position unstableLook at HDOP and accuracy rather than satellite count; multipath near buildings and RF noise from a video transmitter both cause this.

Written and maintained by the Robofusion engineering team.