mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-10 01:48:29 -04:00
3428cbf993
allow more than one type of ESC for dshot commands add support for checks around active ESCs allow dshot alarm to be disabled allow prioritized dshot commands
358 lines
17 KiB
C++
358 lines
17 KiB
C++
#pragma once
|
|
|
|
#define HAL_BOARD_NAME "Linux"
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_1000
|
|
#define HAL_MEM_CLASS HAL_MEM_CLASS_1000
|
|
#define HAL_OS_POSIX_IO 1
|
|
#define HAL_OS_SOCKETS 1
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
|
#define HAL_DSHOT_ALARM 0
|
|
|
|
// make sensor selection clearer
|
|
#define PROBE_IMU_I2C(driver, bus, addr, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,GET_I2C_DEVICE(bus, addr),##args))
|
|
#define PROBE_IMU_I2C2(driver, bus, addr1, addr2, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,hal.i2c_mgr->get_device(bus, addr1),hal.i2c_mgr->get_device(bus, addr2),##args))
|
|
#define PROBE_IMU_SPI(driver, devname, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,hal.spi->get_device(devname),##args))
|
|
#define PROBE_IMU_SPI2(driver, devname1, devname2, args ...) ADD_BACKEND(AP_InertialSensor_ ## driver::probe(*this,hal.spi->get_device(devname1),hal.spi->get_device(devname2),##args))
|
|
|
|
#define PROBE_BARO_I2C(driver, bus, addr, args ...) ADD_BACKEND(AP_Baro_ ## driver::probe(*this,std::move(GET_I2C_DEVICE(bus, addr)),##args))
|
|
#define PROBE_BARO_SPI(driver, devname, args ...) ADD_BACKEND(AP_Baro_ ## driver::probe(*this,std::move(hal.spi->get_device(devname)),##args))
|
|
|
|
#define PROBE_MAG_I2C(driver, bus, addr, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe(GET_I2C_DEVICE(bus, addr),##args))
|
|
#define PROBE_MAG_SPI(driver, devname, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe(hal.spi->get_device(devname),##args))
|
|
#define PROBE_MAG_IMU(driver, imudev, imu_instance, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe_ ## imudev(imu_instance,##args))
|
|
#define PROBE_MAG_IMU_I2C(driver, imudev, bus, addr, args ...) ADD_BACKEND(DRIVER_ ##driver, AP_Compass_ ## driver::probe_ ## imudev(GET_I2C_DEVICE(bus,addr),##args))
|
|
|
|
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NONE
|
|
#define HAL_BOARD_LOG_DIRECTORY "logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
|
|
#define HAL_BOARD_STORAGE_DIRECTORY "."
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF || CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD
|
|
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_ROLL_180_YAW_270)
|
|
#else
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_ROLL_180_YAW_90)
|
|
#endif
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_GPIO_A_LED_PIN 61
|
|
#define HAL_GPIO_B_LED_PIN 48
|
|
#define HAL_GPIO_C_LED_PIN 117
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP
|
|
#define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
|
|
#define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_YAW_270)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_I2C(AK8963, 1, 0x0d, ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77, AP_Baro_MS56XX::BARO_MS5607)
|
|
#define HAL_HAVE_IMU_HEATER 1
|
|
#define HAL_IMU_TEMP_DEFAULT 55
|
|
#define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
|
|
#define HAL_LINUX_HEAT_PWM_NUM 6
|
|
#define HAL_LINUX_HEAT_KP 20000
|
|
#define HAL_LINUX_HEAT_KI 6
|
|
#define HAL_LINUX_HEAT_PERIOD_NS 125000
|
|
#define HAL_LINUX_HEAT_TARGET_TEMP 50
|
|
#define BEBOP_CAMV_PWM 9
|
|
#define BEBOP_CAMV_PWM_FREQ 43333333
|
|
#define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
|
|
#define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
|
|
#define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
|
|
#define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
|
|
#define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
|
|
#define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
|
|
#define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
|
|
#define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
|
|
#define HAL_OPTFLOW_ONBOARD_NBUFS 8
|
|
#define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
|
|
#define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
|
|
#define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
|
|
#define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/bebop.parm"
|
|
#define HAL_RCOUT_BEBOP_BLDC_I2C_BUS 1
|
|
#define HAL_RCOUT_BEBOP_BLDC_I2C_ADDR 0x08
|
|
/* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
|
|
#define HAL_BATT_MONITOR_DEFAULT AP_BattMonitor::Type::BEBOP
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_VNAV
|
|
// linux SBC with VectorNav AHRS
|
|
#define HAL_EXTERNAL_AHRS_DEFAULT 1
|
|
#define HAL_SERIAL3_PROTOCOL 36
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE
|
|
#define HAL_AIRSPEED_TYPE_DEFAULT 0
|
|
#define HAL_GPS_TYPE_DEFAULT 21
|
|
#define HAL_AHRS_EKF_TYPE_DEFAULT 11
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO
|
|
#define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
|
|
#define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_PITCH_180_YAW_90)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_I2C(AK8963, 1, 0x0d, ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77, AP_Baro_MS56XX::BARO_MS5607)
|
|
#define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
|
|
#define HAL_LINUX_HEAT_PWM_NUM 10
|
|
#define HAL_LINUX_HEAT_KP 20000
|
|
#define HAL_LINUX_HEAT_KI 6
|
|
#define HAL_LINUX_HEAT_PERIOD_NS 125000
|
|
#define HAL_LINUX_HEAT_TARGET_TEMP 50
|
|
#define BEBOP_CAMV_PWM 9
|
|
#define BEBOP_CAMV_PWM_FREQ 43333333
|
|
#define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
|
|
#define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
|
|
#define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
|
|
#define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
|
|
#define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
|
|
#define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
|
|
#define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
|
|
#define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
|
|
#define HAL_OPTFLOW_ONBOARD_NBUFS 8
|
|
#define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
|
|
#define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
|
|
#define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
|
|
#define HAL_RCOUT_DISCO_BLDC_I2C_BUS 1
|
|
#define HAL_RCOUT_DISCO_BLDC_I2C_ADDR 0x08
|
|
#define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/disco.parm"
|
|
/* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
|
|
// the disco has challenges with its magnetic setup
|
|
#define AP_COMPASS_OFFSETS_MAX_DEFAULT 2200
|
|
#define HAL_BATT_MONITOR_DEFAULT AP_BattMonitor::Type::BEBOP
|
|
#define HAL_GPIO_SCRIPT "/data/ftp/internal_000/ardupilot/gpio.sh"
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
|
|
#define HAL_GPIO_A_LED_PIN 0
|
|
#define HAL_GPIO_B_LED_PIN 1
|
|
#define HAL_GPIO_C_LED_PIN 2
|
|
#define HAL_GPIO_LED_ON 1
|
|
#define HAL_GPIO_LED_OFF 0
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO2
|
|
#define HAL_HAVE_SERVO_VOLTAGE 1
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
|
|
#define HAL_MAG_PROBE1 PROBE_MAG_SPI(LSM9DS1, "lsm9ds1_m", ROTATION_ROLL_180)
|
|
#define HAL_MAG_PROBE2 PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_YAW_270)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_GPIO_A_LED_PIN 24
|
|
#define HAL_GPIO_B_LED_PIN 25
|
|
#define HAL_GPIO_C_LED_PIN 16
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ZYNQ
|
|
// Stub the sensors out for now, at least we can build and run
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
|
// only external compasses
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_OCPOC_ZYNQ
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BBBMINI
|
|
#define HAL_GPIO_A_LED_PIN 69
|
|
#define HAL_GPIO_B_LED_PIN 68
|
|
#define HAL_GPIO_C_LED_PIN 45
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#define HAL_BUZZER_PIN 11
|
|
#define HAL_INS_PROBE1 PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu9250ext", ROTATION_NONE)
|
|
#define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE1 PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_MAG_PROBE2 PROBE_MAG_IMU(AK8963, mpu9250, 1, ROTATION_NONE)
|
|
#define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
|
|
#define HAL_NUM_CAN_IFACES 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIGATOR
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "icm20602", ROTATION_ROLL_180_YAW_270)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_I2C(MMC5XX3, 1, 0x30, false, ROTATION_YAW_90)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(BMP280, 4, 0x76)
|
|
#define HAL_BATT_CURR_PIN 4
|
|
#define HAL_BATT_CURR_SCALE 1
|
|
#define HAL_BATT_VOLT_PIN 5
|
|
#define HAL_BATT_VOLT_SCALE 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BLUE
|
|
#define HAL_GPIO_A_LED_PIN 66
|
|
#define HAL_GPIO_B_LED_PIN 67
|
|
#define HAL_GPIO_LED_ON 1
|
|
#define HAL_GPIO_LED_OFF 0
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_I2C(Invensense, 2, 0x68, ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(BMP280, 2, 0x76)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU_I2C(AK8963, mpu9250, 2, 0x0c, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 1
|
|
#define HAL_NUM_CAN_IFACES 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_POCKET
|
|
#define HAL_GPIO_A_LED_PIN 59
|
|
#define HAL_GPIO_B_LED_PIN 58
|
|
#define HAL_GPIO_C_LED_PIN 57
|
|
#define HAL_GPIO_LED_ON 1
|
|
#define HAL_GPIO_LED_OFF 0
|
|
#define HAL_BUZZER_PIN 28
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(BMP280, "bmp280")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
|
|
#define HAL_NUM_CAN_IFACES 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BH
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
|
|
#define HAL_INS_PROBE1 PROBE_IMU_I2C(Invensense, 1, 0x69, ROTATION_NONE)
|
|
#define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_GPIO_A_LED_PIN 17
|
|
#define HAL_GPIO_B_LED_PIN 18
|
|
#define HAL_GPIO_C_LED_PIN 22
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#define HAL_RCOUT_RGBLED_RED 13
|
|
#define HAL_RCOUT_RGBLED_GREEN 14
|
|
#define HAL_RCOUT_RGBLED_BLUE 15
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXFMINI
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_YAW_270)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_GPIO_A_LED_PIN 24
|
|
#define HAL_GPIO_B_LED_PIN 25
|
|
#define HAL_GPIO_C_LED_PIN 16
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_AERO
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(BMI160, "bmi160")
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 2, 0x76)
|
|
#define HAL_MAG_PROBE1 PROBE_MAG_I2C(BMM150, 2, 0x12, ROTATION_NONE)
|
|
#define HAL_MAG_PROBE2 PROBE_MAG_I2C(HMC5843, 4, 0x1e, true, ROTATION_NONE)
|
|
#define HAL_MAG_PROBE3 PROBE_MAG_I2C(IST8310, 4, 0x0e, true, ROTATION_PITCH_180_YAW_90)
|
|
#define HAL_MAG_PROBE_LIST HAL_MAG_PROBE1; HAL_MAG_PROBE2; HAL_MAG_PROBE3
|
|
#define HAL_RCOUTPUT_TAP_DEVICE "/dev/ttyS1"
|
|
#define HAL_NUM_CAN_IFACES 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DARK
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI(Invensense, "mpu9250", ROTATION_NONE)
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_IMU(AK8963, mpu9250, 0, ROTATION_NONE)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_I2C(MS56XX, 1, 0x77)
|
|
#define HAL_GPIO_A_LED_PIN 24
|
|
#define HAL_GPIO_B_LED_PIN 25
|
|
#define HAL_GPIO_C_LED_PIN 16
|
|
#define HAL_GPIO_LED_ON 0
|
|
#define HAL_GPIO_LED_OFF 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_EDGE
|
|
#define HAL_BOARD_LOG_DIRECTORY "/edge/ardupilot/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/edge/ardupilot/terrain"
|
|
#define HAL_BOARD_STORAGE_DIRECTORY "/edge/ardupilot"
|
|
#define HAL_INS_PROBE1 PROBE_IMU_SPI(Invensense, "mpu60x0", ROTATION_YAW_90)
|
|
#define HAL_INS_PROBE2 PROBE_IMU_SPI(Invensense, "mpu60x0ext", ROTATION_YAW_90)
|
|
#define HAL_INS_PROBE_LIST HAL_INS_PROBE1; HAL_INS_PROBE2
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
// only external compasses
|
|
#define HAL_PROBE_EXTERNAL_I2C_COMPASSES
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NONE
|
|
#define HAL_NUM_CAN_IFACES 1
|
|
#define HAL_IMU_TEMP_DEFAULT 55
|
|
#define HAL_HAVE_IMU_HEATER 1
|
|
#define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
|
|
#define HAL_LINUX_HEAT_PWM_NUM 15
|
|
#define HAL_LINUX_HEAT_KP 20000
|
|
#define HAL_LINUX_HEAT_KI 6
|
|
#define HAL_LINUX_HEAT_PERIOD_NS 2040816
|
|
#define HAL_GPS_TYPE_DEFAULT 9
|
|
#define HAL_CAN_DRIVER_DEFAULT 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_RST_ZYNQ
|
|
#define HAL_INS_PROBE_LIST PROBE_IMU_SPI2(Invensense, "rst_g", "rst_a", ROTATION_ROLL_180_YAW_90, ROTATION_ROLL_180_YAW_90)
|
|
#define HAL_BARO_PROBE_LIST PROBE_BARO_SPI(MS56XX, "ms5611")
|
|
#define HAL_MAG_PROBE_LIST PROBE_MAG_SPI(LIS3MDL, lis3mdl, false, ROTATION_ROLL_180_YAW_90)
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_BUS 0
|
|
|
|
#define HAL_HAVE_GETTIME_SETTIME 1
|
|
|
|
#else
|
|
#error "no Linux board subtype set"
|
|
#endif
|
|
|
|
#ifndef HAL_COMPASS_DEFAULT
|
|
#define HAL_COMPASS_DEFAULT -1
|
|
#endif
|
|
|
|
#ifndef HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS 0x42
|
|
#endif
|
|
|
|
#ifndef HAL_OPTFLOW_PX4FLOW_I2C_BUS
|
|
#define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
|
|
#endif
|
|
|
|
#define HAL_HAVE_BOARD_VOLTAGE 1
|
|
#define HAL_HAVE_SAFETY_SWITCH 0
|
|
|
|
|
|
#ifndef HAL_HAVE_SERVO_VOLTAGE
|
|
#define HAL_HAVE_SERVO_VOLTAGE 0
|
|
#endif
|
|
|
|
#ifndef AP_STATEDIR
|
|
#define HAL_BOARD_STATE_DIRECTORY "/var/lib/ardupilot"
|
|
#else
|
|
#define HAL_BOARD_STATE_DIRECTORY AP_STATEDIR
|
|
#endif
|
|
|
|
#ifndef HAL_BOARD_LOG_DIRECTORY
|
|
#define HAL_BOARD_LOG_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/logs"
|
|
#endif
|
|
|
|
#ifndef HAL_BOARD_TERRAIN_DIRECTORY
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/terrain"
|
|
#endif
|
|
|
|
#ifndef HAL_BOARD_STORAGE_DIRECTORY
|
|
#define HAL_BOARD_STORAGE_DIRECTORY HAL_BOARD_STATE_DIRECTORY
|
|
#endif
|
|
|
|
#ifndef HAL_BOARD_CAN_IFACE_NAME
|
|
#define HAL_BOARD_CAN_IFACE_NAME "can0"
|
|
#endif
|
|
|
|
// if bus masks are not setup above then use these defaults
|
|
#ifndef HAL_LINUX_I2C_BUS_MASK
|
|
#define HAL_LINUX_I2C_BUS_MASK 0xFFFF
|
|
#endif
|
|
|
|
#ifndef HAL_LINUX_I2C_INTERNAL_BUS_MASK
|
|
#define HAL_LINUX_I2C_INTERNAL_BUS_MASK 0xFFFF
|
|
#endif
|
|
|
|
#ifndef HAL_LINUX_I2C_EXTERNAL_BUS_MASK
|
|
#define HAL_LINUX_I2C_EXTERNAL_BUS_MASK 0xFFFF
|
|
#endif
|
|
|
|
#include <AP_HAL_Linux/Semaphores.h>
|
|
#define HAL_Semaphore Linux::Semaphore
|
|
#include <AP_HAL/EventHandle.h>
|
|
#define HAL_EventHandle AP_HAL::EventHandle
|