hwdef: update CubeBlack/Orange/OrangePlus pinouts
the motivation for this was to add the SWD pinouts, but I took the opportunity to get the orange and orangeplus information more up to date as well
This commit is contained in:
parent
cdfbadbfb6
commit
7a2e2f4927
@ -1,12 +1,8 @@
|
||||
# CubeBlack Flight Controller
|
||||
|
||||
The Hex CubeBlack flight controller is sold by a range of resellers
|
||||
The CubePilot CubeBlack flight controller is sold by a range of resellers
|
||||
listed on the
|
||||
[ProfiCNC website](http://www.proficnc.com/content/13-pixhawk2)
|
||||
|
||||
The full schematics of the board are available here:
|
||||
|
||||
https://github.com/ArduPilot/Schematics/tree/master/ProfiCNC/The-Cube
|
||||
[CubePilot website](http://cubepilot.org)
|
||||
|
||||
## Features
|
||||
|
||||
@ -25,7 +21,7 @@ The full schematics of the board are available here:
|
||||
- builtin RGB LED
|
||||
- external safety Switch
|
||||
- voltage monitoring for servo rail and Vcc
|
||||
- dedicated power input port for external power brick
|
||||
- two dedicated power input ports for external power bricks
|
||||
- external USB connectors (micro USB and JST GH)
|
||||
|
||||
## Pinout
|
||||
@ -363,6 +359,53 @@ pin closest to the cube (pin 3).
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### FMU and IO SWD
|
||||
|
||||
When the case is removed there are two SWD connectors, one for FMU and
|
||||
the other for IOMCU. The IO SWD connector is the one closer to the
|
||||
servo rail. The GND pin of both connectors is the one furthest from
|
||||
the servo rail.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>VCC</td>
|
||||
<td>+5V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>TX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>RX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>SWDIO</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>SWCLK</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### CAN1&2
|
||||
|
||||
@ -552,9 +595,9 @@ The CubeBlack has 7 analog inputs
|
||||
|
||||
- ADC Pin2 -> Battery Voltage
|
||||
- ADC Pin3 -> Battery Current Sensor
|
||||
- ADC Pin13 -> Battery2 Voltage
|
||||
- ADC Pin14 -> Battery2 Current Sensor
|
||||
- ADC Pin4 -> Vdd 5V supply sense
|
||||
- ADC Pin13 -> ADC 3.3V Port pin1
|
||||
- ADC Pin14 -> ADC 3.3V Port pin2
|
||||
- ADC Pin15 -> ADC 6.6V port
|
||||
- ADC Pin103 -> RSSI voltage monitoring
|
||||
|
||||
@ -571,4 +614,4 @@ compatible ground station.
|
||||
|
||||
## Acknowledgements
|
||||
|
||||
Thanks to [ProfiCNC](http://proficnc.com) for images
|
||||
Thanks to [CubePilot](http://cubepilot.org) for images
|
||||
|
BIN
libraries/AP_HAL_ChibiOS/hwdef/CubeOrange/CubeOrange-pinout.jpg
Normal file
BIN
libraries/AP_HAL_ChibiOS/hwdef/CubeOrange/CubeOrange-pinout.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
617
libraries/AP_HAL_ChibiOS/hwdef/CubeOrange/README.md
Normal file
617
libraries/AP_HAL_ChibiOS/hwdef/CubeOrange/README.md
Normal file
@ -0,0 +1,617 @@
|
||||
# CubeOrange Flight Controller
|
||||
|
||||
The Hex CubeOrange flight controller is sold by a range of resellers
|
||||
listed on the
|
||||
[CubePilot website](http://cubepilot.org)
|
||||
|
||||
## Features
|
||||
|
||||
- STM32H743 microcontroller
|
||||
- Three IMUs, ICM20602, ICM20948 and ICM20649
|
||||
- internal heater for IMU temperature control
|
||||
- internal vibration isolation for first two IMUs
|
||||
- two MS5611 SPI barometers
|
||||
- builtin SPI AK09916 magnetometer in the ICM20948 IMU
|
||||
- microSD card slot
|
||||
- 5 UARTs plus USB
|
||||
- ADSB receiver connected to SERIAL5
|
||||
- 14 PWM outputs
|
||||
- I2C and CAN ports
|
||||
- Spektrum satellite connector
|
||||
- External Buzzer
|
||||
- builtin RGB LED
|
||||
- external safety Switch
|
||||
- voltage monitoring for servo rail and Vcc
|
||||
- two dedicated power input ports for external power bricks
|
||||
- external USB connectors (micro USB and JST GH)
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
On each connector the red dot indicates pin 1.
|
||||
|
||||
## UART Mapping
|
||||
|
||||
- SERIAL0 -> USB
|
||||
- SERIAL1 -> UART2 (Telem1)
|
||||
- SERIAL2 -> UART3 (Telem2)
|
||||
- SERIAL3 -> UART4 (GPS)
|
||||
- SERIAL4 -> UART8 (GPS2)
|
||||
- SERIAL5 -> UART7 (spare, CONS)
|
||||
|
||||
The Telem1 and Telem2 ports have RTS/CTS pins, the other UARTs do not
|
||||
have RTS/CTS.
|
||||
|
||||
The CONS port was originally used as a debug console, but is now a
|
||||
general purpose UART (debug output is now on USB).
|
||||
|
||||
## Connectors
|
||||
|
||||
Unless noted otherwise all connectors are JST GH 1.25mm pitch
|
||||
|
||||
### TELEM1, TELEM2 ports
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
### GPS1 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 I2C1</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5 (blk)</td>
|
||||
<td>SDA I2C1</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6 (blk)</td>
|
||||
<td>Button</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7 (blk)</td>
|
||||
<td>button LED</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
### GPS2 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>
|
||||
|
||||
### CONS port
|
||||
|
||||
The CONS port is an additional UART connected to SERIAL5. The pinout
|
||||
in the CONS port table below is ordered so that the GND pin is closest
|
||||
to the cube. The TX pin is closest to the servo rail.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>RX (IN)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>TX (OUT)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### SBUS Out port
|
||||
|
||||
The SBUSo 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.
|
||||
|
||||
The pinout below for the SBUSo port is labelled so that GND is closest
|
||||
to the cube. The 5V pin on the SBUS output port is connected to the
|
||||
servo rail.
|
||||
|
||||
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.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>5v(Vservo)</td>
|
||||
<td>+5.0V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>TX (OUT)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### SPKT port
|
||||
|
||||
The SPKT port provides a connector for Spektrum satellite
|
||||
receivers. It is needed to allow for software controlled binding of
|
||||
satellite receivers.
|
||||
|
||||
The pinout of the SPKT port given below is given with the 3.3V power
|
||||
pin closest to the cube (pin 3).
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>RX (IN)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>3.3v</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### ADC
|
||||
|
||||
<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>ADC IN</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### I2C2
|
||||
|
||||
<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>SCL</td>
|
||||
<td>+3.3 (pullups)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>SDA</td>
|
||||
<td>+3.3 (pullups)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### FMU and IO SWD
|
||||
|
||||
When the case is removed there are two SWD connectors, one for FMU and
|
||||
the other for IOMCU. The IO SWD connector is the one closer to the
|
||||
servo rail. The GND pin of both connectors is the one furthest from
|
||||
the servo rail.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>VCC</td>
|
||||
<td>+5V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>TX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>RX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>SWDIO</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>SWCLK</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### CAN1&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 (blk)</td>
|
||||
<td>CAN_H</td>
|
||||
<td>+12V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>CAN_L</td>
|
||||
<td>+12V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (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>
|
||||
|
||||
|
||||
### USB
|
||||
|
||||
<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>D_plus</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>D_minus</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5 (blk)</td>
|
||||
<td>BUZZER</td>
|
||||
<td>battery voltage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6 (blk)</td>
|
||||
<td>Boot/Error LED</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 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 CubeOrange supports up to 14 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 "auxiliary"
|
||||
outputs. These are directly attached to the STM32H743 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 6 auxiliary PWM outputs are in 2 groups:
|
||||
|
||||
- PWM 1, 2, 3 and 4 in group1
|
||||
- PWM 5 and 6 in group2
|
||||
|
||||
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 CubeOrangePlus has an AK09916 builtin compass that is part of the
|
||||
ICM20948 IMU.
|
||||
|
||||
## GPIOs
|
||||
|
||||
The 6 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 6. For example
|
||||
if you set BRD_PWM_COUNT to 4 then PWM5 and PWM6 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
|
||||
|
||||
## Analog inputs
|
||||
|
||||
The CubeOrange has 7 analog inputs
|
||||
|
||||
- ADC Pin14 -> Battery Voltage
|
||||
- ADC Pin15 -> Battery Current Sensor
|
||||
- ADC Pin13 -> Battery2 Voltage
|
||||
- ADC Pin4 -> Battery2 Current Sensor
|
||||
- ADC Pin18 -> Vdd 5V supply sense
|
||||
- ADC Pin8 -> ADC port input
|
||||
- ADC Pin103 -> RSSI voltage monitoring
|
||||
|
||||
## IMU Heater
|
||||
|
||||
The IMU heater in the CubeOrange can be controlled with the
|
||||
BRD_HEAT_TARG 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 [ProfiCNC](http://cubepilot.org) for images and information
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
617
libraries/AP_HAL_ChibiOS/hwdef/CubeOrangePlus/README.md
Normal file
617
libraries/AP_HAL_ChibiOS/hwdef/CubeOrangePlus/README.md
Normal file
@ -0,0 +1,617 @@
|
||||
# CubeOrangePlus Flight Controller
|
||||
|
||||
The Hex CubeOrangePlus flight controller is sold by a range of resellers
|
||||
listed on the
|
||||
[CubePilot website](http://cubepilot.org)
|
||||
|
||||
## Features
|
||||
|
||||
- STM32H743 microcontroller
|
||||
- Three IMUs, ICM42688, ICM20948 and ICM20649
|
||||
- internal heater for IMU temperature control
|
||||
- internal vibration isolation for first two IMUs
|
||||
- two MS5611 SPI barometers
|
||||
- builtin SPI AK09916 magnetometer in the ICM20948 IMU
|
||||
- microSD card slot
|
||||
- 5 UARTs plus USB
|
||||
- ADSB receiver connected to SERIAL5
|
||||
- 14 PWM outputs
|
||||
- I2C and CAN ports
|
||||
- Spektrum satellite connector
|
||||
- External Buzzer
|
||||
- builtin RGB LED
|
||||
- external safety Switch
|
||||
- voltage monitoring for servo rail and Vcc
|
||||
- two dedicated power input ports for external power bricks
|
||||
- external USB connectors (micro USB and JST GH)
|
||||
|
||||
## Pinout
|
||||
|
||||

|
||||
|
||||
On each connector the red dot indicates pin 1.
|
||||
|
||||
## UART Mapping
|
||||
|
||||
- SERIAL0 -> USB
|
||||
- SERIAL1 -> UART2 (Telem1)
|
||||
- SERIAL2 -> UART3 (Telem2)
|
||||
- SERIAL3 -> UART4 (GPS)
|
||||
- SERIAL4 -> UART8 (GPS2)
|
||||
- SERIAL5 -> UART7 (spare, CONS)
|
||||
|
||||
The Telem1 and Telem2 ports have RTS/CTS pins, the other UARTs do not
|
||||
have RTS/CTS.
|
||||
|
||||
The CONS port was originally used as a debug console, but is now a
|
||||
general purpose UART (debug output is now on USB).
|
||||
|
||||
## Connectors
|
||||
|
||||
Unless noted otherwise all connectors are JST GH 1.25mm pitch
|
||||
|
||||
### TELEM1, TELEM2 ports
|
||||
|
||||
<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>
|
||||
|
||||
|
||||
### GPS1 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 I2C1</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5 (blk)</td>
|
||||
<td>SDA I2C1</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6 (blk)</td>
|
||||
<td>Button</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7 (blk)</td>
|
||||
<td>button LED</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
### GPS2 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>
|
||||
|
||||
### CONS port
|
||||
|
||||
The CONS port is an additional UART connected to SERIAL5. The pinout
|
||||
in the CONS port table below is ordered so that the GND pin is closest
|
||||
to the cube. The TX pin is closest to the servo rail.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>RX (IN)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>TX (OUT)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### SBUS Out port
|
||||
|
||||
The SBUSo 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.
|
||||
|
||||
The pinout below for the SBUSo port is labelled so that GND is closest
|
||||
to the cube. The 5V pin on the SBUS output port is connected to the
|
||||
servo rail.
|
||||
|
||||
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.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>5v(Vservo)</td>
|
||||
<td>+5.0V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>TX (OUT)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### SPKT port
|
||||
|
||||
The SPKT port provides a connector for Spektrum satellite
|
||||
receivers. It is needed to allow for software controlled binding of
|
||||
satellite receivers.
|
||||
|
||||
The pinout of the SPKT port given below is given with the 3.3V power
|
||||
pin closest to the cube (pin 3).
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>RX (IN)</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>3.3v</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### ADC
|
||||
|
||||
<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>ADC IN</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### I2C2
|
||||
|
||||
<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>SCL</td>
|
||||
<td>+3.3 (pullups)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>SDA</td>
|
||||
<td>+3.3 (pullups)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
### FMU and IO SWD
|
||||
|
||||
When the case is removed there are two SWD connectors, one for FMU and
|
||||
the other for IOMCU. The IO SWD connector is the one closer to the
|
||||
servo rail. The GND pin of both connectors is the one furthest from
|
||||
the servo rail.
|
||||
|
||||
<table border="1" class="docutils">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Pin</th>
|
||||
<th>Signal</th>
|
||||
<th>Volt</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>VCC</td>
|
||||
<td>+5V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>TX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>RX</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>SWDIO</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5</td>
|
||||
<td>SWCLK</td>
|
||||
<td>+3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
### CAN1&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 (blk)</td>
|
||||
<td>CAN_H</td>
|
||||
<td>+12V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>CAN_L</td>
|
||||
<td>+12V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (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>
|
||||
|
||||
|
||||
### USB
|
||||
|
||||
<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>D_plus</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3 (blk)</td>
|
||||
<td>D_minus</td>
|
||||
<td>+3.3V</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4 (blk)</td>
|
||||
<td>GND</td>
|
||||
<td>GND</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>5 (blk)</td>
|
||||
<td>BUZZER</td>
|
||||
<td>battery voltage</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>6 (blk)</td>
|
||||
<td>Boot/Error LED</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 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 CubeOrangePlus supports up to 14 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 "auxiliary"
|
||||
outputs. These are directly attached to the STM32H743 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 6 auxiliary PWM outputs are in 2 groups:
|
||||
|
||||
- PWM 1, 2, 3 and 4 in group1
|
||||
- PWM 5 and 6 in group2
|
||||
|
||||
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 CubeOrangePlus has an AK09916 builtin compass that is part of the
|
||||
ICM20948 IMU.
|
||||
|
||||
## GPIOs
|
||||
|
||||
The 6 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 6. For example
|
||||
if you set BRD_PWM_COUNT to 4 then PWM5 and PWM6 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
|
||||
|
||||
## Analog inputs
|
||||
|
||||
The CubeOrangePlus has 7 analog inputs
|
||||
|
||||
- ADC Pin14 -> Battery Voltage
|
||||
- ADC Pin15 -> Battery Current Sensor
|
||||
- ADC Pin13 -> Battery2 Voltage
|
||||
- ADC Pin4 -> Battery2 Current Sensor
|
||||
- ADC Pin18 -> Vdd 5V supply sense
|
||||
- ADC Pin8 -> ADC port input
|
||||
- ADC Pin103 -> RSSI voltage monitoring
|
||||
|
||||
## IMU Heater
|
||||
|
||||
The IMU heater in the CubeOrangePlus can be controlled with the
|
||||
BRD_HEAT_TARG 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 [ProfiCNC](http://cubepilot.org) for images and information
|
||||
|
Loading…
Reference in New Issue
Block a user