# DroneCAN M9N/M8N

# Overview

# Overview

<div>> 🖼️ _[Image — to be added]_ > 🖼️ _[Image — to be added]_</div>

**Descriptions：**

The Holybro DroneCAN GPS has an UBLOX M8N or M9N module, BMM150 compass, tri-colored LED indicator. It has adopted the DroneCAN protocol for communication. It is better in dealing with electromagnetic interference compare to serial connection, making it more reliable. It does not occupy any serial port of the flight controller, and different CAN devices can be connected to the same CAN bus via a CAN splitter board.

#### **Features and Specifications:**

<table><thead><tr><th width="189.40239857611564"></th><th width="186.97229978352215">DroneCAN M8N &#x26; M9N</th></tr></thead><tbody><tr><td>GNSS Receiver</td><td>Ublox NEO M8N</td></tr><tr><td>Number of Concurrent GNSS</td><td>M8N - Up to 3 GNSS<br>M9N - Up to 4 GNSS</td></tr><tr><td>Processor</td><td>STM32G4 (170MHz, 512K FLASH)</td></tr><tr><td>Compass</td><td>BMM150 or IST8310</td></tr><tr><td>Frequency Band</td><td>GPS: L1C/A<br>GLONASS: L10F<br>Beidou: B1I<br>Galileo: E1B/C</td></tr><tr><td>GNSS Augmentation System</td><td>SBAS: WAAS, EGNOS, MSAS, QZSS</td></tr><tr><td>Navigation Update</td><td>5Hz Default(10Hz MAX)     </td></tr><tr><td>Navigation sensitivity</td><td> –167 dBm</td></tr><tr><td>Cold starts</td><td>~ 26s</td></tr><tr><td>Accuracy</td><td>2.5m</td></tr><tr><td>Speed Accuracy</td><td>0.05 m/s</td></tr><tr><td>Max # of Satellites</td><td>22+</td></tr><tr><td>Default CAN BUS data rate</td><td>1MHz</td></tr><tr><td>Communication Protocol</td><td>DroneCAN @ 1 Mbit/s</td></tr><tr><td>Firmware Support</td><td>PX4, Ardupilot</td></tr><tr><td>Port Type</td><td>GHR-04V-S</td></tr><tr><td>Antenna</td><td>25 x 25 x 4 mm ceramic patch antenna</td></tr><tr><td>Voltage</td><td>4.7-5.2V</td></tr><tr><td>Power consumption</td><td>Less than 200mA @ 5V</td></tr><tr><td>Temperature</td><td>-40~80C</td></tr><tr><td>Size</td><td>Diameter: 54mm<br>Thickness: 14.5mm</td></tr><tr><td>Weight</td><td>36g</td></tr><tr><td>Cable Length</td><td>26cm</td></tr><tr><td>Other</td><td><ul><li>LNA MAX2659ELT+ RF Amplifier</li><li>Rechargeable Farah capacitance</li><li>Low noise 3.3V regulator</li><li>26cm cable included</li></ul></td></tr></tbody></table>

# Pinout

# Pinout

> 🖼️ _[Image — to be added]_

> ℹ️ **Info**
>
> Pinout is the same for all Holybro DroneCAN GPS

# Dimension

# Dimension

> ℹ️ **Info**
>
> DroneCAN M9N & M8N has the same dimensions

> 🖼️ _[Image — to be added]_

# DroneCAN GPS Setup Guide

# DroneCAN GPS Setup Guide

## Using Ardupilot Firmware：

#### **Using one DroneCAN GPS：**

Connect the 4-pin CAN cable connector to the CAN1 or CAN2 port on the flight controller.

Power the flight controller and connect it to Mission Planner. Go to "Config/Tuning > Full Parameter List" and modify the following parameters:

**CAN\_D1\_PROTOCOL: 1** set virtual driver of CAN1 to DRONECAN

**CAN\_D2\_PROTOCOL: 1** set virtual driver of CAN 2 to DRONECAN

**CAN\_P1\_DRIVER: 1** set this parameter to enable the CAN1 bus

**CAN\_P2\_DRIVER: 1** set this parameter to enable the CAN2 bus

**GPS\_TYPE: 9** set the communication protocol type of GPS 1 to DRONECAN

**NTF\_LED\_TYPES: 231** Set to DRONECAN for LED type

There is no external safety switch. Set BRD\_SAFETYENABLE as 0 to disable the safety switch, or connect an physical external safety switch

Click "Write Params" when done. CAN functions will be available after rebooting the flight controller.

