Skip to content

Firmware ublox M8

mefistotelis edited this page Jul 30, 2021 · 8 revisions

Table of Contents

Target
Purpose
Versions
Structure
Boot process
OS and Libraries
Flashing
Interfaces

Target

The firmware programs internal flash of the u-blox M8 GNSS chip. Location of this chip:

  • in P3X and P3S it is on GPS Module board
  • in other products, it is on their respective GPS boards

Purpose

The firmware contains configurable operation code for various Global Navigation Satellite Systems: GPS, SBAS, QZSS, GLONASS, Galileo, BeiDou. It also implements a protocol with messages for communication over serial interface. The module can also receive a firmware update via the serial interface, although DJI firmwares never use this ability.

Versions

There are multiple versions released on the u-blox site.

Marking Packages Timestamp Overview
v2.01 n/a 2014-03-14 In a significant change from previous firmware, this firmware supports parallel operation of any two of the supported GNSS systems. It also supports Chinese BeiDou system for the first time.
v3.01 n/a 2016-01-25 This firmware supports parallel operation of any two of the supported GNSS systems. It also supports Galileo for the first time.

All P3X and P3S drones were produced with v2.01 firmware.

Structure

The firmware is uncompressed and unencrypted. It starts with a header recognized by "UBX" magic value which contains parameters for the Flash Firmware Update Tool.

Boot process

No analysis of the booting procedure were performed.

OS and Libraries

No analysis of the firmware content were performed.

Flashing

The firmware cannot be flashed by DJI firmware updates. It can only be flashed by Flash Firmware Update Tool provided by u-blox within the u-center GNSS evaluation software.

The flashing requires only serial connection to the chip, and a firmware file downloaded from u-blox website. It can be easily done with USB-to-TTL converter (aka FTDI interface) which supports 3.3V communication.

Interfaces

The firmware contains two external interfaces.

GNSS radio interface

The radio output is connected to a 1575MHz patch antenna, stimulated from coaxial line (though the cable is very short). The copper patch has a cut corner which makes the antenna wideband, allowing it to support many GNSS standards. The standards are implemented in software, so support of new protocols is possible via firmware update.

Serial interface with interrupt

To communicate with the Flight Controller, serial interface is used. In addition to standard UART, there is an interrupt line present. The module communicates at 9600 baud after startup, but is then reconfigured to 115200 8N1. The following UBX messages are being used:

Message Description
NAV-SOL Navigation Solution Information
NAV-SAT Satellite Information
NAV-STATUS Receiver Navigation Status
NAV-POSLLH Geodetic Position Solution
NAV-DOP Dilution of precision
NAV-VELNED Velocity Solution in NED
NAV-TIMEUTC UTC Time Solution

See u-blox M8 Receiver Description Including Protocol Specification for details on the messages.

Clone this wiki locally