-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AP_HAL_ChibiOS: hwdef: ARK_FPV board support #28603
Open
dakejahl
wants to merge
13
commits into
ArduPilot:master
Choose a base branch
from
dakejahl:pr-ark_fpv
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+469
−0
Open
Changes from 10 commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
f83ba71
AP_HAL_ChibiOS: hwdef: ARK_FPV board support
dakejahl 6eb6081
added common.inc, added README
dakejahl 5df3d64
added defaults.parm
dakejahl f6e004d
cleanup
dakejahl 8e0ffd4
optimize size, reserve board_id, add bootloader
dakejahl 31582d5
added pinout to readme, moved serial port defaults to hwdef
dakejahl 52200b1
review feedback
dakejahl 66204f5
serial1 baud 57, bidir dshot on 1-4
dakejahl bcbf2b4
USART2 NODMA
dakejahl 22436be
remove SCLAN TODO
dakejahl 2f6d5ce
added ARK FPV to board list frozen set
dakejahl db23298
add images
dakejahl a52e63c
rename
dakejahl File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
# ARK FPV Flight Controller | ||
|
||
https://arkelectron.com/product/ark-fpv-flight-controller/ | ||
|
||
|
||
## Features | ||
#### Processor | ||
- STM32H743 32-bit processor | ||
- 480MHz | ||
- 2MB Flash | ||
- 1MB RAM | ||
#### Sensors | ||
- Invensense IIM-42653 Industrial IMU with heater resistor | ||
- Bosch BMP390 Barometer | ||
- ST IIS2MDC Magnetometer | ||
#### Power | ||
- 5.5V - 54V (2S - 12S) input | ||
- 12V, 2A output | ||
- 5V, 2A output. 300ma for main system, 200ma for heater | ||
#### Interfaces | ||
- **Micro SD** | ||
- **USB-C** | ||
- VBUS In, USB | ||
- **PWM** | ||
- VBAT In, Analog Current Input, Telem RX, 4x PWM and Bidirectional-DSHOT capable | ||
- JST-GH 8 Pin | ||
- **PWM EXTRA** | ||
- 5x PWM and Bidirectional-DSHOT capable | ||
- JST-SH 6 Pin | ||
- **RC Input** | ||
- 5V Out, UART | ||
- JST-GH 4 Pin | ||
- **POWER AUX** | ||
- 12V Out, VBAT In/Out | ||
- JST-GH 3 Pin | ||
- **TELEM** | ||
- 5V Out, UART with flow control | ||
- JST-GH 6 Pin | ||
- **GPS** | ||
- 5V Out, UART, I2C | ||
- JST-GH 6 Pin | ||
- **CAN** | ||
- 5V Out, CAN | ||
- JST-GH 4 Pin | ||
- **VTX** | ||
- 12V Out, UART TX/RX, UART RX | ||
- JST-GH 6 Pin | ||
- **SPI** (OSD or External IMU) | ||
- 5V Out, SPI | ||
- JST-SH 8 Pin | ||
- **DEBUG** | ||
- 3.3V Out, UART, SWD | ||
- JST-SH 6 Pin | ||
|
||
##### Dimensions | ||
- Size: 3.6 × 3.6 × 0.8 cm | ||
- Weight: 7.5g with MicroSD card | ||
|
||
## Pinout | ||
#### PWM UART4 - 8 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-----------------|--------------| | ||
| 1 | VBAT IN | 5.5V-54V | | ||
| 2 | CURR_IN_EXT | 3.3V | | ||
| 3 | UART4_RX_EXT | 3.3V | | ||
| 4 | FMU_CH1_EXT | 3.3V | | ||
| 5 | FMU_CH2_EXT | 3.3V | | ||
| 6 | FMU_CH3_EXT | 3.3V | | ||
| 7 | FMU_CH4_EXT | 3.3V | | ||
| 8 | GND | GND | | ||
|
||
#### RC - 4 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|---------------------|---------| | ||
| 1 | 5.0V | 5.0V | | ||
| 2 | USART6_RX_IN_EXT | 3.3V | | ||
| 3 | USART6_TX_OUTPUT_EXT| 3.3V | | ||
| 4 | GND | GND | | ||
|
||
#### PWM EXTRA - 6 Pin JST-SH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-----------------|---------| | ||
| 1 | FMU_CH5_EXT | 3.3V | | ||
| 2 | FMU_CH6_EXT | 3.3V | | ||
| 3 | FMU_CH7_EXT | 3.3V | | ||
| 4 | FMU_CH8_EXT | 3.3V | | ||
| 5 | FMU_CH9_EXT | 3.3V | | ||
| 6 | GND | GND | | ||
|
||
#### POWER AUX - 3 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-------------|--------------| | ||
| 1 | 12.0V | 12.0V | | ||
| 2 | VBAT IN/OUT | 5.5V-54V | | ||
| 3 | GND | GND | | ||
|
||
#### CAN - 4 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-------------|---------| | ||
| 1 | 5.0V | 5.0V | | ||
| 2 | CAN1_P | 5.0V | | ||
| 3 | CAN1_N | 5.0V | | ||
| 4 | GND | GND | | ||
|
||
#### GPS - 6 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|---------------------|---------| | ||
| 1 | 5.0V | 5.0V | | ||
| 2 | USART1_TX_GPS1_EXT | 3.3V | | ||
| 3 | USART1_RX_GPS1_EXT | 3.3V | | ||
| 4 | I2C1_SCL_GPS1_EXT | 3.3V | | ||
| 5 | I2C1_SDA_GPS1_EXT | 3.3V | | ||
| 6 | GND | GND | | ||
|
||
#### TELEM - 6 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-----------------------|---------| | ||
| 1 | 5.0V | 5.0V | | ||
| 2 | UART7_TX_TELEM1_EXT | 3.3V | | ||
| 3 | UART7_RX_TELEM1_EXT | 3.3V | | ||
| 4 | UART7_CTS_TELEM1_EXT | 3.3V | | ||
| 5 | UART7_RTS_TELEM1_EXT | 3.3V | | ||
| 6 | GND | GND | | ||
|
||
#### VTX - 6 Pin JST-GH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-----------------------|---------| | ||
| 1 | 12.0V | 12.0V | | ||
| 2 | GND | GND | | ||
| 3 | UART5_TX_TELEM2_EXT | 3.3V | | ||
| 4 | UART5_RX_TELEM2_EXT | 3.3V | | ||
| 5 | USART2_RX_TELEM3_EXT | 3.3V | | ||
| 6 | GND | GND | | ||
|
||
#### SPI (OSD or IMU) - 8 Pin JST-SH | ||
| Pin | Signal Name | Voltage | | ||
|-----|---------------------|---------| | ||
| 1 | 5.0V | 5.0V | | ||
| 2 | SPI6_SCK_EXT | 3.3V | | ||
| 3 | SPI6_MISO_EXT | 3.3V | | ||
| 4 | SPI6_MOSI_EXT | 3.3V | | ||
| 5 | SPI6_nCS1_EXT | 3.3V | | ||
| 6 | SPI6_DRDY1_EXT | 3.3V | | ||
| 7 | SPI6_nRESET_EXT | 3.3V | | ||
| 8 | GND | GND | | ||
|
||
#### Flight Controller Debug - 6 Pin JST-SH | ||
| Pin | Signal Name | Voltage | | ||
|-----|-----------------|---------| | ||
| 1 | 3V3_FMU | 3.3V | | ||
| 2 | USART4_TX_DEBUG | 3.3V | | ||
| 3 | USART4_RX_DEBUG | 3.3V | | ||
| 4 | FMU_SWDIO | 3.3V | | ||
| 5 | FMU_SWCLK | 3.3V | | ||
| 6 | GND | GND | | ||
|
||
|
||
## UART Mapping | ||
|
||
|Name|Function| | ||
|:-|:-| | ||
|SERIAL0|USB| | ||
|SERIAL1|UART7 (Telem)| | ||
|SERIAL2|UART5 (VTX - DJI Air Unit, RX/TXT)| | ||
|SERIAL3|USART1 (GPS1)| | ||
|SERIAL4|USART2 (VTX - DJI Air Unit, RX only)| | ||
|SERIAL5|UART4 (ESC Telem, RX only)| | ||
|SERIAL6|USART6 (RC Input)| | ||
|SERIAL7|OTG2 (SLCAN)| | ||
|
||
All UARTS support DMA. | ||
|
||
## OSD Support | ||
|
||
This flight controller has an MSP-DisplayPort output on a 6-pin DJI-compatible JST SH. | ||
|
||
## Motor Output | ||
|
||
Motors 1-8 are capable of Bidirectional-DSHOT and PWM. All outputs in the motor groups below must be either PWM or DShot: | ||
- Motors 1-4 Group1 (TIM5) | ||
- Motors 5-8 Group2 (TIM8) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# MCU class and specific type | ||
MCU STM32H7xx STM32H743xx | ||
|
||
# board ID for firmware load | ||
APJ_BOARD_ID 59 | ||
|
||
# crystal frequency | ||
OSCILLATOR_HZ 16000000 | ||
|
||
# 480Hz is only value support on H7 | ||
# MCU_CLOCKRATE_MHZ 320 | ||
|
||
# flash size | ||
FLASH_SIZE_KB 2048 | ||
|
||
# enable DFU reboot for installing bootloader | ||
# note that if firmware is build with --secure-bl then DFU is | ||
# disabled | ||
ENABLE_DFU_BOOT 1 | ||
|
||
# USB | ||
PA11 OTG_FS_DM OTG1 | ||
PA12 OTG_FS_DP OTG1 | ||
PA9 VBUS INPUT OPENDRAIN | ||
|
||
# SWD | ||
PA13 JTMS-SWDIO SWD | ||
PA14 JTCK-SWCLK SWD | ||
|
||
# debug uart | ||
PD8 USART3_TX USART3 | ||
PD9 USART3_RX USART3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# CAN | ||
CAN_P1_DRIVER 1 # Enables the use of CAN | ||
|
||
# Onboard OSD | ||
OSD_TYPE 5 # MSP | ||
OSD_CELL_COUNT 0 # auto based on voltage at start |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Processed by chibios_hwdef.py | ||
|
||
include common.inc | ||
|
||
# Bootloader is installed at zero offset | ||
FLASH_RESERVE_START_KB 0 | ||
|
||
# Location where the bootloader will put the firmware | ||
FLASH_BOOTLOADER_LOAD_KB 128 | ||
|
||
SERIAL_ORDER OTG1 UART7 USART1 USART3 | ||
|
||
PI9 IMU1_CS CS # SPI1 CS - IIM42653 | ||
PI10 EXT1_CS CS # SPI6 CS - external | ||
|
||
# Telem1 - Telem | ||
PE8 UART7_TX UART7 | ||
PF6 UART7_RX UART7 | ||
PF8 UART7_RTS UART7 | ||
PE10 UART7_CTS UART7 | ||
|
||
# GPS | ||
PB6 USART1_TX USART1 | ||
PB7 USART1_RX USART1 | ||
|
||
# Armed indication | ||
PE6 nARMED OUTPUT HIGH | ||
|
||
# 12V peripheral enable | ||
PG4 nVDD_5V_PERIPH_EN OUTPUT HIGH | ||
|
||
# LEDs | ||
PE3 LED_ACTIVITY OUTPUT OPENDRAIN HIGH # red | ||
PE5 LED_BOOTLOADER OUTPUT OPENDRAIN HIGH # blue | ||
define HAL_LED_ON 0 |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this causes CI to fail
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah seems like a pretty low id
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ID is already set in PX4 and QGC. Why would the board ID make the CI fail?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IDK, one for @peterbarker
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like bl/fmu don't share IDs
https://github.com/ArduPilot/ardupilot/blob/master/Tools/autotest/validate_board_list.py#L55-L66