/* setup sensors for Pixhawk2-slim */ void AP_BoardConfig::px4_start_pixhawk2slim_sensors(void) { #if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) printf("Starting PH2SLIM sensors\n"); if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -I -R 4 start")) { printf("Have internal hmc5883\n"); } else { printf("No internal hmc5883\n"); } if (px4_start_driver(mpu9250_main, "mpu9250", "-R 14 start")) { printf("Found MPU9250 internal\n"); } else if (px4_start_driver(mpu6000_main, "mpu6000", "-R 14 -T 20608 start")) { printf("Found ICM20608 internal\n"); } else if (px4_start_driver(mpu6000_main, "mpu6000", "-R 14 start")) { printf("Found MPU6000 internal\n"); } else { px4_sensor_error("No MPU9250 or ICM20608 or MPU6000"); } // on Pixhawk2 default IMU temperature to 60 _imu_target_temperature.set_default(60); printf("PH2SLIM sensors started\n"); #endif // CONFIG_ARCH_BOARD_PX4FMU_V2 }
void AP_BoardConfig::vrx_start_core10_sensors(void) { #if defined(CONFIG_ARCH_BOARD_VRCORE_V10) if (px4_start_driver(mpu9250_main, "mpu9250", "-R 4 start")) { printf("MPU9250 Internal started OK\n"); } else { px4_sensor_error("MPU9250 Internal start failed"); } #endif }
void AP_BoardConfig::vrx_start_ubrain52_sensors(void) { #if defined(CONFIG_ARCH_BOARD_VRUBRAIN_V52) if (px4_start_driver(mpu6000_main, "mpu6000", "-R 12 start")) { printf("MPU6000 Internal started OK\n"); } else { px4_sensor_error("MPU6000 Internal start failed"); } #endif }
/* setup sensors for PHMINI */ void AP_BoardConfig::px4_start_phmini_sensors(void) { #if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) printf("Starting PHMINI sensors\n"); // ICM20608 on SPI if (px4_start_driver(mpu6000_main, "mpu6000", "-S 2 -T 20608 start")) { printf("Found ICM20608 internal\n"); } else { px4_sensor_error("No ICM20608 found"); } if (px4_start_driver(mpu9250_main, "mpu9250", "start")) { printf("Found mpu9260\n"); } else { px4_sensor_error("No MPU9250 found"); } printf("PHMINI sensors started\n"); #endif // CONFIG_ARCH_BOARD_PX4FMU_V2 }
/* setup common sensors */ void AP_BoardConfig::px4_start_common_sensors(void) { if (px4_start_driver(ms5611_main, "ms5611", "start")) { printf("ms5611 started OK\n"); } else { px4_sensor_error("no ms5611 found"); } if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -X start")) { printf("Have external hmc5883\n"); } else { printf("No external hmc5883\n"); } }
/* setup common sensors */ void AP_BoardConfig::vrx_start_common_sensors(void) { if (px4_start_driver(ms5611_main, "ms5611", "-s start")) { printf("MS5611 Internal started OK\n"); } else { px4_sensor_error("MS5611 Internal start failed"); } if (px4_start_driver(hmc5883_main, "hmc5883", "-C -X start")) { printf("HMC5883 External GPS started OK\n"); } else { printf("HMC5883 External GPS start failed\n"); } }
void AP_BoardConfig::vrx_start_brain54_sensors(void) { #if defined(CONFIG_ARCH_BOARD_VRBRAIN_V54) if (px4_start_driver(hmc5883_main, "hmc5883", "-C -R 12 -I start")) { printf("HMC5883 Internal GPS started OK\n"); } else { printf("HMC5883 Internal GPS start failed\n"); } if (px4_start_driver(mpu6000_main, "mpu6000", "-R 12 start")) { printf("MPU6000 Internal started OK\n"); } else { px4_sensor_error("MPU6000 Internal start failed"); } #endif }
/* setup sensors for PX4v1 */ void AP_BoardConfig::px4_start_fmuv1_sensors(void) { #if defined(CONFIG_ARCH_BOARD_PX4FMU_V1) printf("Starting FMUv1 sensors\n"); if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -I start")) { printf("Have internal hmc5883\n"); } else { printf("No internal hmc5883\n"); } if (px4_start_driver(mpu6000_main, "mpu6000", "start")) { printf("mpu6000 started OK\n"); } else { px4_sensor_error("mpu6000"); } px4.board_type.set_and_notify(PX4_BOARD_PX4V1); #endif // CONFIG_ARCH_BOARD_PX4FMU_V1 }
/* setup common sensors */ void AP_BoardConfig::px4_start_common_sensors(void) { #if defined(CONFIG_ARCH_BOARD_PX4FMU_V4) /* this works around an issue with some FMUv4 hardware (eg. copies of the Pixracer) which have incorrect components leading to sensor brownout on boot */ if (px4_start_driver(fmu_main, "fmu", "sensor_reset 20")) { printf("FMUv4 sensor reset complete\n"); } #endif if (px4_start_driver(ms5611_main, "ms5611", "start")) { printf("ms5611 started OK\n"); } else { px4_sensor_error("no ms5611 found"); } if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -X start")) { printf("Have external hmc5883\n"); } else { printf("No external hmc5883\n"); } }
/* setup sensors for PX4v2 */ void AP_BoardConfig::px4_start_fmuv2_sensors(void) { #if defined(CONFIG_ARCH_BOARD_PX4FMU_V2) bool have_FMUV3 = false; printf("Starting FMUv2 sensors\n"); if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -I -R 4 start")) { printf("Have internal hmc5883\n"); } else { printf("No internal hmc5883\n"); } // external MPU6000 is rotated YAW_180 from standard if (px4_start_driver(mpu6000_main, "mpu6000", "-X -R 4 start")) { printf("Found MPU6000 external\n"); have_FMUV3 = true; } else { if (px4_start_driver(mpu9250_main, "mpu9250", "-X -R 4 start")) { printf("Found MPU9250 external\n"); have_FMUV3 = true; } else { printf("No MPU6000 or MPU9250 external\n"); } } if (have_FMUV3) { // external L3GD20 is rotated YAW_180 from standard if (px4_start_driver(l3gd20_main, "l3gd20", "-X -R 4 start")) { printf("l3gd20 external started OK\n"); } else { px4_sensor_error("No l3gd20"); } // external LSM303D is rotated YAW_270 from standard if (px4_start_driver(lsm303d_main, "lsm303d", "-a 16 -X -R 6 start")) { printf("lsm303d external started OK\n"); } else { px4_sensor_error("No lsm303d"); } // internal MPU6000 is rotated ROLL_180_YAW_270 from standard if (px4_start_driver(mpu6000_main, "mpu6000", "-R 14 start")) { printf("Found MPU6000 internal\n"); } else { if (px4_start_driver(mpu9250_main, "mpu9250", "-R 14 start")) { printf("Found MPU9250 internal\n"); } else { px4_sensor_error("No MPU6000 or MPU9250"); } } if (px4_start_driver(hmc5883_main, "hmc5883", "-C -T -S -R 8 start")) { printf("Found SPI hmc5883\n"); } } else { // not FMUV3 (ie. not a pixhawk2) if (px4_start_driver(mpu6000_main, "mpu6000", "start")) { printf("Found MPU6000\n"); } else { if (px4_start_driver(mpu9250_main, "mpu9250", "start")) { printf("Found MPU9250\n"); } else { printf("No MPU6000 or MPU9250\n"); } } if (px4_start_driver(l3gd20_main, "l3gd20", "start")) { printf("l3gd20 started OK\n"); } else { px4_sensor_error("no l3gd20 found"); } if (px4_start_driver(lsm303d_main, "lsm303d", "-a 16 start")) { printf("lsm303d started OK\n"); } else { px4_sensor_error("no lsm303d found"); } } if (have_FMUV3) { // on Pixhawk2 default IMU temperature to 60 _imu_target_temperature.set_default(60); px4.board_type.set_and_notify(PX4_BOARD_PIXHAWK2); } else { px4.board_type.set_and_notify(PX4_BOARD_PIXHAWK); } printf("FMUv2 sensors started\n"); #endif // CONFIG_ARCH_BOARD_PX4FMU_V2 }