EFS CAN-DShot ESC Adapter Board Firmware

board_photo.jpg
Photo of the CAN-DShot ESC Adapter Board

Background

The CAN-DShot ESC Adapter Board is an EFS & EE collaboration project. EE makes the board, and EFS writes the firmware for it. The final application of this board is to control the DShot ESCs on a fixed-wing aircraft over CAN protocol. To make that happen, EFS needs to work on firmware that converts the ESC throttle values (transmitted by CAN Bus from the flight controller) to the DShot signal that ESCs understand.

efs_can_dshot_wiring.svg
Example Wiring Diagram

Table of Contents

Important Links for the CAN-DShot ESC Adapter Board

Using the CAN-DShot ESC Adapter Board

Board Configuration

Follow these steps to configure and flash firmware to the CAN-DShot ESC adapter board.

  1. Clone the can-esc firmware repository.

  2. Configure board settings in Core/Inc/node_settings.h

  3. Attach STLink to connector on the underside of the board (see https://uwarg-docs.atlassian.net/wiki/x/XICRlw).

  4. Build and flash firmware to board using STM32CubeIDE or STM32Cube Programmer.

Flight Controller Configuration in Mission Planner

To configure the flight controller to output ESC signals over CAN protocol, follow these steps:

  1. Install ArduPilot Mission Planner.

  2. Click “Config” > “Full Parameter List“ and find can_D1_UC_ESC_BM (it should be under can > D1 > ESC)

  3. Select can_D1_UC_ESC_BM > set bitmask

  4. Toggle the appropriate bits (e.g. for 4-rotor, enable bits 0, 1, 2, 3).

  5. Click “Write Parameters“ and confirm to save changes.

Don’t forget to revert your changes in case the next person is working with a non-CAN ESC!!

Development

For more information about developing this board and the implementation of its firmware, please see Developing the EFS CAN-DShot ESC Adapter Board Firmware.