9d0f7f2586
hwdef: add a new flight controller CM4Pilot
98 lines
2.8 KiB
Markdown
98 lines
2.8 KiB
Markdown
# CM4PILOT Integrated Flight Controller
|
||
|
||
The CM4PILOT is a low-cost and compact flight controller which integrated a Raspberry Pi CM4 in the cockpit.
|
||
|
||
<div align=left><img width="600" src=CM4pilot_inshell.jpg/></div>
|
||
<div align=left><img width="500" src=CM4Pilot_structure.jpg/></div>
|
||
|
||
|
||
## Features
|
||
|
||
- Raspberry Pi CM4 + Ardupilot, Companion Computers in cockpit structure
|
||
- Small Footprint and Lightweight, 58mm X 50mm X 18mm,26g(without shell)
|
||
- Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
|
||
- STM32F405 microcontroller
|
||
- IMU: BMI088
|
||
- Mag: LIS3MDLTR
|
||
- Baro: BMP280
|
||
- RTC: PCF85063
|
||
- 2 2-lane MIPI CSI camera ports
|
||
- 2 microSD card slot port
|
||
- 1 power ports(Analog)
|
||
- 6 UARTs and USB ports for FMU
|
||
- 2 UARTs and 4 USB2.0 and 1 OTG for CM4
|
||
- 1 I2C port
|
||
- 1 CAN port
|
||
- 1 SBUS input and 8 PWM output (all support DShot)
|
||
- External SPI port
|
||
- Buzzer on board
|
||
- RBG LED on board
|
||
- 128M flash on board for logging
|
||
|
||
## UART Mapping
|
||
|
||
- SERIAL0 -> USB(OTG1)
|
||
- SERIAL1 -> USART1(Telem1)(DMA capable)
|
||
- SERIAL2 -> USART3 (CM4)(DMA capable)
|
||
- SERIAL3 -> UART4 (GPS)(DMA capable)
|
||
- SERIAL4 -> UART6 (GPS2)(DMA capable)
|
||
- SERIAL5 -> USART2 (SBUS)(RC input, no DMA capable)
|
||
|
||
## RC Input
|
||
|
||
RC input is configured on the SBUS pin (UART2_RX). It supports all RC protocols except serial protocols
|
||
|
||
## PWM Output
|
||
|
||
The CM4PILOT supports up to 8 PWM outputs. All outputs support DShot (No BDshot).
|
||
The PWM is in 4 groups:
|
||
|
||
- PWM 1~4 in group1
|
||
- PWM 5,6 in group2
|
||
- PWM 7,8 in group3
|
||
- Buzzer on board in group4
|
||
|
||
## GPIOs
|
||
|
||
All 8 PWM channels can be used for GPIO functions.
|
||
The pin numbers for these PWM channels in ArduPilot are shown below:
|
||
|
||
| PWM Channels | Pin | PWM Channels | Pin |
|
||
| ------------ | ---- | ------------ | ---- |
|
||
| PWM1 | 50 | PWM8 | 57 |
|
||
| PWM2 | 51 |
|
||
| PWM3 | 52 |
|
||
| PWM4 | 53 |
|
||
| PWM5 | 54 |
|
||
| PWM6 | 55 |
|
||
| PWM7 | 56 |
|
||
|
||
## Battery Monitoring
|
||
|
||
The correct battery setting parameters are set by default and are:
|
||
|
||
- BATT_MONITOR 4
|
||
- BATT_VOLT_PIN 11
|
||
- BATT_CURR_PIN 12
|
||
- BATT_VOLT_SCALE 10.1
|
||
- BATT_CURR_SCALE 17.0
|
||
|
||
## Compass
|
||
|
||
The CM4PILOT has one built-in compass LIS3MDLTR, you can also attach an external compass using I2C on the SDA and SCL pads.
|
||
|
||
## Loading Firmware
|
||
|
||
Firmware for these boards can be found at https://firmware.ardupilot.org in sub-folders labeled “ACNS-CM4PILOT”.
|
||
|
||
Initial firmware load can be done with DFU by plugging in USB with the
|
||
boot button pressed. Then you should load the "xxx_bl.hex"
|
||
firmware, using your favorite DFU loading tool.
|
||
|
||
Subsequently, you can update the firmware with Mission Planner.
|
||
|
||
## Pinout and Size
|
||
|
||
<div align=left><img width="600" src=CM4Pilot_Pinout.jpg/></div>
|
||
<div align=left><img width="500" src=CM4pilot_size.jpg/></div>
|