diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-back.png b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-back.png new file mode 100644 index 0000000000..69b839a2f4 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-back.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-front.png b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-front.png new file mode 100644 index 0000000000..9c8998df73 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-front.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-left.png b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-left.png new file mode 100644 index 0000000000..5bb1ae2693 Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-left.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-right.png b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-right.png new file mode 100644 index 0000000000..b2e53a6ffb Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-right.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-top.png b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-top.png new file mode 100644 index 0000000000..c0e62c767e Binary files /dev/null and b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/Durandal-top.png differ diff --git a/libraries/AP_HAL_ChibiOS/hwdef/Durandal/README.md b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/README.md new file mode 100644 index 0000000000..77dbbe80be --- /dev/null +++ b/libraries/AP_HAL_ChibiOS/hwdef/Durandal/README.md @@ -0,0 +1,582 @@ +# Durandal Flight Controller + +The Holybro Durandal flight controller is sold by a range of +resellers, linked from https://www.holybro.com + +The full schematics of the board are available here: + + https://github.com/ArduPilot/Schematics/tree/master/Holybro/Durandal + +## Features + + - STM32H743 microcontroller + - ICM20689 and BMI088 IMUs + - internal heater for IMU temperature control + - internal vibration isolation for IMUs + - MS5611 SPI barometer + - builtin IST8310 compass + - microSD card slot + - 6 UARTs plus dual USB + - 16 PWM outputs + - I2C and dual CAN ports + - DSM and RCIN ports + - external safety Switch + - voltage monitoring for servo rail and Vcc + - dual power input ports for external power bricks + - external USB connectors (micro USB and JST GH) + +## Pinout + +![Durandal Top](Durandal-top.png "Durandal Top") +![Durandal Front](Durandal-front.png "Durandal Front") +![Durandal Back](Durandal-back.png "Durandal Back") +![Durandal Left](Durandal-left.png "Durandal Left") +![Durandal Right](Durandal-right.png "Durandal Right") + +## UART Mapping + + - SERIAL0 -> USB + - SERIAL1 -> UART2 (Telem1) + - SERIAL2 -> UART3 (Telem2) + - SERIAL3 -> UART1 (GPS) + - SERIAL4 -> UART4 (GPS2, Telem4/I2C) + - SERIAL5 -> UART6 (Telem3) + - SERIAL6 -> UART7 (debug port) + - SERIAL7 -> USB2 + +The Telem1, Telem2 and Telem3 ports have RTS/CTS pins, the other UARTs do not +have RTS/CTS. + +## Connectors + +Unless noted otherwise all connectors are JST GH + +### TELEM1, TELEM2, TELEM3 ports + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pin Signal Volt
1 (red)VCC+5V
2 (blk)TX (OUT)+3.3V
3 (blk)RX (IN)+3.3V
4 (blk)CTS+3.3V
5 (blk)RTS+3.3V
6 (blk)GNDGND
+ + +### GPS1 port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (blk)TX (OUT)+3.3V
3 (blk)RX (IN)+3.3V
4 (blk)SCL I2C1+3.3V
5 (blk)SDA I2C1+3.3V
6 (blk)ButtonGND
7 (blk)button LEDGND
8 (blk)3.3V3.3
9 (blk)buzzerGND
(blk)GNDGND
+ + + +### GPS2, Telem4/I2C port + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (blk)TX (OUT)+3.3V
3 (blk)RX (IN)+3.3V
4 (blk)SCL I2C2+3.3V
5 (blk)SDA I2C2+3.3V
6 (blk)GNDGND
+ +### SBUS Out port + +The SBUS out port is a port attached to the IO processor which can be +used to output all servo channels via SBUS. It is enabled by setting +the BRD_SBUS_OUT parameter. + +When SBUS output is disabled (by setting BRD_SBUS_OUT to 0) you can +use the port for analog RSSI input from receivers. To enable for RSSI +input you need to set: + + - BRD_SBUS_OUT 0 + - RSSI_TYPE 1 + - RSSI_PIN 103 + +You cannot have both SBUS output and analog RSSI input at the same time. + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1GNDGND
25v(Vservo)+5.0V
3TX (OUT)+3.3V
+ +### DSM/SPKT port + +The SPKT port provides a connector for Spektrum satellite +receivers. It is needed to allow for software controlled binding of +satellite receivers. + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1RX (IN)+3.3V
2GNDGND
33.3v+3.3V
+ + +### ADC / CAPTURE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (blk)FMU_CAP6, AUX6, GPIO 55
3 (blk)FMU_CAP5, AUX7, GPIO 56
4 (blk)FMU_CAP4, AUX8, GPIO 57
5 (blk)FMU_CAP3, GPIO 60
6 (blk)FMU_CAP2, GPIO 59
7 (blk)FMU_CAP1, GPIO 58
8 (blk)ADC1_3V3 (ADC pin 4)
9 (blk)ADC1_6V6 (ADC pin 18)
10 (blk)GNDGND
+ + +### I2C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (blk)SCL+3.3 (pullups)
3 (blk)SDA+3.3 (pullups)
4 (blk)GNDGND
+ + +### CAN1&2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (blk)CAN_H+12V
3 (blk)CAN_L+12V
4 (blk)GNDGND
+ + +### POWER1&2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PinSignalVolt
1 (red)VCC+5V
2 (red)VCC+5V
3 (blk)CURRENTup to +3.3V
4 (blk)VOLTAGEup to +3.3V
5 (blk)GNDGND
6 (blk)GNDGND
+ + +### USB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pin Signal Volt
1 (red)VCC+5V
2 (blk)D_minus+3.3V
3 (blk)D_plus+3.3V
4 (blk)GNDGND
+ +## RC Input + +RC input is configured on the RCIN pin, at one end of the servo rail, +marked RCIN in the above diagram. This pin supports all RC +protocols. In addition there is a dedicated Spektrum satellite port +which supports software power control, allowing for binding of +Spektrum satellite receivers. + +## PWM Output + +The Durandal supports up to 16 PWM outputs. First first 8 outputs (labelled +"MAIN") are controlled by a dedicated STM32F100 IO controller. These 8 +outputs support all PWM output formats, but not DShot. + +The remaining 6 outputs (labelled AUX1 to AUX6) are the "auxillary" +outputs. These are directly attached to the STM32F427 and support all +PWM protocols as well as DShot. + +All 14 PWM outputs have GND on the top row, 5V on the middle row and +signal on the bottom row. + +The 8 main PWM outputs are in 3 groups: + + - PWM 1 and 2 in group1 + - PWM 3 and 4 in group2 + - PWM 5, 6, 7 and 8 in group3 + +The 8 auxillary PWM outputs are in 2 groups: + + - PWM 1, 2, 3 and 4 in group4 + - PWM 5 and 6 in group5 + - PWM 7 and 8 in group6 (no DMA, no DShot) + +Channels within the same group need to use the same output rate. If +any channel in a group uses DShot then all channels in the group need +to use DShot. + +## Battery Monitoring + +The board has two dedicated power monitor ports on 6 pin +connectors. The correct battery setting parameters are dependent on +the type of power brick which is connected. + +## Compass + +The Durandal has one builtin IST8310 compass. + +## GPIOs + +The 8 PWM ports can be used as GPIOs (relays, buttons, RPM etc). To +use them you need to limit the number of these pins that is used for +PWM by setting the BRD_PWM_COUNT to a number less than 8. For example +if you set BRD_PWM_COUNT to 6 then PWM7 and PWM8 will be available for +use as GPIOs. + +The numbering of the GPIOs for PIN variables in ArduPilot is: + + - PWM1 50 + - PWM2 51 + - PWM3 52 + - PWM4 53 + - PWM5 54 + - PWM6 55 + - PWM7 56 + - PWM8 57 + +## Analog inputs + +The Durandal has 7 analog inputs + + - ADC Pin16 -> Battery Voltage + - ADC Pin17 -> Battery Current Sensor + - ADC Pin14 -> Battery2 Voltage + - ADC Pin15 -> Battery2 Current Sensor + - ADC Pin4 -> ADC port pin 8 (3.3V limit) + - ADC Pin18 -> ADC port pin 9 (6.6V limit) + - ADC Pin9 -> RSSI in + - ADC Pin10 -> 5V Sense + - ADC Pin11 -> 3.3V Sense + +## IMU Heater + +The IMU heater in the Durandal can be controlled with the +BRD_IMU_TARGTEMP parameter, which is in degrees C. + +## Loading Firmware + +The board comes pre-installed with an ArduPilot compatible bootloader, +allowing the loading of *.apj firmware files with any ArduPilot +compatible ground station. + +## Acknowledgements + +Thanks to [Holybro](http://www.holybro.com) for images