Ejemplo n.º 1
0
/*
  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
}
Ejemplo n.º 2
0
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
}
Ejemplo n.º 3
0
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
}
Ejemplo n.º 4
0
/*
  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
}
Ejemplo n.º 5
0
/*
  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");
    }
}
Ejemplo n.º 6
0
/*
  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");
    }
}
Ejemplo n.º 7
0
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
}
Ejemplo n.º 8
0
/*
  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
}
Ejemplo n.º 9
0
/*
  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");
    }
}
Ejemplo n.º 10
0
/*
  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
}