Instructions
Wiring
The YARI GNSS connects to the flight controller’s CAN port using a 4-pin JST-GH cable. Using a cable with a twisted pair is recommended for optimal CAN bus performance.
Mounting
The recommended mounting orientation is with the connectors facing the rear of the vehicle. You may mount the GNSS module anywhere on the airframe, but you must specify its position relative to the vehicle center of gravity (CoG) during configuration. Refer to the Autopilot Parameter Configuration sections below for both ArduPilot and PX4.
ArduPilot Firmware
YARI GNSS modules ship with a recent ArduPilot Peripheral Firmware pre-installed. If you prefer to build and flash the latest firmware manually, see the instructions ... section.
Autopilots such as YARIV6X running ArduPilot 4.0+ expose two USB interfaces - Ardupilot MAVLink and Ardupilot SLCAN. If you do not see two separate COM ports in Mission Planner, see ArduPilot’s Troubleshooting Composite Connections
ArduPilot supports updating DroneCAN device parameters (e.g., node ID, barometer enable/disable, etc.) and firmware directly over MAVLink. So only the MAVLink port is needed.
Updating Peripheral Parameters
Option 1: Using DroneCAN GUI Tool
Note: This is possible only of you're connected to autopilot like YARIV6X runnning Ardupilot. Not possible with Px4 Autopilot without extra adapter hardware.
- Select the MAVLink COM port, click OK

- Set the Local Node ID. Default value is 127.

- Double-click the device (YARI GNSS with NID 125) to open its properties
- Click Fetch All

- Double-click any parameter to edit it

- Enter the new value → click Send
- Click Fetch All again to verify the updated value
Option 2: Using Mission Planner
- Open mission Planner and select the MAVLink COM port and connect.
- Go to Setup → Optional Hardware → DroneCAN
- Select MAVLinkCAN1 or MAVLinkCAN2, depending on which CAN port is used

- Click on the node’s Menu
- Select Parameters

- Modify the required parameters → click Write Params

- Reboot the flight controller or power-cycle the CAN peripheral
Common parameters you may change include:
CAN_NODECAN_TERMINATE- Sensor enable/disable settings
Mission Planner includes Update buttons for DroneCAN peripherals, but in our testing these did not work over MAVLink. We recommend using the DroneCAN GUI Tool for firmware updates instead.
Updating Firmware
Using DroneCAN GUI Tool
Firmware updates through DroneCAN GUI Tool are supported only when the device is connected to an ArduPilot-based autopilot (such as YARIV6X). PX4 Autopilot do not expose MAVLink-over-CAN for firmware updates and requires additional adapter hardware.
- Select the COM port corresponding to MAVLink and click OK
- Set the Local Node ID. Default value is 127.
- Double-click the device entry
- Select Update Firmware and choose the firmware
.binfile - Device will enter Software Update mode

- Wait for the write to complete
- On success:
- Mode → “Operational”
- Health → “OK”
- u-blox logs with hardware and firmware version will appear.

Status LEDs Indicator
-
Blue LED blinking
→ Bootloader active (maintenance mode) or firmware update. -
No status LEDs blinking + Safety LED blinking
→ Device is operational and running normally.
Parameter Config in Autopilot
Refer to CAN Bus Setup and DroneCAN Setup on the ArduPilot wiki for more background.
Set the following parameters in Mission Planner (for all parameter tables), then write and reboot the autopilot:
CAN_P1_DRIVER = 1
CAN_D1_PROTOCOL = 1
CAN_P2_DRIVER = 1
CAN_D2_PROTOCOL = 1
GPS1_TYPE = 9
PX4 Firmware
By default, the ArduPilot bootloader is preloaded on the device. PX4 firmware cannot be flashed directly while the ArduPilot bootloader is present. To run PX4:
- Connect to the device using SWD/JTAG
- Perform a full chip erase
- Flash the PX4 CAN bootloader
- Then update the device with the desired PX4 firmware
In DroneCAN GUI Tool, the node name indicates which firmware family is active:
org.ardupilot.YARI_GNSS→ Device is running the ArduPilot bootloader/firmwareorg.px4.YARI_GNSS→ Device is running the PX4 bootloader/firmware
Updating Firmware
Using DroneCAN GUI Tool
Firmware updates through DroneCAN GUI Tool are supported only when the device is connected to an ArduPilot-based autopilot (such as YARIV6X). PX4 Autopilot do not expose MAVLink-over-CAN for firmware updates and requires additional adapter hardware.
Once the PX4 bootloader is installed, the firmware update procedure is identical to the ArduPilot workflow described earlier.
Using SD Card
Use this method only when your flight controller is running PX4 Autopilot. The YARI GNSS will not boot if there is no SD card in the flight controller when powered on.
- Copy the firmware
*.uavcan.binfile to the root directory of the flight controller’s SD card. Use an SD card reader connected to your PC.

