diff --git a/boards/px4/fmu-v4/init/rc.board_sensors b/boards/px4/fmu-v4/init/rc.board_sensors
index 6b59c41169f41736e2eeb44965fbdf325d82541d..5e4e816f0d311c42a12d7b3d7f76824b21a2e56d 100644
--- a/boards/px4/fmu-v4/init/rc.board_sensors
+++ b/boards/px4/fmu-v4/init/rc.board_sensors
@@ -19,7 +19,7 @@ ist8310 start
 bmp280 -I start
 
 # expansion i2c used for BMM150 rotated by 90deg
-bmm150 -R 2 start
+bmm150 -X -R 2 start
 
 # For Teal One airframe
 if param compare SYS_AUTOSTART 4250
diff --git a/src/drivers/magnetometer/bmm150/bmm150.cpp b/src/drivers/magnetometer/bmm150/bmm150.cpp
index cc7d5fe2ca855fae7106a1c14aa53b0cca70c0bb..21c0fb90e1469bdec74b070c3574c2a9acc51fff 100644
--- a/src/drivers/magnetometer/bmm150/bmm150.cpp
+++ b/src/drivers/magnetometer/bmm150/bmm150.cpp
@@ -86,8 +86,12 @@ void start(bool external_bus, enum Rotation rotation)
 #endif
 
 	} else {
+#if defined(PX4_I2C_BUS_ONBOARD)
+		*g_dev_ptr = new BMM150(PX4_I2C_BUS_ONBOARD, path, rotation);
+#else
 		PX4_ERR("Internal I2C not available");
 		exit(0);
+#endif
 	}
 
 	if (*g_dev_ptr == nullptr) {