mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-03 04:03:59 -04:00
AP_BoardConfig: switched to always using in-tree sensors
This commit is contained in:
parent
da2638e424
commit
67b97b21db
@ -120,7 +120,7 @@ const AP_Param::GroupInfo AP_BoardConfig::var_info[] = {
|
|||||||
// @User: Standard
|
// @User: Standard
|
||||||
AP_GROUPINFO("SERIAL_NUM", 5, AP_BoardConfig, vehicleSerialNumber, 0),
|
AP_GROUPINFO("SERIAL_NUM", 5, AP_BoardConfig, vehicleSerialNumber, 0),
|
||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4 && !defined(CONFIG_ARCH_BOARD_PX4FMU_V1)
|
#if HAL_WITH_UAVCAN
|
||||||
// @Param: CAN_ENABLE
|
// @Param: CAN_ENABLE
|
||||||
// @DisplayName: Enable use of UAVCAN devices
|
// @DisplayName: Enable use of UAVCAN devices
|
||||||
// @Description: Enabling this option on a Pixhawk enables UAVCAN devices. Note that this uses about 25k of memory
|
// @Description: Enabling this option on a Pixhawk enables UAVCAN devices. Note that this uses about 25k of memory
|
||||||
|
@ -76,7 +76,7 @@ private:
|
|||||||
AP_Int8 pwm_count;
|
AP_Int8 pwm_count;
|
||||||
AP_Int8 safety_enable;
|
AP_Int8 safety_enable;
|
||||||
AP_Int32 ignore_safety_channels;
|
AP_Int32 ignore_safety_channels;
|
||||||
#ifndef CONFIG_ARCH_BOARD_PX4FMU_V1
|
#if HAL_WITH_UAVCAN
|
||||||
AP_Int8 can_enable;
|
AP_Int8 can_enable;
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
||||||
@ -106,21 +106,8 @@ private:
|
|||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
||||||
void px4_autodetect(void);
|
void px4_autodetect(void);
|
||||||
void px4_start_common_sensors(void);
|
|
||||||
void px4_start_fmuv1_sensors(void);
|
|
||||||
void px4_start_fmuv2_sensors(void);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
|
|
||||||
void vrx_start_common_sensors(void);
|
|
||||||
void vrx_start_brain51_sensors(void);
|
|
||||||
void vrx_start_brain52_sensors(void);
|
|
||||||
void vrx_start_ubrain51_sensors(void);
|
|
||||||
void vrx_start_ubrain52_sensors(void);
|
|
||||||
void vrx_start_core10_sensors(void);
|
|
||||||
void vrx_start_brain54_sensors(void);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // HAL_BOARD_PX4 || HAL_BOARD_VRBRAIN
|
#endif // HAL_BOARD_PX4 || HAL_BOARD_VRBRAIN
|
||||||
|
|
||||||
// target temperarure for IMU in Celsius, or -1 to disable
|
// target temperarure for IMU in Celsius, or -1 to disable
|
||||||
|
@ -39,13 +39,9 @@ AP_BoardConfig::px4_board_type AP_BoardConfig::px4_configured_board;
|
|||||||
declare driver main entry points
|
declare driver main entry points
|
||||||
*/
|
*/
|
||||||
extern "C" {
|
extern "C" {
|
||||||
int mpu6000_main(int , char **);
|
#if HAL_WITH_UAVCAN
|
||||||
int mpu9250_main(int , char **);
|
|
||||||
int ms5611_main(int , char **);
|
|
||||||
int l3gd20_main(int , char **);
|
|
||||||
int lsm303d_main(int , char **);
|
|
||||||
int hmc5883_main(int , char **);
|
|
||||||
int uavcan_main(int, char **);
|
int uavcan_main(int, char **);
|
||||||
|
#endif
|
||||||
int fmu_main(int, char **);
|
int fmu_main(int, char **);
|
||||||
int px4io_main(int, char **);
|
int px4io_main(int, char **);
|
||||||
int adc_main(int, char **);
|
int adc_main(int, char **);
|
||||||
@ -214,7 +210,7 @@ void AP_BoardConfig::px4_setup_sbus(void)
|
|||||||
*/
|
*/
|
||||||
void AP_BoardConfig::px4_setup_canbus(void)
|
void AP_BoardConfig::px4_setup_canbus(void)
|
||||||
{
|
{
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4 && !defined(CONFIG_ARCH_BOARD_PX4FMU_V1)
|
#if HAL_WITH_UAVCAN
|
||||||
if (px4.can_enable >= 1) {
|
if (px4.can_enable >= 1) {
|
||||||
// give time for other drivers to fully start before we start
|
// give time for other drivers to fully start before we start
|
||||||
// canbus. This prevents a race where a canbus mag comes up
|
// canbus. This prevents a race where a canbus mag comes up
|
||||||
@ -292,239 +288,6 @@ bool AP_BoardConfig::px4_start_driver(main_fn_t main_function, const char *name,
|
|||||||
return (status >> 8) == 0;
|
return (status >> 8) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
|
||||||
/*
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("FMUv2 sensors started\n");
|
|
||||||
#endif // CONFIG_ARCH_BOARD_PX4FMU_V2
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
#endif // CONFIG_ARCH_BOARD_PX4FMU_V1
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
setup common sensors
|
|
||||||
*/
|
|
||||||
void AP_BoardConfig::px4_start_common_sensors(void)
|
|
||||||
{
|
|
||||||
#ifndef CONFIG_ARCH_BOARD_PX4FMU_V4
|
|
||||||
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");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // CONFIG_HAL_BOARD
|
|
||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
|
|
||||||
void AP_BoardConfig::vrx_start_brain51_sensors(void)
|
|
||||||
{
|
|
||||||
#if defined(CONFIG_ARCH_BOARD_VRBRAIN_V51)
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
void AP_BoardConfig::vrx_start_brain52_sensors(void)
|
|
||||||
{
|
|
||||||
#if defined(CONFIG_ARCH_BOARD_VRBRAIN_V52)
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
void AP_BoardConfig::vrx_start_ubrain51_sensors(void)
|
|
||||||
{
|
|
||||||
#if defined(CONFIG_ARCH_BOARD_VRUBRAIN_V51)
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
||||||
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_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 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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // CONFIG_HAL_BOARD
|
|
||||||
|
|
||||||
void AP_BoardConfig::px4_setup_drivers(void)
|
void AP_BoardConfig::px4_setup_drivers(void)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_ARCH_BOARD_PX4FMU_V4)
|
#if defined(CONFIG_ARCH_BOARD_PX4FMU_V4)
|
||||||
@ -538,6 +301,11 @@ void AP_BoardConfig::px4_setup_drivers(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (px4.board_type == PX4_BOARD_OLDDRIVERS) {
|
||||||
|
printf("Old drivers no longer supported\n");
|
||||||
|
px4.board_type = PX4_BOARD_AUTO;
|
||||||
|
}
|
||||||
|
|
||||||
// run board auto-detection
|
// run board auto-detection
|
||||||
px4_autodetect();
|
px4_autodetect();
|
||||||
|
|
||||||
@ -546,63 +314,20 @@ void AP_BoardConfig::px4_setup_drivers(void)
|
|||||||
_imu_target_temperature.set_default(60);
|
_imu_target_temperature.set_default(60);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (px4.board_type == PX4_BOARD_PX4V1 ||
|
|
||||||
px4.board_type == PX4_BOARD_PHMINI ||
|
|
||||||
px4.board_type == PX4_BOARD_PH2SLIM ||
|
|
||||||
px4.board_type == PX4_BOARD_PIXRACER ||
|
|
||||||
px4.board_type == PX4_BOARD_PIXHAWK ||
|
|
||||||
px4.board_type == PX4_BOARD_PIXHAWK2) {
|
|
||||||
// use in-tree drivers
|
|
||||||
printf("Using in-tree drivers\n");
|
|
||||||
px4_configured_board = (enum px4_board_type)px4.board_type.get();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
|
||||||
px4_start_common_sensors();
|
|
||||||
switch ((px4_board_type)px4.board_type.get()) {
|
|
||||||
case PX4_BOARD_AUTO:
|
|
||||||
default:
|
|
||||||
px4_start_fmuv1_sensors();
|
|
||||||
px4_start_fmuv2_sensors();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#elif CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
|
|
||||||
vrx_start_common_sensors();
|
|
||||||
switch ((px4_board_type)px4.board_type.get()) {
|
|
||||||
case VRX_BOARD_BRAIN51:
|
|
||||||
vrx_start_brain51_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VRX_BOARD_BRAIN52:
|
|
||||||
vrx_start_brain52_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VRX_BOARD_UBRAIN51:
|
|
||||||
vrx_start_ubrain51_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VRX_BOARD_UBRAIN52:
|
|
||||||
vrx_start_ubrain52_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VRX_BOARD_CORE10:
|
|
||||||
vrx_start_core10_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case VRX_BOARD_BRAIN54:
|
|
||||||
vrx_start_brain54_sensors();
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
#endif // HAL_BOARD_PX4
|
|
||||||
|
|
||||||
px4_configured_board = (enum px4_board_type)px4.board_type.get();
|
px4_configured_board = (enum px4_board_type)px4.board_type.get();
|
||||||
|
|
||||||
// delay for 1 second to give time for drivers to initialise
|
switch (px4_configured_board) {
|
||||||
hal.scheduler->delay(1000);
|
case PX4_BOARD_PX4V1:
|
||||||
|
case PX4_BOARD_PIXHAWK:
|
||||||
|
case PX4_BOARD_PIXHAWK2:
|
||||||
|
case PX4_BOARD_PIXRACER:
|
||||||
|
case PX4_BOARD_PHMINI:
|
||||||
|
case PX4_BOARD_PH2SLIM:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
px4_sensor_error("Unknown board type");
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user