-
Notifications
You must be signed in to change notification settings - Fork 427
Firmware ublox M8
Target
Purpose
Versions
Structure
Boot process
OS and Libraries
Flashing
Interfaces
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
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.
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.
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.
No analysis of the booting procedure were performed.
No analysis of the firmware content were performed.
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.
The firmware contains two external interfaces.
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.
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.
This page is created by drone enthusiasts for drone enthusiasts.
If you see a mistake, or you know more about specific subject, or you see an area for improvement for the wiki - create an issue in this project and attach your patch (or describe the change you propose).