Quick Answer
The Beitian BN-880 is a u-blox NEO-M8N GPS with an HMC5883L compass on one board, and it is the budget GPS we sell most often for Pixhawk and ArduPilot builds. Wire 5V, GND, TX, RX and the I2C pair, set GPS_TYPE = 1 (UBlox) and GPS_RATE = 38400 in ArduPilot, and it locks inside a minute from a cold start.
What the BN-880 Actually Is
Inside the plastic case is a u-blox NEO-M8N receiver tracking GPS, GLONASS, Galileo and BeiDou on 72 channels, plus an HMC5883L three-axis magnetometer on the same I2C bus. That combination is why it ends up on so many BN-880 GPS & Compass Modules we ship out the door for ArduPilot builds — one cable gives you position and heading, with no extra wiring for the compass.
The M8N is the same chip family used in Holybro's older M8N modules. The difference is price: a BN-880 is roughly a quarter of what a name-brand M9N or M10 costs. The trade-off is cold-start time and update rate. The module runs at 1 to 10Hz (1Hz by default — bump it in u-center), draws about 50mA at 5V, and cold-starts in around 26 seconds on a clear day. An M10 module fixes in single-digit seconds.
The Wiring Mistake We See Every Week
The BN-880 exposes six pins — SDA, GND, TX, RX, VCC, SCL — on a 1.25mm-pitch header, and ships with a pre-crimped six-core cable. The pins are fixed, but the wire colours vary by batch, so never wire by colour alone. Trace the pinout from the module's pinout image first. The mapping onto a Pixhawk GPS port is:
| BN-880 pin | Signal | Pixhawk / Cube port |
|---|---|---|
| VCC | 5V in | GPS port +5V |
| GND | Ground | GPS port GND |
| TX | GPS data out | GPS port RX |
| RX | GPS data in | GPS port TX |
| SCL | Compass clock (I2C) | I2C SCL |
| SDA | Compass data (I2C) | I2C SDA |
The single mistake we keep seeing in workshop repairs is crossing TX and RX. GPS TX goes to the flight controller's RX, not the other way around. If Mission Planner shows the GPS at 0 satellites and the HDOP never moves, swap the TX and RX lines before you do anything else.
The compass pair (SCL and SDA) is optional if you only want position, but on a Pixhawk build you almost always want both. Use the dedicated Anti-Interference GPS Mast Mount to lift the module clear of the PDB and ESC current traces — the HMC5883L is sensitive, and a compass that lives flat on the frame will drift every time you throttle up.
ArduPilot and iNav Configuration
Once wired, open Mission Planner and set GPS_TYPE = 1 (UBlox) and confirm SERIALx_BAUD = 38 (38400) on the port the GPS is plugged into. After a reboot the satellite count climbs within a minute on a clear day. Run the compass calibration through Mission Planner's wizard, then check COMPASS_DEV_ID shows the HMC5883L on externals 1 and 2.
For Betaflight and iNav the path is shorter: plug into a free UART, set baud to 38400 in the Ports tab, and the firmware autodetects UBX. The BN-880 ships in NMEA by default, but both Betaflight and iNav negotiate it to UBX automatically.
When We'd Upgrade
The BN-880 is the right call for a hobby quad, a fixed-wing cruiser, or a learning ArduPilot build. We stop recommending it for two jobs: RTK survey, where an L1-only receiver cannot deliver centimetre accuracy, and fast long-range where you want sub-second rescues. For RTK, an Emlid Reach or a Holybro F9P module is the floor. For a modern budget upgrade with faster locks and better multi-path rejection, we reach for the FlyFishRC M10QMC-5883L, which uses the newer M10 chip and matches the same HMC5883L compass the BN-880 ships with. The full GPS modules collection covers both budget and RTK options.
If you want the full upgrade path laid out, our GPS modules for drones guide compares the BN-880 against M9N and M10 units across price and use case.
FAQ
Q: Does the BN-880 work with Pixhawk 4 and Cube Orange?
A: Yes. It uses the standard u-blox protocol over UART and exposes the HMC5883L compass on I2C, so any Pixhawk-standard flight controller with a GPS port and external I2C bus will recognise it. See our Pixhawk 6 vs 6C vs 6X vs Mini comparison for which controller suits your build.
Q: How many satellites should I see?
A: A healthy BN-880 on a clear UK day locks 12 to 18 satellites within a minute. If you are stuck below 8, the cause is almost always placement, not the module — check our GPS placement guide before assuming the unit is faulty.
Q: What is the difference between BN-880 and BN-220?
A: The BN-220 is the same M8N GPS without the compass, in a smaller case. Use it on airframes that already have an external compass or where weight matters more than heading data.