mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-10 17:20:05 +08:00
Compare commits
220 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2b8db472ff | |||
| a37e3e7b06 | |||
| ce8dd2ba48 | |||
| 0c2a8266bc | |||
| 39ab1f5809 | |||
| 013856fac1 | |||
| ec9dce2e89 | |||
| 70826c5af4 | |||
| db591f25a6 | |||
| 3f1740cb46 | |||
| b4687c27fe | |||
| a3f398943e | |||
| 7f78ae449a | |||
| 8b780f2a96 | |||
| b405a1aa49 | |||
| 45968c614e | |||
| c0a56ce268 | |||
| f5fd369ce8 | |||
| 1128ada90a | |||
| 15bb8c0f2e | |||
| c6aa82441f | |||
| 88c5565a29 | |||
| decf1ac0a8 | |||
| 351f2a8287 | |||
| 8fe5ce4f65 | |||
| 327b7e611e | |||
| 4a18baa4bd | |||
| 83b832fdce | |||
| 2235c40e28 | |||
| 877f37d79e | |||
| b19b0d0163 | |||
| 3b2b60adde | |||
| 8dc73c4621 | |||
| 258fc786dc | |||
| 17535c288c | |||
| 632596c1ea | |||
| 618724b409 | |||
| f000238987 | |||
| f82785a322 | |||
| f8c9be087b | |||
| 715a1ff701 | |||
| 9ebfed010f | |||
| 9e2e888f5e | |||
| 2f52926972 | |||
| 69aa8689c0 | |||
| f5edff2647 | |||
| 672b29d555 | |||
| 03528a6200 | |||
| bca0be47bc | |||
| 9511248514 | |||
| f5d9ac4526 | |||
| 56c794108d | |||
| 2dcb525cd9 | |||
| 42fa41e601 | |||
| 1fa5136e30 | |||
| 392d445783 | |||
| e127ada07b | |||
| 87c697a0d6 | |||
| 81764c43a1 | |||
| 02ab5e0704 | |||
| e776aca9ef | |||
| 6b7aed3d44 | |||
| 95a35c972d | |||
| 0be6069b83 | |||
| 66b451e61f | |||
| 5568afbb12 | |||
| 6b7b34a71a | |||
| 2a077181d9 | |||
| a8bf47e606 | |||
| 646f711b1a | |||
| 0d6cb46c83 | |||
| afa085da7f | |||
| 745fa3720e | |||
| e18da100ed | |||
| c1cb48c2ea | |||
| 39e04d9712 | |||
| 724f5a97a9 | |||
| a6502c9f2b | |||
| dccfcb85c1 | |||
| a617e9c54b | |||
| f275085e84 | |||
| 288e3ae74a | |||
| 24665f10f2 | |||
| a36c922fc0 | |||
| 77d6c722a7 | |||
| bae413a332 | |||
| abe0ca1307 | |||
| f5193bb155 | |||
| 2307d4aa22 | |||
| 018ec97c41 | |||
| bfa72a1bee | |||
| b7e2a9c320 | |||
| 4d465533b5 | |||
| 03183ccacf | |||
| 0196241c10 | |||
| 3557644010 | |||
| 46b09acf0b | |||
| 4348dcce2a | |||
| a6d2c2cf5e | |||
| e5503480e3 | |||
| e739afe362 | |||
| e34993969b | |||
| 05489f9ecf | |||
| c26b699f8a | |||
| 98d8935034 | |||
| 8d1b0e45fa | |||
| eb70c9f6f3 | |||
| fdf7867a3e | |||
| c99f56f010 | |||
| 73e5ff109c | |||
| 7e79d65aa4 | |||
| 439670444f | |||
| a6a913bf25 | |||
| 54a351639c | |||
| d00ad1b815 | |||
| 20d0661e87 | |||
| 173407581b | |||
| 7ed90c6d0c | |||
| a07d10704b | |||
| 18d89e4bc1 | |||
| fd267fb9a5 | |||
| 18f0311161 | |||
| 24b1ef93b2 | |||
| c6870006c7 | |||
| d9ae2ed7ac | |||
| 2a48c1cb18 | |||
| 65ad6afb08 | |||
| 4632fbd600 | |||
| 69aebe650b | |||
| 53b9e66c66 | |||
| 957a06a780 | |||
| 8fe65c6722 | |||
| 3303323971 | |||
| 053d3020b0 | |||
| cfb24869e9 | |||
| 4396b6e9f6 | |||
| 6929493134 | |||
| a28ad8e845 | |||
| 1ceca8f2cf | |||
| ffe0ec27e6 | |||
| fc357921fd | |||
| 9b95330efc | |||
| 6b1f805b15 | |||
| 89e8ba0b53 | |||
| bbc6ed43bd | |||
| 51a4eafe0c | |||
| 94d2140a4f | |||
| 0f256718d3 | |||
| 24de623989 | |||
| c95539e8ce | |||
| 7230a6dd8e | |||
| 8b67fa91a1 | |||
| f9510557a6 | |||
| 135f02679a | |||
| c3db4f57df | |||
| 5b8ae69f47 | |||
| acd19a0520 | |||
| f119cca3b3 | |||
| ea61d74c17 | |||
| 1707805ed2 | |||
| af44da25f0 | |||
| b8ad9bdbe5 | |||
| 6ee2d796ea | |||
| f4de43a10b | |||
| b625e43566 | |||
| cd485b3a13 | |||
| c468266b27 | |||
| 5233b33242 | |||
| 403a6310c4 | |||
| c6b259d5f6 | |||
| d4528dc53a | |||
| e7c4a22be8 | |||
| c6f1a63659 | |||
| d03f242c04 | |||
| 9d7abf2552 | |||
| ea8b985a2f | |||
| 2f448e9d9f | |||
| 99f6d4190c | |||
| a52c0fd9f5 | |||
| 1c7320b9e3 | |||
| ac811450e5 | |||
| 8f64c79b4c | |||
| 459f9c5331 | |||
| ad778b37f5 | |||
| f41ad10275 | |||
| a1167d6c98 | |||
| ebe152fc22 | |||
| d2011e99b2 | |||
| 4b5e14aeec | |||
| d6413a6a90 | |||
| fab58ee2bc | |||
| db18a94382 | |||
| 1bfca24fa9 | |||
| e65a0a01d6 | |||
| f0dd9fa445 | |||
| bc872822bc | |||
| 70178b66d8 | |||
| f0b476bcba | |||
| ee19ec4670 | |||
| f96073f442 | |||
| 6977fd9956 | |||
| e3aea937c3 | |||
| 6535cc758e | |||
| bd182ecf70 | |||
| ad769db8d6 | |||
| ee96d209d7 | |||
| 822d784335 | |||
| 1b9d90e7c4 | |||
| dc99a875c3 | |||
| c903288f4c | |||
| 7b6f45079b | |||
| 7d0596d244 | |||
| 8feb662557 | |||
| 09f282b282 | |||
| 5fff0526cf | |||
| 837847f3ad | |||
| ca1d32a29d | |||
| cee21bd703 | |||
| 643d89f54b | |||
| dc2428a348 |
@@ -9,7 +9,7 @@ pipeline {
|
||||
script {
|
||||
def build_nodes = [:]
|
||||
def docker_images = [
|
||||
armhf: "px4io/px4-dev-armhf:2022-08-12",
|
||||
armhf: "px4io/px4-dev-armhf:2023-06-26",
|
||||
arm64: "px4io/px4-dev-aarch64:2022-08-12",
|
||||
base: "px4io/px4-dev-ros2-foxy:2022-08-12",
|
||||
nuttx: "px4io/px4-dev-nuttx-focal:2022-08-12",
|
||||
@@ -40,6 +40,8 @@ pipeline {
|
||||
"ark_can-flow_default",
|
||||
"ark_can-gps_canbootloader",
|
||||
"ark_can-gps_default",
|
||||
"ark_cannode-gps_canbootloader",
|
||||
"ark_cannode-gps_default",
|
||||
"ark_can-rtk-gps_canbootloader",
|
||||
"ark_can-rtk-gps_default",
|
||||
"ark_fmu-v6x_bootloader",
|
||||
@@ -53,8 +55,10 @@ pipeline {
|
||||
"cuav_nora_default",
|
||||
"cuav_x7pro_default",
|
||||
"cubepilot_cubeorange_default",
|
||||
"cubepilot_cubeorangeplus_default",
|
||||
"cubepilot_cubeyellow_default",
|
||||
"diatone_mamba-f405-mk2_default",
|
||||
"flywoo_gn-f405_default",
|
||||
"freefly_can-rtk-gps_canbootloader",
|
||||
"freefly_can-rtk-gps_default",
|
||||
"holybro_can-gps-v1_canbootloader",
|
||||
@@ -73,6 +77,7 @@ pipeline {
|
||||
"modalai_fc-v1_default",
|
||||
"modalai_fc-v2_default",
|
||||
"modalai_voxl2-io_default",
|
||||
"mro_ctrl-zero-classic_default",
|
||||
"mro_ctrl-zero-f7_default",
|
||||
"mro_ctrl-zero-f7-oem_default",
|
||||
"mro_ctrl-zero-h7-oem_default",
|
||||
@@ -85,6 +90,7 @@ pipeline {
|
||||
"nxp_fmuk66-v3_default",
|
||||
"nxp_fmuk66-v3_socketcan",
|
||||
"nxp_fmurt1062-v1_default",
|
||||
"nxp_mr-canhubk3_default",
|
||||
"nxp_ucans32k146_canbootloader",
|
||||
"nxp_ucans32k146_default",
|
||||
"omnibus_f4sd_default",
|
||||
|
||||
@@ -12,7 +12,7 @@ pipeline {
|
||||
stage("build cubepilot_cubeorange_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -91,7 +91,7 @@ pipeline {
|
||||
stage("build cuav_x7pro_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -165,7 +165,7 @@ pipeline {
|
||||
stage("build px4_fmu-v4_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -238,7 +238,7 @@ pipeline {
|
||||
stage("build px4_fmu-v4pro_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -312,7 +312,7 @@ pipeline {
|
||||
stage("build px4_fmu-v5_debug") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -403,7 +403,7 @@ pipeline {
|
||||
stage("build px4_fmu-v5_stackcheck") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -486,7 +486,7 @@ pipeline {
|
||||
stage("build px4_fmu-v5_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
@@ -560,7 +560,7 @@ pipeline {
|
||||
stage("build nxp_fmuk66-v3_test") {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-09-08'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '--cpu-shares 512 -e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
|
||||
{
|
||||
"name": "px4-dev-nuttx",
|
||||
"image": "px4io/px4-dev-nuttx-focal:2021-09-08",
|
||||
"image": "px4io/px4-dev-nuttx-focal:2022-08-12",
|
||||
|
||||
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
|
||||
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Create a report to help us improve
|
||||
labels: bug-report
|
||||
|
||||
---
|
||||
|
||||
## Describe the bug
|
||||
A clear and concise description of the bug.
|
||||
|
||||
## To Reproduce
|
||||
Steps to reproduce the behavior:
|
||||
1. Drone switched on '...'
|
||||
2. Uploaded mission '....' (attach QGC mission file)
|
||||
3. Took off '....'
|
||||
4. See error
|
||||
|
||||
## Expected behavior
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
## Log Files and Screenshots
|
||||
*Always* provide a link to the flight log file:
|
||||
- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/main/en/getting_started/flight_reporting.html)).
|
||||
- Upload the log to the [PX4 Flight Review](http://logs.px4.io/)
|
||||
- Share the link to the log (Copy and paste the URL of the log)
|
||||
|
||||
Add screenshots to help explain your problem.
|
||||
|
||||
## Drone (please complete the following information):
|
||||
- Describe the type of drone.
|
||||
- Photo of the IMU / autopilot setup if possible.
|
||||
|
||||
## Additional context
|
||||
Add any other context about the problem here.
|
||||
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: 🚀 Feature Request
|
||||
about: Suggest an idea for this project
|
||||
labels: feature-request
|
||||
|
||||
---
|
||||
|
||||
For general questions please use [PX4 Discuss](http://discuss.px4.io/) or Discord (you can find an invite link on this project README).
|
||||
|
||||
## Describe problem solved by the proposed feature
|
||||
A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
|
||||
|
||||
## Describe your preferred solution
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
## Describe possible alternatives
|
||||
A clear and concise description of alternative solutions or features you've considered.
|
||||
|
||||
## Additional context
|
||||
Add any other context or screenshots for the feature request here.
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
name: ⛔ Support Question
|
||||
about: See http://discuss.px4.io/ for questions about using PX4.
|
||||
|
||||
---
|
||||
|
||||
## Attention! Please read the note below
|
||||
|
||||
We use GitHub issues only to discuss PX4 bugs and new features.
|
||||
|
||||
**For questions about using PX4 or related components, please use [PX4 Discuss](http://discuss.px4.io/).**
|
||||
|
||||
Thanks!
|
||||
@@ -1,11 +0,0 @@
|
||||
---
|
||||
name: ⛔ Documentation Issue
|
||||
about: See https://github.com/PX4/px4_user_guide for documentation issues
|
||||
|
||||
---
|
||||
|
||||
## Attention! Please read the note below
|
||||
|
||||
**Please submit the documentation issue to the [User Guide](https://github.com/PX4/px4_user_guide) repository.**
|
||||
|
||||
Thanks!
|
||||
@@ -0,0 +1,94 @@
|
||||
name: 🐛 Bug report
|
||||
description: Create a report to help us improve
|
||||
title: "[Bug] "
|
||||
labels: ["bug-report"]
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear and concise description of the bug.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: To Reproduce
|
||||
description: |
|
||||
Steps to reproduce the behavior.
|
||||
1. Drone switched on '...'
|
||||
2. Uploaded mission '....' (attach QGC mission file)
|
||||
3. Took off '....'
|
||||
4. See error
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected behavior
|
||||
description: A clear and concise description of what you expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshot / Media
|
||||
description: Add screenshot / media if you have them
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Flight Log
|
||||
description: |
|
||||
*Always* provide a link to the flight log file:
|
||||
- Download the flight log file from the vehicle ([tutorial](https://docs.px4.io/main/en/getting_started/flight_reporting.html)).
|
||||
- Upload the log to the [PX4 Flight Review](http://logs.px4.io/)
|
||||
- Share the link to the log (Copy and paste the URL of the log)
|
||||
placeholder: |
|
||||
# PASTE HERE THE LINK TO THE LOG
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Setup
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Software Version
|
||||
description: |
|
||||
Which version of PX4 are you using?
|
||||
placeholder: |
|
||||
# If you don't know the version, paste the output of `ver all` in the MAVLink Shell of QGC
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Flight controller
|
||||
description: Specify your flight controller model (what type is it, where was it bought from, ...).
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Vehicle type
|
||||
options:
|
||||
- Multicopter
|
||||
- Helicopter
|
||||
- Fixed Wing
|
||||
- Hybrid VTOL
|
||||
- Airship/Balloon
|
||||
- Rover
|
||||
- Boat
|
||||
- Submarine
|
||||
- Other
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: How are the different components wired up (including port information)
|
||||
description: Details about how all is wired.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context about the problem here.
|
||||
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Support Question
|
||||
url: https://docs.px4.io/main/en/contribute/support.html#forums-and-chat
|
||||
about: For questions about using PX4 or related components, please use the discuss forum and discord server
|
||||
- name: Documentation Issue
|
||||
url: https://github.com/PX4/PX4-user_guide/issues
|
||||
about: If you found an issue in documentation, please submit it directly to the docs repository issues
|
||||
@@ -0,0 +1,35 @@
|
||||
name: 🚀 Feature Request
|
||||
description: Suggest an idea for this project
|
||||
labels: ["feature-request"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
## Please note that feature requests are not 'fire and forget'
|
||||
It is a lot more likely that the feature you would like to have will be implemented if you keep watching your feature request, and provide more details to developers looking into implementing your feature, and help them with testing.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe problem solved by the proposed feature
|
||||
description: A clear and concise description of the problem, if any, this feature will solve. E.g. I'm always frustrated when ...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe your preferred solution
|
||||
description: A clear and concise description of what you want to happen.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe possible alternatives
|
||||
description: A clear and concise description of any alternative solutions or features you've considered.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: Add any other context or screenshots for the feature request here.
|
||||
@@ -23,7 +23,7 @@ For release notes:
|
||||
```
|
||||
Feature/Bugfix XYZ
|
||||
New parameter: XYZ_Z
|
||||
Documentation: Need to clarfiy page ... / done, read docs.px4.io/...
|
||||
Documentation: Need to clarify page ... / done, read docs.px4.io/...
|
||||
```
|
||||
|
||||
### Alternatives
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="90" height="20">
|
||||
<linearGradient id="smooth" x2="0" y2="100%">
|
||||
<stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
|
||||
<stop offset="1" stop-opacity=".1"/>
|
||||
</linearGradient>
|
||||
|
||||
<mask id="round">
|
||||
<rect width="90" height="20" rx="3" fill="#fff"/>
|
||||
</mask>
|
||||
|
||||
<g mask="url(#round)">
|
||||
<rect width="42" height="20" fill="#555"/>
|
||||
<rect x="42" width="48" height="20" fill="#E01563"/>
|
||||
<rect width="90" height="20" fill="url(#smooth)"/>
|
||||
</g>
|
||||
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="22" y="15" fill="#010101" fill-opacity=".3">slack</text>
|
||||
<text x="22" y="14">slack</text>
|
||||
<text x="65" y="15" fill="#010101" fill-opacity=".3">Join us!</text>
|
||||
<text x="65" y="14">Join us!</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 894 B |
@@ -1,15 +0,0 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 90
|
||||
# Number of days of inactivity before a stale issue is closed, or `false` to disable
|
||||
daysUntilClose: false
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- pinned
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: stale
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. Thank you for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
"parameters_metadata",
|
||||
]
|
||||
container:
|
||||
image: px4io/px4-dev-nuttx-focal:2021-09-08
|
||||
image: px4io/px4-dev-nuttx-focal:2022-08-12
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
name: Linux Targets
|
||||
name: Compile Linux Targets
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable'
|
||||
- 'beta'
|
||||
- 'release/*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
@@ -11,7 +14,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-armhf:2021-09-08
|
||||
container: px4io/px4-dev-armhf:2023-06-26
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
@@ -24,7 +27,8 @@ jobs:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
token: ${{secrets.ACCESS_TOKEN}}
|
||||
|
||||
- name: ownership workaround
|
||||
run: git config --system --add safe.directory '*'
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_timestamp
|
||||
shell: cmake -P {0}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
name: Linux ARM64 Targets
|
||||
name: Compile Linux ARM64 Targets
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable'
|
||||
- 'beta'
|
||||
- 'release/*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
@@ -11,7 +14,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-aarch64:2021-09-08
|
||||
container: px4io/px4-dev-aarch64:2022-08-12
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
|
||||
@@ -10,13 +10,12 @@ on:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-10.15
|
||||
runs-on: macos-latest
|
||||
strategy:
|
||||
matrix:
|
||||
config: [
|
||||
px4_fmu-v5_default,
|
||||
px4_sitl
|
||||
#tests, # includes px4_sitl
|
||||
]
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
name: Nuttx Targets
|
||||
name: Compile Nuttx Targets
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable'
|
||||
- 'beta'
|
||||
- 'release/*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
@@ -11,7 +14,7 @@ on:
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-nuttx-focal:2021-09-08
|
||||
container: px4io/px4-dev-nuttx-focal:2022-08-12
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
||||
@@ -24,12 +24,15 @@ jobs:
|
||||
needs: enumerate_targets
|
||||
strategy:
|
||||
matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
|
||||
container: px4io/px4-dev-${{ matrix.container }}:2021-09-08
|
||||
container: ${{ matrix.container }}
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
token: ${{secrets.ACCESS_TOKEN}}
|
||||
|
||||
- name: ownership workaround
|
||||
run: git config --system --add safe.directory '*'
|
||||
|
||||
- name: make ${{matrix.target}}
|
||||
run: make ${{matrix.target}}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
"failsafe_web",
|
||||
]
|
||||
container:
|
||||
image: px4io/px4-dev-nuttx-focal:2021-09-08
|
||||
image: px4io/px4-dev-nuttx-focal:2022-08-12
|
||||
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
uorb_graph:
|
||||
runs-on: ubuntu-latest
|
||||
container: px4io/px4-dev-nuttx-focal:2021-09-08
|
||||
container: px4io/px4-dev-nuttx-focal:2022-08-12
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
with:
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
name: 'Handle stale issues and PRs'
|
||||
on:
|
||||
schedule:
|
||||
- cron: '30 1 * * *'
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v8
|
||||
with:
|
||||
days-before-stale: 30
|
||||
days-before-close: -1
|
||||
stale-issue-label: 'stale'
|
||||
stale-pr-label: 'stale'
|
||||
remove-stale-when-updated: true
|
||||
Vendored
+2
-2
@@ -94,7 +94,7 @@ pipeline {
|
||||
|
||||
stage('failsafe docs') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-nuttx-focal:2021-08-18' }
|
||||
docker { image 'px4io/px4-dev-nuttx-focal:2022-08-12' }
|
||||
}
|
||||
steps {
|
||||
sh '''#!/bin/bash -l
|
||||
@@ -125,7 +125,7 @@ pipeline {
|
||||
stage('uORB graphs') {
|
||||
agent {
|
||||
docker {
|
||||
image 'px4io/px4-dev-nuttx-focal:2021-08-18'
|
||||
image 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ param set-default SENS_EN_GPSSIM 1
|
||||
param set-default SENS_EN_BAROSIM 1
|
||||
param set-default SENS_EN_MAGSIM 1
|
||||
|
||||
param set-default VT_B_TRANS_DUR 5
|
||||
param set-default VT_ELEV_MC_LOCK 0
|
||||
param set-default VT_TYPE 0
|
||||
param set-default VT_FW_DIFTHR_EN 1
|
||||
|
||||
@@ -48,35 +48,32 @@ param set-default PWM_MAIN_REV 96 # invert both elevons
|
||||
param set-default EKF2_MULTI_IMU 0
|
||||
param set-default SENS_IMU_MODE 1
|
||||
|
||||
param set-default NPFG_PERIOD 12
|
||||
param set-default FW_PR_I 0.2
|
||||
param set-default FW_PR_P 0.2
|
||||
param set-default FW_P_TC 0.6
|
||||
|
||||
param set-default FW_PR_FF 0.1
|
||||
param set-default FW_PSP_OFF 2
|
||||
param set-default FW_P_LIM_MIN -15
|
||||
param set-default FW_RR_P 0.2
|
||||
param set-default FW_THR_TRIM 0.33
|
||||
param set-default FW_THR_MAX 0.6
|
||||
param set-default FW_RR_FF 0.1
|
||||
param set-default FW_RR_I 0.2
|
||||
param set-default FW_RR_P 0.3
|
||||
param set-default FW_THR_TRIM 0.35
|
||||
param set-default FW_THR_MAX 0.8
|
||||
param set-default FW_THR_MIN 0.05
|
||||
param set-default FW_T_ALT_TC 2
|
||||
param set-default FW_T_CLMB_MAX 8
|
||||
param set-default FW_T_SINK_MAX 2.7
|
||||
param set-default FW_T_SINK_MIN 2.2
|
||||
param set-default FW_T_TAS_TC 2
|
||||
param set-default FW_T_CLMB_MAX 6
|
||||
param set-default FW_T_HRATE_FF 0.5
|
||||
param set-default FW_T_SINK_MAX 3
|
||||
param set-default FW_T_SINK_MIN 1.6
|
||||
|
||||
param set-default MC_AIRMODE 1
|
||||
param set-default MC_ROLL_P 3
|
||||
param set-default MC_PITCH_P 3
|
||||
param set-default MC_ROLLRATE_P 0.3
|
||||
param set-default MC_PITCHRATE_P 0.3
|
||||
|
||||
param set-default MPC_XY_P 0.8
|
||||
param set-default MPC_XY_VEL_P_ACC 3
|
||||
param set-default MPC_XY_VEL_I_ACC 4
|
||||
param set-default MPC_XY_VEL_D_ACC 0.1
|
||||
|
||||
param set-default NAV_ACC_RAD 5
|
||||
|
||||
param set-default VT_ARSP_TRANS 10
|
||||
param set-default VT_B_TRANS_DUR 5
|
||||
param set-default VT_FW_DIFTHR_EN 1
|
||||
param set-default VT_FW_DIFTHR_S_Y 0.5
|
||||
param set-default VT_FW_DIFTHR_S_Y 1
|
||||
param set-default VT_F_TRANS_DUR 1.5
|
||||
param set-default VT_F_TRANS_THR 0.7
|
||||
param set-default VT_TYPE 0
|
||||
|
||||
param set-default WV_EN 0
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name Quadrotor + Tailsitter
|
||||
#
|
||||
# @type VTOL Quad Tailsitter
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.vtol_defaults
|
||||
|
||||
param set-default MAV_TYPE 20
|
||||
|
||||
param set-default CA_AIRFRAME 4
|
||||
|
||||
param set-default CA_ROTOR_COUNT 4
|
||||
param set-default CA_ROTOR0_PX 0.15
|
||||
param set-default CA_ROTOR0_PY 0.23
|
||||
param set-default CA_ROTOR0_KM 0.05
|
||||
param set-default CA_ROTOR1_PX -0.15
|
||||
param set-default CA_ROTOR1_PY -0.23
|
||||
param set-default CA_ROTOR1_KM 0.05
|
||||
param set-default CA_ROTOR2_PX 0.15
|
||||
param set-default CA_ROTOR2_PY -0.23
|
||||
param set-default CA_ROTOR2_KM -0.05
|
||||
param set-default CA_ROTOR3_PX -0.15
|
||||
param set-default CA_ROTOR3_PY 0.23
|
||||
param set-default CA_ROTOR3_KM -0.05
|
||||
|
||||
param set-default CA_SV_CS_COUNT 0
|
||||
|
||||
param set-default PWM_MAIN_FUNC1 101
|
||||
param set-default PWM_MAIN_FUNC2 102
|
||||
param set-default PWM_MAIN_FUNC3 103
|
||||
param set-default PWM_MAIN_FUNC4 104
|
||||
param set-default PWM_MAIN_FUNC5 0
|
||||
|
||||
parm set-default FD_FAIL_R 70
|
||||
|
||||
param set-default FW_P_TC 0.6
|
||||
|
||||
param set-default FW_PR_I 0.3
|
||||
param set-default FW_PR_P 0.5
|
||||
param set-default FW_PSP_OFF 2
|
||||
param set-default FW_RR_FF 0.1
|
||||
param set-default FW_RR_I 0.1
|
||||
param set-default FW_RR_P 0.2
|
||||
param set-default FW_YR_FF 0 # make yaw rate controller very weak, only keep default P
|
||||
param set-default FW_YR_I 0
|
||||
param set-default FW_THR_TRIM 0.35
|
||||
param set-default FW_THR_MAX 0.8
|
||||
param set-default FW_THR_MIN 0.05
|
||||
param set-default FW_T_CLMB_MAX 6
|
||||
param set-default FW_T_HRATE_FF 0.5
|
||||
param set-default FW_T_SINK_MAX 3
|
||||
param set-default FW_T_SINK_MIN 1.6
|
||||
param set-default FW_AIRSPD_STALL 10
|
||||
param set-default FW_AIRSPD_MIN 14
|
||||
param set-default FW_AIRSPD_TRIM 18
|
||||
param set-default FW_AIRSPD_MAX 22
|
||||
|
||||
param set-default MC_AIRMODE 2
|
||||
param set-default MAN_ARM_GESTURE 0 # required for yaw airmode
|
||||
param set-default MC_ROLL_P 3
|
||||
param set-default MC_PITCH_P 3
|
||||
param set-default MC_ROLLRATE_P 0.3
|
||||
param set-default MC_PITCHRATE_P 0.3
|
||||
|
||||
param set-default VT_ARSP_TRANS 15
|
||||
param set-default VT_B_TRANS_DUR 5
|
||||
param set-default VT_FW_DIFTHR_EN 7
|
||||
param set-default VT_FW_DIFTHR_S_Y 1
|
||||
param set-default VT_F_TRANS_DUR 1.5
|
||||
param set-default VT_TYPE 0
|
||||
|
||||
param set-default WV_EN 0
|
||||
@@ -60,6 +60,7 @@ px4_add_romfs_files(
|
||||
1042_gazebo-classic_tiltrotor
|
||||
1043_gazebo-classic_standard_vtol_drop
|
||||
1044_gazebo-classic_plane_lidar
|
||||
1045_gazebo-classic_quadtailsitter
|
||||
1060_gazebo-classic_rover
|
||||
1061_gazebo-classic_r1_rover
|
||||
1062_flightgear_tf-r1
|
||||
@@ -93,4 +94,6 @@ px4_add_romfs_files(
|
||||
|
||||
17001_flightgear_tf-g1
|
||||
17002_flightgear_tf-g2
|
||||
|
||||
# [22000, 22999] Reserve for custom models
|
||||
)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
param set-default EKF2_FUSE_BETA 0 # side slip fusion is currently not supported for tailsitters
|
||||
|
||||
param set UAVCAN_ENABLE 0
|
||||
param set-default VT_B_TRANS_DUR 5
|
||||
param set-default VT_ELEV_MC_LOCK 0
|
||||
param set-default VT_MOT_COUNT 2
|
||||
param set-default VT_TYPE 0
|
||||
|
||||
@@ -31,3 +31,4 @@ param set-default CA_SV_CS1_TYPE 6
|
||||
param set-default MAV_TYPE 19
|
||||
param set-default VT_TYPE 0
|
||||
param set-default VT_ELEV_MC_LOCK 0
|
||||
param set-default VT_B_TRANS_DUR 5
|
||||
|
||||
@@ -34,9 +34,9 @@ param set-default CA_ROTOR3_PX -0.25
|
||||
param set-default CA_ROTOR3_PY 0.25
|
||||
param set-default CA_ROTOR3_KM -0.05
|
||||
|
||||
param set-default PWM_AUX_FUNC1 101
|
||||
param set-default PWM_AUX_FUNC2 102
|
||||
param set-default PWM_AUX_FUNC3 103
|
||||
param set-default PWM_AUX_FUNC4 104
|
||||
param set-default PWM_AUX_TIM0 -4
|
||||
param set-default PWM_MAIN_FUNC1 101
|
||||
param set-default PWM_MAIN_FUNC2 102
|
||||
param set-default PWM_MAIN_FUNC3 103
|
||||
param set-default PWM_MAIN_FUNC4 104
|
||||
param set-default PWM_MAIN_TIM0 -4
|
||||
|
||||
|
||||
@@ -254,6 +254,8 @@ else
|
||||
#
|
||||
rgbled start -X -q
|
||||
rgbled_ncp5623c start -X -q
|
||||
rgbled_lp5562 start -X -q
|
||||
rgbled_is31fl3195 start -X -q
|
||||
|
||||
#
|
||||
# Override parameters from user configuration file.
|
||||
|
||||
+5
-5
@@ -4,16 +4,16 @@ if [ -z ${PX4_DOCKER_REPO+x} ]; then
|
||||
echo "guessing PX4_DOCKER_REPO based on input";
|
||||
if [[ $@ =~ .*px4_fmu.* ]]; then
|
||||
# nuttx-px4fmu-v{1,2,3,4,5}
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2021-09-08"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2022-08-12"
|
||||
elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then
|
||||
# beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2021-08-18"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2023-06-26"
|
||||
elif [[ $@ =~ .*pilotpi.arm64 ]]; then
|
||||
# scumaker_pilotpi_arm64
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-aarch64:latest"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-aarch64:2022-08-12"
|
||||
elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*bebop.* ]]; then
|
||||
# posix_rpi_cross, posix_bebop_default
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2021-08-18"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2023-06-26"
|
||||
elif [[ $@ =~ .*clang.* ]] || [[ $@ =~ .*scan-build.* ]]; then
|
||||
# clang tools
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-clang:2021-02-04"
|
||||
@@ -27,7 +27,7 @@ fi
|
||||
|
||||
# otherwise default to nuttx
|
||||
if [ -z ${PX4_DOCKER_REPO+x} ]; then
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2021-09-08"
|
||||
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2022-08-12"
|
||||
fi
|
||||
|
||||
# docker hygiene
|
||||
|
||||
@@ -56,11 +56,14 @@ def perform_imu_checks(
|
||||
# perform the vibration check
|
||||
imu_status['imu_vibration_check'] = 'Pass'
|
||||
for imu_vibr_metric in ['imu_coning', 'imu_hfgyro', 'imu_hfaccel']:
|
||||
mean_metric = '{:s}_mean'.format(imu_vibr_metric)
|
||||
peak_metric = '{:s}_peak'.format(imu_vibr_metric)
|
||||
if imu_metrics[mean_metric] > check_levels['{:s}_warn'.format(mean_metric)] \
|
||||
or imu_metrics[peak_metric] > check_levels['{:s}_warn'.format(peak_metric)]:
|
||||
imu_status['imu_vibration_check'] = 'Warning'
|
||||
mean_metric = '{:s}_mean_warn'.format(imu_vibr_metric)
|
||||
peak_metric = '{:s}_peak_warn'.format(imu_vibr_metric)
|
||||
mean_key = '{:s}_mean'.format(imu_vibr_metric)
|
||||
peak_key = '{:s}_peak'.format(imu_vibr_metric)
|
||||
if mean_key in imu_metrics and peak_key in imu_metrics:
|
||||
if imu_metrics[mean_key] > check_levels[mean_metric] \
|
||||
or imu_metrics[peak_key] > check_levels[peak_metric]:
|
||||
imu_status['imu_vibration_check'] = 'Warning'
|
||||
|
||||
if imu_status['imu_vibration_check'] == 'Warning':
|
||||
print('IMU vibration check warning.')
|
||||
|
||||
@@ -104,9 +104,9 @@ def calculate_innov_fail_metrics(
|
||||
|
||||
# calculate innovation check fail metrics
|
||||
for signal_id, signal, result in [('posv', 'reject_ver_pos', 'hgt_fail_percentage'),
|
||||
('magx', 'reject_mag_x', 'magx_fail_percentage'),
|
||||
('magy', 'reject_mag_y', 'magy_fail_percentage'),
|
||||
('magz', 'reject_mag_z', 'magz_fail_percentage'),
|
||||
('magx', 'fs_bad_mag_x', 'magx_fail_percentage'),
|
||||
('magy', 'fs_bad_mag_y', 'magy_fail_percentage'),
|
||||
('magz', 'fs_bad_mag_z', 'magz_fail_percentage'),
|
||||
('yaw', 'reject_yaw', 'yaw_fail_percentage'),
|
||||
('velh', 'reject_hor_vel', 'vel_fail_percentage'),
|
||||
('velv', 'reject_ver_vel', 'vel_fail_percentage'),
|
||||
|
||||
@@ -222,7 +222,7 @@ def create_pdf_report(ulog: ULog, multi_instance: int, output_plot_filename: str
|
||||
data_plot = CheckFlagsPlot(
|
||||
status_flags_time, estimator_status_flags, [['reject_hor_vel', 'reject_hor_pos'], ['reject_ver_vel', 'reject_ver_pos',
|
||||
'reject_hagl'],
|
||||
['reject_mag_x', 'reject_mag_y', 'reject_mag_z',
|
||||
['fs_bad_mag_x', 'fs_bad_mag_y', 'fs_bad_mag_z',
|
||||
'reject_yaw'], ['reject_airspeed'], ['reject_sideslip'],
|
||||
['reject_optflow_x',
|
||||
'reject_optflow_y']], x_label='time (sec)',
|
||||
|
||||
@@ -61,18 +61,19 @@ def process_target(px4board_file, target_name):
|
||||
|
||||
if platform not in excluded_platforms:
|
||||
# get the container based on the platform and toolchain
|
||||
container = platform
|
||||
if platform == 'posix':
|
||||
container = 'base-focal'
|
||||
container = 'px4io/px4-dev-base-focal:2021-09-08'
|
||||
if toolchain:
|
||||
if toolchain.startswith('aarch64'):
|
||||
container = 'aarch64'
|
||||
container = 'px4io/px4-dev-aarch64:2022-08-12'
|
||||
elif toolchain == 'arm-linux-gnueabihf':
|
||||
container = 'armhf'
|
||||
container = 'px4io/px4-dev-armhf:2023-06-26'
|
||||
else:
|
||||
if verbose: print(f'possibly unmatched toolchain: {toolchain}')
|
||||
if verbose: print(f'unmatched toolchain: {toolchain}')
|
||||
elif platform == 'nuttx':
|
||||
container = 'nuttx-focal'
|
||||
container = 'px4io/px4-dev-nuttx-focal:2022-08-12'
|
||||
else:
|
||||
if verbose: print(f'unmatched platform: {platform}')
|
||||
|
||||
ret = {'target': target_name, 'container': container}
|
||||
|
||||
@@ -113,4 +114,3 @@ extra_args = {}
|
||||
if args.pretty:
|
||||
extra_args['indent'] = 2
|
||||
print(json.dumps(github_action_config, **extra_args))
|
||||
|
||||
|
||||
+1132
-498
File diff suppressed because it is too large
Load Diff
@@ -1 +1 @@
|
||||
symforce>=0.5.0
|
||||
symforce>=0.9.0
|
||||
|
||||
Submodule Tools/simulation/gazebo-classic/sitl_gazebo-classic updated: 2e3ed9bfb0...c8ac7ff39b
@@ -10,7 +10,7 @@ sitl_num=2
|
||||
[ -n "$1" ] && sitl_num="$1"
|
||||
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
src_path="$SCRIPT_DIR/.."
|
||||
src_path="$SCRIPT_DIR/../../"
|
||||
|
||||
build_path=${src_path}/build/px4_sitl_default
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -20,6 +20,7 @@ CONFIG_DRIVERS_IRLOCK=y
|
||||
CONFIG_COMMON_LIGHT=y
|
||||
CONFIG_COMMON_MAGNETOMETER=y
|
||||
CONFIG_COMMON_OPTICAL_FLOW=y
|
||||
CONFIG_COMMON_OSD=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_BOARD_UAVCAN_INTERFACES=1
|
||||
CONFIG_DRIVERS_UAVCANNODE=y
|
||||
|
||||
Binary file not shown.
@@ -7,6 +7,7 @@
|
||||
#
|
||||
# CONFIG_DEV_CONSOLE is not set
|
||||
# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
|
||||
# CONFIG_DISABLE_PTHREAD is not set
|
||||
# CONFIG_SPI_EXCHANGE is not set
|
||||
# CONFIG_STM32H7_SYSCFG is not set
|
||||
CONFIG_ARCH="arm"
|
||||
@@ -48,13 +49,14 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
CONFIG_MEMSET_64BIT=y
|
||||
CONFIG_MEMSET_OPTSPEED=y
|
||||
CONFIG_PREALLOC_TIMERS=50
|
||||
CONFIG_PTHREAD_MUTEX_ROBUST=y
|
||||
CONFIG_PTHREAD_STACK_MIN=512
|
||||
CONFIG_RAM_SIZE=245760
|
||||
CONFIG_RAM_START=0x20010000
|
||||
|
||||
@@ -387,7 +387,7 @@
|
||||
|
||||
#define GPIO_UART7_RX GPIO_UART7_RX_4 /* PF6 */
|
||||
#define GPIO_UART7_TX GPIO_UART7_TX_3 /* PE8 */
|
||||
#define GPIO_UART7_RTS (GPIO_UART7_RTS_2 | GPIO_PULLDOWN) /* PF8 */
|
||||
#define GPIO_UART7_RTS GPIO_UART7_RTS_2 /* PF8 */
|
||||
#define GPIO_UART7_CTS (GPIO_UART7_CTS_1 | GPIO_PULLDOWN) /* PE10 */
|
||||
|
||||
#define GPIO_UART8_RX GPIO_UART8_RX_1 /* PE0 */
|
||||
|
||||
@@ -118,7 +118,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_IOB_NBUFFERS=24
|
||||
CONFIG_IOB_THROTTLE=0
|
||||
CONFIG_IPCFG_BINARY=y
|
||||
@@ -292,7 +292,7 @@ CONFIG_UART4_TXBUFSIZE=1500
|
||||
CONFIG_UART5_IFLOWCONTROL=y
|
||||
CONFIG_UART5_OFLOWCONTROL=y
|
||||
CONFIG_UART5_RXDMA=y
|
||||
CONFIG_UART5_TXBUFSIZE=3000
|
||||
CONFIG_UART5_TXBUFSIZE=10000
|
||||
CONFIG_UART5_TXDMA=y
|
||||
CONFIG_UART7_BAUD=57600
|
||||
CONFIG_UART7_IFLOWCONTROL=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -120,7 +120,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_IOB_NBUFFERS=24
|
||||
CONFIG_IOB_THROTTLE=0
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
|
||||
@@ -105,7 +105,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -140,15 +140,7 @@
|
||||
|
||||
#define PX4_PWM_ALTERNATE_RANGES
|
||||
#define PWM_LOWEST_MIN 0
|
||||
#define PWM_MOTOR_OFF 0
|
||||
#define PWM_SERVO_STOP 0
|
||||
#define PWM_DEFAULT_MIN 20
|
||||
#define PWM_HIGHEST_MIN 0
|
||||
#define PWM_HIGHEST_MAX 255
|
||||
#define PWM_DEFAULT_MAX 255
|
||||
#define PWM_LOWEST_MAX 255
|
||||
#define PWM_DEFAULT_TRIM 1500
|
||||
|
||||
|
||||
/* High-resolution timer */
|
||||
#define HRT_TIMER 8 /* use timer8 for the HRT */
|
||||
|
||||
@@ -106,7 +106,7 @@ CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -141,15 +141,7 @@
|
||||
|
||||
#define PX4_PWM_ALTERNATE_RANGES
|
||||
#define PWM_LOWEST_MIN 0
|
||||
#define PWM_MOTOR_OFF 0
|
||||
#define PWM_SERVO_STOP 0
|
||||
#define PWM_DEFAULT_MIN 20
|
||||
#define PWM_HIGHEST_MIN 0
|
||||
#define PWM_HIGHEST_MAX 255
|
||||
#define PWM_DEFAULT_MAX 255
|
||||
#define PWM_LOWEST_MAX 255
|
||||
#define PWM_DEFAULT_TRIM 1500
|
||||
|
||||
|
||||
/* High-resolution timer */
|
||||
#define HRT_TIMER 8 /* use timer8 for the HRT */
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -111,7 +111,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -49,7 +49,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -23,6 +23,8 @@ CONFIG_MODULES_COMMANDER=y
|
||||
CONFIG_MODULES_CONTROL_ALLOCATOR=y
|
||||
CONFIG_MODULES_DATAMAN=y
|
||||
CONFIG_MODULES_EKF2=y
|
||||
# CONFIG_EKF2_GNSS_YAW is not set
|
||||
# CONFIG_EKF2_SIDESLIP is not set
|
||||
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
|
||||
CONFIG_MODULES_LAND_DETECTOR=y
|
||||
CONFIG_MODULES_LOAD_MON=y
|
||||
|
||||
@@ -62,7 +62,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
CONFIG_MEMSET_64BIT=y
|
||||
|
||||
@@ -109,7 +109,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -10,8 +10,10 @@ CONFIG_BOARD_SERIAL_RC="/dev/ttyS4"
|
||||
CONFIG_DRIVERS_ADC_BOARD_ADC=y
|
||||
CONFIG_DRIVERS_BAROMETER_BMP280=y
|
||||
CONFIG_DRIVERS_DSHOT=y
|
||||
CONFIG_DRIVERS_GPS=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20689=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_MPU6000=y
|
||||
CONFIG_DRIVERS_OSD_ATXXXX=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_DRIVERS_RC_INPUT=y
|
||||
CONFIG_DRIVERS_TELEMETRY_FRSKY_TELEMETRY=y
|
||||
@@ -31,5 +33,6 @@ CONFIG_MODULES_MC_RATE_CONTROL=y
|
||||
CONFIG_MODULES_NAVIGATOR=y
|
||||
CONFIG_MODULES_RC_UPDATE=y
|
||||
CONFIG_MODULES_SENSORS=y
|
||||
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
|
||||
CONFIG_SYSTEMCMDS_DMESG=y
|
||||
CONFIG_SYSTEMCMDS_PARAM=y
|
||||
CONFIG_SYSTEMCMDS_TOP=y
|
||||
|
||||
@@ -115,7 +115,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
/* RC Serial port */
|
||||
|
||||
#define RC_SERIAL_PORT "/dev/ttyS4"
|
||||
#define RC_SERIAL_SINGLEWIRE
|
||||
|
||||
#define GPIO_RSSI_IN /* PC5 */ (GPIO_INPUT|GPIO_PULLUP|GPIO_PORTC|GPIO_PIN5)
|
||||
|
||||
@@ -129,6 +130,8 @@
|
||||
GPIO_RSSI_IN, \
|
||||
}
|
||||
|
||||
#define BOARD_ENABLE_CONSOLE_BUFFER
|
||||
|
||||
#define BOARD_NUM_IO_TIMERS 4
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
@@ -252,9 +252,5 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
#endif
|
||||
|
||||
/* Configure the HW based on the manifest */
|
||||
|
||||
px4_platform_configure();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -47,7 +47,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -47,7 +47,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -30,7 +30,7 @@ CONFIG_FDCLONE_STDIO=y
|
||||
CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=4096
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -104,7 +104,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -47,7 +47,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -111,7 +111,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -47,7 +47,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -112,7 +112,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -111,7 +111,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=1
|
||||
|
||||
@@ -14,10 +14,6 @@ CONFIG_COMMON_DIFFERENTIAL_PRESSURE=y
|
||||
CONFIG_COMMON_DISTANCE_SENSOR=y
|
||||
CONFIG_DRIVERS_DSHOT=y
|
||||
CONFIG_DRIVERS_GPS=y
|
||||
CONFIG_DRIVERS_IMU_BOSCH_BMI088=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20649=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P=y
|
||||
CONFIG_DRIVERS_IRLOCK=y
|
||||
CONFIG_COMMON_LIGHT=y
|
||||
@@ -70,6 +66,7 @@ CONFIG_MODULES_TEMPERATURE_COMPENSATION=y
|
||||
CONFIG_MODULES_UXRCE_DDS_CLIENT=y
|
||||
CONFIG_MODULES_VTOL_ATT_CONTROL=y
|
||||
CONFIG_SYSTEMCMDS_ACTUATOR_TEST=y
|
||||
CONFIG_SYSTEMCMDS_BL_UPDATE=y
|
||||
CONFIG_SYSTEMCMDS_BSONDUMP=y
|
||||
CONFIG_SYSTEMCMDS_DMESG=y
|
||||
CONFIG_SYSTEMCMDS_GPIO=y
|
||||
|
||||
@@ -20,8 +20,8 @@ icm42688p -s -b 1 -R 12 start
|
||||
# Internal SPI2 ICM-42688
|
||||
icm42688p -s -b 2 -R 12 start
|
||||
|
||||
# Internal I2C mag
|
||||
bmm150 -I start
|
||||
# Don't start Internal I2C mag
|
||||
# bmm150 -I start
|
||||
|
||||
# Internal I2C baro
|
||||
icp201xx -I start
|
||||
|
||||
@@ -48,7 +48,7 @@ CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="bootloader_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
|
||||
@@ -113,7 +113,7 @@ CONFIG_I2C=y
|
||||
CONFIG_I2C_RESET=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=750
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=2944
|
||||
CONFIG_INIT_STACKSIZE=3094
|
||||
CONFIG_IOB_NBUFFERS=24
|
||||
CONFIG_IOB_NCHAINS=24
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
|
||||
@@ -68,4 +68,18 @@ else()
|
||||
nuttx_drivers # sdio
|
||||
px4_layer
|
||||
)
|
||||
|
||||
set(COMMON_MODALAI_SRC_DIR ${PX4_SOURCE_DIR}/boards/modalai/src)
|
||||
set(MODALAI_SYSTEMCMD_SRC_DIR ${COMMON_MODALAI_SRC_DIR}/systemcmds/modalai)
|
||||
|
||||
px4_add_module(
|
||||
MODULE systemcmds__modalai
|
||||
MAIN modalai
|
||||
COMPILE_FLAGS
|
||||
SRCS
|
||||
${MODALAI_SYSTEMCMD_SRC_DIR}/modalai_fc-v2.c
|
||||
${MODALAI_SYSTEMCMD_SRC_DIR}/modalai_fc-v1.c
|
||||
${MODALAI_SYSTEMCMD_SRC_DIR}/modalai.c
|
||||
DEPENDS
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -91,6 +91,12 @@
|
||||
# define GPIO_nLED_GREEN /* PE4 */ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN4)
|
||||
# define GPIO_nLED_BLUE /* PE5 */ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTE|GPIO_PIN5)
|
||||
|
||||
// GPIO_nLED_2_RED/ GPIO_nLED_2_GREEN /GPIO_nLED_2_BLUE are for v1 LED tests
|
||||
|
||||
# define GPIO_nLED_2_RED /* PI0 */ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTI|GPIO_PIN0)
|
||||
# define GPIO_nLED_2_GREEN /* PH11 */ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTH|GPIO_PIN11)
|
||||
# define GPIO_nLED_2_BLUE /* PA2 */ (GPIO_OUTPUT|GPIO_OPENDRAIN|GPIO_SPEED_50MHz|GPIO_OUTPUT_SET|GPIO_PORTA|GPIO_PIN2)
|
||||
|
||||
# define BOARD_HAS_CONTROL_STATUS_LEDS 1
|
||||
# define BOARD_OVERLOAD_LED LED_RED
|
||||
# define BOARD_ARMED_STATE_LED LED_BLUE
|
||||
@@ -208,6 +214,12 @@
|
||||
|
||||
#define CAN1_SILENT /* PD15 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN15)
|
||||
|
||||
/* For primary/backup signaling with VOXL, 2 pins on J4 are exposed */
|
||||
// GPIO_VOXL_STATUS_OUT/ GPIO_VOXL_STATUS_IN are for v1 Spare MSS Communications Interface and J4 tests
|
||||
|
||||
#define GPIO_VOXL_STATUS_OUT /* PE4 */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTE|GPIO_PIN4)
|
||||
#define GPIO_VOXL_STATUS_IN /* PE3 */ (GPIO_INPUT|GPIO_FLOAT|GPIO_PORTE|GPIO_PIN3)
|
||||
|
||||
/* Define True logic Power Control in arch agnostic form */
|
||||
|
||||
#define VDD_3V3_SPEKTRUM_POWER_EN(on_true) px4_arch_gpiowrite(GPIO_VDD_3V3_SPEKTRUM_POWER_EN, (on_true))
|
||||
@@ -338,8 +350,8 @@
|
||||
|
||||
#define BOARD_NUM_IO_TIMERS 5
|
||||
|
||||
// J1 / TELEM1 / USART7
|
||||
#define MODAL_IO_DEFAULT_PORT "/dev/ttyS6"
|
||||
// J5 USART5 TELEM2 Port next to PWM connector
|
||||
#define MODAL_IO_DEFAULT_PORT "/dev/ttyS4"
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
#include <px4_platform_common/module.h>
|
||||
|
||||
#include "chip.h"
|
||||
#include "stm32_gpio.h"
|
||||
#include "board_config.h"
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
// v2
|
||||
#ifdef CONFIG_ARCH_CHIP_STM32H753II // chip on M0087
|
||||
#include "modalai_fc-v2.h"
|
||||
#define MODALAI_FC_V2 1
|
||||
#else
|
||||
#include "modalai_fc-v1.h"
|
||||
#endif
|
||||
|
||||
__EXPORT int modalai_main(int argc, char *argv[]);
|
||||
|
||||
int modalai_main(int argc, char *argv[])
|
||||
{
|
||||
int hw_rev = board_get_hw_revision();
|
||||
int hw_ver = board_get_hw_version();
|
||||
|
||||
eHW_TYPE hw_type = eHwNone;
|
||||
|
||||
#ifdef MODALAI_FC_V2
|
||||
|
||||
if (hw_rev == 0 && hw_ver == 3) { // (should be hw_rev == 1 && hw_ver == 3) eventually...
|
||||
hw_type = eM0087;
|
||||
|
||||
} else if (hw_rev == 0 && hw_ver == 3) {
|
||||
hw_type = eM0079;
|
||||
|
||||
} else {
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
if (hw_rev == 6 && hw_ver == 0) {
|
||||
hw_type = eM0018;
|
||||
|
||||
} else if (hw_rev == 0 && hw_ver == 1) {
|
||||
hw_type = eM0019;
|
||||
|
||||
} else if (hw_rev == 0 && hw_ver == 2) {
|
||||
hw_type = eM0051;
|
||||
|
||||
} else {
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if (argc <= 1) {
|
||||
#ifdef MODALAI_FC_V2
|
||||
modalai_print_usage_v2();
|
||||
#else
|
||||
modalai_print_usage_v1();
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (!strcmp(argv[1], "led")) {
|
||||
#ifdef MODALAI_FC_V2
|
||||
return modalai_led_test_v2();
|
||||
#else
|
||||
return modalai_led_test_v1();
|
||||
#endif
|
||||
|
||||
} else if (!strcmp(argv[1], "con")) {
|
||||
if (argc <= 2) {
|
||||
PRINT_MODULE_USAGE_COMMAND("con");
|
||||
PRINT_MODULE_USAGE_ARG("<1,4,5,6,7,9,10,12,13>", "Connector ID", false);
|
||||
PRINT_MODULE_USAGE_ARG("<uint>", "Pin Number", false);
|
||||
PRINT_MODULE_USAGE_ARG("0 | 1", "<output state> (defaults to 0)", false);
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint8_t con = 0;
|
||||
uint8_t pin = 0;
|
||||
bool state = false;
|
||||
|
||||
if (argc > 2) {
|
||||
con = atoi(argv[2]);
|
||||
}
|
||||
|
||||
if (argc > 3) {
|
||||
pin = atoi(argv[3]);
|
||||
}
|
||||
|
||||
if (argc > 4) {
|
||||
state = atoi(argv[4]);
|
||||
}
|
||||
|
||||
#ifdef MODALAI_FC_V2
|
||||
return modalai_con_gpio_test_v2(con, pin, state);
|
||||
#else
|
||||
return modalai_con_gpio_test_v1(con, pin, state);
|
||||
#endif
|
||||
|
||||
} else if (!strcmp(argv[1], "buzz")) {
|
||||
|
||||
#ifdef MODALAI_FC_V2
|
||||
return modalai_buzz_test_v2(hw_type);
|
||||
#else
|
||||
return modalai_buzz_test_v1(hw_type);
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
} else if (!strcmp(argv[1], "detect")) {
|
||||
#ifdef MODALAI_FC_V2
|
||||
modalai_hw_detect_v2(hw_type);
|
||||
#else
|
||||
modalai_hw_detect_v1(hw_type);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifdef MODALAI_FC_V2
|
||||
modalai_print_usage_v2();
|
||||
#else
|
||||
modalai_print_usage_v1();
|
||||
#endif
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -0,0 +1,913 @@
|
||||
#include <px4_platform_common/module.h>
|
||||
|
||||
|
||||
#include "chip.h"
|
||||
#include "stm32_gpio.h"
|
||||
#include "board_config.h"
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
// v1
|
||||
#ifndef CONFIG_ARCH_CHIP_STM32H743ZI
|
||||
|
||||
#include "modalai_fc-v1.h"
|
||||
|
||||
|
||||
|
||||
|
||||
void modalai_print_usage_v1(void)
|
||||
{
|
||||
PRINT_MODULE_DESCRIPTION("ModalAI Test utility\n");
|
||||
|
||||
PRINT_MODULE_USAGE_NAME_SIMPLE("modalai", "command");
|
||||
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("led", "LED Test");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("con", "Connector Output Test (as GPIO)");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("buzz", "Automated buzz out test");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("detect", "Detect board type");
|
||||
}
|
||||
|
||||
void modalai_print_usage_con_gpio_test_v1(void)
|
||||
{
|
||||
PRINT_MODULE_USAGE_NAME_SIMPLE("modalai con", "command");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("1", "W<3,6> R<2,6>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("4", "W<2-4,6-7> R<8>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("5", "W<2-5>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("6", "W<2-5>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("7", "W<2-9>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("9", "R<2>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("10", "W<2-5>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("12", "W<1-3>, <0-1>");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("13", "W<3-5>, <0-1>");
|
||||
}
|
||||
|
||||
int modalai_led_test_v1(void)
|
||||
{
|
||||
PX4_INFO("Running led test");
|
||||
|
||||
stm32_configgpio(GPIO_nLED_RED);
|
||||
stm32_configgpio(GPIO_nLED_GREEN);
|
||||
stm32_configgpio(GPIO_nLED_BLUE);
|
||||
|
||||
int i = 0;
|
||||
|
||||
stm32_configgpio(GPIO_nLED_2_RED);
|
||||
stm32_configgpio(GPIO_nLED_2_GREEN);
|
||||
stm32_configgpio(GPIO_nLED_2_BLUE);
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_RED, false);
|
||||
|
||||
stm32_gpiowrite(GPIO_nLED_2_RED, false);
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_RED, true);
|
||||
stm32_gpiowrite(GPIO_nLED_2_RED, true);
|
||||
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_GREEN, false);
|
||||
stm32_gpiowrite(GPIO_nLED_2_GREEN, false);
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_GREEN, true);
|
||||
stm32_gpiowrite(GPIO_nLED_2_GREEN, true);
|
||||
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_BLUE, false);
|
||||
stm32_gpiowrite(GPIO_nLED_2_BLUE, false);
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_BLUE, true);
|
||||
stm32_gpiowrite(GPIO_nLED_2_BLUE, true);
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int modalai_con_gpio_test_v1(uint8_t con, uint8_t pin, bool state)
|
||||
{
|
||||
// validate
|
||||
switch (con) {
|
||||
// Primary MSS Communications Interface
|
||||
case 1:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J1_PIN2_IN);
|
||||
state = stm32_gpioread(J1_PIN2_IN);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J1_PIN3);
|
||||
stm32_gpiowrite(J1_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J1_PIN4);
|
||||
stm32_gpiowrite(J1_PIN4, state);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
stm32_configgpio(J1_PIN6_IN);
|
||||
state = stm32_gpioread(J1_PIN6_IN);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// STM JTAG Programming Header
|
||||
case 2:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
|
||||
// USB 2.0 Full-Speed Downstream Device Port
|
||||
case 3:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
|
||||
// Spare MSS Communications Interface
|
||||
case 4:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J4_PIN2);
|
||||
stm32_gpiowrite(J4_PIN2, state);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J4_PIN3);
|
||||
stm32_gpiowrite(J4_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J4_PIN4);
|
||||
stm32_gpiowrite(J4_PIN4, state);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
stm32_configgpio(J4_PIN6);
|
||||
stm32_gpiowrite(J4_PIN6, state);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
stm32_configgpio(J4_PIN7);
|
||||
stm32_gpiowrite(J4_PIN7, state);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
stm32_configgpio(J4_PIN8);
|
||||
state = stm32_gpioread(J4_PIN8);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// TELEMETRY CONNECTOR
|
||||
case 5:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J5_PIN2);
|
||||
stm32_gpiowrite(J5_PIN2, state);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J5_PIN3);
|
||||
stm32_gpiowrite(J5_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J5_PIN4);
|
||||
stm32_gpiowrite(J5_PIN4, state);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
stm32_configgpio(J5_PIN5);
|
||||
stm32_gpiowrite(J5_PIN5, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// EXPANSION CONNECTOR
|
||||
case 6:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J6_PIN2);
|
||||
stm32_gpiowrite(J6_PIN2, state);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J6_PIN3);
|
||||
stm32_gpiowrite(J6_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J6_PIN4);
|
||||
stm32_gpiowrite(J6_PIN4, state);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
stm32_configgpio(J6_PIN5);
|
||||
stm32_gpiowrite(J6_PIN5, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// PWM Output Connector
|
||||
case 7:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J7_PIN2);
|
||||
stm32_gpiowrite(J7_PIN2, state);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J7_PIN3);
|
||||
stm32_gpiowrite(J7_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J7_PIN4);
|
||||
stm32_gpiowrite(J7_PIN4, state);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
stm32_configgpio(J7_PIN5);
|
||||
stm32_gpiowrite(J7_PIN5, state);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
stm32_configgpio(J7_PIN6);
|
||||
stm32_gpiowrite(J7_PIN6, state);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
stm32_configgpio(J7_PIN7);
|
||||
stm32_gpiowrite(J7_PIN7, state);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
stm32_configgpio(J7_PIN8);
|
||||
stm32_gpiowrite(J7_PIN8, state);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
stm32_configgpio(J7_PIN9);
|
||||
stm32_gpiowrite(J7_PIN9, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// CAN 1 Peripheral Connector
|
||||
case 8:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
|
||||
// PPM (RC) IN
|
||||
case 9:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J9_PIN2_IN);
|
||||
state = stm32_gpioread(J9_PIN2_IN);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// GPS CONNECTOR
|
||||
case 10:
|
||||
switch (pin) {
|
||||
case 2:
|
||||
stm32_configgpio(J10_PIN2);
|
||||
stm32_gpiowrite(J10_PIN2, state);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J10_PIN3);
|
||||
stm32_gpiowrite(J10_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J10_PIN4);
|
||||
stm32_gpiowrite(J10_PIN4, state);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
stm32_configgpio(J10_PIN5);
|
||||
stm32_gpiowrite(J10_PIN5, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// Micro SD Card Slot
|
||||
case 11:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
|
||||
// Spektrum RC Input Connector
|
||||
case 12:
|
||||
switch (pin) {
|
||||
case 1:
|
||||
VDD_3V3_SPEKTRUM_POWER_EN(state);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
__asm("nop");
|
||||
stm32_configgpio(J12_PIN2);
|
||||
stm32_gpiowrite(J12_PIN2, state);
|
||||
//state = stm32_gpioread(J12_PIN2);
|
||||
__asm("nop");
|
||||
break;
|
||||
|
||||
case 3:
|
||||
stm32_configgpio(J12_PIN3);
|
||||
stm32_gpiowrite(J12_PIN3, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
// I2C DISPLAY / SPARE SENSOR CONNECTOR
|
||||
case 13:
|
||||
switch (pin) {
|
||||
case 3:
|
||||
stm32_configgpio(J13_PIN3);
|
||||
stm32_gpiowrite(J13_PIN3, state);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
stm32_configgpio(J13_PIN4);
|
||||
stm32_gpiowrite(J13_PIN4, state);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
stm32_configgpio(J13_PIN5);
|
||||
stm32_gpiowrite(J13_PIN5, state);
|
||||
break;
|
||||
|
||||
default:
|
||||
modalai_print_usage_con_gpio_test_v1();
|
||||
return -1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
printf("GPIO - Con: %d, Pin: %d, State: %d\n", con, pin, state);
|
||||
return OK;
|
||||
}
|
||||
|
||||
bool test_pair(uint32_t output_pin, uint32_t input_pin)
|
||||
{
|
||||
|
||||
bool state = false;
|
||||
|
||||
stm32_gpiowrite(output_pin, true);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
usleep(1000 * 10);
|
||||
|
||||
stm32_gpiowrite(output_pin, false);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool modalai_test_pair(uint32_t output_pin, uint32_t input_pin)
|
||||
{
|
||||
|
||||
bool state = false;
|
||||
|
||||
stm32_gpiowrite(output_pin, true);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
usleep(1000 * 10);
|
||||
|
||||
stm32_gpiowrite(output_pin, false);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int modalai_buzz_test_v1(eHW_TYPE hw_type)
|
||||
{
|
||||
PX4_INFO("test: buzz");
|
||||
usleep(1000 * 100 * 10);
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO("Using Flight Core Config");
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO("Using VOXL-Flight Config");
|
||||
|
||||
} else if (hw_type == eM0051) {
|
||||
PX4_INFO("Using M0051 Config");
|
||||
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J1");
|
||||
stm32_configgpio(J1_PIN2_IN); // 2 [in] to 4 [out]
|
||||
stm32_configgpio(J1_PIN3); // 3 [out] to 6 [in]
|
||||
stm32_configgpio(J1_PIN4); // 4 [out] to 2 [in]
|
||||
stm32_configgpio(J1_PIN6_IN); // 6 [in] to 3 [out]
|
||||
|
||||
if (test_pair(J1_PIN4, J1_PIN2_IN)) {
|
||||
PX4_INFO("PASS: J1P4-J1P2");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1P4-J1P2 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1_PIN3, J1_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J1P3-J1P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1P3-J1P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
// NA on VOXL-Flight (internally routed)
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J4");
|
||||
stm32_configgpio(J4_PIN2); // 2 [out] 6 [in]
|
||||
stm32_configgpio(J4_PIN3); // 3 [out] 7 [in]
|
||||
stm32_configgpio(J4_PIN4); // 4 [out] 8 [in]
|
||||
stm32_configgpio(J4_PIN6_IN); // 2 [out] 6 [in]
|
||||
stm32_configgpio(J4_PIN7_IN); // 3 [out] 7 [in]
|
||||
stm32_configgpio(J4_PIN8_IN); // 4 [out] 8 [in]
|
||||
|
||||
if (test_pair(J4_PIN2, J4_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J4P2-J4P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J4P2-J4P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J4_PIN3, J4_PIN7_IN)) {
|
||||
PX4_INFO("PASS: J4P3-J4P7");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J4P3-J4P7 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J4_PIN4, J4_PIN8_IN)) {
|
||||
PX4_INFO("PASS: J4P4-J4P8");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J4P4-J4P8 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1002");
|
||||
stm32_configgpio(J1002_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J1002_PIN3); // 3 [out] 6 [in]
|
||||
stm32_configgpio(J1002_PIN4_IN); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J1002_PIN6_IN); // 3 [out] 6 [in]
|
||||
|
||||
if (test_pair(J1002_PIN2, J1002_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J1002P2-J1002P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1002P2-J1002P4 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1002_PIN3, J1002_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J1002P3-J1002P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1002P3-J1002P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J5");
|
||||
stm32_configgpio(J5_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J5_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J5_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J5_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J5_PIN2, J5_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J5P2-J5P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J5P2-J5P4 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J5_PIN3, J5_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J5P3-J5P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J5P3-J5P5 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1010");
|
||||
stm32_configgpio(J1010_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J1010_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J1010_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J1010_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J1010_PIN2, J1010_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J1010P2-J1010P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1010P2-J1010P4 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1010_PIN3, J1010_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J1010P3-J1010P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1010P3-J1010P5 ----------------------------------------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J6");
|
||||
stm32_configgpio(J6_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J6_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J6_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J6_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J6_PIN2, J6_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J6P2-J6P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J6P2-J6P4 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J6_PIN3, J6_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J6P3-J6P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J6P3-J6P5 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1009");
|
||||
stm32_configgpio(J1009_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J1009_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J1009_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J1009_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J1009_PIN2, J1009_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J1009P2-J1009P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1009P2-J1009P4 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1009_PIN3, J1009_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J1009P3-J1009P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1009P3-J1009P5 ----------------------------------------");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J7");
|
||||
stm32_configgpio(J7_PIN2); // 2 [out] 6 [in]
|
||||
stm32_configgpio(J7_PIN3); // 3 [out] 7 [in]
|
||||
stm32_configgpio(J7_PIN4); // 4 [out] 8 [in]
|
||||
stm32_configgpio(J7_PIN5); // 5 [out] 9 [in]
|
||||
stm32_configgpio(J7_PIN6_IN); // 6 [in] 2 [out]
|
||||
stm32_configgpio(J7_PIN7_IN); // 7 [in] 3 [out]
|
||||
stm32_configgpio(J7_PIN8_IN); // 8 [in] 4 [out]
|
||||
stm32_configgpio(J7_PIN9_IN); // 9 [in] 5 [out]
|
||||
|
||||
if (test_pair(J7_PIN2, J7_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J7P2-J7P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J7P2-J7P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J7_PIN3, J7_PIN7_IN)) {
|
||||
PX4_INFO("PASS: J7P3-J7P7");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J7P3-J7P7 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J7_PIN4, J7_PIN8_IN)) {
|
||||
PX4_INFO("PASS: J7P4-J7P8");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J7P4-J7P8 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J7_PIN5, J7_PIN9_IN)) {
|
||||
PX4_INFO("PASS: J7P5-J7P9");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J7P5-J7P9 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1007");
|
||||
stm32_configgpio(J1007_PIN2); // 2 [out] 6 [in]
|
||||
stm32_configgpio(J1007_PIN3); // 3 [out] 7 [in]
|
||||
stm32_configgpio(J1007_PIN4); // 4 [out] 8 [in]
|
||||
stm32_configgpio(J1007_PIN5); // 5 [out] 9 [in]
|
||||
stm32_configgpio(J1007_PIN6_IN); // 6 [in] 2 [out]
|
||||
stm32_configgpio(J1007_PIN7_IN); // 7 [in] 3 [out]
|
||||
stm32_configgpio(J1007_PIN8_IN); // 8 [in] 4 [out]
|
||||
stm32_configgpio(J1007_PIN9_IN); // 9 [in] 5 [out]
|
||||
|
||||
if (test_pair(J1007_PIN2, J1007_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J1007P2-J1007P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1007P2-J1007P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1007_PIN3, J1007_PIN7_IN)) {
|
||||
PX4_INFO("PASS: J1007P3-J1007P7");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1007P3-J1007P7 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1007_PIN4, J1007_PIN8_IN)) {
|
||||
PX4_INFO("PASS: J1007P4-J1007P8");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1007P4-J1007P8 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1007_PIN5, J1007_PIN9_IN)) {
|
||||
PX4_INFO("PASS: J1007P5-J1007P9");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1007P5-J1007P9 ----------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0051) {
|
||||
PX4_INFO(">> Testing M0051 J13");
|
||||
stm32_configgpio(M0051J13_PIN2); // 2 [out] 6 [in]
|
||||
stm32_configgpio(M0051J13_PIN3); // 3 [out] 7 [in]
|
||||
stm32_configgpio(M0051J13_PIN4); // 4 [out] 8 [in]
|
||||
stm32_configgpio(M0051J13_PIN5); // 5 [out] 9 [in]
|
||||
stm32_configgpio(M0051J13_PIN6_IN); // 6 [in] 2 [out]
|
||||
stm32_configgpio(M0051J13_PIN7_IN); // 7 [in] 3 [out]
|
||||
stm32_configgpio(M0051J13_PIN8_IN); // 8 [in] 4 [out]
|
||||
stm32_configgpio(M0051J13_PIN9_IN); // 9 [in] 5 [out]
|
||||
|
||||
if (test_pair(M0051J13_PIN2, M0051J13_PIN6_IN)) {
|
||||
PX4_INFO("PASS: J13_P2-J13_P6");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13_P2-J13_P6 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(M0051J13_PIN3, M0051J13_PIN7_IN)) {
|
||||
PX4_INFO("PASS: JJ13_P3-J13_P7");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13_P3-J13_7P7 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(M0051J13_PIN4, M0051J13_PIN8_IN)) {
|
||||
PX4_INFO("PASS: J13_P4-J13_P8");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13_P4-J13_P8 ----------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(M0051J13_PIN5, M0051J13_PIN9_IN)) {
|
||||
PX4_INFO("PASS: J13_P5-J13_P9");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13_P5-J13_P9 ----------------------------------------");
|
||||
}
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J10");
|
||||
stm32_configgpio(J10_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J10_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J10_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J10_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J10_PIN2, J10_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J10P2-J10P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J10P2-J10P4 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J10_PIN3, J10_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J10P3-J10P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J10P3-J10P5 --------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1012");
|
||||
stm32_configgpio(J1012_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(J1012_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(J1012_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(J1012_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(J1012_PIN2, J1012_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J1012P2-J1120P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1012P2-J1012P4 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1012_PIN3, J1012_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J1012P3-J1012P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1012P3-J1012P5 --------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0051) {
|
||||
PX4_INFO(">> Testing M0051 J15");
|
||||
stm32_configgpio(M0051J15_PIN2); // 2 [out] 4 [in]
|
||||
stm32_configgpio(M0051J15_PIN3); // 3 [out] 5 [in]
|
||||
stm32_configgpio(M0051J15_PIN4_IN); // 4 [in] 2 [out]
|
||||
stm32_configgpio(M0051J15_PIN5_IN); // 5 [in] 3 [out]
|
||||
|
||||
if (test_pair(M0051J15_PIN2, M0051J15_PIN4_IN)) {
|
||||
PX4_INFO("PASS: J15_P2-J15_P4");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J15_P2-JJ15_P4 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(M0051J15_PIN3, M0051J15_PIN5_IN)) {
|
||||
PX4_INFO("PASS: J15_P3-J15_P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J15_P3-J15_P5 --------------------------------------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO(">> Testing J9/J12/J13");
|
||||
stm32_configgpio(J9_PIN2_IN); // J9-2 [in] J13-5 [out]
|
||||
|
||||
stm32_configgpio(J12_PIN2_IN); // J12-2 [in] J13-3 [out]
|
||||
stm32_configgpio(J12_PIN3_IN); // J12-3 [in] J13-4 [out]
|
||||
|
||||
stm32_configgpio(J13_PIN3); // J13-3 [out] J12-2 [in]
|
||||
stm32_configgpio(J13_PIN4); // J13-4 [out] J12-3 [in]
|
||||
stm32_configgpio(J13_PIN5); // J13-5 [out] J9-2 [in]
|
||||
|
||||
if (test_pair(J13_PIN3, J12_PIN2_IN)) {
|
||||
PX4_INFO("PASS: J13P3-J12P2");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13P3-J12P2 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J13_PIN4, J12_PIN3_IN)) {
|
||||
PX4_INFO("PASS: J13P4-J12P3");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13P4-J12P3 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J13_PIN5, J9_PIN2_IN)) {
|
||||
PX4_INFO("PASS: J13P5-J9P2");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J13P5-J9P2 --------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO(">> Testing J1003/J1004/J1011");
|
||||
stm32_configgpio(J1003_PIN2_IN); // J1003-2 [in] J13-5 [out]
|
||||
|
||||
stm32_configgpio(J1004_PIN2_IN); // J1004-2 [in] J13-3 [out]
|
||||
stm32_configgpio(J1004_PIN3_IN); // J1004-3 [in] J13-4 [out]
|
||||
|
||||
stm32_configgpio(J1011_PIN3); // J1011-3 [out] J12-2 [in]
|
||||
stm32_configgpio(J1011_PIN4); // J1011-4 [out] J12-3 [in]
|
||||
stm32_configgpio(J1011_PIN5); // J1011-5 [out] J9-2 [in]
|
||||
|
||||
if (test_pair(J1011_PIN3, J1004_PIN2_IN)) {
|
||||
PX4_INFO("PASS: J1011P3-J1004P2");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1011P3-J1004P2 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1011_PIN4, J1004_PIN3_IN)) {
|
||||
PX4_INFO("PASS: J1011P4-J1004P3");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1011P4-J1004P3 --------------------------------------");
|
||||
}
|
||||
|
||||
if (test_pair(J1011_PIN5, J1003_PIN2_IN)) {
|
||||
PX4_INFO("PASS: J1011P5-J1011P5");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J1011P5-J1011P5 --------------------------------------");
|
||||
}
|
||||
|
||||
} else if (hw_type == eM0051) {
|
||||
PX4_INFO(">> Testing M0051 J14");
|
||||
stm32_configgpio(M0051J14_PIN2); // J14-2 [out] J14-3 [in]
|
||||
stm32_configgpio(M0051J14_PIN3_IN); // J14-3 [in] J14-2 [out]
|
||||
|
||||
if (test_pair(M0051J14_PIN2, M0051J14_PIN3_IN)) {
|
||||
PX4_INFO("PASS: J14_P2-J14_P3");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: J14_P2-J14_P3 --------------------------------------");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int modalai_hw_detect_v1(eHW_TYPE hw_type)
|
||||
{
|
||||
int result = 0;
|
||||
|
||||
if (hw_type == eM0018) {
|
||||
PX4_INFO("V106 - Flight Core");
|
||||
|
||||
} else if (hw_type == eM0019) {
|
||||
PX4_INFO("V110 - VOXL-Flight");
|
||||
|
||||
} else if (hw_type == eM0051) {
|
||||
PX4_INFO("V120 - M0051");
|
||||
|
||||
} else {
|
||||
PX4_ERR("Unknown hardware");
|
||||
result = -1;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif //CONFIG_ARCH_CHIP_STM32H743ZI
|
||||
@@ -0,0 +1,218 @@
|
||||
#ifndef MODALAI_FC_V1_H_
|
||||
#define MODALAI_FC_V1_H_
|
||||
|
||||
typedef enum {
|
||||
eHwUnknown = -1,
|
||||
eHwNone = 0,
|
||||
eM0018, // Flight Core
|
||||
eM0019, // VOXL Flight
|
||||
eM0051
|
||||
} eHW_TYPE;
|
||||
|
||||
#define _MK_GPIO_INPUT(def) (((def) & (GPIO_PORT_MASK | GPIO_PIN_MASK)) | (GPIO_INPUT|GPIO_PULLUP))
|
||||
#define _MK_GPIO_OUTPUT(def) (((def) & (GPIO_PORT_MASK | GPIO_PIN_MASK)) | (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR))
|
||||
|
||||
|
||||
//
|
||||
// Flight Core - J1 - Primary MSS Communications Interface
|
||||
// VOXL Flight - NA
|
||||
//
|
||||
#define J1_PIN2_IN _MK_GPIO_INPUT(GPIO_UART5_RX)
|
||||
#define J1_PIN3 _MK_GPIO_OUTPUT(GPIO_UART5_TX)
|
||||
#define J1_PIN4 _MK_GPIO_OUTPUT(GPIO_UART5_RTS)
|
||||
#define J1_PIN6_IN _MK_GPIO_INPUT(GPIO_UART5_CTS)
|
||||
|
||||
//
|
||||
// STM JTAG Programming Header
|
||||
// Flight Core - J2
|
||||
// VOXL Flight - J1001
|
||||
//
|
||||
|
||||
//
|
||||
// USB 2.0 Full-Speed Downstream Device Port
|
||||
// Flight Core - J
|
||||
// VOXL Flight - J1006
|
||||
//
|
||||
|
||||
//
|
||||
// Spare MSS Comms
|
||||
// Flight Core - J4
|
||||
// VOXL Flight - J1002
|
||||
//
|
||||
#define J4_PIN2 _MK_GPIO_OUTPUT(GPIO_USART2_RX)
|
||||
#define J1002_PIN2 J4_PIN2
|
||||
#define J4_PIN3 _MK_GPIO_OUTPUT(GPIO_USART2_TX)
|
||||
#define J1002_PIN3 J4_PIN3
|
||||
#define J4_PIN4 _MK_GPIO_OUTPUT(GPIO_USART2_RTS)
|
||||
#define J1002_PIN4 J4_PIN4
|
||||
#define J4_PIN4_IN _MK_GPIO_INPUT(GPIO_USART2_RTS)
|
||||
#define J1002_PIN4_IN J4_PIN4_IN
|
||||
#define J4_PIN6 _MK_GPIO_OUTPUT(GPIO_USART2_CTS)
|
||||
#define J4_PIN6_IN _MK_GPIO_INPUT(GPIO_USART2_CTS)
|
||||
#define J1002_PIN6_IN J4_PIN6_IN
|
||||
#define J4_PIN7 _MK_GPIO_OUTPUT(GPIO_VOXL_STATUS_OUT)
|
||||
#define J4_PIN7_IN _MK_GPIO_INPUT(GPIO_VOXL_STATUS_OUT)
|
||||
#define J4_PIN8 _MK_GPIO_OUTPUT(GPIO_VOXL_STATUS_IN)
|
||||
#define J4_PIN8_IN _MK_GPIO_INPUT(GPIO_VOXL_STATUS_IN)
|
||||
|
||||
//
|
||||
// TELEMETRY CONNECTOR
|
||||
// Flight Core - J5
|
||||
// VOXL Flight - J1010
|
||||
//
|
||||
#define J5_PIN2 _MK_GPIO_OUTPUT(GPIO_UART7_TX)
|
||||
#define J1010_PIN2 J5_PIN2
|
||||
#define J5_PIN3 _MK_GPIO_OUTPUT(GPIO_UART7_RX)
|
||||
#define J1010_PIN3 J5_PIN3
|
||||
#define J5_PIN4 _MK_GPIO_OUTPUT(GPIO_UART7_CTS)
|
||||
#define J1010_PIN4 J5_PIN4
|
||||
#define J5_PIN4_IN _MK_GPIO_INPUT(GPIO_UART7_CTS)
|
||||
#define J1010_PIN4_IN J5_PIN4_IN
|
||||
#define J5_PIN5 _MK_GPIO_OUTPUT(GPIO_UART7_RTS)
|
||||
#define J1010_PIN5 J5_PIN5
|
||||
#define J5_PIN5_IN _MK_GPIO_INPUT(GPIO_UART7_RTS)
|
||||
#define J1010_PIN5_IN J5_PIN5_IN
|
||||
|
||||
//
|
||||
// EXPANSION CONNECTOR
|
||||
// Flight Core - J6
|
||||
// VOXL Flight - J1009
|
||||
//
|
||||
#define J6_PIN2 _MK_GPIO_OUTPUT(GPIO_UART4_TX_5)
|
||||
#define J1009_PIN2 J6_PIN2
|
||||
#define J6_PIN3 _MK_GPIO_OUTPUT(GPIO_UART4_RX_5)
|
||||
#define J1009_PIN3 J6_PIN3
|
||||
#define J6_PIN4 _MK_GPIO_OUTPUT(GPIO_I2C3_SCL_2)
|
||||
#define J1009_PIN4 J6_PIN4
|
||||
#define J6_PIN4_IN _MK_GPIO_INPUT(GPIO_I2C3_SCL_2)
|
||||
#define J1009_PIN4_IN J6_PIN4_IN
|
||||
#define J6_PIN5 _MK_GPIO_OUTPUT(GPIO_I2C3_SDA_2)
|
||||
#define J1009_PIN5 J6_PIN5
|
||||
#define J6_PIN5_IN _MK_GPIO_INPUT(GPIO_I2C3_SDA_2)
|
||||
#define J1009_PIN5_IN J6_PIN5_IN
|
||||
|
||||
//
|
||||
// Flight Core - J7 - PWM Output Connector
|
||||
// VOXL Flight - J1007
|
||||
// M0051 - J13
|
||||
//
|
||||
#define J7_PIN2 _MK_GPIO_OUTPUT(GPIO_TIM1_CH4OUT_2)
|
||||
#define J1007_PIN2 J7_PIN2
|
||||
#define M0051J13_PIN2 J7_PIN2
|
||||
#define J7_PIN3 _MK_GPIO_OUTPUT(GPIO_TIM1_CH3OUT_1)
|
||||
#define J1007_PIN3 J7_PIN3
|
||||
#define M0051J13_PIN3 J7_PIN3
|
||||
#define J7_PIN4 _MK_GPIO_OUTPUT(GPIO_TIM1_CH2OUT_2)
|
||||
#define J1007_PIN4 J7_PIN4
|
||||
#define M0051J13_PIN4 J7_PIN4
|
||||
#define J7_PIN5 _MK_GPIO_OUTPUT(GPIO_TIM1_CH1OUT_1)
|
||||
#define J1007_PIN5 J7_PIN5
|
||||
#define M0051J13_PIN5 J7_PIN5
|
||||
#define J7_PIN6 _MK_GPIO_OUTPUT(GPIO_TIM4_CH2OUT_2)
|
||||
#define J1007_PIN6 J7_PIN6
|
||||
#define M0051J13_PIN6 J7_PIN6
|
||||
#define J7_PIN6_IN _MK_GPIO_INPUT(GPIO_TIM4_CH2OUT_2)
|
||||
#define J1007_PIN6_IN J7_PIN6_IN
|
||||
#define M0051J13_PIN6_IN J7_PIN6_IN
|
||||
#define J7_PIN7 _MK_GPIO_OUTPUT(GPIO_TIM4_CH3OUT_2)
|
||||
#define J1007_PIN7 J7_PIN7
|
||||
#define M0051J13_PIN7 J7_PIN7
|
||||
#define J7_PIN7_IN _MK_GPIO_INPUT(GPIO_TIM4_CH3OUT_2)
|
||||
#define J1007_PIN7_IN J7_PIN7_IN
|
||||
#define M0051J13_PIN7_IN J7_PIN7_IN
|
||||
#define J7_PIN8 _MK_GPIO_OUTPUT(GPIO_TIM4_CH1OUT_2)
|
||||
#define J1007_PIN8 J7_PIN8
|
||||
#define M0051J13_PIN8 J7_PIN8
|
||||
#define J7_PIN8_IN _MK_GPIO_INPUT(GPIO_TIM4_CH1OUT_2)
|
||||
#define J1007_PIN8_IN J7_PIN8_IN
|
||||
#define M0051J13_PIN8_IN J7_PIN8_IN
|
||||
#define J7_PIN9 _MK_GPIO_OUTPUT(GPIO_TIM4_CH4OUT_2)
|
||||
#define J1007_PIN9 J7_PIN9
|
||||
#define M0051J13_PIN9 J7_PIN9
|
||||
#define J7_PIN9_IN _MK_GPIO_INPUT(GPIO_TIM4_CH4OUT_2)
|
||||
#define J1007_PIN9_IN J7_PIN9_IN
|
||||
#define M0051J13_PIN9_IN J7_PIN9_IN
|
||||
|
||||
//
|
||||
// CAN 1 Peripheral Connector
|
||||
// Flight Core - J8
|
||||
// VOXL Flight - J1008
|
||||
//
|
||||
//#define J8_PIN2 _MK_GPIO_OUTPUT()
|
||||
//#define J8_PIN3 _MK_GPIO_OUTPUT()
|
||||
|
||||
// PPM (RC) IN
|
||||
// Flight Core - J9
|
||||
// VOXL Flight - J1003
|
||||
//
|
||||
#define J9_PIN2_IN _MK_GPIO_INPUT(GPIO_TIM8_CH1IN_2)
|
||||
#define J1003_PIN2_IN J9_PIN2_IN
|
||||
|
||||
//
|
||||
// GPS CONNECTOR
|
||||
// Flight Core - J10
|
||||
// VOXL Flight - J1012
|
||||
// M0051 - J15
|
||||
//
|
||||
#define J10_PIN2 _MK_GPIO_OUTPUT(GPIO_USART1_TX_3)
|
||||
#define J1012_PIN2 J10_PIN2
|
||||
#define M0051J15_PIN2 J10_PIN2
|
||||
#define J10_PIN3 _MK_GPIO_OUTPUT(GPIO_USART1_RX_3)
|
||||
#define J1012_PIN3 J10_PIN3
|
||||
#define M0051J15_PIN3 J10_PIN3
|
||||
#define J10_PIN4 _MK_GPIO_OUTPUT(GPIO_I2C1_SCL_2)
|
||||
#define J1012_PIN4 J10_PIN4
|
||||
#define M0051J15_PIN4 J10_PIN4
|
||||
#define J10_PIN4_IN _MK_GPIO_INPUT(GPIO_I2C1_SCL_2)
|
||||
#define J1012_PIN4_IN J10_PIN4_IN
|
||||
#define M0051J15_PIN4_IN J10_PIN4_IN
|
||||
#define J10_PIN5 _MK_GPIO_OUTPUT(GPIO_I2C1_SDA_1)
|
||||
#define J1012_PIN5 J10_PIN5
|
||||
#define M0051J15_PIN5 J10_PIN5
|
||||
#define J10_PIN5_IN _MK_GPIO_INPUT(GPIO_I2C1_SDA_1)
|
||||
#define J1012_PIN5_IN J10_PIN5_IN
|
||||
#define M0051J15_PIN5_IN J10_PIN5_IN
|
||||
|
||||
//
|
||||
// Spektrum RC Input Connector
|
||||
// Flight Core - J12
|
||||
// VOXL Flight - J1004
|
||||
// M0051 - J14
|
||||
//
|
||||
#define J12_PIN1 GPIO_VDD_3V3_SPEKTRUM_POWER_EN
|
||||
#define J1004_PIN1 J12_PIN1
|
||||
#define M0051J14_PIN1 J12_PIN1
|
||||
#define J12_PIN2 _MK_GPIO_OUTPUT(GPIO_USART6_TX_1)
|
||||
#define J1004_PIN2 J12_PIN2
|
||||
#define M0051J14_PIN2 J12_PIN2
|
||||
#define J12_PIN2_IN _MK_GPIO_INPUT(GPIO_USART6_TX_1)
|
||||
#define J1004_PIN2_IN J12_PIN2_IN
|
||||
#define M0051J14_PIN2_IN J12_PIN2_IN
|
||||
#define J12_PIN3 _MK_GPIO_OUTPUT(GPIO_USART6_RX_1)
|
||||
#define J1004_PIN3 J12_PIN3
|
||||
#define M0051J14_PIN3 J12_PIN3
|
||||
#define J12_PIN3_IN _MK_GPIO_INPUT(GPIO_USART6_RX_1)
|
||||
#define J1004_PIN3_IN J12_PIN3_IN
|
||||
#define M0051J14_PIN3_IN J12_PIN3_IN
|
||||
|
||||
//
|
||||
// I2C Display / Spare Sensor Connector
|
||||
// Flight Core - J13
|
||||
// VOXL Flight - J1011
|
||||
//
|
||||
#define J13_PIN3 _MK_GPIO_OUTPUT(GPIO_I2C2_SDA_2)
|
||||
#define J1011_PIN3 J13_PIN3
|
||||
#define J13_PIN4 _MK_GPIO_OUTPUT(GPIO_I2C2_SCL_2)
|
||||
#define J1011_PIN4 J13_PIN4
|
||||
#define J13_PIN5 _MK_GPIO_OUTPUT(GPIO_PF3_EVENTOUT)
|
||||
#define J1011_PIN5 J13_PIN5
|
||||
|
||||
|
||||
void modalai_print_usage_v1(void);
|
||||
void modalai_print_usage_con_gpio_test_v1(void);
|
||||
int modalai_con_gpio_test_v1(uint8_t con, uint8_t pin, bool state);
|
||||
int modalai_led_test_v1(void);
|
||||
int modalai_buzz_test_v1(eHW_TYPE type);
|
||||
int modalai_hw_detect_v1(eHW_TYPE type);
|
||||
|
||||
#endif //MODALAI_FC_V1_H_
|
||||
@@ -0,0 +1,437 @@
|
||||
#include <px4_platform_common/module.h>
|
||||
|
||||
|
||||
#include "chip.h"
|
||||
#include "stm32_gpio.h"
|
||||
#include "board_config.h"
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
// v2
|
||||
#ifdef CONFIG_ARCH_CHIP_STM32H753II // chip on M0087
|
||||
|
||||
|
||||
#include "modalai_fc-v2.h"
|
||||
|
||||
void modalai_print_usage_v2(void)
|
||||
{
|
||||
PRINT_MODULE_DESCRIPTION("ModalAI Test utility\n");
|
||||
|
||||
PRINT_MODULE_USAGE_NAME_SIMPLE("modalai", "command");
|
||||
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("led", "LED Test");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("con", "Connector Output Test (as GPIO)");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("buzz", "Automated buzz out test");
|
||||
PRINT_MODULE_USAGE_COMMAND_DESCR("detect", "Detect board type");
|
||||
return;
|
||||
}
|
||||
void modalai_print_usage_con_gpio_test_v2(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int modalai_con_gpio_test_v2(uint8_t con, uint8_t pin, bool state)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int modalai_led_test_v2(void)
|
||||
{
|
||||
PX4_INFO("Running led test");
|
||||
|
||||
stm32_configgpio(GPIO_nLED_RED);
|
||||
stm32_configgpio(GPIO_nLED_GREEN);
|
||||
stm32_configgpio(GPIO_nLED_BLUE);
|
||||
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_RED, false);
|
||||
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_RED, true);
|
||||
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_GREEN, false);
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_GREEN, true);
|
||||
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_BLUE, false);
|
||||
usleep(1000 * 100);
|
||||
stm32_gpiowrite(GPIO_nLED_BLUE, true);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool test_pair(uint32_t output_pin, uint32_t input_pin)
|
||||
{
|
||||
|
||||
bool state = false;
|
||||
|
||||
stm32_gpiowrite(output_pin, true);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != true) {
|
||||
return false;
|
||||
}
|
||||
|
||||
usleep(1000 * 10);
|
||||
|
||||
stm32_gpiowrite(output_pin, false);
|
||||
usleep(1000 * 10);
|
||||
state = stm32_gpioread(input_pin);
|
||||
|
||||
if (state != false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int modalai_buzz_test_v2(eHW_TYPE hw_type)
|
||||
{
|
||||
PX4_INFO("test: buzz");
|
||||
usleep(1000 * 100 * 10);
|
||||
|
||||
if (hw_type == eM0079) {
|
||||
PX4_INFO("Using M0079 config");
|
||||
|
||||
} else if (hw_type == eM0087) {
|
||||
PX4_INFO("Using M0087 config");
|
||||
|
||||
} else {
|
||||
return -1;
|
||||
|
||||
}
|
||||
|
||||
if (hw_type == eM0079) {
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J1");
|
||||
stm32_configgpio(M0079_J1_PIN_2_OUT); // 2-3
|
||||
stm32_configgpio(M0079_J1_PIN_3_IN); // 3-2
|
||||
stm32_configgpio(M0079_J1_PIN_4_OUT); // 4-5
|
||||
stm32_configgpio(M0079_J1_PIN_5_IN); // 5-4
|
||||
|
||||
if (test_pair(M0079_J1_PIN_2_OUT, M0079_J1_PIN_3_IN)) {
|
||||
PX4_INFO("PASS: M0079_J1_PIN_2_OUT M0079_J1_PIN_3_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J1_PIN_2_OUT M0079_J1_PIN_3_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J1_PIN_4_OUT, M0079_J1_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0079_J1_PIN_4_OUT M0079_J1_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J1_PIN_4_OUT M0079_J1_PIN_5_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J5");
|
||||
stm32_configgpio(M0079_J5_PIN_2_OUT); // 2-4
|
||||
stm32_configgpio(M0079_J5_PIN_3_OUT); // 3-5
|
||||
stm32_configgpio(M0079_J5_PIN_4_IN); // 4-2
|
||||
stm32_configgpio(M0079_J5_PIN_5_IN); // 5-3
|
||||
|
||||
if (test_pair(M0079_J5_PIN_2_OUT, M0079_J5_PIN_4_IN)) {
|
||||
PX4_INFO("PASS: M0079_J5_PIN_2_OUT M0079_J5_PIN_4_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J5_PIN_2_OUT M0079_J5_PIN_4_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J5_PIN_3_OUT, M0079_J5_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0079_J5_PIN_3_OUT M0079_J5_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J5_PIN_3_OUT M0079_J5_PIN_5_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J7");
|
||||
stm32_configgpio(M0079_J7_PIN_2_OUT); // 2-6
|
||||
stm32_configgpio(M0079_J7_PIN_3_OUT); // 3-7
|
||||
stm32_configgpio(M0079_J7_PIN_4_OUT); // 4-8
|
||||
stm32_configgpio(M0079_J7_PIN_5_OUT); // 5-9
|
||||
stm32_configgpio(M0079_J7_PIN_6_IN); // 6-2
|
||||
stm32_configgpio(M0079_J7_PIN_7_IN); // 7-3
|
||||
stm32_configgpio(M0079_J7_PIN_8_IN); // 8-4
|
||||
stm32_configgpio(M0079_J7_PIN_9_IN); // 9-5
|
||||
|
||||
if (test_pair(M0079_J7_PIN_2_OUT, M0079_J7_PIN_6_IN)) {
|
||||
PX4_INFO("PASS: M0079_J7_PIN_2_OUT M0079_J7_PIN_6_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J7_PIN_2_OUT M0079_J7_PIN_6_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J7_PIN_3_OUT, M0079_J7_PIN_7_IN)) {
|
||||
PX4_INFO("PASS: M0079_J7_PIN_3_OUT M0079_J7_PIN_7_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J7_PIN_3_OUT M0079_J7_PIN_7_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J7_PIN_4_OUT, M0079_J7_PIN_8_IN)) {
|
||||
PX4_INFO("PASS: M0079_J7_PIN_4_OUT M0079_J7_PIN_8_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J7_PIN_4_OUT M0079_J7_PIN_8_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J7_PIN_5_OUT, M0079_J7_PIN_9_IN)) {
|
||||
PX4_INFO("PASS: M0079_J7_PIN_5_OUT M0079_J7_PIN_9_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J7_PIN_5_OUT M0079_J7_PIN_9_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J10");
|
||||
stm32_configgpio(M0079_J10_PIN_2_OUT); // 2-4
|
||||
stm32_configgpio(M0079_J10_PIN_3_OUT); // 3-5
|
||||
stm32_configgpio(M0079_J10_PIN_4_IN); // 4-2
|
||||
stm32_configgpio(M0079_J10_PIN_5_IN); // 5-3
|
||||
|
||||
if (test_pair(M0079_J10_PIN_2_OUT, M0079_J10_PIN_4_IN)) {
|
||||
PX4_INFO("PASS: M0079_J10_PIN_2_OUT M0079_J10_PIN_4_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J10_PIN_2_OUT M0079_J10_PIN_4_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0079_J10_PIN_3_OUT, M0079_J10_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0079_J10_PIN_3_OUT M0079_J10_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J10_PIN_3_OUT M0079_J10_PIN_5_IN");
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J13");
|
||||
stm32_configgpio(M0079_J12_PIN_2_OUT); // 2-3
|
||||
stm32_configgpio(M0079_J12_PIN_3_IN); // 3-2
|
||||
|
||||
if (test_pair(M0079_J12_PIN_2_OUT, M0079_J12_PIN_3_IN)) {
|
||||
PX4_INFO("PASS: M0079_J12_PIN_2 M0079_J12_PIN_3");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0079_J12_PIN_2 M0079_J12_PIN_3");
|
||||
}
|
||||
|
||||
|
||||
} else if (hw_type == eM0087) {
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J1");
|
||||
stm32_configgpio(M0087_J1_PIN_2_IN); // 2-4
|
||||
stm32_configgpio(M0087_J1_PIN_3_OUT); // 3-5
|
||||
stm32_configgpio(M0087_J1_PIN_4_OUT); // 4-2
|
||||
stm32_configgpio(M0087_J1_PIN_5_IN); // 5-3
|
||||
|
||||
if (test_pair(M0087_J1_PIN_4_OUT, M0087_J1_PIN_2_IN)) {
|
||||
PX4_INFO("PASS: M0087_J1_PIN_4_OUT M0087_J1_PIN_2_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J1_PIN_4_OUT M0087_J1_PIN_2_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J1_PIN_3_OUT, M0087_J1_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0087_J1_PIN_3_OUT M0087_J1_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J1_PIN_3_OUT M0087_J1_PIN_5_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J5");
|
||||
stm32_configgpio(M0087_J5_PIN_2_OUT); // 2-4
|
||||
stm32_configgpio(M0087_J5_PIN_3_OUT); // 3-5
|
||||
stm32_configgpio(M0087_J5_PIN_4_IN); // 4-2
|
||||
stm32_configgpio(M0087_J5_PIN_5_IN); // 5-3
|
||||
|
||||
if (test_pair(M0087_J5_PIN_2_OUT, M0087_J5_PIN_4_IN)) {
|
||||
PX4_INFO("PASS: M0087_J5_PIN_2_OUT M0087_J5_PIN_4_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J5_PIN_2_OUT M0087_J5_PIN_4_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J5_PIN_3_OUT, M0087_J5_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0087_J5_PIN_3_OUT M0087_J5_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J5_PIN_3_OUT M0087_J5_PIN_5_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J7");
|
||||
stm32_configgpio(M0087_J7_PIN_2_OUT); // 2-6
|
||||
stm32_configgpio(M0087_J7_PIN_3_OUT); // 3-7
|
||||
stm32_configgpio(M0087_J7_PIN_4_OUT); // 4-8
|
||||
stm32_configgpio(M0087_J7_PIN_5_OUT); // 5-9
|
||||
stm32_configgpio(M0087_J7_PIN_6_IN); // 6-2
|
||||
stm32_configgpio(M0087_J7_PIN_7_IN); // 7-3
|
||||
stm32_configgpio(M0087_J7_PIN_8_IN); // 8-4
|
||||
stm32_configgpio(M0087_J7_PIN_9_IN); // 9-5
|
||||
|
||||
if (test_pair(M0087_J7_PIN_2_OUT, M0087_J7_PIN_6_IN)) {
|
||||
PX4_INFO("PASS: M0087_J7_PIN_2_OUT M0087_J7_PIN_6_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J7_PIN_2_OUT M0087_J7_PIN_6_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J7_PIN_3_OUT, M0087_J7_PIN_7_IN)) {
|
||||
PX4_INFO("PASS: M0087_J7_PIN_3_OUT M0087_J7_PIN_7_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J7_PIN_3_OUT M0087_J7_PIN_7_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J7_PIN_4_OUT, M0087_J7_PIN_8_IN)) {
|
||||
PX4_INFO("PASS: M0087_J7_PIN_4_OUT M0087_J7_PIN_8_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J7_PIN_4_OUT M0087_J7_PIN_8_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J7_PIN_5_OUT, M0087_J7_PIN_9_IN)) {
|
||||
PX4_INFO("PASS: M0087_J7_PIN_5_OUT M0087_J7_PIN_9_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J7_PIN_5_OUT M0087_J7_PIN_9_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J10");
|
||||
stm32_configgpio(M0087_J10_PIN_2_OUT); // 2-4
|
||||
stm32_configgpio(M0087_J10_PIN_3_OUT); // 3-5
|
||||
stm32_configgpio(M0087_J10_PIN_4_IN); // 4-2
|
||||
stm32_configgpio(M0087_J10_PIN_5_IN); // 5-3
|
||||
|
||||
if (test_pair(M0087_J10_PIN_2_OUT, M0087_J10_PIN_4_IN)) {
|
||||
PX4_INFO("PASS: M0087_J10_PIN_2_OUT M0087_J10_PIN_4_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J10_PIN_2_OUT M0087_J10_PIN_4_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J10_PIN_3_OUT, M0087_J10_PIN_5_IN)) {
|
||||
PX4_INFO("PASS: M0087_J10_PIN_3_OUT M0087_J10_PIN_5_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J10_PIN_3_OUT M0087_J10_PIN_5_IN");
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J12");
|
||||
stm32_configgpio(M0087_J12_PIN_2_OUT); // 2-3
|
||||
stm32_configgpio(M0087_J12_PIN_3_IN); // 3-2
|
||||
|
||||
if (test_pair(M0087_J12_PIN_2_OUT, M0087_J12_PIN_3_IN)) {
|
||||
PX4_INFO("PASS: M0087_J12_PIN_2_OUT M0087_J12_PIN_3_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J12_PIN_2_OUT M0087_J12_PIN_3_IN");
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
PX4_INFO(">> Testing J14");
|
||||
stm32_configgpio(M0087_J14_PIN_2_OUT);
|
||||
stm32_configgpio(M0087_J14_PIN_3_OUT);
|
||||
stm32_configgpio(M0087_J14_PIN_4_OUT);
|
||||
stm32_configgpio(M0087_J14_PIN_5_OUT);
|
||||
stm32_configgpio(M0087_J14_PIN_6_OUT);
|
||||
stm32_configgpio(M0087_J14_PIN_7_IN);
|
||||
stm32_configgpio(M0087_J14_PIN_8_IN);
|
||||
stm32_configgpio(M0087_J14_PIN_9_IN);
|
||||
stm32_configgpio(M0087_J14_PIN_10_IN);
|
||||
stm32_configgpio(M0087_J14_PIN_11_IN);
|
||||
|
||||
if (test_pair(M0087_J14_PIN_2_OUT, M0087_J14_PIN_7_IN)) {
|
||||
PX4_INFO("PASS: M0087_J14_PIN_2_OUT M0087_J14_PIN_7_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J14_PIN_2_OUT M0087_J14_PIN_7_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J14_PIN_3_OUT, M0087_J14_PIN_8_IN)) {
|
||||
PX4_INFO("PASS: M0087_J14_PIN_3_OUT M0087_J14_PIN_8_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J14_PIN_3_OUT M0087_J14_PIN_8_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J14_PIN_4_OUT, M0087_J14_PIN_9_IN)) {
|
||||
PX4_INFO("PASS: M0087_J14_PIN_4_OUT M0087_J14_PIN_9_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J14_PIN_4_OUT M0087_J14_PIN_9_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J14_PIN_5_OUT, M0087_J14_PIN_10_IN)) {
|
||||
PX4_INFO("PASS: M0087_J14_PIN_5_OUT M0087_J14_PIN_10_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J14_PIN_5_OUT M0087_J14_PIN_10_IN");
|
||||
}
|
||||
|
||||
if (test_pair(M0087_J14_PIN_6_OUT, M0087_J14_PIN_11_IN)) {
|
||||
PX4_INFO("PASS: M0087_J14_PIN_6_OUT M0087_J14_PIN_11_IN");
|
||||
|
||||
} else {
|
||||
PX4_ERR("FAIL: M0087_J14_PIN_6_OUT M0087_J14_PIN_11_IN");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int modalai_hw_detect_v2(eHW_TYPE hw_type)
|
||||
{
|
||||
int result = -1;
|
||||
|
||||
if (hw_type == eM0079) {
|
||||
PX4_INFO("V230 - M0079");
|
||||
result = 0;
|
||||
|
||||
} else if (hw_type == eM0087) {
|
||||
PX4_INFO("V230 - M0087");
|
||||
result = 0;
|
||||
|
||||
} else {
|
||||
PX4_ERR("Unknown hardware");
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
#endif //CONFIG_ARCH_CHIP_STM32H753II
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user