#!/bin/sh # # PX4 FMUv3 specific board sensors init #------------------------------------------------------------------------------ rgbled start -I rgbled_ncp5623c start -I board_adc start # Internal I2C bus hmc5883 -T -I -R 4 start # Internal SPI (auto detect ms5611 or ms5607) if ! ms5611 -T 5607 -s -b 1 start then ms5611 -s -b 1 start fi set BOARD_FMUV3 0 # V3 build hwtypecmp supports V2|V2M|V30 if ver hwtypecmp V30 then # Check for Pixhawk 2.0 cube (isolated IMU on SPI4) # mpu6000 on v2.0, mpu9250 on v2.1 if mpu6000 -s -b 4 -R 10 start then set BOARD_FMUV3 20 else # Check for Pixhawk 2.1 cube # isolated/external mpu9250 (SPI4) if mpu9250 -s -b 4 -R 10 start then set BOARD_FMUV3 21 fi fi fi # Check if a Pixhack (which reports as V2M) is present if ver hwtypecmp V2M then # Internal SPI bus ICM-20608-G icm20608g -s -b 1 -R 14 start # Pixhawk Mini doesn't have these sensors, # so if they are found we know its a Pixhack # mppu6000 internal (SPI1) if mpu6000 -s -b 1 -R 10 start then set BOARD_FMUV3 20 else # Check for Pixhack 3.1 # mpu9250 external (SPI4) if mpu9250 -s -b 1 -R 10 start then set BOARD_FMUV3 21 fi fi fi if [ $BOARD_FMUV3 != 0 ] then # sensor heating is available, but we disable it for now param set-default SENS_EN_THERMAL 0 # l3gd20 (external/isolated SPI4) l3gd20 -s -b 4 -R 4 start # lsm303d (external/isolated SPI4) lsm303d -s -b 4 -R 6 start # ms5611 (external/isolated SPI4) ms5611 -s -b 4 start if [ $BOARD_FMUV3 = 20 ] then # v2.0 internal mpu6000 mpu6000 -s -b 1 start # v2.0 Has internal hmc5883 on SPI1 hmc5883 -T -s -b 1 -R 8 start fi if [ $BOARD_FMUV3 = 21 ] then # v2.1 mpu9250 on SPI1 mpu9250 -s -b 1 start fi else # $BOARD_FMUV3 = 0 -> FMUv2 mpu6000 -s -b 1 -R 14 start # As we will use the external mag and the ICM-20608-G # V2 build hwtypecmp is always false # V3 build hwtypecmp supports V2|V2M|V30 if ! ver hwtypecmp V2M then mpu9250 -s -b 1 -R 14 start # else: On the PixhawkMini the mpu9250 has been disabled due to HW errata fi l3gd20 -s -b 1 start lsm303d -s -b 1 start fi unset BOARD_FMUV3