mirror of https://github.com/ArduPilot/ardupilot
568 lines
22 KiB
C
568 lines
22 KiB
C
/**
|
|
* C preprocesor enumeration of the boards supported by the AP_HAL.
|
|
* This list exists so HAL_BOARD == HAL_BOARD_xxx preprocessor blocks
|
|
* can be used to exclude HAL boards from the build when appropriate.
|
|
* It's not an elegant solution but we can improve it in future.
|
|
*/
|
|
#pragma once
|
|
|
|
#define HAL_BOARD_SITL 3
|
|
#define HAL_BOARD_SMACCM 4 // unused
|
|
#define HAL_BOARD_PX4 5
|
|
#define HAL_BOARD_LINUX 7
|
|
#define HAL_BOARD_VRBRAIN 8
|
|
#define HAL_BOARD_QURT 9
|
|
#define HAL_BOARD_EMPTY 99
|
|
|
|
/* Default board subtype is -1 */
|
|
#define HAL_BOARD_SUBTYPE_NONE -1
|
|
|
|
/* HAL Linux sub-types, starting at 1000 */
|
|
#define HAL_BOARD_SUBTYPE_LINUX_NONE 1000
|
|
#define HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD 1001
|
|
#define HAL_BOARD_SUBTYPE_LINUX_PXF 1002
|
|
#define HAL_BOARD_SUBTYPE_LINUX_NAVIO 1003
|
|
#define HAL_BOARD_SUBTYPE_LINUX_ZYNQ 1004
|
|
#define HAL_BOARD_SUBTYPE_LINUX_BBBMINI 1005
|
|
#define HAL_BOARD_SUBTYPE_LINUX_BEBOP 1006
|
|
#define HAL_BOARD_SUBTYPE_LINUX_RASPILOT 1007
|
|
#define HAL_BOARD_SUBTYPE_LINUX_MINLURE 1008
|
|
#define HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2 1009
|
|
#define HAL_BOARD_SUBTYPE_LINUX_BH 1010
|
|
#define HAL_BOARD_SUBTYPE_LINUX_QFLIGHT 1011
|
|
#define HAL_BOARD_SUBTYPE_LINUX_PXFMINI 1012
|
|
#define HAL_BOARD_SUBTYPE_LINUX_NAVIO2 1013
|
|
#define HAL_BOARD_SUBTYPE_LINUX_DISCO 1014
|
|
#define HAL_BOARD_SUBTYPE_LINUX_AERO 1015
|
|
|
|
/* HAL PX4 sub-types, starting at 2000 */
|
|
#define HAL_BOARD_SUBTYPE_PX4_V1 2000
|
|
#define HAL_BOARD_SUBTYPE_PX4_V2 2001
|
|
|
|
/* HAL VRBRAIN sub-types, starting at 4000 */
|
|
#define HAL_BOARD_SUBTYPE_VRBRAIN_V45 4000
|
|
#define HAL_BOARD_SUBTYPE_VRBRAIN_V51 4001
|
|
#define HAL_BOARD_SUBTYPE_VRBRAIN_V52 4002
|
|
#define HAL_BOARD_SUBTYPE_VRUBRAIN_V51 4003
|
|
#define HAL_BOARD_SUBTYPE_VRUBRAIN_V52 4004
|
|
#define HAL_BOARD_SUBTYPE_VRCORE_V10 4005
|
|
#define HAL_BOARD_SUBTYPE_VRBRAIN_V54 4006
|
|
|
|
/* InertialSensor driver types */
|
|
#define HAL_INS_MPU60XX_SPI 2
|
|
#define HAL_INS_MPU60XX_I2C 3
|
|
#define HAL_INS_HIL 4
|
|
#define HAL_INS_PX4 5
|
|
#define HAL_INS_L3G4200D 7
|
|
#define HAL_INS_VRBRAIN 8
|
|
#define HAL_INS_MPU9250_SPI 9
|
|
#define HAL_INS_L3GD20 10
|
|
#define HAL_INS_LSM9DS0 11
|
|
#define HAL_INS_RASPILOT 12
|
|
#define HAL_INS_MPU9250_I2C 13
|
|
#define HAL_INS_BH 14
|
|
#define HAL_INS_QFLIGHT 15
|
|
#define HAL_INS_QURT 16
|
|
#define HAL_INS_BBBMINI 17
|
|
#define HAL_INS_AERO 18
|
|
|
|
/* Barometer driver types */
|
|
#define HAL_BARO_BMP085 1
|
|
#define HAL_BARO_MS5611_I2C 2
|
|
#define HAL_BARO_MS5611_SPI 3
|
|
#define HAL_BARO_MS5607_I2C 4
|
|
#define HAL_BARO_PX4 5
|
|
#define HAL_BARO_HIL 6
|
|
#define HAL_BARO_VRBRAIN 7
|
|
#define HAL_BARO_MS5637_I2C 8
|
|
#define HAL_BARO_QFLIGHT 9
|
|
#define HAL_BARO_QURT 10
|
|
|
|
/* Compass driver types */
|
|
#define HAL_COMPASS_HMC5843 1
|
|
#define HAL_COMPASS_PX4 2
|
|
#define HAL_COMPASS_HIL 3
|
|
#define HAL_COMPASS_VRBRAIN 4
|
|
#define HAL_COMPASS_AK8963_MPU9250 5
|
|
#define HAL_COMPASS_AK8963_I2C 6
|
|
#define HAL_COMPASS_HMC5843_MPU6000 7
|
|
#define HAL_COMPASS_RASPILOT 8
|
|
#define HAL_COMPASS_AK8963_MPU9250_I2C 9
|
|
#define HAL_COMPASS_BH 10
|
|
#define HAL_COMPASS_QFLIGHT 11
|
|
#define HAL_COMPASS_QURT 12
|
|
#define HAL_COMPASS_BBBMINI 13
|
|
#define HAL_COMPASS_NAVIO2 14
|
|
#define HAL_COMPASS_NAVIO 15
|
|
#define HAL_COMPASS_AERO 16
|
|
|
|
/* Heat Types */
|
|
#define HAL_LINUX_HEAT_PWM 1
|
|
|
|
/* CPU classes, used to select if CPU intensive algorithms should be used
|
|
* Note that these are only approximate, not exact CPU speeds. */
|
|
|
|
/* DEPRECATED: 16Mhz: AVR2560 or similar */
|
|
#define HAL_CPU_CLASS_16 1
|
|
/* 150Mhz: PX4 or similar. Assumes:
|
|
* - hardware floating point
|
|
* - tens of kilobytes of memory available */
|
|
#define HAL_CPU_CLASS_150 3
|
|
/* GigaHz class: SITL, BeagleBone etc. Assumes megabytes of memory available. */
|
|
#define HAL_CPU_CLASS_1000 4
|
|
|
|
/* Operating system features
|
|
*
|
|
* HAL implementations may define the following extra feature defines to 1 if
|
|
* available:
|
|
*
|
|
* - HAL_OS_POSIX_IO : has posix-like filesystem IO
|
|
* - HAL_OS_SOCKETS : has posix-like sockets */
|
|
|
|
/* DEFINITIONS FOR BOARDS */
|
|
|
|
#if CONFIG_HAL_BOARD == HAL_BOARD_SITL
|
|
#define HAL_BOARD_NAME "SITL"
|
|
#define HAL_CPU_CLASS HAL_CPU_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_BOARD_LOG_DIRECTORY "logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
|
|
#define HAL_PARAM_DEFAULTS_PATH "etc/defaults.parm"
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
|
#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 LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_PX4
|
|
#define HAL_BOARD_NAME "PX4"
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_150
|
|
#define HAL_OS_POSIX_IO 1
|
|
#define HAL_BOARD_LOG_DIRECTORY "/fs/microsd/APM/LOGS"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/fs/microsd/APM/TERRAIN"
|
|
#define HAL_PARAM_DEFAULTS_PATH "/etc/defaults.parm"
|
|
#define HAL_INS_DEFAULT HAL_INS_PX4
|
|
#define HAL_BARO_DEFAULT HAL_BARO_PX4
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_PX4
|
|
#define HAL_SERIAL0_BAUD_DEFAULT 115200
|
|
#ifdef CONFIG_ARCH_BOARD_PX4FMU_V1
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_PX4_V1
|
|
#define HAL_STORAGE_SIZE 8192
|
|
#else
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_PX4_V2
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#define HAL_HAVE_IMU_HEATER 1 // for Pixhawk2
|
|
#define HAL_IMU_TEMP_DEFAULT -1 // disabled
|
|
#endif
|
|
#define HAL_GPIO_A_LED_PIN 27
|
|
#define HAL_GPIO_B_LED_PIN 26
|
|
#define HAL_GPIO_C_LED_PIN 25
|
|
#define HAL_GPIO_LED_ON LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_LINUX
|
|
#define HAL_BOARD_NAME "Linux"
|
|
#define HAL_CPU_CLASS HAL_CPU_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
|
|
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NONE
|
|
#define HAL_BOARD_LOG_DIRECTORY "logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
|
|
#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
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
#define HAL_BARO_MS5611_NAME "ms5611"
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#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 LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP
|
|
#define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU60XX_I2C
|
|
#define HAL_INS_MPU60x0_I2C_BUS 2
|
|
#define HAL_INS_MPU60x0_I2C_ADDR 0x68
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_I2C
|
|
#define HAL_COMPASS_AK8963_I2C_BUS 1
|
|
#define HAL_COMPASS_AK8963_I2C_ADDR 0x0d
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5607_I2C
|
|
#define HAL_BARO_MS5607_I2C_BUS 1
|
|
#define HAL_BARO_MS5607_I2C_ADDR 0x77
|
|
#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 "/etc/arducopter/bebop.parm"
|
|
#define HAL_RCOUT_BEBOP_BLDC_I2C_BUS 1
|
|
#define HAL_RCOUT_BEBOP_BLDC_I2C_ADDR 0x08
|
|
/* focal length 3.6 um, 2x binning in each direction
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.5 / (3.6 * 2.0 * 240 / 64))
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO
|
|
#define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU60XX_I2C
|
|
#define HAL_INS_MPU60x0_I2C_BUS 2
|
|
#define HAL_INS_MPU60x0_I2C_ADDR 0x68
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_I2C
|
|
#define HAL_COMPASS_AK8963_I2C_BUS 1
|
|
#define HAL_COMPASS_AK8963_I2C_ADDR 0x0d
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5607_I2C
|
|
#define HAL_BARO_MS5607_I2C_BUS 1
|
|
#define HAL_BARO_MS5607_I2C_ADDR 0x77
|
|
#define HAL_AIRSPEED_MS4515DO_I2C_BUS 1
|
|
#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 "/etc/arduplane/disco.parm"
|
|
/* focal length 3.6 um, 2x binning in each direction
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.5 / (3.6 * 2.0 * 240 / 64))
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
|
|
// the disco has challenges with its magnetic setup
|
|
#define AP_ARMING_COMPASS_OFFSETS_MAX 1500
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_MINLURE
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU60XX_SPI
|
|
#define HAL_INS_MPU60x0_NAME "mpu6000"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
|
|
#define HAL_BARO_MS5611_I2C_BUS 10
|
|
#define HAL_BARO_MS5611_I2C_ADDR 0x77
|
|
/* Internal and external compasses */
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
|
|
#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
|
|
/* ELP-USBFHD01M-L21
|
|
* focal length 2.1 mm, pixel size 3 um
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (3.0 / (2.1 * 2.0 * 240 / 64))
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
|
|
#define HAL_BARO_MS5611_I2C_BUS 1
|
|
#define HAL_BARO_MS5611_I2C_ADDR 0x77
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO2
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
|
|
#define HAL_BARO_MS5611_I2C_BUS 1
|
|
#define HAL_BARO_MS5611_I2C_ADDR 0x77
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO2
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#define HAL_GPIO_A_LED_PIN 16
|
|
#define HAL_GPIO_B_LED_PIN 16
|
|
#define HAL_GPIO_C_LED_PIN 16
|
|
#define HAL_GPIO_LED_ON LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_RASPILOT
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_RASPILOT
|
|
#define HAL_INS_MPU60x0_NAME "mpu6000"
|
|
#define HAL_INS_LSM9DS0_G_NAME "lsm9ds0_g"
|
|
#define HAL_INS_LSM9DS0_A_NAME "lsm9ds0_am"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
#define HAL_BARO_MS5611_NAME "ms5611"
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_RASPILOT
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
#define HAL_BARO_MS5611_NAME "ms5611"
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#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 LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ZYNQ
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
// 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
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BBBMINI
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_BBBMINI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_INS_MPU9250_NAME_EXT "mpu9250ext"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
#define HAL_BARO_MS5611_NAME "ms5611"
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_BBBMINI
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 2
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
|
|
#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
|
|
/* ELP-USBFHD01M-L21
|
|
* focal length 2.1 mm, pixel size 3 um
|
|
* 240x240 crop rescaled to 64x64 */
|
|
#define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (3.0 / (2.1 * 2.0 * 240 / 64))
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BH
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
|
|
#define HAL_BARO_MS5611_I2C_BUS 1
|
|
#define HAL_BARO_MS5611_I2C_ADDR 0x77
|
|
#define HAL_INS_DEFAULT HAL_INS_BH
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_INS_MPU60x0_I2C_BUS 1
|
|
#define HAL_INS_MPU60x0_I2C_ADDR 0x69
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_BH
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#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 LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
#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_QFLIGHT
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_QFLIGHT
|
|
#define HAL_BARO_DEFAULT HAL_BARO_QFLIGHT
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_QFLIGHT
|
|
#define HAL_LINUX_UARTS_ON_TIMER_THREAD 1
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXFMINI
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
|
|
#define HAL_INS_MPU9250_NAME "mpu9250"
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
|
|
#define HAL_BARO_MS5611_NAME "ms5611"
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
|
|
/* HMC5843 can be an external compass */
|
|
#define HAL_COMPASS_HMC5843_I2C_BUS 1
|
|
#define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
|
|
#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 LOW
|
|
#define HAL_GPIO_LED_OFF HIGH
|
|
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_AERO
|
|
#define HAL_BOARD_LOG_DIRECTORY "/var/APM/logs"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/var/APM/terrain"
|
|
#define HAL_INS_DEFAULT HAL_INS_AERO
|
|
#define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
|
|
#define HAL_BARO_MS5611_I2C_BUS 2
|
|
#define HAL_BARO_MS5611_I2C_ADDR 0x76
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_AERO
|
|
#define HAL_COMPASS_BMM150_I2C_BUS 2
|
|
#define HAL_COMPASS_BMM150_I2C_ADDR 0x12
|
|
#else
|
|
#error "no Linux board subtype set"
|
|
#endif
|
|
|
|
#ifndef HAL_COMPASS_DEFAULT
|
|
#define HAL_COMPASS_DEFAULT -1
|
|
#endif
|
|
|
|
#ifndef HAL_LINUX_UARTS_ON_TIMER_THREAD
|
|
#define HAL_LINUX_UARTS_ON_TIMER_THREAD 0
|
|
#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
|
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_EMPTY
|
|
#define HAL_BOARD_NAME "EMPTY"
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_16
|
|
#define HAL_STORAGE_SIZE 4096
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
|
#define HAL_INS_DEFAULT HAL_INS_HIL
|
|
#define HAL_BARO_DEFAULT HAL_BARO_HIL
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE
|
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_QURT
|
|
#define AP_HAL_BOARD_DRIVER AP_HAL_QURT
|
|
#define HAL_BOARD_NAME "QURT"
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_1000
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
|
|
#define HAL_INS_DEFAULT HAL_INS_QURT
|
|
#define HAL_BARO_DEFAULT HAL_BARO_QURT
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_QURT
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_NONE
|
|
#define HAL_BOARD_LOG_DIRECTORY "/dev/fs/logs"
|
|
#define HAL_OS_POSIX_IO 1
|
|
#define HAL_SERIAL0_BAUD_DEFAULT 115200
|
|
|
|
#elif CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN
|
|
#define HAL_BOARD_NAME "VRBRAIN"
|
|
#define HAL_CPU_CLASS HAL_CPU_CLASS_150
|
|
#define HAL_OS_POSIX_IO 1
|
|
#define HAL_BOARD_LOG_DIRECTORY "/fs/microsd/APM/LOGS"
|
|
#define HAL_BOARD_TERRAIN_DIRECTORY "/fs/microsd/APM/TERRAIN"
|
|
#define HAL_PARAM_DEFAULTS_PATH "/etc/defaults.parm"
|
|
#define HAL_INS_DEFAULT HAL_INS_VRBRAIN
|
|
#define HAL_BARO_DEFAULT HAL_BARO_VRBRAIN
|
|
#define HAL_COMPASS_DEFAULT HAL_COMPASS_VRBRAIN
|
|
#define HAL_SERIAL0_BAUD_DEFAULT 115200
|
|
#if defined(CONFIG_ARCH_BOARD_VRBRAIN_V45)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRBRAIN_V45
|
|
#define HAL_STORAGE_SIZE 8192
|
|
#elif defined(CONFIG_ARCH_BOARD_VRBRAIN_V51)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRBRAIN_V51
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#elif defined(CONFIG_ARCH_BOARD_VRBRAIN_V52)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRBRAIN_V52
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#elif defined(CONFIG_ARCH_BOARD_VRUBRAIN_V51)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRUBRAIN_V51
|
|
#define HAL_STORAGE_SIZE 8192
|
|
#elif defined(CONFIG_ARCH_BOARD_VRUBRAIN_V52)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRUBRAIN_V52
|
|
#define HAL_STORAGE_SIZE 8192
|
|
#elif defined(CONFIG_ARCH_BOARD_VRCORE_V10)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRCORE_V10
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#elif defined(CONFIG_ARCH_BOARD_VRBRAIN_V54)
|
|
#define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_VRBRAIN_V54
|
|
#define HAL_STORAGE_SIZE 16384
|
|
#endif
|
|
#define HAL_GPIO_A_LED_PIN 25
|
|
#define HAL_GPIO_B_LED_PIN 26
|
|
#define HAL_GPIO_C_LED_PIN 27
|
|
#define HAL_GPIO_LED_ON HIGH
|
|
#define HAL_GPIO_LED_OFF LOW
|
|
#define EXTERNAL_LED_GPS 28 // GPS LED - AN10
|
|
#define EXTERNAL_LED_ARMED 29 // Armed LED - AN11
|
|
#define EXTERNAL_LED_MOTOR1 30 // Motor1 LED - AN8
|
|
#define EXTERNAL_LED_MOTOR2 31 // Motor2 LED - AN12
|
|
|
|
#else
|
|
#error "Unknown CONFIG_HAL_BOARD type"
|
|
#endif
|
|
|
|
#ifndef CONFIG_HAL_BOARD_SUBTYPE
|
|
#error "No CONFIG_HAL_BOARD_SUBTYPE set"
|
|
#endif
|
|
|
|
#ifndef HAL_OS_POSIX_IO
|
|
#define HAL_OS_POSIX_IO 0
|
|
#endif
|
|
|
|
#ifndef HAL_OS_SOCKETS
|
|
#define HAL_OS_SOCKETS 0
|
|
#endif
|
|
|
|
#ifndef HAL_PARAM_DEFAULTS_PATH
|
|
#define HAL_PARAM_DEFAULTS_PATH NULL
|
|
#endif
|
|
|
|
#ifndef HAL_HAVE_IMU_HEATER
|
|
#define HAL_HAVE_IMU_HEATER 0
|
|
#endif
|
|
|
|
#ifndef HAL_RANGEFINDER_LIGHTWARE_I2C_BUS
|
|
#define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 1
|
|
#endif
|