2018-11-20 02:26:14 -04:00
|
|
|
# Pixhawk4-Mini Flight Controller
|
|
|
|
|
|
|
|
The Pixhawk4-Mini flight controller is sold by [Holybro](http://www.holybro.com/product/64)
|
|
|
|
|
|
|
|
## Features
|
|
|
|
|
|
|
|
- STM32F765 microcontroller
|
|
|
|
- Two IMUs: ICM20689 and BMI055
|
|
|
|
- MS5611 SPI barometer
|
2019-05-16 18:24:57 -03:00
|
|
|
- builtin I2C IST8310 magnetometer
|
2018-11-20 02:26:14 -04:00
|
|
|
- microSD card slot
|
2018-11-20 03:41:22 -04:00
|
|
|
- 5 UARTs plus USB
|
2018-11-20 02:26:14 -04:00
|
|
|
- 8 PWM outputs
|
|
|
|
- Two I2C and one CAN ports
|
|
|
|
- External Buzzer
|
|
|
|
- external safety Switch
|
|
|
|
- dedicated power input port for external power bricks
|
|
|
|
|
|
|
|
## Pinout
|
|
|
|
|
|
|
|
![Pixhawk4 Mini Board](PH4-mini-pinout.jpg "Pixhawk4 Mini")
|
|
|
|
|
|
|
|
## UART Mapping
|
|
|
|
|
|
|
|
- SERIAL0 -> USB
|
|
|
|
- SERIAL1 -> UART2 (Telem1)
|
2018-11-20 18:29:15 -04:00
|
|
|
- SERIAL2 -> UART4 (Telem2)
|
2018-11-20 02:26:14 -04:00
|
|
|
- SERIAL3 -> UART1 (GPS)
|
2018-11-20 18:29:15 -04:00
|
|
|
- SERIAL4 -> UART6 (RCIN port)
|
|
|
|
- SERIAL5 -> UART7 (debug)
|
2018-11-20 02:26:14 -04:00
|
|
|
|
2018-11-20 18:29:15 -04:00
|
|
|
The Telem1 port has RTS/CTS pins, the other UARTs do not have RTS/CTS.
|
2018-11-20 02:26:14 -04:00
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
The RCIN port can be used as RX or TX as a general UART using the
|
|
|
|
SERIAL5_OPTIONS bits to swap pins. It is not used for RC input (the
|
|
|
|
PPM pin is used for RC input)
|
|
|
|
|
2018-11-20 02:26:14 -04:00
|
|
|
The UART7 connector is inside the case and labelled as debug, but is
|
|
|
|
available as a general purpose UART with ArduPilot.
|
|
|
|
|
|
|
|
## RC Input
|
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
RC input is configured on the port marked PPM. This connector supports
|
|
|
|
all RC protocols (including SBUS, DSM, ST24, SRXL and PPM). The RCIN
|
|
|
|
port is not used for RC input.
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
## PWM Output
|
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
The Pixhawk4-Mini supports up to 11 PWM outputs. All 11 outputs
|
|
|
|
support all normal PWM output formats. All outputs except numbers 7
|
|
|
|
and 8 support DShot.
|
|
|
|
|
|
|
|
The first 8 outputs are labelled "MAIN OUT" on the case. The next 3
|
|
|
|
outputs are labelled CAP1 to CAP3 on the case. The CAP4 pin cannot be
|
|
|
|
used as a PWM output.
|
|
|
|
|
|
|
|
In order to use outputs 9, 10 and 11 you need to change BRD_PWM_COUNT
|
|
|
|
to 11.
|
2018-11-20 02:26:14 -04:00
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
The 11 PWM outputs are in 4 groups:
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
- PWM 1, 2, 3 and 4 in group1
|
|
|
|
- PWM 5 and 6 in group2
|
|
|
|
- PWM 7 and 8 in group3
|
2018-11-20 03:41:22 -04:00
|
|
|
- PWM 9, 10 and 11 in group4
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
The board has a dedicated power monitor port with a 6 pin
|
|
|
|
connector. The correct battery setting parameters are dependent on
|
2018-11-20 02:26:14 -04:00
|
|
|
the type of power brick which is connected.
|
|
|
|
|
|
|
|
## Compass
|
|
|
|
|
|
|
|
The Pixhawk4-Mini has a builtin IST8310 compass. Due to potential
|
|
|
|
interference the board is usually used with an external I2C compass as
|
|
|
|
part of a GPS/Compass combination.
|
|
|
|
|
|
|
|
## GPIOs
|
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
The 11 PWM ports plus the CAP4 port 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 11. For example if you set BRD_PWM_COUNT to 8 then CAP1,
|
|
|
|
CAP2 and CAP3 will be available for use as GPIOs.
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2018-11-20 03:41:22 -04:00
|
|
|
In addition the 4 pins on the servo rail marked CAP1 to CAP4 can be
|
|
|
|
used as GPIOs. These are available as GPIOs in ArduPilot using the
|
|
|
|
following GPIO numbers:
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
- CAP1 58
|
|
|
|
- CAP2 59
|
|
|
|
- CAP3 60
|
2018-11-20 03:41:22 -04:00
|
|
|
- CAP4 61
|
2018-11-20 02:26:14 -04:00
|
|
|
|
|
|
|
## Analog inputs
|
|
|
|
|
|
|
|
The Pixhawk4-Mini has 4 analog inputs
|
|
|
|
|
|
|
|
- ADC Pin0 -> Battery Voltage
|
|
|
|
- ADC Pin1 -> Battery Current Sensor
|
|
|
|
- ADC Pin10 -> ADC 5V Sense
|
|
|
|
- ADC Pin11 -> ADC 3.3V Sense
|
|
|
|
|
2019-08-27 03:04:19 -03:00
|
|
|
## Connectors
|
|
|
|
|
|
|
|
Unless noted otherwise all connectors are JST GH
|
|
|
|
|
|
|
|
### TELEM port
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin </th>
|
|
|
|
<th>Signal </th>
|
|
|
|
<th>Volt </th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (blk)</td>
|
|
|
|
<td>TX (OUT)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>RX (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>CTS</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>RTS</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>6 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
### GPS port
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin </th>
|
|
|
|
<th>Signal </th>
|
|
|
|
<th>Volt </th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (blk)</td>
|
|
|
|
<td>SERIAL3 TX (OUT)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>SERIAL3 RX (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>SCL</td>
|
|
|
|
<td>+3.3 (pullups)</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>SDA</td>
|
|
|
|
<td>+3.3 (pullups)</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>6 (blk)</td>
|
|
|
|
<td>SafetyButton</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>7 (blk)</td>
|
|
|
|
<td>SafetyLED</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>8 (blk)</td>
|
|
|
|
<td>VDD 3.3 (OUT)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>9 (blk)</td>
|
|
|
|
<td>Buzzer</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>10 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
### TELEM2 & I2CB port
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin</th>
|
|
|
|
<th>Signal</th>
|
|
|
|
<th>Volt</th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (blk)</td>
|
|
|
|
<td>TX (OUT)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>RX (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>SCL I2C2</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>SDA I2C2</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>6 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
### POWER1&2
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin</th>
|
|
|
|
<th>Signal</th>
|
|
|
|
<th>Volt</th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>CURRENT</td>
|
|
|
|
<td>up to +3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>VOLTAGE</td>
|
|
|
|
<td>up to +3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
<td>6 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
### RCIN port
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin </th>
|
|
|
|
<th>Signal </th>
|
|
|
|
<th>Volt </th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>VCC</td>
|
|
|
|
<td>+5V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (blk)</td>
|
|
|
|
<td>RCIN (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>RSSI (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>VDD3.3</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
## Debug
|
|
|
|
|
|
|
|
The Pixhawk4 supports SWD debugging on the debug port
|
|
|
|
|
|
|
|
<table border="1" class="docutils">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
|
|
|
<th>Pin </th>
|
|
|
|
<th>Signal </th>
|
|
|
|
<th>Volt </th>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>1 (red)</td>
|
|
|
|
<td>FMU VDD 3.3</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>2 (blk)</td>
|
|
|
|
<td>UART TX Debug (OUT)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>3 (blk)</td>
|
|
|
|
<td>UART RX Debug (IN)</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>4 (blk)</td>
|
|
|
|
<td>SWDIO</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>5 (blk)</td>
|
|
|
|
<td>SWCLK</td>
|
|
|
|
<td>+3.3V</td>
|
|
|
|
</tr>
|
|
|
|
<tr>
|
|
|
|
<td>6 (blk)</td>
|
|
|
|
<td>GND</td>
|
|
|
|
<td>GND</td>
|
|
|
|
</tr>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
|
2018-11-20 02:26:14 -04:00
|
|
|
## 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
|
|
|
|
[PX4](https://docs.px4.io/en/flight_controller/pixhawk4_mini.html) for
|
|
|
|
images used under the [CC-BY 4.0 license](https://creativecommons.org/licenses/by/4.0/)
|