# UAVCAN error while building px4 firmware

Source: https://forum.modalai.com/topic/4653/uavcan-error-while-building-px4-firmware
Category: Flight Core and Legacy VOXL (https://forum.modalai.com/category/9/flight-core-and-legacy-voxl)
Tags: flight-core-v2
Posted: 2025-08-06 04:19:59 UTC by Jetson Nano
Replies: 4 · Views: 1655

## Jetson Nano · 2025-08-06 04:19:59 UTC

https://forum.modalai.com/post/23375

@Alex-Kushleyev @Eric-Katzfey 
Hello guys, I am facing a new error where when I try to use Optical flow by enabling the UAVCAN in the default.px4board, since it was commented out. Whenever try to enable it and build it is giving error. I want to use CAN port on the FC v2 for Optical Flow. It would be of great help , if you could help with this or guide me.

```
FAILED: src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj 

/usr/bin/ccache /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-g++ -DCONFIG_ARCH_BOARD_MODALAI_FC_V2 -DMODULE_NAME=\"uavcan\" -DPX4_BOARD_LABEL=\"default\" -DPX4_BOARD_NAME=\"MODALAI_FC_V2\" -DPX4_MAIN=uavcan_app_main -DUAVCAN_CPP_VERSION=UAVCAN_CPP03 -DUAVCAN_DRIVER=uavcan_stm32h7 -DUAVCAN_IMPLEMENT_PLACEMENT_NEW=1 -DUAVCAN_MEM_POOL_BLOCK_SIZE=48 -DUAVCAN_NO_ASSERTIONS -DUAVCAN_PLATFORM=generic -DUAVCAN_STM32H7_NUM_IFACES=2 -DUAVCAN_STM32H7_NUTTX=1 -DUAVCAN_STM32H7_TIMER_NUMBER=2 -D_SYS_CDEFS_H_ -D_SYS_REENT_H_ -D__CUSTOM_FILE_IO__ -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -I/home/t/p/px4-firmware/boards/modalai/fc-v2/src -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/common/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/lib -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/stm/stm32h7/include -I/home/t/p/px4-firmware/platforms/common -I/home/t/p/px4-firmware/platforms/common/include -I/home/t/p/px4-firmware/src -I/home/t/p/px4-firmware/src/include -I/home/t/p/px4-firmware/src/lib -I/home/t/p/px4-firmware/src/lib/matrix -I/home/t/p/px4-firmware/src/modules -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/armv7-m -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/chip -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/common -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/apps/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/uORB/topics -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/external/Install/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/drivers/uavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan_drivers/posix/include -I/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_drivers/stm32h7/driver/include -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -Os -DNDEBUG -std=gnu++14 -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fdiagnostics-color=always -Wno-stringop-truncation -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -Wreorder -Wno-overloaded-virtual -fno-rtti -fno-exceptions -fno-sized-deallocation -fno-threadsafe-statics -nostdinc++ -Wno-cast-align -Wno-deprecated-copy -Wno-address-of-packed-member -Wframe-larger-than=4096 -Wno-format-security -D__KERNEL__ -MD -MT src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj -MF src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj.d -o src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_servers.cpp.obj -c /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_servers.cpp

In file included from /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_servers.cpp:52:

/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.hpp:79:10: fatal error: uORB/topics/uavcan_parameter_request.h: No such file or directory

   79 | #include <uORB/topics/uavcan_parameter_request.h>

      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

[596/1151] Building CXX object src/dri...rivers__uavcan.dir/uavcan_main.cpp.obj

FAILED: src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj 

/usr/bin/ccache /opt/gcc-arm-none-eabi-9-2020-q2-update/bin/arm-none-eabi-g++ -DCONFIG_ARCH_BOARD_MODALAI_FC_V2 -DMODULE_NAME=\"uavcan\" -DPX4_BOARD_LABEL=\"default\" -DPX4_BOARD_NAME=\"MODALAI_FC_V2\" -DPX4_MAIN=uavcan_app_main -DUAVCAN_CPP_VERSION=UAVCAN_CPP03 -DUAVCAN_DRIVER=uavcan_stm32h7 -DUAVCAN_IMPLEMENT_PLACEMENT_NEW=1 -DUAVCAN_MEM_POOL_BLOCK_SIZE=48 -DUAVCAN_NO_ASSERTIONS -DUAVCAN_PLATFORM=generic -DUAVCAN_STM32H7_NUM_IFACES=2 -DUAVCAN_STM32H7_NUTTX=1 -DUAVCAN_STM32H7_TIMER_NUMBER=2 -D_SYS_CDEFS_H_ -D_SYS_REENT_H_ -D__CUSTOM_FILE_IO__ -D__PX4_NUTTX -D__STDC_FORMAT_MACROS -I/home/t/p/px4-firmware/boards/modalai/fc-v2/src -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/common/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/lib -I/home/t/p/px4-firmware/platforms/nuttx/src/px4/stm/stm32h7/include -I/home/t/p/px4-firmware/platforms/common -I/home/t/p/px4-firmware/platforms/common/include -I/home/t/p/px4-firmware/src -I/home/t/p/px4-firmware/src/include -I/home/t/p/px4-firmware/src/lib -I/home/t/p/px4-firmware/src/lib/matrix -I/home/t/p/px4-firmware/src/modules -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/armv7-m -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/chip -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/arch/arm/src/common -I/home/t/p/px4-firmware/platforms/nuttx/NuttX/apps/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/uORB/topics -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/external/Install/include -I/home/t/p/px4-firmware/build/modalai_fc-v2_default/src/drivers/uavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan/include/dsdlc_generated -I/home/t/p/px4-firmware/src/drivers/uavcan/libuavcan/libuavcan_drivers/posix/include -I/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_drivers/stm32h7/driver/include -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include/cxx -isystem /home/t/p/px4-firmware/platforms/nuttx/NuttX/nuttx/include -mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard -Os -DNDEBUG -std=gnu++14 -g -fdata-sections -ffunction-sections -fomit-frame-pointer -fmerge-all-constants -fno-signed-zeros -fno-trapping-math -freciprocal-math -fno-math-errno -fno-strict-aliasing -fvisibility=hidden -include visibility.h -Wall -Wextra -Werror -Warray-bounds -Wcast-align -Wdisabled-optimization -Wdouble-promotion -Wfatal-errors -Wfloat-equal -Wformat-security -Winit-self -Wlogical-op -Wpointer-arith -Wshadow -Wuninitialized -Wunknown-pragmas -Wunused-variable -Wno-missing-field-initializers -Wno-missing-include-dirs -Wno-unused-parameter -fdiagnostics-color=always -Wno-stringop-truncation -fno-builtin-printf -fno-strength-reduce -Wformat=1 -Wunused-but-set-variable -Wno-format-truncation -fcheck-new -Wreorder -Wno-overloaded-virtual -fno-rtti -fno-exceptions -fno-sized-deallocation -fno-threadsafe-statics -nostdinc++ -Wno-cast-align -Wno-deprecated-copy -Wno-address-of-packed-member -Wframe-larger-than=4096 -Wno-format-security -D__KERNEL__ -MD -MT src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj -MF src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj.d -o src/drivers/uavcan/CMakeFiles/drivers__uavcan.dir/uavcan_main.cpp.obj -c /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.cpp

In file included from /home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.cpp:63:

/home/t/p/px4-firmware/src/drivers/uavcan/uavcan_main.hpp:79:10: fatal error: uORB/topics/uavcan_parameter_request.h: No such file or directory

   79 | #include <uORB/topics/uavcan_parameter_request.h>

      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

compilation terminated.

[603/1151] Building CXX object src/dri..._uavcan.dir/sensors/ice_status.cpp.obj

ninja: build stopped: subcommand failed.

make: *** [Makefile:227: modalai_fc-v2_default] Error 1
```

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-06 15:47:52 UTC

@Jetson-Nano The issue is that those messages were commented out in `msg/CMakeLists.txt`. The reason for that is that there is a limit in PX4 of 256 different types and there are too many. CAN isn't supported on VOXL 2 so those messages were commented out. If you want to use our fork on FCv2 you can uncomment those messages and comment out some of the VOXL 2 specific messages that aren't used on FCv2. For example:
```	ParameterClientResetRequest.msg
	ParameterClientResetResponse.msg
	ParameterClientSetValueRequest.msg
	ParameterClientSetValueResponse.msg
	ParameterServerSetUsedResponse.msg
	ParameterServerSetUsedRequest.msg
	ParameterServerSetValueRequest.msg
	ParameterServerSetValueResponse.msg
```

## Reply by Jetson Nano · 2025-08-07 05:43:30 UTC (in reply to Eric Katzfey)

@Eric-Katzfey Thank you for reverting back, I was able to build the firmware now, with the changes you suggested. 
There were some errors showing with respect to size, I had to disable fixed wing based parameters in ```default.px4board``` . Just for reference for anyone trying to replicate. I had to comment out certain parameters in cpp files in modules, It may change according to the parameter you want to disable and enable.

I wanted to know what are these parameters you suggested to comment out. what are they used for, will it create any performance issues.

## Reply by Eric Katzfey (ModalAI staff) · 2025-08-07 15:15:07 UTC (in reply to Jetson Nano)

@Jetson-Nano Those are topic messages used to communicate between the applications processor and the DSP in the VOXL2 split architecture. They are unused on non-VOXL2 platforms.

## Reply by Jetson Nano · 2025-08-09 04:23:34 UTC (in reply to Eric Katzfey)

@Eric-Katzfey I am using VOXL 2 to Flight Core v2 to VOXL FPV ESC, will this change affect any performance of the flight or any other abilities.
