Skip to content


ARK CANnode is an open source generic DroneCAN node that includes a 6 degree of freedom IMU. Its main purpose is to enable the use of non-CAN sensors (I2C, SPI, UART) on the CAN bus. It also has PWM outputs to expand a vehicle's control outputs in quantity and physical distance.


Where to Buy

Order this module from:

Hardware Specifications

  • Open Source Schematic and BOM
  • Sensors
    • Bosch BMI088 6-Axis IMU or Invensense ICM-42688-P 6-Axis IMU
  • STM32F412CGU6 MCU
    • 1MB Flash
  • Two Pixhawk Standard CAN Connectors
    • 4 Pin JST GH
  • Pixhawk Standard I2C Connector
    • 4 Pin JST GH
  • Pixhawk Standard UART/I2C Connector (Basic GPS Port)
    • 6 Pin JST GH
  • Pixhawk Standard SPI Connector
    • 7 Pin JST GH
  • PWM Connector
    • 10 Pin JST JST
    • 8 PWM Outputs
    • Matches Pixhawk 4 PWM Connector Pinout
  • Pixhawk Standard Debug Connector
    • 6 Pin JST SH
  • Small Form Factor
    • 3cm x 3cm x 1.3cm
  • LED Indicators
  • USA Built
  • Power Requirements
    • 5V
    • Current dependent on connected peripherals

Hardware Setup


The ARK CANnode is connected to the CAN bus using a Pixhawk standard 4 pin JST GH cable. For more information, refer to the CAN Wiring instructions.

Firmware Setup

ARK CANnode runs the PX4 DroneCAN Firmware. As such, it supports firmware update over the CAN bus and dynamic node allocation.

ARK CANnode boards ship with recent firmware pre-installed, but if you want to build and flash the latest firmware yourself see PX4 DroneCAN Firmware > Building the Firmware.

  • Firmware target: ark_cannode_default
  • Bootloader target: ark_cannode_canbootloader

Flight Controller Configuration

Enable DroneCAN

In order to use the ARK CANnode board, connect it to the Pixhawk CAN bus and enable the DroneCAN driver by setting parameter UAVCAN_ENABLE to 2 for dynamic node allocation (or 3 if using DroneCAN ESCs).

The steps are:

Once enabled, the module will be detected on boot.

DroneCAN configuration in PX4 is explained in more detail in DroneCAN > Enabling DroneCAN.

Enable Sensors

You will need to enable the subscriber appropriate for each of the sensors that are connected to the ARK CANnode.

This is done using the the parameters named like UAVCAN_SUB_* in the parameter reference (such as UAVCAN_SUB_ASPD, UAVCAN_SUB_BARO etc.).

Ark CANNode Configuration

On the ARK CANnode, you may need to configure the following parameters:

CANNODE_TERMCAN built-in bus termination.

LED Meanings

You will see both red and blue LEDs on the ARK CANnode when it is being flashed, and a solid blue LED if it is running properly.

If you see a solid red LED there is an error and you should check the following:

  • Make sure the flight controller has an SD card installed.
  • Make sure the ARK CANnode has ark_cannode_canbootloader installed prior to flashing ark_cannode_default.
  • Remove binaries from the root and ufw directories of the SD card and try to build and flash again.