Can not build arduplane for f303-Universal board

Hello friends

I am trying to build arduplane target for f303-Universal board cause I have a lot of SP racing F3 flight controllers . I am aware this controller listed as unsupported , but would like to try it with ardulpane at my own risk . Waf failed with the following message .

Any ideas how to fix this litttle issue ? Other boards type ( omnibus , sitl ) builds just fine . Only f303 class of boards have issue .

ras@ras-▒▒ ~/ardupilot
$ ./waf configure --board f303-Universal
Setting top to : /home/ras/ardupilot
Setting out to : /home/ras/ardupilot/build
Autoconfiguration : enabled
Setting board to : f303-Universal
Using toolchain : arm-none-eabi
Checking for ‘g++’ (C++ compiler) : /cygdrive/f/Program Files/GNU Tools ARM Embedded/6 2017-q2-update/bin/arm-none-eabi-g++
Checking for ‘gcc’ (C compiler) : /cygdrive/f/Program Files/GNU Tools ARM Embedded/6 2017-q2-update/bin/arm-none-eabi-gcc
Checking for c flags ‘-MMD’ : yes
Checking for cxx flags ‘-MMD’ : yes
Checking for program ‘make’ : /usr/bin/make
Checking for program ‘arm-none-eabi-objcopy’ : /cygdrive/f/Program Files/GNU Tools ARM Embedded/6 2017-q2-update/bin/arm-none-eabi-objcopy
Including /home/ras/ardupilot/libraries/AP_HAL_ChibiOS/hwdef/f303-periph/hwdef.dat
Adding environment AP_PERIPH 1
Adding environment APP_DESCRIPTOR MissionPlanner
Adding environment ROMFS_UNCOMPRESSED True
Setup for MCU STM32F303xC
Writing hwdef setup in /home/ras/ardupilot/build/f303-Universal/hwdef.h
Writing DMA map
No PWM output defined
Generating ldscript.ld
No default parameter file found
Checking for env.py
env set AP_PERIPH=1
env set APP_DESCRIPTOR=MissionPlanner
env set ROMFS_UNCOMPRESSED=True
env set DISABLE_SCRIPTING=True
env set PROCESS_STACK=0x800
env set MAIN_STACK=0x80
env set IOMCU_FW=0
env set PERIPH_FW=0
env set BOARD_FLASH_SIZE=256
env set CPU_FLAGS=[’-mcpu=cortex-m4’, ‘-mfpu=fpv4-sp-d16’, ‘-mfloat-abi=hard’, ‘-DARM_MATH_CM4’, ‘-u_printf_float’]
env set CORTEX=cortex-m4
env set APJ_BOARD_ID=1004
env set APJ_BOARD_TYPE=STM32F303xC
env set USBID=0x1209/0x5741
env set FLASH_RESERVE_START_KB=26
env set CHIBIOS_BUILD_FLAGS=USE_FATFS=no CHIBIOS_STARTUP_MK=os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk CHIBIOS_PLATFORM_MK=os/hal/ports/STM32/STM32F3xx/platform.mk MCU=cortex-m4 ENV_UDEFS=-DCHPRINTF_USE_FLOAT=1
Enabling ChibiOS asserts : no
Checking for intelhex module: : disabled
Checking for HAVE_CMATH_ISFINITE : no
Checking for HAVE_CMATH_ISINF : no
Checking for HAVE_CMATH_ISNAN : no
Checking for NEED_CMATH_ISFINITE_STD_NAMESPACE : no
Checking for NEED_CMATH_ISINF_STD_NAMESPACE : no
Checking for NEED_CMATH_ISNAN_STD_NAMESPACE : no
Checking for header endian.h : not found
Checking for header byteswap.h : not found
Checking for HAVE_MEMRCHR : no
Checking for program ‘python’ : /usr/bin/python
Checking for python version >= 2.7.0 : 3.6.10
Checking for program ‘python’ : /usr/bin/python
Checking for python version >= 2.7.0 : 3.6.10
Source is git repository : yes
Update submodules : yes
Checking for program ‘git’ : /usr/bin/git
Gtest : STM32 boards currently don’t support compiling gtest
Checking for program ‘arm-none-eabi-size’ : /cygdrive/f/Program Files/GNU Tools ARM Embedded/6 2017-q2-update/bin/arm-none-eabi-size
Benchmarks : disabled
Unit tests : disabled
Scripting : disabled
Scripting runtime checks : enabled
Checking for program ‘rsync’ : /usr/bin/rsync
‘configure’ finished successfully (9.360s)