- Reinsert the SD card into the autopilot.
- Reboot the flight controller.
- If the update is successful:
- The firmware file will be moved automatically into the
ufw/folder. - The STATUS LEDs will change to indicate progress or completion.
- The firmware file will be moved automatically into the
Status LED Indicators
-
No blue/green/red LEDs
→ No power or no bootloader detected -
All three LEDs blinking
→ Bootloader running; initialization state or during firmware update -
Green LED blinking
→ Device is operational
Parameter Config in the Autopilot
You must configure the required DroneCAN parameters and set the sensor position offsets of the GNSS module from the vehicle’s center of gravity (CoG). Use QGroundControl or Mission Planner and apply the settings below, then save and reboot the autopilot.
UAVCAN_ENABLE = 2 (Enable DroneCAN with dynamic node allocation)
EKF2_GPS_CTRL → Set bit 3 = True (Enable GPS yaw fusion)
UAVCAN_SUB_GPS = True
UAVCAN_SUB_MAG = True
UAVCAN_SUB_BARO = True
EKF2_GPS_POS_X (forward +, backward –)
EKF2_GPS_POS_Y (right +, left –)
EKF2_GPS_POS_Z (down +, up –)
Updating Peripheral Parameters
The following parameters apply to the YARI GNSS DroneCAN node. They can be updated via DroneCAN GUI Tool or QGroundcontrol:
-
CANNODE_NODE_ID0→ dynamic allocation (default)1–127→ static node ID
-
CANNODE_TERM1→ enable built-in 120 Ω terminator (use only if this is the final node on the bus)0→ termination disabled
"Add image"
CAN Termination
Correct CAN bus termination is essential for reliable communication. A CAN bus must have exactly two termination resistors of 120 Ω each — one at each end of the bus. Most Pixhawk-class carrier boards, including the YARI PAB Carrier Board, already include a fixed 120 Ω termination resistor near the CAN connector. Therefore, only one additional terminator must be enabled on the entire bus.
Devices such as the YARI GNSS include a software-configurable termination resistor (via CANNODE_TERM). Enable it only if the device is at the far end of the CAN bus. The alternative to software termination is inserting an external 120 Ω resistor at the last port in the CAN chain.
CAN must not be wired in a pure star topology. Star wiring creates reflections and impedance discontinuities, leading to unreliable communication.
Daisy-chaining CAN peripherals is possible only if each peripheral device provides two CAN ports. To simplify device design, YARI GNSS uses a single-port CAN interface, so daisy-chaining is not possible.
Instead, the recommended approach is to use the YARI CAN Expander Board to maintain proper bus integrity. It simplifies correct bus wiring and termination.
- Connect the first port of the CAN Expander to the flight controller CAN port.
- Connect each CAN peripheral to the expander using short stubs <30 cm for signal integrity.
- Enable the termination resistor only at the last peripheral (via
CANNODE_TERM=true)
The YARI CAN Expansion Board is wired in a linear (bus) topology from left to right.
Some 3rd-party CAN expansion boards use non-linear or star wiring, which is not suitable for proper CAN bus operation and should be avoided for this use case.
Pixhawk V6X–based flight controllers include two separate CAN ports, each connected to different CAN buses. These two ports must not be connected to the same expansion board. If you need to expand both CAN buses, you must use two separate CAN expansion boards — one for each bus.