# Availability of fdcan drivers for libcanard on newer STM32 boards?

**URL:** <https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023>\
**Category:** Libcanard\
**Created:** [November 10, 2023, 9:19pm UTC](https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023 "2023-11-10T21:19:36Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![gribov42](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/gribov42/32/1520_2.png) [@gribov42](https://forum.opencyphal.org/u/gribov42)\
**Post date:** [November 10, 2023, 9:19pm UTC](https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023/1 "2023-11-10T21:19:36Z")

</div>

Hello,  
I’m working on a project, and was implementing a libcanard stack on an STM32GXX chip, which only offers fdcan. Already quite far into the implementation I realized that libcanard platform software only offers bxcan drivers.

I’ve seen mentions (from well over a year ago) in various forum posts that an fdcan driver may be in the works, but I’m not seeing any actual implementation. I was wondering if there’s a driver, or even maybe some sort of half-finished effort at one. I may have a go at solving this, but currently trying to find the fastest path to get this working.

---

<div class="post-metadata">

**Author:** ![finwood](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/finwood/32/536_2.png) [@finwood](https://forum.opencyphal.org/u/finwood)\
**Post date:** [November 20, 2023, 4:52pm UTC](https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023/2 "2023-11-20T16:52:43Z")

</div>

Hi Alex,

although not publicly advertised yet, we have something operational [here](https://gitlab.com/starcopter/embedded/shared-utilities/-/blob/main/canard/fdcan.c). A few notes:

- the implementation is proven in flight, but might be missing documentation in places
- the FDCAN driver is built around a cobbled-together FreeRTOS transport worker task, which might explain a few design choices
- A reference project using this driver and FreeRTOS interface can be found [here](https://gitlab.com/starcopter/embedded/g4-nucleo), but it’s not directly executable on its own. Might be worth a look for reference, though
- the driver is MIT licensed

Hope this helps!

---

<div class="post-metadata">

**Author:** ![gribov42](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/gribov42/32/1520_2.png) [@gribov42](https://forum.opencyphal.org/u/gribov42)\
**Post date:** [November 20, 2023, 5:35pm UTC](https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023/3 "2023-11-20T17:35:03Z")

</div>

Thank you, this is very helpful, I’ll check it out!

---

<div class="post-metadata">

**Author:** ![jackorton32](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/jackorton32/32/1386_2.png) [@jackorton32](https://forum.opencyphal.org/u/jackorton32)\
**Post date:** [November 21, 2023, 3:42pm UTC](https://forum.opencyphal.org/t/availability-of-fdcan-drivers-for-libcanard-on-newer-stm32-boards/2023/4 "2023-11-21T15:42:21Z")

</div>

Hi @gribov42

I have a (mostly) working example of the 107 Systems arduino cyphal implementation on an stm32g4.

Im busy writing up documentation, so there isn’t much there currently, but please have a look at the code on GitHub here;

> **[GitHub - Drogue-Systems/CAN-BPWRD-107-Arduino](https://github.com/Drogue-Systems/CAN-BPWRD-107-Arduino)**
>
> Contribute to Drogue-Systems/CAN-BPWRD-107-Arduino development by creating an account on GitHub.

The code makes use of a driver called SimpleCAN - I dont have the link to reference to hand right now, but will update this post once I am home.

This might help you get going if you are using the arduino framework on STM32!

Cheers
