DroneCAN library for Arduino on STM32, bundling everything needed to send and receive DroneCAN messages from an STM32-based Beyond Robotix node (or any STM32 Arduino target).
src/— Beyond Robotix DroneCAN wrapper: theDroneCANclass, parameter storage, firmware update, and board-specific CAN drivers (L4 bxCAN, H7 FDCAN).dronecan/— DSDL-generated message types (uavcan.protocol.*,uavcan.equipment.*,dronecan.*). Regenerate viatools/dronecan/in the mono workspace.libcanard/— upstream libcanard CAN transport.acanfd-stm32/— FDCAN driver for H7, vendored from pierremolinaro/acanfd-stm32. Examples and extras dropped; source + license retained.
Add to your platformio.ini:
lib_deps = https://github.com/BeyondRobotix/libArduinoDroneCAN.git#v1.0.0Pin to a specific tag for reproducible builds. To track main, drop the #vX.Y.Z. After bumping the pin, force a refresh with pio pkg uninstall --library libArduinoDroneCAN -e <env> or delete the project's .pio/libdeps/.
- MicroNode (STM32L431, bxCAN) —
-DCANL431 - CoreNode (STM32H743, FDCAN) —
-DCANH7 -DACANFD - MicroNodePlus (STM32H723, FDCAN) —
-DACANFDplus the H723 variant identifiers
The Beyond Robotix br-stm32 platform sets these defines automatically per board.
- Arduino-DroneCAN — reference application + HIL test suite.
- BR_bootloader — PlatformIO + Arduino bootloader; uses this library for the DroneCAN firmware-update server.
Manual cut-a-tag: edit, commit, git tag vX.Y.Z, push tags. Consumers bump their lib_deps pin.