-
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
hwdef: added files for Airvolute DCS2 onboard FMU #25354
Merged
tridge
merged 2 commits into
ArduPilot:master
from
vrsanskytom:hwdef_for_airvolute_dcs2
Dec 12, 2023
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
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
Binary file not shown.
Large diffs are not rendered by default.
Oops, something went wrong.
Binary file added
BIN
+238 KB
libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/DC2.Pilot peripherals.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+559 KB
libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/DCS2.Pilot_BottomSide.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
256 changes: 256 additions & 0 deletions
256
libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/README.md
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,256 @@ | ||
# Onboard FMU on Airvolute DCS2.Pilot board | ||
|
||
DroneCore 2.0 is a modular AI-driven open architecture autopilot designed for complex use cases that combines high computational processing power, redundant connectivity, small size, and low weight.The autopilot represents a one-stop-solution for developers integrating the functionality of carrier board, companion computer, and power distribution board into a single compact form factor. | ||
This system usually uses a "CUBE" autopilot as its primary FMU, but can use an onboard STM32H743 as the FMU. This board definition and firmware on `the ArduPilot firmware server <https://firmware.ardupilot.org>`__ is for this secondary FMU | ||
For more informations on DCS2.Pilot board see: | ||
https://docs.airvolute.com/dronecore-autopilot/dcs2 | ||
|
||
## Where To Buy | ||
[email protected] | ||
|
||
## Features | ||
|
||
- MCU: STM32H743 | ||
- IMU: BMI088 | ||
- Barometer: BMP390 | ||
- 2 UARTS | ||
- 2 CAN buses | ||
- 4 PWM outputs | ||
- PPM (RC input) | ||
- external SPI and I2C | ||
- SD card connector | ||
- USB connection onboard with Jetson Host | ||
- Ethernet | ||
|
||
## DCS2.Pilot peripherals diagram | ||
<img width="957" alt="DC2 Pilot peripherals" src="https://github.com/vrsanskytom/ardupilot/blob/hwdef_for_airvolute_dcs2/libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/DC2.Pilot%20peripherals.png"> | ||
|
||
## DCS2.Pilot onboard FMU related connectors pinout | ||
### Top side | ||
<img width="818" alt="DCS2 Pilot_bottom" src="https://github.com/vrsanskytom/ardupilot/blob/hwdef_for_airvolute_dcs2/libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/DCS2.Pilot_TopSide.png"> | ||
|
||
#### <ins>PPM connector (RC input)</ins> | ||
JST GH 1.25mm pitch, 3-Pin | ||
|
||
Matching connector JST GHR-03V-S. | ||
|
||
RC input is configured on the PPM_SBUS_PROT pin as part of the PPM connector. Pin is connected to UART3_RX and also to analog input on TIM3_CH1. This pin supports all unidirectional RC protocols, but for it to be enabled, it is necessary to set SERIAL3_PROTOCOL as RCIN. Also RC input is shared with primary FMU, so it is default disabled on this secondary FMU. | ||
|
||
5V supply is limited to 1A by internal current limiter. | ||
<table border="1" class="docutils"> | ||
<tbody> | ||
<tr> | ||
<th>Pin </th> | ||
<th>Signal </th> | ||
</tr> | ||
<tr> | ||
<td>1</td> | ||
<td>GND</td> | ||
</tr> | ||
<td>2</td> | ||
<td>5V</td> | ||
</tr> | ||
<td>3</td> | ||
<td>PPM</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
|
||
### Bottom side | ||
<img width="811" alt="DCS2 Pilot_top" src="https://github.com/vrsanskytom/ardupilot/blob/hwdef_for_airvolute_dcs2/libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/DCS2.Pilot_BottomSide.png"> | ||
|
||
#### <ins>FMU SEC. connector</ins> | ||
JST GH 1.25mm pitch, 12-Pin | ||
|
||
Matching connector JST GHR-12V-S. | ||
|
||
The DCS2 Onboard FMU supports up to 4 PWM outputs. These are directly attached to the STM32H743 and support all PWM protocols as well as DShot and bi-directional DShot. | ||
The 4 PWM outputs are in 2 groups: | ||
PWM 1,2 in group1 | ||
PWM 3,4 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. | ||
|
||
5V supply is limited to 1A by internal current limiter. | ||
<table border="1" class="docutils"> | ||
<tbody> | ||
<tr> | ||
<th>Pin </th> | ||
<th>Signal </th> | ||
</tr> | ||
<tr> | ||
<td>1</td> | ||
<td>GND</td> | ||
</tr> | ||
<td>2</td> | ||
<td>GND</td> | ||
</tr> | ||
<td>3</td> | ||
<td>GPIO/PWM output 4</td> | ||
</tr> | ||
</tr> | ||
<td>4</td> | ||
<td>GPIO/PWM output 3</td> | ||
</tr> | ||
</tr> | ||
<td>5</td> | ||
<td>GPIO/PWM output 2</td> | ||
</tr> | ||
</tr> | ||
<td>6</td> | ||
<td>GPIO/PWM output 1</td> | ||
</tr> | ||
</tr> | ||
<td>7</td> | ||
<td>Serial 1 RX</td> | ||
</tr> | ||
</tr> | ||
<td>8</td> | ||
<td>Serial 1 TX</td> | ||
</tr> | ||
</tr> | ||
<td>9</td> | ||
<td>Serial 2 RX</td> | ||
</tr> | ||
</tr> | ||
<td>10</td> | ||
<td>Serial 2 TX</td> | ||
</tr> | ||
</tr> | ||
<td>11</td> | ||
<td>5V</td> | ||
</tr> | ||
</tr> | ||
<td>12</td> | ||
<td>5V</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
|
||
#### <ins>EXT. SENS. connector</ins> | ||
BM23PF0.8-10DS-0.35V connector | ||
|
||
Matching connector BM23PF0.8-10DP-0.35V | ||
|
||
This connector allows connecting external IMU with I2C and SPI data buses. | ||
|
||
5V supply is limited to 1.9A by internal current limiter. | ||
<table border="1" class="docutils"> | ||
<tbody> | ||
<tr> | ||
<th>Pin </th> | ||
<th>Signal </th> | ||
</tr> | ||
<tr> | ||
<td>1</td> | ||
<td>SPI_MOSI</td> | ||
</tr> | ||
<td>2</td> | ||
<td>SPI_MISO</td> | ||
</tr> | ||
<td>3</td> | ||
<td>SPI_SCK</td> | ||
</tr> | ||
</tr> | ||
<td>4</td> | ||
<td>SPI_CS0</td> | ||
</tr> | ||
</tr> | ||
<td>5</td> | ||
<td>SPI_CS1</td> | ||
</tr> | ||
</tr> | ||
<td>6</td> | ||
<td>SPI_CS2</td> | ||
</tr> | ||
</tr> | ||
<td>7</td> | ||
<td>SPI_CS3</td> | ||
</tr> | ||
</tr> | ||
<td>8</td> | ||
<td>IMU_DRDY_EXT</td> | ||
</tr> | ||
</tr> | ||
<td>9</td> | ||
<td>I2C_SE_SDA</td> | ||
</tr> | ||
</tr> | ||
<td>10</td> | ||
<td>I2C_SE_SCL</td> | ||
</tr> | ||
</tr> | ||
<td>MP1</td> | ||
<td>5V</td> | ||
</tr> | ||
</tr> | ||
<td>MP2</td> | ||
<td>5V</td> | ||
</tr> | ||
</tr> | ||
<td>MP3</td> | ||
<td>GND</td> | ||
</tr> | ||
</tr> | ||
<td>MP4</td> | ||
<td>GND</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
|
||
#### <ins>ETH EXP. connector</ins> | ||
505110-1692 connector | ||
|
||
Ethernet connector is routed to FMU through onboard switch. | ||
|
||
The onboard FMU is connected via the RMII bus with a speed of 100 Mbits. | ||
|
||
#### <ins>SD card connector</ins> | ||
MEM2085-00-115-00-A connector | ||
|
||
Connector for standard microSD memory card. This card is primarily used to store flight data and logs. | ||
|
||
## Other connectors | ||
### CAN 1, CAN 2 connectors | ||
The board contains two CAN buses - CAN1 and CAN 2. The buses support speeds up to 1 Mbits and in FD mode up to 8 Mbits. | ||
|
||
These connectors are not part of DCS2.Pilot board, but they are routed on DCS2.Adapter_board. This board (DCS2.Adapter_board) is fully modular and can be modified according to the customer's requirements. For more informations see: https://docs.airvolute.com/dronecore-autopilot/dcs2/adapter-extension-boards/dcs2.-adapter-default-v1.0/connectors-and-pinouts | ||
|
||
JST GH 1.25mm pitch, 4-Pin | ||
|
||
Matching connector JST GHR-04V-S. | ||
|
||
5V supply is limited to 1.9A by internal current limiter. | ||
<table border="1" class="docutils"> | ||
<tbody> | ||
<tr> | ||
<th>Pin </th> | ||
<th>Signal </th> | ||
</tr> | ||
<tr> | ||
<td>1</td> | ||
<td>5V</td> | ||
</tr> | ||
<td>2</td> | ||
<td>CAN_H</td> | ||
</tr> | ||
<td>3</td> | ||
<td>CAN_L</td> | ||
</tr> | ||
<td>4</td> | ||
<td>GND</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
|
||
## UART Mapping | ||
|
||
- SERIAL0 -> USB (Default baud: 115200) | ||
- SERIAL1 -> UART1 (FMU SEC) (Default baud: 57600, Default protocol: Mavlink2 (2)) | ||
- SERIAL2 -> UART2 (FMU SEC) (Default baud: 57600, Default protocol: Mavlink2 (2)) | ||
- SERIAL3 -> UART3 (RX pin only labeled as PPM on PPM connector) (Since this is a secondary FMU, default protocol is set to NONE instead of RCIN (23)) | ||
|
||
UARTs do not have RTS/CTS. UARTs 1 and 2 are routed to FMU_SEC. connector. | ||
|
||
## Loading Firmware | ||
|
||
Initial bootloader load is achievable only by SDW interface. Then it is possible to flash firmware thrugh onboard USB connection with Jetson host. |
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,4 @@ | ||
SERIAL3_PROTOCOL -1 | ||
NTF_BUZZ_TYPES 0 | ||
NTF_BUZZ_VOLUME 0 | ||
SYSID_THISMAV 2 |
58 changes: 58 additions & 0 deletions
58
libraries/AP_HAL_ChibiOS/hwdef/Airvolute-DCS2/hwdef-bl.dat
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,58 @@ | ||
# hw definition file for processing by chibios_hwdef.py | ||
# for H743 bootloader | ||
|
||
# MCU class and specific type | ||
MCU STM32H7xx STM32H743xx | ||
|
||
# crystal frequency | ||
OSCILLATOR_HZ 16000000 | ||
|
||
# board ID for firmware load | ||
APJ_BOARD_ID 5200 | ||
|
||
# the nucleo seems to have trouble with flashing the last sector? | ||
FLASH_SIZE_KB 2048 | ||
|
||
# bootloader is installed at zero offset | ||
FLASH_RESERVE_START_KB 0 | ||
|
||
# the location where the bootloader will put the firmware | ||
# the H743 has 128k sectors | ||
FLASH_BOOTLOADER_LOAD_KB 128 | ||
|
||
# USB setup | ||
USB_STRING_MANUFACTURER "Airvolute" | ||
|
||
# baudrate to run bootloader at on uarts | ||
define BOOTLOADER_BAUDRATE 115200 | ||
|
||
# order of UARTs (and USB) | ||
SERIAL_ORDER OTG1 USART1 | ||
|
||
# this is the pin that senses USB being connected. It is an input pin | ||
# setup as OPENDRAIN | ||
PA9 VBUS INPUT OPENDRAIN | ||
|
||
# UART1 (SE_CONNECTOR) | ||
PB14 USART1_TX USART1 | ||
PA10 USART1_RX USART1 | ||
|
||
PB1 LED_BOOTLOADER OUTPUT LOW | ||
define HAL_LED_ON 1 | ||
|
||
define HAL_USE_SERIAL TRUE | ||
|
||
PA11 OTG_FS_DM OTG1 | ||
PA12 OTG_FS_DP OTG1 | ||
|
||
PA13 JTMS-SWDIO SWD | ||
PA14 JTCK-SWCLK SWD | ||
|
||
# Add CS pins to ensure they are high in bootloader | ||
PD12 IMU_CS0 CS | ||
PE13 IMU_CS1 CS | ||
PD13 BARO_CS CS | ||
PD15 EXT_0 CS | ||
PD14 EXT_1 CS | ||
PD11 EXT_2 CS | ||
PD10 EXT_3 CS |
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.
Does it only have 3 UARTs?
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.
and one used as RC....