hwdef.dat 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502
  1. # hw definition file for processing by chibios_hwdef.py
  2. # for FMUv3 hardware (ie. for Pixhawk1, Pixhawk2 cube, XUAV2.1 etc)
  3. # This hwdef.dat file contains a lot of comments so it can act as a
  4. # reference for developers adding new boards.
  5. # The hwdef.dat file defines all the hardware peripherals and pins for
  6. # a port of ArduPilot to a board using the ChibiOS HAL. You should be
  7. # able to write the hwdef.dat file for a new board with just the
  8. # schematic for the board.
  9. # This file is processed by chibios_hwdef.py to create hwdef.h for
  10. # this board. You may find it useful to run chibios_hwdef.py manually
  11. # when building this file for a new board. The resulting hwdef.h file
  12. # is formatted to make it quite readable. It is strongly suggested
  13. # that you read the resulting hwdef.h file when porting to a new board
  14. # to make sure it has resulted in what you want.
  15. # You should read this file in conjunction with the schematic for your
  16. # board, the datasheet for the MCU for your board and the python
  17. # tables file that we have extracted from the datasheet for your
  18. # MCU. The python tables file is particularly important, so if you
  19. # haven't seen it before go and look at it now. For the STM32F427 it
  20. # it called STM32F427xx.py and it is in the hwdef/script/ directory
  21. # inside the HAL_ChibiOS directory. That file tells you what each pin
  22. # can do (the alternate functions table) and what DMA channels can be
  23. # used for each peripheral type. The alternative functions table is
  24. # particularly useful when doing a new hwdef.dat file as you can work
  25. # out peripheral numbers given a port/pin name.
  26. # We need to start off by saying what main CPU is on the board. There
  27. # are two CPU identifiers that you need to specify. The first is the
  28. # ChibiOS MCU type. So far we only support STM32F4xx for all STM32F4
  29. # board types. In the future we will add F7 and other MCU types
  30. # The second string needs to match the name of a config file in the
  31. # libraries/AP_HAL_ChibiOS/hwdef/script directory. In this case we are
  32. # using a F427 MCU, so we select STM32F427xx to match the
  33. # STM32F427xx.py file in the script directory. If you are supporting a
  34. # board type that doesn't have a python hardware database file yet
  35. # then you will need to create one. There are scripts in the scripts
  36. # directory to help with that by parsing the STM32 datasheets to
  37. # extract the required DMA and alternate function tables.
  38. # MCU class and specific type
  39. MCU STM32F4xx STM32F427xx
  40. # We set a specific HAL_BOARD_SUBTYPE, allowing for custom config in
  41. # drivers. For this to be used the subtype needs to be added to
  42. # AP_HAL/AP_HAL_Boards.h as well.
  43. define CONFIG_HAL_BOARD_SUBTYPE HAL_BOARD_SUBTYPE_CHIBIOS_FMUV3
  44. # Now we need to specify the APJ_BOARD_ID. This is the ID that the
  45. # bootloader presents to GCS software so it knows if this firmware is
  46. # suitable for the board. Please see
  47. # https://github.com/ArduPilot/Bootloader/blob/master/hw_config.h for
  48. # a list of current board IDs. If you add a new board type then please
  49. # get it added to that repository so we don't get conflicts.
  50. # Note that APJ is "ArduPilot JSON Firmware Format".
  51. # board ID for firmware load
  52. APJ_BOARD_ID 9
  53. # Now you need to say what crystal frequency you have for this
  54. # board. All of the clocks are scaled against this. Typical values are
  55. # 24000000 or 8000000.
  56. # crystal frequency
  57. OSCILLATOR_HZ 24000000
  58. # On some boards you will need to also set the various PLL values. See
  59. # the defaults in common/mcuconf.h, and use the define mechanism
  60. # explained later in this file to override values suitable for your
  61. # board. Refer to your MCU datasheet or examples from supported boards
  62. # in ChibiOS for the right values.
  63. # Now define the voltage the MCU runs at. This is needed for ChibiOS
  64. # to set various internal driver limits. It is in 0.01 volt units.
  65. # board voltage
  66. STM32_VDD 330U
  67. # This is the STM32 timer that ChibiOS will use for the low level
  68. # driver. This must be a 32 bit timer. We currently only support
  69. # timers 2, 3, 4, 5 and 21. See hal_st_lld.c in ChibiOS for details.
  70. # ChibiOS system timer
  71. STM32_ST_USE_TIMER 5
  72. # Now the size of flash in kilobytes, for creating the ld.script.
  73. # flash size
  74. FLASH_SIZE_KB 2048
  75. # Now define which UART is used for printf(). We rarely use printf()
  76. # in ChibiOS, so this is really only for debugging very early startup
  77. # in drivers.
  78. # Serial port for stdout. This is optional. If you leave it out then
  79. # output from printf() lines will go to the ArduPilot console, which is the
  80. # first UART in the UART_ORDER list. But note that some startup code
  81. # runs before USB is set up.
  82. # The value for STDOUT_SERIAL is a serial device name, and must be for a
  83. # serial device for which pins are defined in this file. For example, SD7
  84. # is for UART7 (SD7 == "serial device 7" in ChibiOS).
  85. #STDOUT_SERIAL SD7
  86. #STDOUT_BAUDRATE 57600
  87. # Now the USB setup, if you have USB. All of these settings are
  88. # option, and the ones below are the defaults. It ends up creating a
  89. # USB ID on Linux like this:
  90. # /dev/serial/by-id/usb-ArduPilot_fmuv3_3E0031000B51353233343932-if00
  91. # If creating a board for a RTF vehicle you may wish to customise these.
  92. # USB setup
  93. USB_VENDOR 0x0483 # ST
  94. USB_PRODUCT 0x5740
  95. USB_STRING_MANUFACTURER "ArduPilot"
  96. USB_STRING_PRODUCT "%BOARD%"
  97. USB_STRING_SERIAL "%SERIAL%"
  98. # Now define the order that I2C buses are presented in the hal.i2c API
  99. # in ArduPilot. For historical reasons inherited from HAL_PX4 the
  100. # 'external' I2C bus should be bus 1 in hal.i2c, and internal I2C bus
  101. # should be bus 0. On fmuv3 the STM32 I2C1 is our external bus and
  102. # I2C2 is our internal bus, so we need to setup the order as I2C2
  103. # followed by I2C1 in order to achieve the conventional order that
  104. # drivers expect.
  105. # order of I2C buses
  106. I2C_ORDER I2C2 I2C1
  107. # Now the UART order. These map to the hal.uartA to hal.uartF
  108. # objects. If you use a shorter list then HAL_Empty::UARTDriver
  109. # objects are substituted for later UARTs, or you can leave a gap by
  110. # listing one or more of the uarts as EMPTY.
  111. # The normal usage of this ordering is:
  112. # 1) SERIAL0: console (primary mavlink, usually USB)
  113. # 2) SERIAL3: primary GPS
  114. # 3) SERIAL1: telem1
  115. # 4) SERIAL2: telem2
  116. # 5) SERIAL4: GPS2
  117. # 6) SERIAL5: extra UART (usually RTOS debug console)
  118. # order of UARTs (and USB)
  119. UART_ORDER OTG1 UART4 USART2 USART3 UART8 UART7
  120. # If the board has an IOMCU connected via a UART then this defines the
  121. # UART to talk to that MCU. Leave it out for boards with no IOMCU.
  122. # UART for IOMCU
  123. IOMCU_UART USART6
  124. # Now we start on the pin definitions. Every pin used by ArduPilot
  125. # needs to be in this file. The pins in this file can be defined in any order.
  126. # The format is P+port+pin. So PC4 is portC pin4.
  127. # For every pin the second column is the label. If this is a
  128. # peripheral that has an alternate function defined in the STM32
  129. # datasheet then the label must be the name of that alternative
  130. # function. The names are looked up in the python database for this
  131. # MCU. Please see STM32F427xx.py for the F427 database. That database
  132. # is used to automatically fill in the alternative function (and later
  133. # for the DMA channels).
  134. # The third column is the peripheral type. This must be one of the
  135. # following: UARTn, USARTn, OTGn, SPIn, I2Cn, ADCn, TIMn, SWD, SDIO,
  136. # INPUT, OUTPUT, CS.
  137. # The fourth and later columns are for modifiers on the pin. The
  138. # possible modifiers are:
  139. # pin speed: SPEED_VERYLOW, SPEED_LOW, SPEED_MEDIUM, SPEED_HIGH
  140. # pullup: PULLUP, PULLDOWN, FLOATING
  141. # out type: OPENDRAIN, PUSHPULL
  142. # default value: LOW, HIGH
  143. # Additionally, each class of pin peripheral can have extra modifiers
  144. # suitable for that pin type. For example, for an OUTPUT you can map
  145. # it to a GPIO number in hal.gpio using the GPIO(n) modifier. For ADC
  146. # inputs you can apply a scaling factor (to bring it to unit volts)
  147. # using the SCALE(x) modifier. See the examples below for more
  148. # modifiers, or read the python code in chibios_hwdef.py.
  149. # Now we define UART4 which is for the GPS. Be careful
  150. # of the difference between USART and UART. Check the STM32F427xx.py
  151. # if unsure which it is. For a UART we need to specify at least TX and
  152. # RX pins.
  153. # UART4 serial GPS
  154. PA0 UART4_TX UART4
  155. PA1 UART4_RX UART4
  156. # Now define the primary battery connectors. The labels we choose here
  157. # are used to create defines for pins in the various drivers, so
  158. # choose names that match existing board setups where possible. Here
  159. # we define two pins PA2 and PA3 for voltage and current sensing, with
  160. # a scale factor of 1.0 and connected on ADC1. The pin number this
  161. # maps to in hal.adc is automatically determined using the datasheet
  162. # tables in STM32F427xx.py.
  163. PA2 BATT_VOLTAGE_SENS ADC1 SCALE(1)
  164. PA3 BATT_CURRENT_SENS ADC1 SCALE(1)
  165. # Now the VDD sense pin. This is used to sense primary board voltage.
  166. PA4 VDD_5V_SENS ADC1 SCALE(2)
  167. # Now the first SPI bus. At minimum you need SCK, MISO and MOSI pin
  168. definitions. You can add speed modifiers if you want them, otherwise
  169. the defaults for the peripheral class are used.
  170. PA5 SPI1_SCK SPI1
  171. PA6 SPI1_MISO SPI1
  172. PA7 SPI1_MOSI SPI1
  173. # This defines an output pin which will default to output LOW. It is a
  174. # pin that enables peripheral power on this board.
  175. PA8 VDD_5V_PERIPH_EN OUTPUT LOW
  176. # This is the pin that senses USB being connected. It is an input pin
  177. # setup as OPENDRAIN.
  178. PA9 VBUS INPUT OPENDRAIN
  179. # This is a commented out pin for talking to the debug UART on the
  180. # IOMCU, not used yet, but left as a comment (with a '#' in front) for
  181. # future reference
  182. # PA10 IO-debug-console
  183. # Now we define the pins that USB is connected on.
  184. PA11 OTG_FS_DM OTG1
  185. PA12 OTG_FS_DP OTG1
  186. # These are the pins for SWD debugging with a STlinkv2 or black-magic probe.
  187. PA13 JTMS-SWDIO SWD
  188. PA14 JTCK-SWCLK SWD
  189. # This defines the PWM pin for the buzzer (if there is one). It is
  190. # also mapped to a GPIO output so you can play with the buzzer via
  191. # MAVLink relay commands if you want to.
  192. # PWM output for buzzer
  193. PA15 TIM2_CH1 TIM2 GPIO(77) ALARM
  194. # This defines a couple of general purpose outputs, mapped to GPIO
  195. # numbers 1 and 2 for users.
  196. PB0 EXTERN_GPIO1 OUTPUT GPIO(1)
  197. PB1 EXTERN_GPIO2 OUTPUT GPIO(2)
  198. # This defines some input pins, currently unused.
  199. PB2 BOOT1 INPUT
  200. PB3 FMU_SW0 INPUT
  201. # This defines the pins for the 2nd CAN interface, if available.
  202. PB6 CAN2_TX CAN2
  203. PB12 CAN2_RX CAN2
  204. # Now the first I2C bus. The pin speeds are automatically setup
  205. # correctly, but can be overridden here if needed.
  206. PB8 I2C1_SCL I2C1
  207. PB9 I2C1_SDA I2C1
  208. # the 2nd I2C bus
  209. PB10 I2C2_SCL I2C2
  210. PB11 I2C2_SDA I2C2
  211. # the 2nd SPI bus
  212. PB13 SPI2_SCK SPI2
  213. PB14 SPI2_MISO SPI2
  214. PB15 SPI2_MOSI SPI2
  215. # This input pin is used to detect that power is valid on USB.
  216. PC0 VBUS_VALID INPUT
  217. # This defines the CS pin for the magnetometer and first IMU. Note
  218. # that CS pins are software controlled, and are not tied to a particular
  219. # SPI bus.
  220. PC1 MAG_CS CS
  221. PC2 MPU_CS CS
  222. # This defines more ADC inputs.
  223. PC3 AUX_POWER ADC1 SCALE(1)
  224. PC4 AUX_ADC2 ADC1 SCALE(1)
  225. # And the analog input for airspeed (rarely used these days).
  226. PC5 PRESSURE_SENS ADC1 SCALE(2)
  227. # This sets up the UART for talking to the IOMCU. Note that it is
  228. # vital that this UART has DMA available. See the DMA settings below
  229. # for more information.
  230. # USART6 to IO
  231. PC6 USART6_TX USART6
  232. PC7 USART6_RX USART6
  233. # Now setup the pins for the microSD card, if available.
  234. PC8 SDIO_D0 SDIO
  235. PC9 SDIO_D1 SDIO
  236. PC10 SDIO_D2 SDIO
  237. PC11 SDIO_D3 SDIO
  238. PC12 SDIO_CK SDIO
  239. PD2 SDIO_CMD SDIO
  240. # More CS pins for more sensors. The labels for all CS pins need to
  241. # match the SPI device table later in this file.
  242. PC13 GYRO_EXT_CS CS
  243. PC14 BARO_EXT_CS CS
  244. PC15 ACCEL_EXT_CS CS
  245. PD7 BARO_CS CS
  246. PE4 MPU_EXT_CS CS
  247. # the first CAN bus
  248. PD0 CAN1_RX CAN1
  249. PD1 CAN1_TX CAN1
  250. # Another USART, this one for telem1. This one has RTS and CTS lines.
  251. # USART2 serial2 telem1
  252. PD3 USART2_CTS USART2
  253. PD4 USART2_RTS USART2
  254. PD5 USART2_TX USART2
  255. PD6 USART2_RX USART2
  256. # The telem2 USART, also with RTS/CTS available.
  257. # USART3 serial3 telem2
  258. PD8 USART3_TX USART3
  259. PD9 USART3_RX USART3
  260. PD11 USART3_CTS USART3
  261. PD12 USART3_RTS USART3
  262. # The CS pin for FRAM (ramtron). This one is marked as using
  263. # SPEED_VERYLOW, which matches the HAL_PX4 setup.
  264. PD10 FRAM_CS CS SPEED_VERYLOW
  265. # Now we start defining some PWM pins. We also map these pins to GPIO
  266. # values, so users can set BRD_PWM_COUNT to choose how many of the PWM
  267. # outputs on the primary MCU are setup as PWM and how many as
  268. # GPIOs. To match HAL_PX4 we number the GPIOs for the PWM outputs
  269. # starting at 50.
  270. PE14 TIM1_CH4 TIM1 PWM(1) GPIO(50)
  271. PE13 TIM1_CH3 TIM1 PWM(2) GPIO(51)
  272. PE11 TIM1_CH2 TIM1 PWM(3) GPIO(52)
  273. PE9 TIM1_CH1 TIM1 PWM(4) GPIO(53)
  274. PD13 TIM4_CH2 TIM4 PWM(5) GPIO(54)
  275. PD14 TIM4_CH3 TIM4 PWM(6) GPIO(55)
  276. define BOARD_PWM_COUNT_DEFAULT 4
  277. # Relays default to use GPIO pins 54 and 55.
  278. define RELAY1_PIN_DEFAULT 54
  279. define RELAY2_PIN_DEFAULT 55
  280. # This is the invensense data-ready pin. We don't use it in the
  281. # default driver.
  282. PD15 MPU_DRDY INPUT
  283. # the 2nd GPS UART
  284. # UART8 serial4 GPS2
  285. PE0 UART8_RX UART8
  286. PE1 UART8_TX UART8
  287. # Now setup SPI bus4.
  288. PE2 SPI4_SCK SPI4
  289. PE5 SPI4_MISO SPI4
  290. PE6 SPI4_MOSI SPI4
  291. # This is the pin to enable the sensors rail. It can be used to power
  292. # cycle sensors to recover them in case there are problems with power on
  293. # timing affecting sensor stability. We pull it high by default.
  294. PE3 VDD_3V3_SENSORS_EN OUTPUT HIGH
  295. # UART7 maps to uartF in the HAL (serial5 in SERIALn_ parameters).
  296. PE7 UART7_RX UART7
  297. PE8 UART7_TX UART7
  298. # Define a LED, mapping it to GPIO(0). LOW will illuminate the LED
  299. PE12 FMU_LED_AMBER OUTPUT HIGH OPENDRAIN GPIO(0)
  300. # Power flag pins: these tell the MCU the status of the various power
  301. # supplies that are available. The pin names need to exactly match the
  302. # names used in AnalogIn.cpp.
  303. PB5 VDD_BRICK_VALID INPUT PULLUP
  304. PB7 VDD_SERVO_VALID INPUT PULLUP
  305. PE10 VDD_5V_HIPOWER_OC INPUT PULLUP
  306. PE15 VDD_5V_PERIPH_OC INPUT PULLUP
  307. # Now the SPI device table. This table creates all accessible SPI
  308. # devices, giving the name of the device (which is used by device
  309. # drivers to open the device), plus which SPI bus it it on, what
  310. # device ID will be used (which controls the IDs used in parameters
  311. # such as COMPASS_DEV_ID, so we can detect when the list of devices
  312. # changes between reboots for calibration purposes), the SPI mode to
  313. # use, and the low and high speed settings for the device.
  314. # You can define more SPI devices than you actually have, to allow for
  315. # flexibility in board setup, and the driver code can probe to see
  316. # which are responding.
  317. # The DEVID values and device names are chosen to match the PX4 port
  318. # of ArduPilot so users don't need to re-do their accel and compass
  319. # calibrations when moving to ChibiOS.
  320. SPIDEV ms5611 SPI1 DEVID3 BARO_CS MODE3 20*MHZ 20*MHZ
  321. SPIDEV ms5611_ext SPI4 DEVID2 BARO_EXT_CS MODE3 20*MHZ 20*MHZ
  322. SPIDEV mpu6000 SPI1 DEVID4 MPU_CS MODE3 2*MHZ 8*MHZ
  323. SPIDEV icm20608-am SPI1 DEVID2 ACCEL_EXT_CS MODE3 4*MHZ 8*MHZ
  324. SPIDEV mpu9250 SPI1 DEVID4 MPU_CS MODE3 4*MHZ 8*MHZ
  325. SPIDEV mpu9250_ext SPI4 DEVID1 MPU_EXT_CS MODE3 4*MHZ 8*MHZ
  326. SPIDEV icm20948 SPI1 DEVID4 MPU_CS MODE3 4*MHZ 8*MHZ
  327. SPIDEV icm20948_ext SPI4 DEVID1 MPU_EXT_CS MODE3 4*MHZ 8*MHZ
  328. SPIDEV hmc5843 SPI1 DEVID5 MAG_CS MODE3 11*MHZ 11*MHZ
  329. SPIDEV lsm9ds0_g SPI1 DEVID1 GYRO_EXT_CS MODE3 11*MHZ 11*MHZ
  330. SPIDEV lsm9ds0_am SPI1 DEVID2 ACCEL_EXT_CS MODE3 11*MHZ 11*MHZ
  331. SPIDEV lsm9ds0_ext_g SPI4 DEVID4 GYRO_EXT_CS MODE3 11*MHZ 11*MHZ
  332. SPIDEV lsm9ds0_ext_am SPI4 DEVID3 ACCEL_EXT_CS MODE3 11*MHZ 11*MHZ
  333. SPIDEV icm20602_ext SPI4 DEVID4 GYRO_EXT_CS MODE3 4*MHZ 8*MHZ
  334. SPIDEV ramtron SPI2 DEVID10 FRAM_CS MODE3 8*MHZ 8*MHZ
  335. SPIDEV external0m0 SPI4 DEVID5 MPU_EXT_CS MODE0 2*MHZ 2*MHZ
  336. SPIDEV external0m1 SPI4 DEVID5 MPU_EXT_CS MODE1 2*MHZ 2*MHZ
  337. SPIDEV external0m2 SPI4 DEVID5 MPU_EXT_CS MODE2 2*MHZ 2*MHZ
  338. SPIDEV external0m3 SPI4 DEVID5 MPU_EXT_CS MODE3 2*MHZ 2*MHZ
  339. SPIDEV pixartPC15 SPI4 DEVID13 ACCEL_EXT_CS MODE3 2*MHZ 2*MHZ
  340. # Now some commented out SPI device names which can be used by
  341. # developers to test that the clock calculations are right for a
  342. # bus. This is used in conjunction with the mavproxy devop module.
  343. # for SPI clock testing
  344. #SPIDEV clock500 SPI4 DEVID5 MPU_EXT_CS MODE0 500*KHZ 500*KHZ # gives 329KHz
  345. #SPIDEV clock1 SPI4 DEVID5 MPU_EXT_CS MODE0 1*MHZ 1*MHZ # gives 657kHz
  346. #SPIDEV clock2 SPI4 DEVID5 MPU_EXT_CS MODE0 2*MHZ 2*MHZ # gives 1.3MHz
  347. #SPIDEV clock4 SPI4 DEVID5 MPU_EXT_CS MODE0 4*MHZ 4*MHZ # gives 2.6MHz
  348. #SPIDEV clock8 SPI4 DEVID5 MPU_EXT_CS MODE0 8*MHZ 8*MHZ # gives 5.5MHz
  349. #SPIDEV clock16 SPI4 DEVID5 MPU_EXT_CS MODE0 16*MHZ 16*MHZ # gives 10.6MHz
  350. # This adds a C define which sets up the ArduPilot architecture
  351. # define. Any line starting with 'define' is copied literally as
  352. # a #define in the hwdef.h header.
  353. define HAL_CHIBIOS_ARCH_FMUV3 1
  354. # Nnow some defines for logging and terrain data files.
  355. define HAL_BOARD_LOG_DIRECTORY "/APM/LOGS"
  356. define HAL_BOARD_TERRAIN_DIRECTORY "/APM/TERRAIN"
  357. # We need to tell HAL_ChibiOS/Storage.cpp how much storage is
  358. # available (in bytes).
  359. define HAL_STORAGE_SIZE 16384
  360. # Now define fallback storage location is flash if no FRAM
  361. # fitted. This needs to be carefully chosen to align with your
  362. # bootloader. The flash storage system needs two sectors, and the
  363. # sectors must be at least 20% larger than HAL_STORAGE_SIZE.
  364. define STORAGE_FLASH_PAGE 22
  365. # allow to have have a dedicated safety switch pin
  366. define HAL_HAVE_SAFETY_SWITCH 1
  367. # This enables the use of a ramtron device for storage, if one is
  368. # found on SPI. You must have a ramtron entry in the SPI device table.
  369. # Enable RAMTROM parameter storage.
  370. define HAL_WITH_RAMTRON 1
  371. # Setup for the possibility of an IMU heater since the pixhawk2 cube has
  372. # an IMU heater.
  373. define HAL_HAVE_IMU_HEATER 1
  374. # Enable FAT filesystem support (needs a microSD defined via SDIO).
  375. define HAL_OS_FATFS_IO 1
  376. # Enable RTSCTS support. You should define this if you have any UARTs
  377. with RTS/CTS pins.
  378. define AP_FEATURE_RTSCTS 1
  379. # Enable SBUS_OUT on IOMCU (if you have an IOMCU).
  380. define AP_FEATURE_SBUS_OUT 1
  381. # Now setup the default battery pins driver analog pins and default
  382. # scaling for the power brick.
  383. define HAL_BATT_VOLT_PIN 2
  384. define HAL_BATT_CURR_PIN 3
  385. define HAL_BATT_VOLT_SCALE 10.1
  386. define HAL_BATT_CURR_SCALE 17.0
  387. # This defines the default maximum clock on I2C devices.
  388. define HAL_I2C_MAX_CLOCK 100000
  389. # Uncomment the lines below to enable strict API
  390. # checking in ChibiOS.
  391. # define CH_DBG_ENABLE_ASSERTS TRUE
  392. # define CH_DBG_ENABLE_CHECKS TRUE
  393. # define CH_DBG_SYSTEM_STATE_CHECK TRUE
  394. # define CH_DBG_ENABLE_STACK_CHECK TRUE
  395. # We can't share the IO UART (USART6).
  396. DMA_NOSHARE USART6_TX USART6_RX ADC1
  397. DMA_PRIORITY USART6*
  398. # List of files to put in ROMFS. For fmuv3 we need an IO firmware so
  399. # we can automatically update the IOMCU firmware on boot. The format
  400. # is "ROMFS ROMFS-filename source-filename". Paths are relative to the
  401. # ardupilot root.
  402. ROMFS io_firmware.bin Tools/IO_Firmware/iofirmware_lowpolh.bin