#### **Using two DroneCAN GPS**

As the document is written, the firmware used for flight control is ArduCopter 4.1.5, which automatically allocates 2 node IDs for the GPSs; you can perform the following operation directly.

Connect two CAN cables to the CAN1 and CAN2 ports of the flight controller

Power up the flight controller and connect to Mission Planner. Go to "Config/Tuning > Full Parameter List" and modify the following parameters:

**CAN\_D1\_PROTOCOL: 1** set virtual driver of CAN1 to DRONECAN

**CAN\_D2\_PROTOCOL: 1** set virtual driver of CAN 2 to DRONECAN

**CAN\_P1\_DRIVER: 1** set this parameter to enable the CAN 1 bus

**CAN\_P2\_DRIVER: 1** set this parameter to enable the CAN 2 bus

**GPS\_TYPE: 9** set the communication protocol type of GPS 1 to DRONECAN

**GPS\_TYPE2：9** sets the communication protocol type of GPS 2 to DRONECAN

**NTF\_LED\_TYPES: 231** Set to DRONECAN for LED type

There is no external safety switch on the DroneCAN GPS. You can set BRD\_SAFETYENABLE to 0 to disable the safety switch, or connect a physical external safety switch

Click "Write Params" when done. CAN functions will be available after rebooting the flight controller.

## Using PX4 firmware

Load PX4 firmware into the controller. Connect the 4-pin CAN connector from the DroneCAN GPS to the CAN1 or CAN2 port on the flight control.

Connect to the flight control and set the parameter "UAVCAN\_ENABLE" to "Sensor Automatic Config".

# About DroneCAN

# About DroneCAN

### **DroneCAN**

DroneCAN is the primary CAN protocol used by the ArduPilot and PX4 projects for communication with CAN peripherals. It is an open protocol with open communication, specification, and multiple open implementations.

### Relationship with UAVCAN <a href="#relationship-with-uavcan" id="relationship-with-uavcan"></a>

DroneCAN was created to continue the development of the widely used UAVCAN v0 protocol. This protocol has proven itself as robust and feature rich and has been widely deployed in the commercial drone industry, and enjoys broad support among industry partners. The proposed introduction of the UAVCAN v1 protocol involved changes to UAVCAN that increased complexity and did not offer a smooth migration path for existing deployments. After extended discussions within the UAVCAN consortium, it was decided that the best solution was to continue development of DroneCAN v0 under the name DroneCAN.

### **DroneCAN Key Features** <a href="#key-features" id="key-features"></a>

The first version of DroneCAN, known as DroneCAN v1, is identical to the existing UAVCAN v0 protocol. This means that the large number of existing UAVCAN v0 devices used throughout the drone industry are already DroneCAN v1 compliant. Features inherited from UAVCAN v0 include:

* Detailed protocol specification
* DSDL message description language for message description
* DNA (dynamic node allocation) for assignment of CAN node IDs
* Multiple open DSDL compilers that produce C and C++ bindings
* Rich python implementation
* Feature rich graphical user interface for diagnostics and device configuration
* Mature implementations in ArduPilot and PX4
* [AP\_Periph](https://ardupilot.org/dev/docs/ap-peripheral-landing-page.html) and [PX4 can node](https://docs.px4.io/master/en/uavcan/) multiple toolkits for easy creation of feature rich peripherals

### Continued Evolution <a href="#continued-evolution" id="continued-evolution"></a>

DroneCAN is a continually evolving protocol. Starting with DroneCAN v1, the protocol will evolve to add new features to assist in the widespread adoption of CAN throughout the UAV industry. The DroneCAN project is committed to ensuring this evolution is done in a manner that retains compatibility with existing DroneCAN devices. Key features planned for DroneCAN in the near future:

* Support for FDCAN, allowing for higher data rates and larger frame sizes
* A node capability message to allow the DNA server to determine both the hardware and software capabilities of connected nodes, to facilitate smooth transitions to updated protocol versions
* Support for extending message definitions while retaining compatibility with existing implementations
* A comprehensive rework of existing DSDL message structures to improve efficiency and flexibility

### **Development** <a href="#development" id="development"></a>

The DroneCAN project has an active development community.

* Discussions on Discord at <https://dronecan.org/discord>
* Development on GitHub at <https://github.com/DroneCAN>

More DroneCAN Information: <https://dronecan.github.io/>

# Downloads

# Downloads

### 3D CAD File

> 📎 _[Downloadable file — to be added]_