APM:Libraries
linux.h
Go to the documentation of this file.
1 #pragma once
2 
3 #define HAL_BOARD_NAME "Linux"
4 #define HAL_CPU_CLASS HAL_CPU_CLASS_1000
5 #define HAL_OS_POSIX_IO 1
6 #define HAL_OS_SOCKETS 1
7 #define HAL_STORAGE_SIZE 16384
8 #define HAL_STORAGE_SIZE_AVAILABLE HAL_STORAGE_SIZE
9 
10 #if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NONE
11 #define HAL_BOARD_LOG_DIRECTORY "logs"
12 #define HAL_BOARD_TERRAIN_DIRECTORY "terrain"
13 #define HAL_BOARD_STORAGE_DIRECTORY "."
14 #define HAL_INS_DEFAULT HAL_INS_HIL
15 #define HAL_BARO_DEFAULT HAL_BARO_HIL
16 #define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
17 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF || CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBOARD
18 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
19 #if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXF
20 #define HAL_INS_DEFAULT_ROTATION ROTATION_ROLL_180_YAW_270
21 #else
22 #define HAL_INS_DEFAULT_ROTATION ROTATION_ROLL_180_YAW_90
23 #endif
24 #define HAL_INS_MPU9250_NAME "mpu9250"
25 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
26 #define HAL_BARO_MS5611_NAME "ms5611"
27 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
28 #define HAL_COMPASS_HMC5843_I2C_BUS 1
29 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
30 #define HAL_GPIO_A_LED_PIN 61
31 #define HAL_GPIO_B_LED_PIN 48
32 #define HAL_GPIO_C_LED_PIN 117
33 #define HAL_GPIO_LED_ON LOW
34 #define HAL_GPIO_LED_OFF HIGH
35 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BEBOP
36 #define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
37 #define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
38 #define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
39 #define HAL_INS_DEFAULT HAL_INS_MPU60XX_I2C
40 #define HAL_INS_DEFAULT_ROTATION ROTATION_YAW_270
41 #define HAL_INS_MPU60x0_I2C_BUS 2
42 #define HAL_INS_MPU60x0_I2C_ADDR 0x68
43 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_I2C
44 #define HAL_COMPASS_AK8963_I2C_BUS 1
45 #define HAL_COMPASS_AK8963_I2C_ADDR 0x0d
46 #define HAL_BARO_DEFAULT HAL_BARO_MS5607_I2C
47 #define HAL_BARO_MS5607_I2C_BUS 1
48 #define HAL_BARO_MS5607_I2C_ADDR 0x77
49 #define HAL_HAVE_IMU_HEATER 1
50 #define HAL_IMU_TEMP_DEFAULT 55
51 #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
52 #define HAL_LINUX_HEAT_PWM_NUM 6
53 #define HAL_LINUX_HEAT_KP 20000
54 #define HAL_LINUX_HEAT_KI 6
55 #define HAL_LINUX_HEAT_PERIOD_NS 125000
56 #define HAL_LINUX_HEAT_TARGET_TEMP 50
57 #define BEBOP_CAMV_PWM 9
58 #define BEBOP_CAMV_PWM_FREQ 43333333
59 #define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
60 #define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
61 #define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
62 #define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
63 #define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
64 #define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
65 #define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
66 #define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
67 #define HAL_OPTFLOW_ONBOARD_NBUFS 8
68 #define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
69 #define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
70 #define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
71 #define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/bebop.parm"
72 #define HAL_RCOUT_BEBOP_BLDC_I2C_BUS 1
73 #define HAL_RCOUT_BEBOP_BLDC_I2C_ADDR 0x08
74 /* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
75  * 240x240 crop rescaled to 64x64 */
76 #define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
77 #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
78 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DISCO
79 #define HAL_BOARD_LOG_DIRECTORY "/data/ftp/internal_000/ardupilot/logs"
80 #define HAL_BOARD_TERRAIN_DIRECTORY "/data/ftp/internal_000/ardupilot/terrain"
81 #define HAL_BOARD_STORAGE_DIRECTORY "/data/ftp/internal_000/ardupilot"
82 #define HAL_INS_DEFAULT HAL_INS_MPU60XX_I2C
83 #define HAL_INS_DEFAULT_ROTATION ROTATION_PITCH_180_YAW_90
84 #define HAL_INS_MPU60x0_I2C_BUS 2
85 #define HAL_INS_MPU60x0_I2C_ADDR 0x68
86 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_I2C
87 #define HAL_COMPASS_AK8963_I2C_BUS 1
88 #define HAL_COMPASS_AK8963_I2C_ADDR 0x0d
89 #define HAL_BARO_DEFAULT HAL_BARO_MS5607_I2C
90 #define HAL_BARO_MS5607_I2C_BUS 1
91 #define HAL_BARO_MS5607_I2C_ADDR 0x77
92 #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
93 #define HAL_LINUX_HEAT_PWM_NUM 10
94 #define HAL_LINUX_HEAT_KP 20000
95 #define HAL_LINUX_HEAT_KI 6
96 #define HAL_LINUX_HEAT_PERIOD_NS 125000
97 #define HAL_LINUX_HEAT_TARGET_TEMP 50
98 #define BEBOP_CAMV_PWM 9
99 #define BEBOP_CAMV_PWM_FREQ 43333333
100 #define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
101 #define HAL_OPTFLOW_ONBOARD_SUBDEV_PATH "/dev/v4l-subdev0"
102 #define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
103 #define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
104 #define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
105 #define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
106 #define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
107 #define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
108 #define HAL_OPTFLOW_ONBOARD_NBUFS 8
109 #define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
110 #define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
111 #define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
112 #define HAL_RCOUT_DISCO_BLDC_I2C_BUS 1
113 #define HAL_RCOUT_DISCO_BLDC_I2C_ADDR 0x08
114 #define HAL_PARAM_DEFAULTS_PATH "/data/ftp/internal_000/ardupilot/disco.parm"
115 /* focal length 2.21mm pixel size 3.6 um, 2x binning in each direction
116  * 240x240 crop rescaled to 64x64 */
117 #define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.21 / (3.6 * 2.0 * 240 / 64))
118 #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 0
119 // the disco has challenges with its magnetic setup
120 #define AP_COMPASS_OFFSETS_MAX_DEFAULT 2200
121 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_MINLURE
122 #define HAL_INS_DEFAULT HAL_INS_MPU60XX_SPI
123 #define HAL_INS_DEFAULT_ROTATION ROTATION_YAW_90
124 #define HAL_INS_MPU60x0_NAME "mpu6000"
125 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
126 #define HAL_BARO_MS5611_I2C_BUS { "platform/80860F41:06", }
127 #define HAL_BARO_MS5611_I2C_ADDR 0x77
128 /* Internal and external compasses */
129 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
130 #define HAL_OPTFLOW_ONBOARD_VDEV_PATH "/dev/video0"
131 #define HAL_OPTFLOW_ONBOARD_SENSOR_WIDTH 320
132 #define HAL_OPTFLOW_ONBOARD_SENSOR_HEIGHT 240
133 #define HAL_OPTFLOW_ONBOARD_OUTPUT_WIDTH 64
134 #define HAL_OPTFLOW_ONBOARD_OUTPUT_HEIGHT 64
135 #define HAL_OPTFLOW_ONBOARD_CROP_WIDTH 240
136 #define HAL_OPTFLOW_ONBOARD_CROP_HEIGHT 240
137 #define HAL_OPTFLOW_ONBOARD_NBUFS 8
138 #define HAL_FLOW_PX4_MAX_FLOW_PIXEL 4
139 #define HAL_FLOW_PX4_BOTTOM_FLOW_FEATURE_THRESHOLD 30
140 #define HAL_FLOW_PX4_BOTTOM_FLOW_VALUE_THRESHOLD 5000
141 /* ELP-USBFHD01M-L21
142  * focal length 2.1 mm, pixel size 3 um
143  * 240x240 crop rescaled to 64x64 */
144 #define HAL_FLOW_PX4_FOCAL_LENGTH_MILLIPX (2.1 / (3.0 * 2.0 * 240 / 64))
145 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO
146 #define HAL_GPIO_A_LED_PIN 0
147 #define HAL_GPIO_B_LED_PIN 1
148 #define HAL_GPIO_C_LED_PIN 2
149 #define HAL_GPIO_LED_ON HIGH
150 #define HAL_GPIO_LED_OFF LOW
151 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
152 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
153 #define HAL_INS_MPU9250_NAME "mpu9250"
154 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
155 #define HAL_BARO_MS5611_I2C_BUS 1
156 #define HAL_BARO_MS5611_I2C_ADDR 0x77
157 #define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO
158 /* HMC5843 can be an external compass */
159 #define HAL_COMPASS_HMC5843_I2C_BUS 1
160 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
161 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_NAVIO2
162 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
163 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
164 #define HAL_INS_MPU9250_NAME "mpu9250"
165 #define HAL_INS_LSM9DS1_NAME "lsm9ds1"
166 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
167 #define HAL_BARO_MS5611_I2C_BUS 1
168 #define HAL_BARO_MS5611_I2C_ADDR 0x77
169 #define HAL_COMPASS_DEFAULT HAL_COMPASS_NAVIO2
170 /* HMC5843 can be an external compass */
171 #define HAL_COMPASS_HMC5843_I2C_BUS 1
172 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
173 #define HAL_GPIO_A_LED_PIN 16
174 #define HAL_GPIO_B_LED_PIN 16
175 #define HAL_GPIO_C_LED_PIN 16
176 #define HAL_GPIO_LED_ON LOW
177 #define HAL_GPIO_LED_OFF HIGH
178 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ERLEBRAIN2
179 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
180 #define HAL_INS_DEFAULT_ROTATION ROTATION_YAW_270
181 #define HAL_INS_MPU9250_NAME "mpu9250"
182 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
183 #define HAL_BARO_MS5611_NAME "ms5611"
184 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
185 /* HMC5843 can be an external compass */
186 #define HAL_COMPASS_HMC5843_I2C_BUS 1
187 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
188 #define HAL_GPIO_A_LED_PIN 24
189 #define HAL_GPIO_B_LED_PIN 25
190 #define HAL_GPIO_C_LED_PIN 16
191 #define HAL_GPIO_LED_ON LOW
192 #define HAL_GPIO_LED_OFF HIGH
193 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_ZYNQ
194 // Stub the sensors out for now, at least we can build and run
195 #define HAL_INS_DEFAULT HAL_INS_HIL
196 #define HAL_BARO_DEFAULT HAL_BARO_HIL
197 #define HAL_COMPASS_DEFAULT HAL_COMPASS_HIL
198 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_OCPOC_ZYNQ
199 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
200 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
201 #define HAL_INS_MPU9250_NAME "mpu9250"
202 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
203 #define HAL_BARO_MS5611_NAME "ms5611"
204 #define HAL_COMPASS_DEFAULT HAL_COMPASS_OCPOC_ZYNQ
205 /* HMC5843 can be an external compass */
206 #define HAL_COMPASS_HMC5843_I2C_BUS 4
207 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
208 #define AP_COMPASS_OFFSETS_MAX_DEFAULT 1000
209 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BBBMINI
210 #define HAL_GPIO_A_LED_PIN 69
211 #define HAL_GPIO_B_LED_PIN 68
212 #define HAL_GPIO_C_LED_PIN 45
213 #define HAL_GPIO_LED_ON LOW
214 #define HAL_GPIO_LED_OFF HIGH
215 #define HAL_BUZZER_PIN 11
216 #define HAL_INS_DEFAULT HAL_INS_BBBMINI
217 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
218 #define HAL_INS_MPU9250_NAME "mpu9250"
219 #define HAL_INS_MPU9250_NAME_EXT "mpu9250ext"
220 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
221 #define HAL_BARO_MS5611_NAME "ms5611"
222 #define HAL_COMPASS_DEFAULT HAL_COMPASS_BBBMINI
223 /* HMC5843 can be an external compass */
224 #define HAL_COMPASS_HMC5843_I2C_BUS 2
225 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
226 #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
227 #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
228 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BLUE
229 #define HAL_GPIO_A_LED_PIN 66
230 #define HAL_GPIO_B_LED_PIN 67
231 #define HAL_GPIO_C_LED_PIN 67
232 #define HAL_GPIO_LED_ON HIGH
233 #define HAL_GPIO_LED_OFF LOW
234 #define HAL_INS_DEFAULT HAL_INS_MPU9250_I2C
235 #define HAL_INS_MPU9250_I2C_BUS 2
236 #define HAL_INS_MPU9250_I2C_ADDR 0x68
237 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
238 #define HAL_BARO_DEFAULT HAL_BARO_BMP280_I2C
239 #define HAL_BARO_BMP280_BUS 2
240 #define HAL_BARO_BMP280_I2C_ADDR 0x76
241 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250_I2C
242 #define HAL_COMPASS_AK8963_I2C_BUS 2
243 #define HAL_COMPASS_AK8963_I2C_ADDR 0x0C
244 /* HMC5843 can be an external compass */
245 #define HAL_COMPASS_HMC5843_I2C_BUS 1
246 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
247 #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
248 #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 1
249 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_POCKET
250 #define HAL_GPIO_A_LED_PIN 59
251 #define HAL_GPIO_B_LED_PIN 58
252 #define HAL_GPIO_C_LED_PIN 57
253 #define HAL_GPIO_LED_ON HIGH
254 #define HAL_GPIO_LED_OFF LOW
255 #define HAL_BUZZER_PIN 28
256 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
257 #define HAL_INS_MPU9250_NAME "mpu9250"
258 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
259 #define HAL_BARO_DEFAULT HAL_BARO_BMP280_SPI
260 #define HAL_BARO_BMP280_NAME "bmp280"
261 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
262 /* HMC5843 can be an external compass */
263 #define HAL_COMPASS_HMC5843_I2C_BUS 2
264 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
265 #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 2
266 #define HAL_RANGEFINDER_LIGHTWARE_I2C_BUS 2
267 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BH
268 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
269 #define HAL_BARO_MS5611_I2C_BUS 1
270 #define HAL_BARO_MS5611_I2C_ADDR 0x77
271 #define HAL_INS_DEFAULT HAL_INS_BH
272 #define HAL_INS_MPU9250_NAME "mpu9250"
273 #define HAL_INS_MPU60x0_I2C_BUS 1
274 #define HAL_INS_MPU60x0_I2C_ADDR 0x69
275 #define HAL_COMPASS_DEFAULT HAL_COMPASS_BH
276 /* HMC5843 can be an external compass */
277 #define HAL_COMPASS_HMC5843_I2C_BUS 1
278 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
279 #define HAL_GPIO_A_LED_PIN 17
280 #define HAL_GPIO_B_LED_PIN 18
281 #define HAL_GPIO_C_LED_PIN 22
282 #define HAL_GPIO_LED_ON LOW
283 #define HAL_GPIO_LED_OFF HIGH
284 #define HAL_RCOUT_RGBLED_RED 13
285 #define HAL_RCOUT_RGBLED_GREEN 14
286 #define HAL_RCOUT_RGBLED_BLUE 15
287 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_PXFMINI
288 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
289 #define HAL_INS_DEFAULT_ROTATION ROTATION_YAW_270
290 #define HAL_INS_MPU9250_NAME "mpu9250"
291 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
292 #define HAL_BARO_MS5611_NAME "ms5611"
293 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
294 /* HMC5843 can be an external compass */
295 #define HAL_COMPASS_HMC5843_I2C_BUS 1
296 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
297 #define HAL_GPIO_A_LED_PIN 24
298 #define HAL_GPIO_B_LED_PIN 25
299 #define HAL_GPIO_C_LED_PIN 16
300 #define HAL_GPIO_LED_ON LOW
301 #define HAL_GPIO_LED_OFF HIGH
302 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_AERO
303 #define HAL_INS_DEFAULT HAL_INS_AERO
304 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
305 #define HAL_BARO_MS5611_I2C_BUS 2
306 #define HAL_BARO_MS5611_I2C_ADDR 0x76
307 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AERO
308 #define HAL_COMPASS_BMM150_I2C_BUS 2
309 #define HAL_COMPASS_BMM150_I2C_ADDR 0x12
310 #define HAL_COMPASS_IST8310_I2C_BUS 4
311 #define HAL_COMPASS_IST8310_I2C_ADDR 0x0E
312 #define HAL_COMPASS_HMC5843_I2C_BUS 4
313 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
314 #define HAL_RCOUTPUT_TAP_DEVICE "/dev/ttyS1"
315 #define HAL_WITH_UAVCAN 1
316 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_DARK
317 #define HAL_INS_DEFAULT HAL_INS_MPU9250_SPI
318 #define HAL_INS_DEFAULT_ROTATION ROTATION_NONE
319 #define HAL_INS_MPU9250_NAME "mpu9250"
320 #define HAL_COMPASS_DEFAULT HAL_COMPASS_AK8963_MPU9250
321 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_I2C
322 #define HAL_BARO_MS5611_I2C_BUS 1
323 #define HAL_BARO_MS5611_I2C_ADDR 0x77
324 #define HAL_BARO_MS5611_USE_TIMER false
325 #define HAL_GPIO_A_LED_PIN 24
326 #define HAL_GPIO_B_LED_PIN 25
327 #define HAL_GPIO_C_LED_PIN 16
328 #define HAL_GPIO_LED_ON LOW
329 #define HAL_GPIO_LED_OFF HIGH
330 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_EDGE
331 #define HAL_BOARD_LOG_DIRECTORY "/edge/ardupilot/logs"
332 #define HAL_BOARD_TERRAIN_DIRECTORY "/edge/ardupilot/terrain"
333 #define HAL_BOARD_STORAGE_DIRECTORY "/edge/ardupilot"
334 #define HAL_INS_DEFAULT HAL_INS_EDGE
335 #define HAL_INS_MPU60x0_NAME "mpu60x0"
336 #define HAL_INS_MPU60x0_NAME_EXT "mpu60x0ext"
337 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
338 #define HAL_BARO_MS5611_NAME "ms5611"
339 #define HAL_COMPASS_HMC5843_I2C_BUS 1
340 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
341 #define HAL_COMPASS_DEFAULT HAL_COMPASS_EDGE
342 #define HAL_WITH_UAVCAN 1
343 /* HMC5843 can be an external compass */
344 #define HAL_COMPASS_HMC5843_I2C_BUS 1
345 #define HAL_COMPASS_HMC5843_I2C_ADDR 0x1E
346 #define HAL_IMU_TEMP_DEFAULT 55
347 #define HAL_HAVE_IMU_HEATER 1
348 #define HAL_UTILS_HEAT HAL_LINUX_HEAT_PWM
349 #define HAL_LINUX_HEAT_PWM_NUM 15
350 #define HAL_LINUX_HEAT_KP 20000
351 #define HAL_LINUX_HEAT_KI 6
352 #define HAL_LINUX_HEAT_PERIOD_NS 2040816
353 #define HAL_GPS_TYPE_DEFAULT 9
354 #define HAL_CAN_DRIVER_DEFAULT 1
355 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_RST_ZYNQ
356 #define HAL_INS_DEFAULT HAL_INS_RST
357 #define HAL_INS_DEFAULT_G_ROTATION ROTATION_ROLL_180_YAW_90
358 #define HAL_INS_DEFAULT_A_ROTATION ROTATION_ROLL_180_YAW_90
359 #define HAL_INS_RST_G_NAME "rst_g" //gyro
360 #define HAL_INS_RST_A_NAME "rst_a" //accel
361 #define HAL_BARO_DEFAULT HAL_BARO_MS5611_SPI
362 #define HAL_BARO_MS5611_NAME "ms5611"
363 #define HAL_COMPASS_DEFAULT HAL_COMPASS_LIS3MDL
364 #define HAL_COMPASS_LIS3MDL_NAME "lis3mdl"
365 #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 0
366 
367 #else
368 #error "no Linux board subtype set"
369 #endif
370 
371 #ifndef HAL_COMPASS_DEFAULT
372 #define HAL_COMPASS_DEFAULT -1
373 #endif
374 
375 #ifndef HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS
376 #define HAL_OPTFLOW_PX4FLOW_I2C_ADDRESS 0x42
377 #endif
378 
379 #ifndef HAL_OPTFLOW_PX4FLOW_I2C_BUS
380 #define HAL_OPTFLOW_PX4FLOW_I2C_BUS 1
381 #endif
382 
383 #define HAL_HAVE_BOARD_VOLTAGE 1
384 #define HAL_HAVE_SAFETY_SWITCH 1
385 
386 #ifndef AP_STATEDIR
387 #define HAL_BOARD_STATE_DIRECTORY "/var/lib/ardupilot"
388 #else
389 #define HAL_BOARD_STATE_DIRECTORY AP_STATEDIR
390 #endif
391 
392 #ifndef HAL_BOARD_LOG_DIRECTORY
393 #define HAL_BOARD_LOG_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/logs"
394 #endif
395 
396 #ifndef HAL_BOARD_TERRAIN_DIRECTORY
397 #define HAL_BOARD_TERRAIN_DIRECTORY HAL_BOARD_STATE_DIRECTORY "/terrain"
398 #endif
399 
400 #ifndef HAL_BOARD_STORAGE_DIRECTORY
401 #define HAL_BOARD_STORAGE_DIRECTORY HAL_BOARD_STATE_DIRECTORY
402 #endif
403 
404 #ifndef HAL_BOARD_CAN_IFACE_NAME
405 #define HAL_BOARD_CAN_IFACE_NAME "can0"
406 #endif