From 34845a62b092fada2e04ea91f6e4cd0a027d491b Mon Sep 17 00:00:00 2001 From: Julian Oes Date: Mon, 19 Jan 2026 06:09:29 +1300 Subject: [PATCH] AirBrainH743: add external I2C This is for future/later board revisions. --- boards/gearup/airbrainh743/nuttx-config/include/board.h | 7 +++++++ boards/gearup/airbrainh743/nuttx-config/nsh/defconfig | 1 + boards/gearup/airbrainh743/src/i2c.cpp | 2 ++ 3 files changed, 10 insertions(+) diff --git a/boards/gearup/airbrainh743/nuttx-config/include/board.h b/boards/gearup/airbrainh743/nuttx-config/include/board.h index 9898c25305..56aafd3eaa 100644 --- a/boards/gearup/airbrainh743/nuttx-config/include/board.h +++ b/boards/gearup/airbrainh743/nuttx-config/include/board.h @@ -319,6 +319,7 @@ /* I2C * * I2C1: Internal (PB6 SCL, PB7 SDA) + * I2C4: External (PD12 SCL, PD13 SDA) */ #define GPIO_I2C1_SCL GPIO_I2C1_SCL_1 /* PB6 */ @@ -327,6 +328,12 @@ #define GPIO_I2C1_SCL_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN6) #define GPIO_I2C1_SDA_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTB | GPIO_PIN7) +#define GPIO_I2C4_SCL GPIO_I2C4_SCL_1 /* PD12 */ +#define GPIO_I2C4_SDA GPIO_I2C4_SDA_1 /* PD13 */ + +#define GPIO_I2C4_SCL_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTD | GPIO_PIN12) +#define GPIO_I2C4_SDA_GPIO (GPIO_OUTPUT | GPIO_OPENDRAIN | GPIO_SPEED_50MHz | GPIO_OUTPUT_SET | GPIO_PORTD | GPIO_PIN13) + /* USB * diff --git a/boards/gearup/airbrainh743/nuttx-config/nsh/defconfig b/boards/gearup/airbrainh743/nuttx-config/nsh/defconfig index 56f41becc6..a31ca060ed 100644 --- a/boards/gearup/airbrainh743/nuttx-config/nsh/defconfig +++ b/boards/gearup/airbrainh743/nuttx-config/nsh/defconfig @@ -190,6 +190,7 @@ CONFIG_STM32H7_DMACAPABLE=y CONFIG_STM32H7_DMAMUX1=y CONFIG_STM32H7_FLOWCONTROL_BROKEN=y CONFIG_STM32H7_I2C1=y +CONFIG_STM32H7_I2C4=y CONFIG_STM32H7_I2C_DYNTIMEO=y CONFIG_STM32H7_I2C_DYNTIMEO_STARTSTOP=10 CONFIG_STM32H7_OTGFS=y diff --git a/boards/gearup/airbrainh743/src/i2c.cpp b/boards/gearup/airbrainh743/src/i2c.cpp index 9bb4992776..26e33dc7fe 100644 --- a/boards/gearup/airbrainh743/src/i2c.cpp +++ b/boards/gearup/airbrainh743/src/i2c.cpp @@ -38,8 +38,10 @@ * * I2C1: Internal bus - PB6 (SCL), PB7 (SDA) * Devices: DPS310 baro @ 0x76, LIS2MDL compass @ 0x1E + * I2C4: External bus - PD12 (SCL), PD13 (SDA) */ constexpr px4_i2c_bus_t px4_i2c_buses[I2C_BUS_MAX_BUS_ITEMS] = { initI2CBusInternal(1), + initI2CBusExternal(4), };