hwdef: make the IMU heater board-specific rather than via fmuv3

fmuv3.inc no longer enables HAL_HAVE_IMU_HEATER (and fmuv3-bdshot.inc,
which now includes it, inherits that).  Boards based on FMUv3 declare the
IMU heater explicitly, so whether a board has a heater is recorded on the
board itself rather than inherited.

The fmuv3 / fmuv3-bdshot reference targets keep the heater in their own
hwdef.dat.  Boards which enable the heater but set no HAL_IMU_TEMP_DEFAULT
(and do not set BRD_HEAT_TARG in defaults.parm) carry a comment querying
whether they really have a heater.  No functional change.
This commit is contained in:
Peter Barker
2026-06-26 12:04:18 +10:00
committed by Peter Barker
parent 764d436c28
commit 4642452ca3
13 changed files with 46 additions and 14 deletions
@@ -1,3 +1,6 @@
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
USE_BOOTLOADER_FROM_BOARD fmuv3
@@ -2,7 +2,10 @@
# for The CUBE Black and the Cube Purple hardware
# this is based on fmuv3, but with vendor specific USB IDs
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
# if the user has both isolated sensors enabled then force-enable the
# non-isolated IMU regardless of parameter setting. This is done in
@@ -2,7 +2,10 @@
# for The CUBE Black and the Cube Purple hardware
# this is based on fmuv3, but with vendor specific USB IDs
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
# USB setup
USB_VENDOR 0x2DAE # ONLY FOR USE BY HEX! NOBODY ELSE
@@ -3,7 +3,10 @@
# this is based on the FMUv3 hwdef, with Solo's required parameter defaults
# do not use this hwdef for any other vehicle or configuration
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
define BOARD_TYPE_DEFAULT 3 # FMUv3
@@ -1,6 +1,9 @@
# hw definition file for processing by chibios_hwdef.py
# for MFE-V3, based on fmuv3
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# IMU heater
define HAL_HAVE_IMU_HEATER 1
APJ_BOARD_ID AP_HW_PixSurveyA1
@@ -2,7 +2,10 @@
# for Pixhawk1-1M, based on Pixhawk1
include ../fmuv3-bdshot/hwdef.dat
include ../fmuv3-bdshot/fmuv3-bdshot.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
# define the IMU types to probe. You can list more IMUs than you
# actually have. The syntax for IMU declarations is:
@@ -1,6 +1,9 @@
# hw definition file for processing by chibios_hwdef.py
include ../fmuv3-bdshot/hwdef.dat
include ../fmuv3-bdshot/fmuv3-bdshot.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
# define the IMU types to probe. You can list more IMUs than you
# actually have. The syntax for IMU declarations is:
@@ -1,7 +1,10 @@
# hw definition file for processing by chibios_hwdef.py
# for pixhawk1, based on fmuv3
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
# define the IMU types to probe. You can list more IMUs than you
# actually have. The syntax for IMU declarations is:
@@ -1,7 +1,10 @@
# FMUv2 build, same as fmuv3, but 1M flash to avoid hardware issue
# with 2nd half of flash on early STM32F427 chips
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
FLASH_SIZE_KB 1024
@@ -6,3 +6,6 @@
# be shared by boards which are based on it but do not share all of its
# hardware (eg. the presence of an IMU heater).
include fmuv3-bdshot.inc
# the FMUv3 reference board (Pixhawk2/Cube) has an IMU heater
define HAL_HAVE_IMU_HEATER 1
@@ -429,10 +429,6 @@ define HAL_HAVE_SAFETY_SWITCH 1
# Enable RAMTRON parameter storage.
define HAL_WITH_RAMTRON 1
# Setup for the possibility of an IMU heater since the pixhawk2 cube has
# an IMU heater.
define HAL_HAVE_IMU_HEATER 1
# Enable FAT filesystem support (needs a microSD defined via SDIO).
define HAL_OS_FATFS_IO 1
@@ -5,3 +5,6 @@
# be shared by boards which are based on FMUv3 but do not share all of
# its hardware (eg. the presence of an IMU heater).
include fmuv3.inc
# the FMUv3 reference board (Pixhawk2/Cube) has an IMU heater
define HAL_HAVE_IMU_HEATER 1
@@ -1,7 +1,10 @@
# hw definition file for processing by chibios_hwdef.py for the
# mRo X2.1 board. This is a fmuv3, with BRD_TYPE forced to 20
include ../fmuv3/hwdef.dat
include ../fmuv3/fmuv3.inc
# does this board really have an IMU heater? If so set HAL_IMU_TEMP_DEFAULT.
define HAL_HAVE_IMU_HEATER 1
define BOARD_TYPE_DEFAULT 20