diff --git a/boards/cuav/x25-super/default.px4board b/boards/cuav/x25-super/default.px4board index 13c9bdbf3e..b166d4d442 100644 --- a/boards/cuav/x25-super/default.px4board +++ b/boards/cuav/x25-super/default.px4board @@ -17,6 +17,7 @@ CONFIG_COMMON_DIFFERENTIAL_PRESSURE=y CONFIG_COMMON_DISTANCE_SENSOR=y CONFIG_DRIVERS_DSHOT=y CONFIG_DRIVERS_GPS=y +CONFIG_DRIVERS_HEATER=y CONFIG_DRIVERS_IMU_INVENSENSE_IIM42652=y CONFIG_DRIVERS_IMU_INVENSENSE_IIM42653=y CONFIG_DRIVERS_IMU_MURATA_SCH16T=y diff --git a/boards/cuav/x25-super/init/rc.board_defaults b/boards/cuav/x25-super/init/rc.board_defaults index e292413cfc..04ac2def5b 100644 --- a/boards/cuav/x25-super/init/rc.board_defaults +++ b/boards/cuav/x25-super/init/rc.board_defaults @@ -21,17 +21,12 @@ param set-default USB_MAV_MODE 5 param set-default UAVCAN_SUB_GPS 1 param set-default UAVCAN_SUB_BAT 1 -# Enable IMU thermal control +# IMU thermal control (multi-instance heater) param set-default SENS_EN_THERMAL 1 -param set-default SENS_IMU_TEMP 45 -param set-default SENS_TEMP_ID 5963786 - -# CUAV core board IMU thermal control -param set-default CORE_IMU_TEMP 45 -param set-default CORE_TEMP_ID 3014698 - -# TODO: replace with heater using the multi-heater defines from https://github.com/PX4/PX4-Autopilot/pull/26325 -# core_heater start +param set-default HEATER1_IMU_ID 2818066 +param set-default HEATER1_TEMP 45 +param set-default HEATER2_IMU_ID 3014698 +param set-default HEATER2_TEMP 45 # CUAV pwm voltage 3.3V/5V switch pwm_voltage_apply start diff --git a/boards/cuav/x25-super/src/board_config.h b/boards/cuav/x25-super/src/board_config.h index 68cc628805..47fc455dd9 100644 --- a/boards/cuav/x25-super/src/board_config.h +++ b/boards/cuav/x25-super/src/board_config.h @@ -170,7 +170,13 @@ #define GPIO_HW_REV_SENSE /* PH4 */ GPIO_ADC3_INP15 #define GPIO_HW_VER_SENSE /* PH3 */ GPIO_ADC3_INP14 -// TODO: add multi-heater definitions, see https://github.com/PX4/PX4-Autopilot/pull/26325 +/* HEATER */ +#define GPIO_HEATER_OUTPUT +#define HEATER_NUM 2 +#define GPIO_HEATER1_OUTPUT /* PB10 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTB|GPIO_PIN10) +#define HEATER1_OUTPUT_EN(on_true) px4_arch_gpiowrite(GPIO_HEATER1_OUTPUT, (on_true)) +#define GPIO_HEATER2_OUTPUT /* PE6 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN6) +#define HEATER2_OUTPUT_EN(on_true) px4_arch_gpiowrite(GPIO_HEATER2_OUTPUT, (on_true)) /* PE7 is nARMED * The GPIO will be set as input while not armed HW will have external HW Pull UP. @@ -395,6 +401,8 @@ GPIO_CAN2_RX, \ GPIO_CAN1_SILENT_S0, \ GPIO_CAN2_SILENT_S1, \ + GPIO_HEATER1_OUTPUT, \ + GPIO_HEATER2_OUTPUT, \ GPIO_nPOWER_IN_A, \ GPIO_nPOWER_IN_B, \ GPIO_nPOWER_IN_C, \