ras@ras-▒▒ ~/ardupilot
$ ./waf plane
Waf: Entering directory `/home/ras/ardupilot/build/f303-Universal’
Checking for env.py
env added AP_PERIPH=1
env added APP_DESCRIPTOR=MissionPlanner
env added ROMFS_UNCOMPRESSED=True
env added DISABLE_SCRIPTING=True
env added PROCESS_STACK=0x800
env added MAIN_STACK=0x80
env added IOMCU_FW=0
env added PERIPH_FW=0
env added BOARD_FLASH_SIZE=256
env appended CPU_FLAGS=[’-mcpu=cortex-m4’, ‘-mfpu=fpv4-sp-d16’, ‘-mfloat-abi=hard’, ‘-DARM_MATH_CM4’, ‘-u_printf_float’]
env added CORTEX=cortex-m4
env added APJ_BOARD_ID=1004
env added APJ_BOARD_TYPE=STM32F303xC
env added USBID=0x1209/0x5741
env added FLASH_RESERVE_START_KB=26
env added CHIBIOS_BUILD_FLAGS=USE_FATFS=no CHIBIOS_STARTUP_MK=os/common/startup/ARMCMx/compilers/GCC/mk/startup_stm32f3xx.mk CHIBIOS_PLATFORM_MK=os/hal/ports/STM32/STM32F3xx/platform.mk MCU=cortex-m4 ENV_UDEFS=-DCHPRINTF_USE_FLOAT=1
Embedding file bootloader.bin:/home/ras/ardupilot/Tools/bootloaders/f303-Universal_bl.bin (uncompressed)
[ 16/595] Compiling libraries/AC_AutoTune/AC_AutoTune.cpp
[ 17/595] Compiling libraries/AC_Avoidance/AP_OABendyRuler.cpp
…/…/libraries/AC_AutoTune/AC_AutoTune.cpp: In member function ‘void AC_AutoTune::send_step_string()’:
…/…/libraries/AC_AutoTune/AC_AutoTune.cpp:248:13: error: ‘gcs’ was not declared in this scope
gcs().send_text(MAV_SEVERITY_INFO, “AutoTune: Paused: Pilot Override Active”);
^
compilation terminated due to -Wfatal-errors.

Waf: Leaving directory `/home/ras/ardupilot/build/f303-Universal’
Build failed
-> task in ‘objs/AC_AutoTune’ failed (exit status 1):
{task 2134958512: cxx AC_AutoTune.cpp -> AC_AutoTune.cpp.0.o}
(run with -v to display more information)

ras@ras-▒▒ ~/ardupilot

Because f303-universal is a board set up for CAN-bus peripherials, not suitable for vehicle code.

Thank you for the clue . Yes indeed its for UAVCAN

https://ardupilot.org/plane/docs/common-uavcan-adapter-node.html and target builds properly

[211/214] Linking build/f303-Universal/bin/AP_Periph
[212/214] Generating bin/AP_Periph.bin
[213/214] app_descriptor build/f303-Universal/bin/AP_Periph.bin
Applying MissionPlanner APP_DESCRIPTOR 694305a0b9748372
[214/214] apj_gen build/f303-Universal/bin/AP_Periph.bin
Waf: Leaving directory `/home/ras/ardupilot/build/f303-Universal’

BUILD SUMMARY
Build directory: /home/ras/ardupilot/build/f303-Universal
Target Text Data BSS Total

bin/AP_Periph 176944 528 40200 217672

Build commands will be stored in build/f303-Universal/compile_commands.json
‘AP_Periph’ finished successfully (3m1.987s)

ras@ras-▒▒ ~/ardupilot

1 Like

That board has one-quarter the flash we require for normal vehicle code.
We’ve wedged Copter into 512kB, but it wasn’t pretty.