Feature switches¶
Every HF_CORE_ENABLE_* switch, its default, what turns it on, what it compiles and the definition it adds.
Set a switch before including cmake/hf_core_build_settings.cmake; a switch you leave unset takes the default.
"Host build" is the value the top-level CMakeLists.txt uses for the host tests. "Turned on by" lists the
switches that set it automatically.
| Switch | Default | Host build | Turned on by | Compiles | Defines |
|---|---|---|---|---|---|
| Utility groups | |||||
HF_CORE_ENABLE_UTILS_CANOPEN |
OFF | ON | hf-utils-canopen | HARDFOC_CANOPEN_UTILS |
|
HF_CORE_ENABLE_CANOPENNODE |
OFF | OFF | handlers/common/canopen/: CO_driver_hardfoc / EspTwaiPort / PipePort / LinuxSocketCanPort + CANopenNode with the application's OD |
HARDFOC_CANOPENNODE_SLAVE |
|
| MCU interfaces | |||||
HF_CORE_ENABLE_UART |
OFF | ON | TMC5160, TMC9660, ALICAT_BASIS2, FDO2, DYNAMIXEL |
EspUart / StmUart |
|
HF_CORE_ENABLE_USB_SERIAL_JTAG |
OFF | OFF | EspUsbSerialJtag |
HARDFOC_USB_SERIAL_JTAG_SUPPORT |
|
HF_CORE_ENABLE_CAN |
OFF | ON | EspCan / StmCan |
||
HF_CORE_ENABLE_PWM |
OFF | OFF | EspPwm / StmPwm |
||
HF_CORE_ENABLE_PIO |
OFF | OFF | EspPio |
||
| Drivers and handlers | |||||
HF_CORE_ENABLE_AS5047U |
OFF | ON | handlers/as5047u/ + hf-as5047u-driver |
HARDFOC_AS5047U_SUPPORT |
|
HF_CORE_ENABLE_ADS7952 |
OFF | ON | handlers/ads7952/ + hf-ads7952-driver |
HARDFOC_ADS7952_SUPPORT |
|
HF_CORE_ENABLE_ADS9324 |
OFF | ON | handlers/ads9324/ + hf-ads9324-driver |
HARDFOC_ADS9324_SUPPORT |
|
HF_CORE_ENABLE_AT25040 |
OFF | ON | handlers/at25040/ + hf-at25040-driver |
HARDFOC_AT25040_SUPPORT |
|
HF_CORE_ENABLE_BNO08X |
OFF | ON | handlers/bno08x/ + hf-bno08x-driver |
HARDFOC_BNO08X_SUPPORT |
|
HF_CORE_ENABLE_MAX22200 |
OFF | ON | handlers/max22200/ + hf-max22200-driver |
HARDFOC_MAX22200_SUPPORT |
|
HF_CORE_ENABLE_NTC_THERMISTOR |
OFF | ON | handlers/ntc/ + hf-ntc-thermistor-driver |
HARDFOC_NTC_THERMISTOR_SUPPORT |
|
HF_CORE_ENABLE_MCP9700 |
OFF | ON | handlers/mcp9700/ + hf-mcp9700-driver |
HARDFOC_MCP9700_SUPPORT |
|
HF_CORE_ENABLE_ALICAT_BASIS2 |
OFF | ON | handlers/alicat_basis2/ + hf-alicat-basis2-driver |
HARDFOC_ALICAT_BASIS2_SUPPORT |
|
HF_CORE_ENABLE_FDO2 |
OFF | ON | handlers/fdo2/ + hf-fdo2-driver |
HARDFOC_FDO2_SUPPORT |
|
HF_CORE_ENABLE_DYNAMIXEL |
OFF | OFF | handlers/dynamixel/ + hf-dynamixel-driver |
HARDFOC_DYNAMIXEL_SUPPORT |
|
HF_CORE_ENABLE_SFM |
OFF | ON | handlers/sfm/ + hf-sfm-flow-meter-driver |
HARDFOC_SFM_SUPPORT |
|
HF_CORE_ENABLE_BMP581 |
OFF | ON | handlers/bmp581/ + hf-bmp581-driver |
HARDFOC_BMP581_SUPPORT |
|
HF_CORE_ENABLE_SE050 |
OFF | ON | handlers/se050/ + hf-se050-driver |
||
HF_CORE_ENABLE_PCA9685 |
OFF | ON | handlers/pca9685/ + hf-pca9685-driver |
HARDFOC_PCA9685_SUPPORT |
|
HF_CORE_ENABLE_PF1550 |
OFF | ON | handlers/pf1550/ + hf-pf1550-driver |
HARDFOC_PF1550_SUPPORT |
|
HF_CORE_ENABLE_PCAL95555 |
OFF | ON | handlers/pcal95555/ + hf-pcal95555-driver |
HARDFOC_PCAL95555_SUPPORT |
|
HF_CORE_ENABLE_TLE92466ED |
OFF | ON | handlers/tle92466ed/ + hf-tle92466ed-driver |
HARDFOC_TLE92466_SUPPORT |
|
HF_CORE_ENABLE_TMC5160 |
OFF | ON | handlers/tmc5160/ + hf-tmc5160-driver |
HARDFOC_TMC5160_SUPPORT |
|
HF_CORE_ENABLE_TMC9660 |
OFF | ON | handlers/tmc9660/ + hf-tmc9660-driver |
HARDFOC_TMC9660_SUPPORT |
|
HF_CORE_ENABLE_WS2812 |
OFF | OFF | handlers/ws2812/ + hf-ws2812-rmt-driver (needs ESP32: RMT peripheral) |
HARDFOC_WS2812_SUPPORT |
|
HF_CORE_ENABLE_ISF15ACP4 |
OFF | ON | handlers/isf15acp4/ + hf-isf15acp4-driver |
HARDFOC_ISF15ACP4_SUPPORT |
|
HF_CORE_ENABLE_VORTEX_DRIVER |
OFF | ON | hf-vortex-driver | HARDFOC_VORTEX_DRIVER |
|
| Logger | |||||
HF_CORE_ENABLE_LOGGER |
ON | ON | handlers/logger/ |
HARDFOC_LOGGER |
|
| Peripherals a driver turns on | |||||
HF_CORE_ENABLE_RMT |
OFF | OFF | WS2812 |
||
HF_CORE_ENABLE_ADC |
OFF | ON | NTC_THERMISTOR, MCP9700 |
Read from cmake/hf_core_build_settings.cmake and CMakeLists.txt.
Optional interfaces add their Esp* (or Stm*) source and ESP-IDF component: UART adds EspUart and
esp_driver_uart, CAN adds EspCan and esp_driver_twai (ESP-IDF 5.5 and later), USB_SERIAL_JTAG adds
EspUsbSerialJtag, PWM adds EspPwm, PIO adds EspPio. HF_CORE_ENABLE_CANOPENNODE needs
HF_CORE_ENABLE_UTILS_CANOPEN, an upstream CANopenNode checkout at HF_CORE_CANOPENNODE_ROOT and the
application's object dictionary at HF_CORE_CANOPENNODE_OD_DIR (see CANopen).