Where to find great example of using UAVCAN in embedded system?

Hi! I just read uavcan specification and my head is little overwhelmed.
I started googling and found simple example of using uavcan with stm32f103 and FreeRTOS.
But this is very simple example of the application without any good design principles.

Is there are any information about making solid code on simple MCUs like STM32f103 with FreeRTOS?

1 Like

While having high-quality examples would certainly be helpful, questions of general software engineering practices are way outside of the scope of this project. ¯\_(ツ)_/¯

Libcanard in particular is simple enough to allow one to design an application around it in an arbitrary way, so it should not be overly constraining. It is certainly not a framework, it does not seem to require an extensive documentation of best development practices.

Having a solid skeleton for embedded application will make using UAVCAN easier.
In my undestanding, if someone choose to use UAVCAN, application will be developed with UAVCAN in center.
And if UAVCAN is the main part, than it will be very useful to have some example application at least.

Idea of usage is something like this:

  1. Clone skeleton application
  2. Define ids, values and so on
  3. Delete not needed code
  4. Add implementation for needed functionality (sensor reading or something else).

I am talking about simple “sensor” nodes.

Any ideas?

What you are saying makes sense. If you could draft up a sensible example application, we would gladly instruct neophytes to use that as a starting point. If you need hardware for that work, please PM me (I speak Russian).

Thanks for the answer, but I am kinda new to embedded development.
I can make this skeleton, but I don’t know great how great embedded program should look like.
Should it use RTOS? What platform is preferred?

Requirements vary from application to application. Seeing as Libcanard is intended for simple nodes, my guess is that most applications are unlikely to use any RTOS. As for the platform – ideally, the demo should be portable; otherwise, I would consider using NXP S32K: https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/s32-automotive-platform/32-bit-automotive-general-purpose-microcontrollers:S32K. Unlike STM32, S32K is designed with safety-critical applications in mind, their MCUs are ASIL-B qualified, and they support CAN FD.

1 Like

You have mentioned you found a simple example of UAVCAN between STM32 with FREERTOS? Can you please share the link of that? I am working on a similar task but partly successful. Maybe this example could help in completing it.

1 Like

Thank you. If I am successful in my approach , I will keep you posted.
Happy coding.