diff --git a/src/drivers/boards/px4fmu-v5/board_config.h b/src/drivers/boards/px4fmu-v5/board_config.h index d974ac1116..e5f8c595dd 100644 --- a/src/drivers/boards/px4fmu-v5/board_config.h +++ b/src/drivers/boards/px4fmu-v5/board_config.h @@ -311,9 +311,15 @@ /* HW Version and Revision drive signals Default to 1 to detect */ -#define GPIO_HW_REV_DRIVE /* PH14 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTH|GPIO_PIN14) -#define GPIO_HW_VER_DRIVE /* PG0 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTG|GPIO_PIN0) +#define BOARD_HAS_HW_VERSIONING +#define GPIO_HW_REV_DRIVE /* PH14 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTH|GPIO_PIN14) +#define GPIO_HW_REV_SENSE /* PC3 */ ADC1_GPIO(13) +#define GPIO_HW_VER_DRIVE /* PG0 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_SET|GPIO_PORTG|GPIO_PIN0) +#define GPIO_HW_VER_SENSE /* PC2 */ ADC1_GPIO(12) +#define HW_INFO_INIT {'V','5','x', 'x',0} +#define HW_INFO_INIT_REV 2 +#define HW_INFO_INIT_VER 3 /* CAN Silence * * Silent mode control \ ESC Mux select diff --git a/src/drivers/boards/px4fmu-v5/px4fmu_init.c b/src/drivers/boards/px4fmu-v5/px4fmu_init.c index 0238ca67bc..c500a01e96 100644 --- a/src/drivers/boards/px4fmu-v5/px4fmu_init.c +++ b/src/drivers/boards/px4fmu-v5/px4fmu_init.c @@ -66,6 +66,7 @@ #include #include "board_config.h" + #include #include @@ -103,12 +104,7 @@ extern void led_on(int led); extern void led_off(int led); __END_DECLS -/**************************************************************************** - * Protected Functions - ****************************************************************************/ -/**************************************************************************** - * Public Functions - ****************************************************************************/ + /************************************************************************************ * Name: board_rc_input * @@ -290,6 +286,13 @@ __EXPORT int board_app_initialize(uintptr_t arg) /* configure the high-resolution time/callout interface */ hrt_init(); + if (OK == board_determine_hw_info()) { + PX4_INFO("Rev 0x%1x : Ver 0x%1x %s", board_get_hw_revision(), board_get_hw_version(), board_get_hw_type_name()); + + } else { + PX4_ERR("Failed to read HW revision and version"); + } + param_init(); /* configure the DMA allocator */