Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 18c0352ffa | |||
| ab2ae37d32 | |||
| 48c78a5c2b | |||
| 5dbace9a47 | |||
| cb59ddbce3 | |||
| 5a533bc774 | |||
| c8b2e22a4e | |||
| 3b7d73d1a4 | |||
| eb81232b43 | |||
| 58b07ca4fd | |||
| 117de9161e | |||
| 2b5c85ea13 |
@@ -1,48 +0,0 @@
|
||||
---
|
||||
applyTo: "docs/en/**"
|
||||
---
|
||||
|
||||
# Review Guidelines docs/en Tree
|
||||
|
||||
## File System & Structure
|
||||
|
||||
- **Naming:** Use `lowercase_with_underscores` for all filenames. No spaces.
|
||||
- **Hierarchy:** Markdown files must reside exactly in a first-level category folder.
|
||||
- Valid: `docs/en/category/file.md`
|
||||
- Invalid: `docs/en/category/subcategory/file.md`
|
||||
- **Text Files:** Any `.txt` or `.text` files must start with an underscore (e.g., `_notes.txt`).
|
||||
- **Assets:** All images/non-docs must be in `/docs/assets/`. Deep nesting is permitted here.
|
||||
- **Formats:** Prefer **SVG** for diagrams and **PNG** for screenshots. Flag JPG files.
|
||||
|
||||
## Markdown & Style
|
||||
|
||||
- **Headings:** Use Title Case ("First Letter Capitalisation").
|
||||
- The Page Title must be the only H1 (`#`). All others must be `##` or lower.
|
||||
- Do not apply bold or italic styling inside a heading.
|
||||
- **Formatting:**
|
||||
- **Bold:** Only for UI elements (buttons, menu items).
|
||||
- **Italics (Emphasis):** For tool names (e.g., *QGroundControl*).
|
||||
- **Inline Code:** Use backticks for file paths, parameters, and CLI commands (e.g., `prettier`).
|
||||
- **Structure:** End every line at the end of a sentence (Semantic Line Breaks).
|
||||
|
||||
## Linking & Navigation
|
||||
|
||||
- **Standard Links:** Use standard inline syntax: `[link text](../category/filename.md)`.
|
||||
Note relative link.
|
||||
- **Table Links:** To keep tables readable, use reference-style links.
|
||||
- Definition: `[Link Name]: https://example.com` (placed below the table).
|
||||
- Usage: `[Link Name]` within the table cell.
|
||||
- **Images:** All image links must include a descriptive, accessible alt-text in the brackets: ``.
|
||||
Note that all images should be relative references to images stored in the assets folder, which should be two folders below the any markdown file (as they are stored in a "category" subfolder)
|
||||
|
||||
- **Standard Links:** Use standard inline syntax: `[link text](../category/filename.md)`. Note the use of relative links.
|
||||
- **Table Links:** To keep tables easier to edit, prefer reference-style links.
|
||||
- Definition: `[Link Name]: https://example.com` (placed below the table).
|
||||
- Usage: `[Link Name]` within the table cell.
|
||||
- **Images:** All image links must include a descriptive, accessible alt-text: ``.
|
||||
- **Note:** All images must be relative references to the `/docs/assets/` folder. Since documents are nested in a category folder, this is usually two levels up (`../../assets/`).
|
||||
|
||||
## Quality Control
|
||||
|
||||
- **Prettier Check:** Ensure Prettier rules have been applied. If there is evidence of inconsistent indentation or spacing, request the author run `npx prettier --write .` before merging.
|
||||
- **Language:** Enforce **UK English** spelling and grammar.
|
||||
@@ -18,50 +18,58 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [macos-latest, macos-26]
|
||||
config: [
|
||||
px4_fmu-v5_default,
|
||||
px4_sitl
|
||||
"px4_sitl gz_x500"
|
||||
]
|
||||
steps:
|
||||
- name: install Python 3.10
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
- name: install Python 3.10
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.10"
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: setup
|
||||
run: |
|
||||
./Tools/setup/macos.sh
|
||||
- name: Initialize and update git submodules
|
||||
run: |
|
||||
git submodule sync --recursive
|
||||
git submodule update --init --recursive --jobs 4
|
||||
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_timestamp
|
||||
shell: cmake -P {0}
|
||||
run: |
|
||||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
|
||||
message("::set-output name=timestamp::${current_date}")
|
||||
- name: ccache cache files
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: macos_${{matrix.config}}-ccache-
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
|
||||
echo "compression = true" >> ~/.ccache/ccache.conf
|
||||
echo "compression_level = 6" >> ~/.ccache/ccache.conf
|
||||
echo "max_size = 40M" >> ~/.ccache/ccache.conf
|
||||
echo "hash_dir = false" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
- name: setup
|
||||
run: |
|
||||
./Tools/setup/macos.sh --sim-tools --reinstall
|
||||
|
||||
- name: make ${{matrix.config}}
|
||||
run: |
|
||||
ccache -z
|
||||
make ${{matrix.config}}
|
||||
ccache -s
|
||||
- name: Prepare ccache timestamp
|
||||
id: ccache_cache_timestamp
|
||||
shell: cmake -P {0}
|
||||
run: |
|
||||
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
|
||||
message("::set-output name=timestamp::${current_date}")
|
||||
|
||||
- name: ccache cache files
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.ccache
|
||||
key: macos_${{matrix.config}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
|
||||
restore-keys: macos_${{matrix.config}}-ccache-
|
||||
|
||||
- name: setup ccache
|
||||
run: |
|
||||
mkdir -p ~/.ccache
|
||||
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
|
||||
echo "compression = true" >> ~/.ccache/ccache.conf
|
||||
echo "compression_level = 6" >> ~/.ccache/ccache.conf
|
||||
echo "max_size = 40M" >> ~/.ccache/ccache.conf
|
||||
echo "hash_dir = false" >> ~/.ccache/ccache.conf
|
||||
ccache -s
|
||||
ccache -z
|
||||
|
||||
- name: make ${{matrix.config}}
|
||||
run: |
|
||||
ccache -z
|
||||
export CMAKE_PREFIX_PATH="/opt/homebrew/opt/qt@5:$CMAKE_PREFIX_PATH"
|
||||
make ${{matrix.config}}
|
||||
ccache -s
|
||||
|
||||
@@ -15,7 +15,7 @@ jobs:
|
||||
stale-issue-label: 'stale'
|
||||
stale-pr-label: 'stale'
|
||||
remove-stale-when-updated: true
|
||||
stale-issue-message: ''
|
||||
close-issue-message: 'This issue has been automatically closed due to 120 days of inactivity. If you believe this is still relevant, please feel free to reopen it or create a new issue.'
|
||||
stale-pr-message: ''
|
||||
close-pr-message: 'This pull request has been automatically closed due to 120 days of inactivity. If you would like to continue, please feel free to reopen it or submit a new PR.'
|
||||
stale-issue-message: 'This issue has been marked as stale due to 90 days of inactivity. If no further activity occurs, it will be automatically closed in 30 days. Please leave a comment, add a reaction, make an update, or remove the stale label if you’d like to keep it open.'
|
||||
close-issue-message: 'This issue has been closed due to prolonged inactivity after being marked as stale. If you believe this was closed in error or the topic is still relevant, please feel free to reopen it or create a new issue.'
|
||||
stale-pr-message: 'This PR was identified as stale and it will be closed in 30 days unless any activity is detected.'
|
||||
close-pr-message: 'This pull request has been closed after being marked as stale with no further activity. Thank you for the time and effort you put into this contribution. If you’d like to continue the discussion or update the work, please feel free to reopen it or submit a new PR.'
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
name: Sync ROS 2 messages to px4_msgs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
- 'stable'
|
||||
- 'beta'
|
||||
- 'release/**'
|
||||
paths:
|
||||
- 'msg/**'
|
||||
- 'srv/**'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
sync_to_px4_msgs:
|
||||
if: github.repository == 'PX4/PX4-Autopilot'
|
||||
runs-on: [runs-on,runner=4cpu-linux-x64,image=ubuntu22-full-x64,"run-id=${{ github.run_id }}",spot=false]
|
||||
steps:
|
||||
- name: Checkout PX4 repo
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup git credentials
|
||||
run: |
|
||||
git config --global user.name "${{ secrets.PX4BUILDBOT_USER }}"
|
||||
git config --global user.email "${{ secrets.PX4BUILDBOT_EMAIL }}"
|
||||
|
||||
- name: Clone PX4_msgs repo
|
||||
run: |
|
||||
git clone https://${{ secrets.PX4BUILTBOT_PERSONAL_ACCESS_TOKEN }}@github.com/PX4/px4_msgs.git
|
||||
|
||||
- name: Check out the same branch as the PX4 repo
|
||||
run: |
|
||||
cd px4_msgs
|
||||
if git checkout ${{ github.ref_name }}; then
|
||||
echo "Checked out existing branch"
|
||||
else
|
||||
git checkout -b ${{ github.ref_name }}
|
||||
fi
|
||||
|
||||
- name: Copy ROS 2 messages
|
||||
run: |
|
||||
rm -f px4_msgs/msg/*.msg
|
||||
rm -f px4_msgs/msg/versioned/*.msg
|
||||
rm -f px4_msgs/srv/*.srv
|
||||
rm -f px4_msgs/srv/versioned/*.srv
|
||||
cp msg/*.msg px4_msgs/msg/
|
||||
cp msg/versioned/*.msg px4_msgs/msg/ || true
|
||||
cp srv/*.srv px4_msgs/srv/
|
||||
cp srv/versioned/*.srv px4_msgs/srv/ || true
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
cd px4_msgs
|
||||
git status
|
||||
git add .
|
||||
git commit -a -m "Update to PX4 ${{ github.sha }}" || true
|
||||
git push origin ${{ github.ref_name }} || true
|
||||
cd ..
|
||||
rm -rf px4_msgs
|
||||
@@ -267,7 +267,7 @@ endif()
|
||||
|
||||
set(package-contact "px4users@googlegroups.com")
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
@@ -220,6 +220,36 @@ pipeline {
|
||||
}
|
||||
}
|
||||
|
||||
stage('PX4 ROS msgs') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
|
||||
}
|
||||
steps {
|
||||
sh('export')
|
||||
sh('make distclean; git clean -ff -x -d .')
|
||||
withCredentials([usernamePassword(credentialsId: 'px4buildbot_github_personal_token', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
|
||||
sh("git clone https://${GIT_USER}:${GIT_PASS}@github.com/PX4/px4_msgs.git")
|
||||
// 'main' branch
|
||||
sh('rm -f px4_msgs/msg/*.msg')
|
||||
sh('rm -f px4_msgs/msg/versioned/*.msg')
|
||||
sh('rm -f px4_msgs/srv/*.srv')
|
||||
sh('rm -f px4_msgs/srv/versioned/*.srv')
|
||||
sh('cp msg/*.msg px4_msgs/msg/')
|
||||
sh('cp msg/versioned/*.msg px4_msgs/msg/ || true')
|
||||
sh('cp srv/*.srv px4_msgs/srv/')
|
||||
sh('cp srv/versioned/*.srv px4_msgs/srv/ || true')
|
||||
sh('cd px4_msgs; git status; git add .; git commit -a -m "Update message definitions `date`" || true')
|
||||
sh('cd px4_msgs; git push origin main || true')
|
||||
sh('rm -rf px4_msgs')
|
||||
}
|
||||
}
|
||||
when {
|
||||
anyOf {
|
||||
branch 'main'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('S3') {
|
||||
agent {
|
||||
docker { image 'px4io/px4-dev-base-focal:2021-08-18' }
|
||||
|
||||
@@ -1,167 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# @name KTH-ATMOS
|
||||
#
|
||||
# @type Free-Flyer
|
||||
# @class Spacecraft
|
||||
#
|
||||
# @output Motor1 back left thruster, +x thrust
|
||||
# @output Motor2 front left thruster, -x thrust
|
||||
# @output Motor3 back right thruster, +x thrust
|
||||
# @output Motor4 front right thruster, -x thrust
|
||||
# @output Motor5 front left thruster, +y thrust
|
||||
# @output Motor6 front right thruster, -y thrust
|
||||
# @output Motor7 back left thruster, +y thrust
|
||||
# @output Motor8 back right thruster, -y thrust
|
||||
#
|
||||
# @maintainer discower-io
|
||||
# @url https://atmos.discower.io
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.sc_defaults
|
||||
|
||||
PX4_SIMULATOR=${PX4_SIMULATOR:=gz}
|
||||
PX4_GZ_WORLD=${PX4_GZ_WORLD:=default}
|
||||
PX4_SIM_MODEL=${PX4_SIM_MODEL:=atmos_dual}
|
||||
|
||||
param set-default SIM_GZ_EN 1
|
||||
|
||||
param set-default SENS_EN_MAGSIM 1
|
||||
param set-default COM_ARM_CHK_ESCS 0 # We don't have ESCs
|
||||
param set-default FD_ESCS_EN 0
|
||||
|
||||
param set-default CA_AIRFRAME 14
|
||||
param set-default MAV_TYPE 45
|
||||
|
||||
param set-default CA_ROTOR_COUNT 8
|
||||
param set-default CA_R_REV 0
|
||||
|
||||
# Auto to be provided by Custom Airframe
|
||||
param set-default CA_METHOD 0
|
||||
|
||||
# Set proper failsafes
|
||||
param set-default COM_ACT_FAIL_ACT 0
|
||||
param set-default COM_LOW_BAT_ACT 0
|
||||
param set-default NAV_DLL_ACT 0
|
||||
param set-default GF_ACTION 1
|
||||
param set-default NAV_RCL_ACT 1
|
||||
|
||||
# disable attitude failure detection
|
||||
param set-default FD_FAIL_P 0
|
||||
param set-default FD_FAIL_R 0
|
||||
|
||||
param set-default CA_ROTOR0_PX -0.12
|
||||
param set-default CA_ROTOR0_PY -0.12
|
||||
param set-default CA_ROTOR0_PZ 0.0
|
||||
param set-default CA_ROTOR0_CT 1.4
|
||||
param set-default CA_ROTOR0_AX 1.0
|
||||
param set-default CA_ROTOR0_AY 0.0
|
||||
param set-default CA_ROTOR0_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR1_PX 0.12
|
||||
param set-default CA_ROTOR1_PY -0.12
|
||||
param set-default CA_ROTOR1_PZ 0.0
|
||||
param set-default CA_ROTOR1_CT 1.4
|
||||
param set-default CA_ROTOR1_AX -1.0
|
||||
param set-default CA_ROTOR1_AY 0.0
|
||||
param set-default CA_ROTOR1_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR2_PX -0.12
|
||||
param set-default CA_ROTOR2_PY 0.12
|
||||
param set-default CA_ROTOR2_PZ 0.0
|
||||
param set-default CA_ROTOR2_CT 1.4
|
||||
param set-default CA_ROTOR2_AX 1.0
|
||||
param set-default CA_ROTOR2_AY 0.0
|
||||
param set-default CA_ROTOR2_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR3_PX 0.12
|
||||
param set-default CA_ROTOR3_PY 0.12
|
||||
param set-default CA_ROTOR3_PZ 0.0
|
||||
param set-default CA_ROTOR3_CT 1.4
|
||||
param set-default CA_ROTOR3_AX -1.0
|
||||
param set-default CA_ROTOR3_AY 0.0
|
||||
param set-default CA_ROTOR3_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR4_PX 0.12
|
||||
param set-default CA_ROTOR4_PY -0.12
|
||||
param set-default CA_ROTOR4_PZ 0.0
|
||||
param set-default CA_ROTOR4_CT 1.4
|
||||
param set-default CA_ROTOR4_AX 0.0
|
||||
param set-default CA_ROTOR4_AY 1.0
|
||||
param set-default CA_ROTOR4_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR5_PX 0.12
|
||||
param set-default CA_ROTOR5_PY 0.12
|
||||
param set-default CA_ROTOR5_PZ 0.0
|
||||
param set-default CA_ROTOR5_CT 1.4
|
||||
param set-default CA_ROTOR5_AX 0.0
|
||||
param set-default CA_ROTOR5_AY -1.0
|
||||
param set-default CA_ROTOR5_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR6_PX -0.12
|
||||
param set-default CA_ROTOR6_PY -0.12
|
||||
param set-default CA_ROTOR6_PZ 0.0
|
||||
param set-default CA_ROTOR6_CT 1.4
|
||||
param set-default CA_ROTOR6_AX 0.0
|
||||
param set-default CA_ROTOR6_AY 1.0
|
||||
param set-default CA_ROTOR6_AZ 0.0
|
||||
|
||||
param set-default CA_ROTOR7_PX -0.12
|
||||
param set-default CA_ROTOR7_PY 0.12
|
||||
param set-default CA_ROTOR7_PZ 0.0
|
||||
param set-default CA_ROTOR7_CT 1.4
|
||||
param set-default CA_ROTOR7_AX 0.0
|
||||
param set-default CA_ROTOR7_AY -1.0
|
||||
param set-default CA_ROTOR7_AZ 0.0
|
||||
|
||||
param set-default SIM_GZ_EC_FUNC1 101
|
||||
param set-default SIM_GZ_EC_FUNC2 102
|
||||
param set-default SIM_GZ_EC_FUNC3 103
|
||||
param set-default SIM_GZ_EC_FUNC4 104
|
||||
param set-default SIM_GZ_EC_FUNC5 105
|
||||
param set-default SIM_GZ_EC_FUNC6 106
|
||||
param set-default SIM_GZ_EC_FUNC7 107
|
||||
param set-default SIM_GZ_EC_FUNC8 108
|
||||
param set-default SIM_GZ_EC_FUNC9 301
|
||||
param set-default SIM_GZ_EC_FUNC10 302
|
||||
param set-default SIM_GZ_EC_FUNC11 303
|
||||
param set-default SIM_GZ_EC_FUNC12 304
|
||||
|
||||
param set-default SIM_GZ_EC_MIN1 0
|
||||
param set-default SIM_GZ_EC_MIN2 0
|
||||
param set-default SIM_GZ_EC_MIN3 0
|
||||
param set-default SIM_GZ_EC_MIN4 0
|
||||
param set-default SIM_GZ_EC_MIN5 0
|
||||
param set-default SIM_GZ_EC_MIN6 0
|
||||
param set-default SIM_GZ_EC_MIN7 0
|
||||
param set-default SIM_GZ_EC_MIN8 0
|
||||
param set-default SIM_GZ_EC_MIN9 1100
|
||||
param set-default SIM_GZ_EC_MIN10 1100
|
||||
param set-default SIM_GZ_EC_MIN11 1100
|
||||
param set-default SIM_GZ_EC_MIN12 1100
|
||||
|
||||
param set-default SIM_GZ_EC_MAX1 10000
|
||||
param set-default SIM_GZ_EC_MAX2 10000
|
||||
param set-default SIM_GZ_EC_MAX3 10000
|
||||
param set-default SIM_GZ_EC_MAX4 10000
|
||||
param set-default SIM_GZ_EC_MAX5 10000
|
||||
param set-default SIM_GZ_EC_MAX6 10000
|
||||
param set-default SIM_GZ_EC_MAX7 10000
|
||||
param set-default SIM_GZ_EC_MAX8 10000
|
||||
param set-default SIM_GZ_EC_MAX9 1900
|
||||
param set-default SIM_GZ_EC_MAX10 1900
|
||||
param set-default SIM_GZ_EC_MAX11 1900
|
||||
param set-default SIM_GZ_EC_MAX12 1900
|
||||
|
||||
# Controller Tunings
|
||||
param set SC_YAWRATE_P 3.335
|
||||
param set SC_YAWRATE_I 0.87
|
||||
param set SC_YAWRATE_D 0.15
|
||||
param set SC_YR_INT_LIM 0.2
|
||||
param set SC_YAW_P 3.0
|
||||
|
||||
param set SPC_POS_P 0.20
|
||||
param set SPC_VEL_P 6.55
|
||||
param set SPC_VEL_I 0.0
|
||||
param set SPC_VEL_D 0.0
|
||||
param set SPC_VEL_MAX 12.0
|
||||
@@ -118,7 +118,6 @@ px4_add_romfs_files(
|
||||
60002_gz_uuv_bluerov2_heavy
|
||||
|
||||
70000_gz_atmos
|
||||
70001_gz_atmos_dual
|
||||
|
||||
# [22000, 22999] Reserve for custom models
|
||||
)
|
||||
|
||||
@@ -126,6 +126,15 @@ then
|
||||
set AUTOCNF yes
|
||||
fi
|
||||
|
||||
# Allow overriding parameters via env variables: export PX4_PARAM_{name}={value}
|
||||
env | while IFS='=' read -r line; do
|
||||
value=${line#*=}
|
||||
name=${line%%=*}
|
||||
case $name in
|
||||
"PX4_PARAM_"*) param set "${name#PX4_PARAM_}" "$value" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# multi-instance setup
|
||||
# shellcheck disable=SC2154
|
||||
param set MAV_SYS_ID $((px4_instance+1))
|
||||
@@ -229,15 +238,6 @@ then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Allow overriding parameters via env variables: export PX4_PARAM_{name}={value}
|
||||
env | while IFS='=' read -r line; do
|
||||
value=${line#*=}
|
||||
name=${line%%=*}
|
||||
case $name in
|
||||
"PX4_PARAM_"*) param set "${name#PX4_PARAM_}" "$value" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
dataman start
|
||||
|
||||
# only start the simulator if not in replay mode, as both control the lockstep time
|
||||
|
||||
@@ -18,8 +18,6 @@
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.fw_defaults
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.fw_defaults
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
@@ -77,6 +75,9 @@ param set-default NAV_ACC_RAD 2
|
||||
param set-default RTL_DESCEND_ALT 5
|
||||
param set-default RTL_RETURN_ALT 5
|
||||
|
||||
# Logging Parameters
|
||||
param set-default SDLOG_PROFILE 131
|
||||
|
||||
# Sensors Parameters
|
||||
param set-default SENS_CM8JL65_CFG 104
|
||||
param set-default SENS_FLOW_MAXHGT 25
|
||||
|
||||
@@ -78,6 +78,9 @@ param set-default NAV_ACC_RAD 2
|
||||
param set-default RTL_DESCEND_ALT 5
|
||||
param set-default RTL_RETURN_ALT 5
|
||||
|
||||
# Logging Parameters
|
||||
param set-default SDLOG_PROFILE 131
|
||||
|
||||
# Sensors Parameters
|
||||
param set-default SENS_CM8JL65_CFG 202
|
||||
param set-default SENS_FLOW_MAXHGT 25
|
||||
|
||||
@@ -29,6 +29,9 @@ param set-default MPC_MAN_TILT_MAX 60
|
||||
|
||||
param set-default THR_MDL_FAC 0.3
|
||||
|
||||
# enable high-rate logging profile (helps with tuning)
|
||||
param set-default SDLOG_PROFILE 19
|
||||
|
||||
param set-default IMU_DGYRO_CUTOFF 50
|
||||
param set-default IMU_GYRO_CUTOFF 90
|
||||
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
@@ -9,8 +9,6 @@
|
||||
#
|
||||
# @board px4_fmu-v2 exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
# @board px4_fmu-v4pro exclude
|
||||
# @board px4_fmu-v5 exclude
|
||||
# @board px4_fmu-v5x exclude
|
||||
# @board px4_fmu-v6x exclude
|
||||
# @board bitcraze_crazyflie exclude
|
||||
# @board ark_fmu-v6x exclude
|
||||
#
|
||||
|
||||
. ${R}etc/init.d/rc.mc_defaults
|
||||
|
||||
@@ -20,9 +20,6 @@
|
||||
|
||||
. ${R}etc/init.d/rc.sc_defaults
|
||||
|
||||
# Overwrite DDS AG IP to `192.168.0.1`
|
||||
param set-default UXRCE_DDS_AG_IP -1062731775
|
||||
|
||||
param set-default CA_AIRFRAME 14
|
||||
param set-default MAV_TYPE 45
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@ control_allocator start
|
||||
fw_rate_control start
|
||||
fw_att_control start
|
||||
fw_mode_manager start
|
||||
fw_guidance_control start
|
||||
fw_lat_lon_control start
|
||||
airspeed_selector start
|
||||
|
||||
|
||||
@@ -8,6 +8,9 @@ set VEHICLE_TYPE spacecraft
|
||||
# MAV_TYPE_SPACECRAFT_ORBITTER
|
||||
param set-default MAV_TYPE 45
|
||||
|
||||
# Set micro-dds-client to use ethernet and IP-address 192.168.0.1
|
||||
param set-default UXRCE_DDS_AG_IP -1062731775
|
||||
|
||||
# Disable preflight disarm to not interfere with external launching
|
||||
param set-default COM_DISARM_PRFLT -1
|
||||
param set-default CBRK_SUPPLY_CHK 894281
|
||||
|
||||
@@ -28,7 +28,6 @@ fi
|
||||
fw_rate_control start vtol
|
||||
fw_att_control start vtol
|
||||
fw_mode_manager start
|
||||
fw_guidance_control start
|
||||
fw_lat_lon_control start vtol
|
||||
fw_autotune_attitude_control start vtol
|
||||
|
||||
|
||||
@@ -17,12 +17,37 @@ if [[ -f $1"/.git" || -d $1"/.git" ]]; then
|
||||
SUBMODULE_STATUS=$(git submodule summary "$1")
|
||||
STATUSRETVAL=$(echo $SUBMODULE_STATUS | grep -A20 -i "$1")
|
||||
if ! [[ -z "$STATUSRETVAL" ]]; then
|
||||
echo -e "\033[33mWarning: $1 submodule has uncommitted changes:\033[0m"
|
||||
echo -e "\033[31mChecked $1 submodule, ACTION REQUIRED:\033[0m"
|
||||
echo ""
|
||||
echo -e "Different commits:"
|
||||
echo -e "$SUBMODULE_STATUS"
|
||||
echo ""
|
||||
echo -e "To update submodules to the expected version, run:"
|
||||
echo -e " \033[94mgit submodule sync --recursive && git submodule update --init --recursive\033[0m"
|
||||
echo ""
|
||||
echo -e " *******************************************************************************"
|
||||
echo -e " * \033[31mIF YOU DID NOT CHANGE THIS FILE (OR YOU DON'T KNOW WHAT A SUBMODULE IS):\033[0m *"
|
||||
echo -e " * \033[31mHit 'u' and <ENTER> to update ALL submodules and resolve this.\033[0m *"
|
||||
echo -e " * (performs \033[94mgit submodule sync --recursive\033[0m *"
|
||||
echo -e " * and \033[94mgit submodule update --init --recursive\033[0m ) *"
|
||||
echo -e " *******************************************************************************"
|
||||
echo ""
|
||||
echo ""
|
||||
echo -e " Only for EXPERTS:"
|
||||
echo -e " $1 submodule is not in the recommended version."
|
||||
echo -e " Hit 'y' and <ENTER> to continue the build with this version. Hit <ENTER> to resolve manually."
|
||||
echo -e " Use \033[94mgit add $1 && git commit -m 'Updated $1'\033[0m to choose this version (careful!)"
|
||||
echo ""
|
||||
read user_cmd
|
||||
if [ "$user_cmd" == "y" ]; then
|
||||
echo "Continuing build with manually overridden submodule.."
|
||||
elif [ "$user_cmd" == "u" ]; then
|
||||
git submodule sync --recursive -- $1
|
||||
git submodule update --init --recursive -- $1 || true
|
||||
git submodule update --init --recursive --force -- $1
|
||||
echo "Submodule fixed, continuing build.."
|
||||
else
|
||||
echo "Build aborted."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
else
|
||||
git submodule --quiet sync --recursive --quiet -- $1
|
||||
|
||||
@@ -25,15 +25,15 @@ parser.add_argument('-p', '--pretty', dest='pretty', action='store_true',
|
||||
help='Pretty output instead of a single line')
|
||||
parser.add_argument('-g', '--groups', dest='group', action='store_true',
|
||||
help='Groups targets')
|
||||
parser.add_argument('-f', '--filter', dest='filter', help='comma separated list of build target name prefixes to include instead of all e.g. "px4_fmu-v5_"')
|
||||
parser.add_argument('-f', '--filter', dest='filter', help='comma separated list of board names to use instead of all')
|
||||
|
||||
args = parser.parse_args()
|
||||
verbose = args.verbose
|
||||
|
||||
target_filter = []
|
||||
board_filter = []
|
||||
if args.filter:
|
||||
for target in args.filter.split(','):
|
||||
target_filter.append(target)
|
||||
for board in args.filter.split(','):
|
||||
board_filter.append(board)
|
||||
|
||||
default_container = 'ghcr.io/px4/px4-dev:v1.16.0-rc1-258-g0369abd556'
|
||||
build_configs = []
|
||||
@@ -144,7 +144,7 @@ for manufacturer in os.scandir(os.path.join(source_dir, '../boards')):
|
||||
label = files.name[:-9]
|
||||
target_name = manufacturer.name + '_' + board.name + '_' + label
|
||||
|
||||
if target_filter and not any(target_name.startswith(f) for f in target_filter):
|
||||
if board_filter and not board_name in board_filter:
|
||||
if verbose: print(f'excluding board {board_name} ({target_name})')
|
||||
continue
|
||||
|
||||
|
||||
@@ -1675,7 +1675,7 @@ baro_0_x_resample = fit_coef_baro_0_x(temp_rel_resample)
|
||||
plt.figure(13,figsize=(20,13))
|
||||
|
||||
# draw plots
|
||||
plt.plot(sensor_baro_0['temperature'],sensor_baro_0['pressure']-median_pressure,'b')
|
||||
plt.plot(sensor_baro_0['temperature'],100*sensor_baro_0['pressure']-100*median_pressure,'b')
|
||||
plt.plot(temp_resample,baro_0_x_resample,'r')
|
||||
plt.title('Baro 0 ({}) Bias vs Temperature'.format(baro_0_params['TC_B0_ID']))
|
||||
plt.ylabel('Z bias (Pa)')
|
||||
@@ -1736,7 +1736,7 @@ if num_baros >= 2:
|
||||
plt.figure(14,figsize=(20,13))
|
||||
|
||||
# draw plots
|
||||
plt.plot(sensor_baro_1['temperature'],sensor_baro_1['pressure']-median_pressure,'b')
|
||||
plt.plot(sensor_baro_1['temperature'],100*sensor_baro_1['pressure']-100*median_pressure,'b')
|
||||
plt.plot(temp_resample,baro_1_x_resample,'r')
|
||||
plt.title('Baro 1 ({}) Bias vs Temperature'.format(baro_1_params['TC_B1_ID']))
|
||||
plt.ylabel('Z bias (Pa)')
|
||||
@@ -1797,7 +1797,7 @@ if num_baros >= 3:
|
||||
plt.figure(15,figsize=(20,13))
|
||||
|
||||
# draw plots
|
||||
plt.plot(sensor_baro_2['temperature'],sensor_baro_2['pressure']-median_pressure,'b')
|
||||
plt.plot(sensor_baro_2['temperature'],100*sensor_baro_2['pressure']-100*median_pressure,'b')
|
||||
plt.plot(temp_resample,baro_2_x_resample,'r')
|
||||
plt.title('Baro 2 ({}) Bias vs Temperature'.format(baro_2_params['TC_B2_ID']))
|
||||
plt.ylabel('Z bias (Pa)')
|
||||
@@ -1853,7 +1853,7 @@ if num_baros >= 4:
|
||||
plt.figure(16,figsize=(20,13))
|
||||
|
||||
# draw plots
|
||||
plt.plot(sensor_baro_3['temperature'],sensor_baro_3['pressure']-median_pressure,'b')
|
||||
plt.plot(sensor_baro_3['temperature'],100*sensor_baro_3['pressure']-100*median_pressure,'b')
|
||||
plt.plot(temp_resample,baro_3_x_resample,'r')
|
||||
plt.title('Baro 3 ({}) Bias vs Temperature'.format(baro_3_params['TC_B3_ID']))
|
||||
plt.ylabel('Z bias (Pa)')
|
||||
|
||||
@@ -98,6 +98,40 @@ class firmware(object):
|
||||
|
||||
desc = {}
|
||||
image = bytes()
|
||||
crctab = array.array('I', [
|
||||
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
|
||||
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
|
||||
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
|
||||
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
|
||||
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
|
||||
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
|
||||
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
|
||||
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
|
||||
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
|
||||
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
|
||||
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
|
||||
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
|
||||
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
|
||||
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
|
||||
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
|
||||
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
|
||||
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
|
||||
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
|
||||
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
|
||||
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
|
||||
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
|
||||
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
|
||||
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
|
||||
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
|
||||
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
|
||||
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
|
||||
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
|
||||
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
|
||||
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
|
||||
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
|
||||
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
|
||||
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d])
|
||||
crcpad = bytearray(b'\xff\xff\xff\xff')
|
||||
|
||||
def __init__(self, path):
|
||||
|
||||
@@ -115,15 +149,17 @@ class firmware(object):
|
||||
def property(self, propname):
|
||||
return self.desc[propname]
|
||||
|
||||
def crc(self, padlen):
|
||||
state = 0xFFFFFFFF
|
||||
state = zlib.crc32(self.image, state)
|
||||
padding_length = padlen - len(self.image)
|
||||
if padding_length > 0:
|
||||
padding = b'\xff' * padding_length
|
||||
state = zlib.crc32(padding, state)
|
||||
def __crc32(self, bytes, state):
|
||||
for byte in bytes:
|
||||
index = (state ^ byte) & 0xff
|
||||
state = self.crctab[index] ^ (state >> 8)
|
||||
return state
|
||||
|
||||
return (state ^ 0xFFFFFFFF) & 0xFFFFFFFF
|
||||
def crc(self, padlen):
|
||||
state = self.__crc32(self.image, int(0))
|
||||
for _ in range(len(self.image), (padlen - 1), 4):
|
||||
state = self.__crc32(self.crcpad, state)
|
||||
return state
|
||||
|
||||
|
||||
class uploader:
|
||||
|
||||
@@ -71,5 +71,6 @@ else()
|
||||
nuttx_arch # sdio
|
||||
nuttx_drivers # sdio
|
||||
px4_layer
|
||||
platform_gpio_mcp23009
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include <px4_platform/gpio.h>
|
||||
#include <px4_platform/board_determine_hw_info.h>
|
||||
#include <px4_platform/board_dma_alloc.h>
|
||||
#include <px4_platform/gpio/mcp23009.hpp>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
@@ -285,6 +286,13 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
# endif /* CONFIG_MMCSD */
|
||||
|
||||
ret = mcp23009_register_gpios(3, 0x25);
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* !defined(BOOTLOADER) */
|
||||
|
||||
return OK;
|
||||
|
||||
@@ -35,11 +35,11 @@ CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8310=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_LIS3MDL=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_LSM303AGR=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_RM3100=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_MEMSIC_MMC5983MA=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_ST_IIS2MDC=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
|
||||
CONFIG_DRIVERS_PCA9685_PWM_OUT=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_DRIVERS_PX4IO=y
|
||||
CONFIG_COMMON_RC=y
|
||||
|
||||
@@ -97,11 +97,5 @@ bmm150 -I start
|
||||
# Internal Baro on I2C
|
||||
bmp388 -I start
|
||||
|
||||
# Start an external PWM generator
|
||||
if param greater PCA9685_EN_BUS 0
|
||||
then
|
||||
pca9685_pwm_out start
|
||||
fi
|
||||
|
||||
unset HAVE_PM2
|
||||
unset HAVE_PM3
|
||||
|
||||
@@ -19,17 +19,8 @@ CONFIG_DRIVERS_HEATER=y
|
||||
CONFIG_DRIVERS_IMU_INVENSENSE_IIM42653=y
|
||||
CONFIG_DRIVERS_IMU_MURATA_SCH16T=y
|
||||
CONFIG_COMMON_LIGHT=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_BOSCH_BMM150=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_HMC5883=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_QMC5883L=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8308=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_ISENTEK_IST8310=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_LIS3MDL=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_LSM303AGR=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_RM3100=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_ST_IIS2MDC=y
|
||||
CONFIG_COMMON_MAGNETOMETER=y
|
||||
CONFIG_DRIVERS_OSD_MSP_OSD=y
|
||||
CONFIG_DRIVERS_PCA9685_PWM_OUT=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_COMMON_RC=y
|
||||
CONFIG_DRIVERS_UAVCAN=y
|
||||
|
||||
@@ -16,9 +16,3 @@ iis2mdc -R 0 -I -b 4 start
|
||||
|
||||
# Internal Baro on I2C
|
||||
bmp388 -I -b 2 start
|
||||
|
||||
# Start an external PWM generator
|
||||
if param greater PCA9685_EN_BUS 0
|
||||
then
|
||||
pca9685_pwm_out start
|
||||
fi
|
||||
|
||||
@@ -19,7 +19,6 @@ CONFIG_COMMON_LIGHT=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_MEMSIC_MMC5983MA=y
|
||||
CONFIG_DRIVERS_MAGNETOMETER_ST_IIS2MDC=y
|
||||
CONFIG_DRIVERS_OPTICAL_FLOW_PAW3902=y
|
||||
CONFIG_DRIVERS_PCA9685_PWM_OUT=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
|
||||
CONFIG_DRIVERS_PWM_OUT=y
|
||||
CONFIG_COMMON_RC=y
|
||||
|
||||
@@ -34,9 +34,3 @@ paw3902 -s -b 3 start -Y 90
|
||||
|
||||
# Internal distance sensor
|
||||
afbrs50 start
|
||||
|
||||
# Start an external PWM generator
|
||||
if param greater PCA9685_EN_BUS 0
|
||||
then
|
||||
pca9685_pwm_out start
|
||||
fi
|
||||
|
||||
@@ -26,6 +26,7 @@ CONFIG_DRIVERS_PCA9685_PWM_OUT=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA226=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA228=y
|
||||
CONFIG_DRIVERS_POWER_MONITOR_INA238=y
|
||||
CONFIG_DRIVERS_ROBOCLAW=y
|
||||
CONFIG_DRIVERS_UAVCAN=y
|
||||
CONFIG_BOARD_UAVCAN_INTERFACES=1
|
||||
CONFIG_BOARD_UAVCAN_TIMER_OVERRIDE=2
|
||||
@@ -65,6 +66,9 @@ CONFIG_MODULES_MC_RATE_CONTROL=y
|
||||
CONFIG_MODULES_NAVIGATOR=y
|
||||
CONFIG_MODE_NAVIGATOR_VTOL_TAKEOFF=y
|
||||
CONFIG_MODULES_RC_UPDATE=y
|
||||
CONFIG_MODULES_ROVER_ACKERMANN=y
|
||||
CONFIG_MODULES_ROVER_DIFFERENTIAL=y
|
||||
CONFIG_MODULES_ROVER_MECANUM=y
|
||||
CONFIG_MODULES_SENSORS=y
|
||||
CONFIG_MODULES_SIMULATION_SIMULATOR_SIH=y
|
||||
CONFIG_MODULES_TIME_PERSISTOR=y
|
||||
@@ -85,6 +89,7 @@ CONFIG_SYSTEMCMDS_PARAM=y
|
||||
CONFIG_SYSTEMCMDS_PERF=y
|
||||
CONFIG_SYSTEMCMDS_REBOOT=y
|
||||
CONFIG_SYSTEMCMDS_SD_BENCH=y
|
||||
CONFIG_SYSTEMCMDS_SERIAL_TEST=y
|
||||
CONFIG_SYSTEMCMDS_SYSTEM_TIME=y
|
||||
CONFIG_SYSTEMCMDS_TOP=y
|
||||
CONFIG_SYSTEMCMDS_TOPIC_LISTENER=y
|
||||
|
||||
@@ -74,5 +74,5 @@ ist8310 -X -b 1 -R 10 start
|
||||
# Start an external PWM generator
|
||||
if param greater PCA9685_EN_BUS 0
|
||||
then
|
||||
pca9685_pwm_out start
|
||||
pca9685_pwm_out start -b 1
|
||||
fi
|
||||
|
||||
@@ -20,9 +20,9 @@ safety_button start
|
||||
if ver hwbasecmp 009 010 011
|
||||
then
|
||||
# No USB
|
||||
mcp23009 start -b 3 -X -D 0xf0 -O 0xf0 -P 0x0f -M 0 -U 10
|
||||
mcp23009 start -b 3 -X -D 0xf0 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
if ver hwbasecmp 00a 008
|
||||
then
|
||||
mcp23009 start -b 3 -X -D 0xf1 -O 0xf0 -P 0x0f -M 0 -U 10
|
||||
mcp23009 start -b 3 -X -D 0xf1 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
|
||||
@@ -86,5 +86,8 @@ fi
|
||||
#external baro
|
||||
bmp388 -X start
|
||||
|
||||
# Don't try to start external baro on I2C3 as it can conflict with the MS5525DSO airspeed sensor.
|
||||
#ms5611 -X start
|
||||
|
||||
unset INA_CONFIGURED
|
||||
unset HAVE_PM2
|
||||
|
||||
@@ -69,6 +69,6 @@ else()
|
||||
nuttx_arch # sdio
|
||||
nuttx_drivers # sdio
|
||||
px4_layer
|
||||
platform_gpio_mcp
|
||||
platform_gpio_mcp23009
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include <px4_platform/gpio.h>
|
||||
#include <px4_platform/board_determine_hw_info.h>
|
||||
#include <px4_platform/board_dma_alloc.h>
|
||||
#include <px4_platform/gpio/mcp23009.hpp>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
@@ -281,6 +282,13 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
# endif /* CONFIG_MMCSD */
|
||||
|
||||
ret = mcp23009_register_gpios(3, 0x25);
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* !defined(BOOTLOADER) */
|
||||
|
||||
return OK;
|
||||
|
||||
@@ -11,7 +11,3 @@ param set BAT1_V_DIV 5.7
|
||||
|
||||
# Always keep current config
|
||||
param set SYS_AUTOCONFIG 0
|
||||
|
||||
# PCA9685 PWM Out defaults
|
||||
param set-default PCA9685_EN_BUS 4
|
||||
param set-default PCA9685_I2C_ADDR 64
|
||||
|
||||
@@ -28,7 +28,7 @@ then
|
||||
echo "ads1115 not found."
|
||||
fi
|
||||
|
||||
if ! pca9685_pwm_out start
|
||||
if ! pca9685_pwm_out start -a 0x40 -b 4
|
||||
then
|
||||
echo "pca9685_pwm_out not found."
|
||||
fi
|
||||
|
||||
@@ -68,7 +68,7 @@ fi
|
||||
|
||||
bmi088 -A -R 4 -s start
|
||||
bmi088 -G -R 4 -s start
|
||||
iim42652 -R 6 -s -C 32768 start
|
||||
iim42652 -R 6 -s start
|
||||
icm45686 -R 2 -s start
|
||||
|
||||
rm3100 -I -b 4 start
|
||||
|
||||
@@ -71,5 +71,6 @@ else()
|
||||
nuttx_arch # sdio
|
||||
nuttx_drivers # sdio
|
||||
px4_layer
|
||||
platform_gpio_mcp23009
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include <px4_platform/gpio.h>
|
||||
#include <px4_platform/board_determine_hw_info.h>
|
||||
#include <px4_platform/board_dma_alloc.h>
|
||||
#include <px4_platform/gpio/mcp23009.hpp>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
@@ -285,6 +286,13 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
# endif /* CONFIG_MMCSD */
|
||||
|
||||
ret = mcp23009_register_gpios(3, 0x25);
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif /* !defined(BOOTLOADER) */
|
||||
|
||||
return OK;
|
||||
|
||||
@@ -13,7 +13,7 @@ CONFIG_ARCH="arm"
|
||||
CONFIG_ARCH_BOARD_CUSTOM=y
|
||||
CONFIG_ARCH_BOARD_CUSTOM_DIR="../../../../boards/narinfc/h7/nuttx-config"
|
||||
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
|
||||
CONFIG_ARCH_BOARD_CUSTOM_NAME="px4"
|
||||
CONFIG_ARCH_BOARD_CUSTOM_NAME="PX4 NarinFC-H7"
|
||||
CONFIG_ARCH_CHIP="stm32h7"
|
||||
CONFIG_ARCH_CHIP_STM32H743XI=y
|
||||
CONFIG_ARCH_CHIP_STM32H7=y
|
||||
@@ -31,11 +31,11 @@ CONFIG_BOARD_LOOPSPERMSEC=22114
|
||||
CONFIG_BOARD_RESET_ON_ASSERT=2
|
||||
CONFIG_CDCACM=y
|
||||
CONFIG_CDCACM_IFLOWCONTROL=y
|
||||
CONFIG_CDCACM_PRODUCTID=0x0047
|
||||
CONFIG_CDCACM_PRODUCTSTR="PX4 BL VOLOLAND NarinFC-H7"
|
||||
CONFIG_CDCACM_PRODUCTID=0x004c
|
||||
CONFIG_CDCACM_PRODUCTSTR="PX4 BL NarinFC H7"
|
||||
CONFIG_CDCACM_RXBUFSIZE=600
|
||||
CONFIG_CDCACM_TXBUFSIZE=12000
|
||||
CONFIG_CDCACM_VENDORID=0x3fc5
|
||||
CONFIG_CDCACM_VENDORID=0x3163
|
||||
CONFIG_CDCACM_VENDORSTR="VOLOLAND"
|
||||
CONFIG_DEBUG_FULLOPT=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
|
||||
@@ -29,9 +29,9 @@ safety_button start
|
||||
if ver hwbasecmp 009
|
||||
then
|
||||
# No USB
|
||||
mcp23009 start -b 3 -X -D 0xf0 -O 0xf0 -P 0x0f -M 0 -U 10
|
||||
mcp23009 start -b 3 -X -D 0xf0 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
if ver hwbasecmp 00a 008
|
||||
then
|
||||
mcp23009 start -b 3 -X -D 0xf1 -O 0xf0 -P 0x0f -M 0 -U 10
|
||||
mcp23009 start -b 3 -X -D 0xf1 -O 0xf0 -P 0x0f -U 10
|
||||
fi
|
||||
|
||||
@@ -43,6 +43,8 @@ add_library(drivers_board
|
||||
usb.c
|
||||
)
|
||||
|
||||
add_dependencies(drivers_board platform_gpio_mcp23009)
|
||||
|
||||
target_link_libraries(drivers_board
|
||||
PRIVATE
|
||||
arch_io_pins
|
||||
@@ -52,5 +54,5 @@ target_link_libraries(drivers_board
|
||||
nuttx_arch # sdio
|
||||
nuttx_drivers # sdio
|
||||
px4_layer
|
||||
platform_gpio_mcp
|
||||
platform_gpio_mcp23009
|
||||
)
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
#include <px4_platform/gpio.h>
|
||||
#include <px4_platform/board_determine_hw_info.h>
|
||||
#include <px4_platform/board_dma_alloc.h>
|
||||
#include <px4_platform/gpio/mcp23009.hpp>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-Processor Definitions
|
||||
@@ -279,5 +280,12 @@ __EXPORT int board_app_initialize(uintptr_t arg)
|
||||
|
||||
#endif /* CONFIG_MMCSD */
|
||||
|
||||
ret = mcp23009_register_gpios(3, 0x25);
|
||||
|
||||
if (ret != OK) {
|
||||
led_on(LED_RED);
|
||||
return ret;
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ CONFIG_DRIVERS_ADC_ADS1115=y
|
||||
CONFIG_DRIVERS_ADC_BOARD_ADC=y
|
||||
CONFIG_DRIVERS_BAROMETER_BMP388=y
|
||||
CONFIG_DRIVERS_BAROMETER_INVENSENSE_ICP201XX=y
|
||||
CONFIG_DRIVERS_BAROMETER_MS5611=y
|
||||
CONFIG_DRIVERS_CAMERA_CAPTURE=y
|
||||
CONFIG_DRIVERS_CAMERA_TRIGGER=y
|
||||
CONFIG_DRIVERS_CDCACM_AUTOSTART=y
|
||||
|
||||
@@ -146,5 +146,8 @@ else
|
||||
bmp388 -X start
|
||||
fi
|
||||
|
||||
# Don't try to start external baro on I2C3 as it can conflict with the MS5525DSO airspeed sensor.
|
||||
#ms5611 -X start
|
||||
|
||||
unset INA_CONFIGURED
|
||||
unset HAVE_PM2
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
CONFIG_MAVLINK_DIALECT="development"
|
||||
CONFIG_MODULES_UXRCE_DDS_CLIENT=n
|
||||
|
||||
@@ -47,7 +47,6 @@ CONFIG_DRIVERS_SAFETY_BUTTON=y
|
||||
CONFIG_COMMON_TELEMETRY=y
|
||||
CONFIG_DRIVERS_TONE_ALARM=y
|
||||
CONFIG_DRIVERS_UAVCAN=y
|
||||
CONFIG_BOARD_UAVCAN_INTERFACES=3
|
||||
CONFIG_COMMON_UWB=y
|
||||
CONFIG_MODULES_AIRSPEED_SELECTOR=y
|
||||
CONFIG_MODULES_BATTERY_STATUS=y
|
||||
|
||||
@@ -54,7 +54,6 @@ CONFIG_DEBUG_MEMFAULT=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
CONFIG_DEBUG_TCBINFO=y
|
||||
CONFIG_DEV_FIFO_SIZE=0
|
||||
CONFIG_DEV_GPIO=y
|
||||
CONFIG_DEV_PIPE_SIZE=70
|
||||
CONFIG_DEV_URANDOM=y
|
||||
CONFIG_ETH0_PHY_MULTI=y
|
||||
|
||||
@@ -21,7 +21,6 @@ CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
|
||||
CONFIG_MODULES_FW_ATT_CONTROL=y
|
||||
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=y
|
||||
CONFIG_MODULES_FW_MODE_MANAGER=y
|
||||
CONFIG_MODULES_FW_GUIDANCE_CONTROL=y
|
||||
CONFIG_MODULES_FW_LATERAL_LONGITUDINAL_CONTROL=y
|
||||
CONFIG_FIGURE_OF_EIGHT=y
|
||||
CONFIG_MODULES_FW_RATE_CONTROL=y
|
||||
|
||||
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 387 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 368 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 210 KiB |
@@ -128,7 +128,7 @@
|
||||
- [LED Meanings](getting_started/led_meanings.md)
|
||||
- [Tune/Sound Meanings](getting_started/tunes.md)
|
||||
- [QGroundControl Flight-Readiness Status](flying/pre_flight_checks.md)
|
||||
- [Asset Tracking](debug/asset_tracking.md)
|
||||
|
||||
- [Hardware Selection & Setup](hardware/drone_parts.md)
|
||||
- [Flight Controllers (Autopilots)](flight_controller/index.md)
|
||||
- [Flight Controller Selection](getting_started/flight_controller_selection.md)
|
||||
@@ -271,8 +271,6 @@
|
||||
- [Holybro M8N & M9N GPS](gps_compass/gps_holybro_m8n_m9n.md)
|
||||
- [Sky-Drones SmartAP GPS](gps_compass/gps_smartap.md)
|
||||
- [RTK GNSS](gps_compass/rtk_gps.md)
|
||||
- [ARK G5 RTK GPS](dronecan/ark_g5_rtk_gps.md)
|
||||
- [ARK G5 RTK HEADING GPS](dronecan/ark_g5_rtk_heading_gps.md)
|
||||
- [ARK RTK GPS (CAN)](dronecan/ark_rtk_gps.md)
|
||||
- [ARK RTK GPS L1 L5 (CAN)](dronecan/ark_rtk_gps_l1_l2.md)
|
||||
- [ARK X20 RTK GPS (CAN)](dronecan/ark_x20_rtk_gps.md)
|
||||
@@ -314,17 +312,15 @@
|
||||
- [Actuator Allocation](config/actuators.md)
|
||||
- [ESC Calibration](advanced_config/esc_calibration.md)
|
||||
- [ESCs & Motors](peripherals/esc_motors.md)
|
||||
- [ESC Protocols](esc/esc_protocols.md)
|
||||
- [PWM ESCs and Servos](peripherals/pwm_escs_and_servo.md)
|
||||
- [DShot ESCs](peripherals/dshot.md)
|
||||
- [OneShot ESCs and Servos](peripherals/oneshot.md)
|
||||
- [DroneCAN ESCs](dronecan/escs.md)
|
||||
- [Zubax Telega](dronecan/zubax_telega.md)
|
||||
- [PX4 Sapog ESC Firmware](dronecan/sapog.md)
|
||||
- [ARK 4IN1 ESC](esc/ark_4in1_esc.md)
|
||||
- [Holybro Kotleta](dronecan/holybro_kotleta.md)
|
||||
- [Vertiq Motor/ESC Modules](peripherals/vertiq.md)
|
||||
- [VESC Project ESCs](peripherals/vesc.md)
|
||||
- [Zubax Telega ESCs](dronecan/zubax_telega.md)
|
||||
- [Holybro Kotleta](dronecan/holybro_kotleta.md)
|
||||
- [Vertiq](peripherals/vertiq.md)
|
||||
- [VESC](peripherals/vesc.md)
|
||||
- [Radio Control (RC)](getting_started/rc_transmitter_receiver.md)
|
||||
- [Radio Setup](config/radio.md)
|
||||
- [Flight Modes](config/flight_mode.md)
|
||||
@@ -503,7 +499,6 @@
|
||||
- [PPS Time Synchronization](advanced/pps_time_sync.md)
|
||||
- [Middleware](middleware/index.md)
|
||||
- [uORB Messaging](middleware/uorb.md)
|
||||
- [uORB Docs Standard](uorb/uorb_documentation.md)
|
||||
- [uORB Graph](middleware/uorb_graph.md)
|
||||
- [uORB Message Reference](msg_docs/index.md)
|
||||
- [Versioned](msg_docs/versioned_messages.md)
|
||||
@@ -566,7 +561,6 @@
|
||||
- [DebugKeyValue](msg_docs/DebugKeyValue.md)
|
||||
- [DebugValue](msg_docs/DebugValue.md)
|
||||
- [DebugVect](msg_docs/DebugVect.md)
|
||||
- [DeviceInformation](msg_docs/DeviceInformation.md)
|
||||
- [DifferentialPressure](msg_docs/DifferentialPressure.md)
|
||||
- [DistanceSensor](msg_docs/DistanceSensor.md)
|
||||
- [DistanceSensorModeChangeRequest](msg_docs/DistanceSensorModeChangeRequest.md)
|
||||
@@ -904,7 +898,6 @@
|
||||
- [Licenses](contribute/licenses.md)
|
||||
- [Releases](releases/index.md)
|
||||
- [main (alpha)](releases/main.md)
|
||||
- [1.17 (alpha)](releases/1.17.md)
|
||||
- [1.16 (stable)](releases/1.16.md)
|
||||
- [1.15](releases/1.15.md)
|
||||
- [1.14](releases/1.14.md)
|
||||
|
||||
@@ -74,7 +74,7 @@ For example, you might have the following settings to assign the gimbal roll, pi
|
||||
|
||||

|
||||
|
||||
The PWM values to use for the disarmed, maximum, center and minimum values can be determined in the same way as other servo, using the [Actuator Test sliders](../config/actuators.md#actuator-testing) to confirm that each slider moves the appropriate axis, and changing the values so that the gimbal is in the appropriate position at the disarmed, low, center and high position in the slider.
|
||||
The PWM values to use for the disarmed, maximum and minimum values can be determined in the same way as other servo, using the [Actuator Test sliders](../config/actuators.md#actuator-testing) to confirm that each slider moves the appropriate axis, and changing the values so that the gimbal is in the appropriate position at the disarmed, low and high position in the slider.
|
||||
The values may also be provided in gimbal documentation.
|
||||
|
||||
## Gimbal Control in Missions
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Neural Networks
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" /> <Badge type="warning" text="Experimental" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
::: warning
|
||||
This is an experimental module.
|
||||
@@ -26,10 +26,6 @@ If you are looking for more resources to learn about the module, a website has b
|
||||
|
||||
## Neural Network PX4 Firmware
|
||||
|
||||
::: warning
|
||||
This module requires Ubuntu 24.04 or newer (it is not supported in Ubuntu 22.04).
|
||||
:::
|
||||
|
||||
The module has been tested on a number of configurations, which can be build locally using the commands:
|
||||
|
||||
```sh
|
||||
|
||||
@@ -25,7 +25,6 @@ It may also be supported on other boards.
|
||||
|
||||
Supported flight controllers include:
|
||||
|
||||
- [ARK Electronics ARKV6X](../flight_controller/ark_v6x.md)
|
||||
- [CUAV Pixhawk V6X](../flight_controller/cuav_pixhawk_v6x.md)
|
||||
- [Holybro Pixhawk 5X](../flight_controller/pixhawk5x.md)
|
||||
- [Holybro Pixhawk 6X](../flight_controller/pixhawk6x.md)
|
||||
|
||||
@@ -1798,16 +1798,6 @@ The default failsafe value is set according to the selected function:
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### PCA9685_I2C_ADDR (`INT32`) {#PCA9685_I2C_ADDR}
|
||||
|
||||
I2C address of PCA9685.
|
||||
|
||||
The default address is 0x40 (64).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 1 | 127 | | 64 |
|
||||
|
||||
### PCA9685_MAX1 (`INT32`) {#PCA9685_MAX1}
|
||||
|
||||
PCA9685 Output Channel 1 Maximum Value.
|
||||
@@ -4924,39 +4914,6 @@ Note that non-motor outputs might already be active in prearm state if COM_PREAR
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_DIS10 (`INT32`) {#SIM_GZ_EC_DIS10}
|
||||
|
||||
SIM_GZ ESC 10 Disarmed Value.
|
||||
|
||||
This is the output value that is set when not armed.
|
||||
Note that non-motor outputs might already be active in prearm state if COM_PREARM_MODE is set.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_DIS11 (`INT32`) {#SIM_GZ_EC_DIS11}
|
||||
|
||||
SIM_GZ ESC 11 Disarmed Value.
|
||||
|
||||
This is the output value that is set when not armed.
|
||||
Note that non-motor outputs might already be active in prearm state if COM_PREARM_MODE is set.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_DIS12 (`INT32`) {#SIM_GZ_EC_DIS12}
|
||||
|
||||
SIM_GZ ESC 12 Disarmed Value.
|
||||
|
||||
This is the output value that is set when not armed.
|
||||
Note that non-motor outputs might already be active in prearm state if COM_PREARM_MODE is set.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_DIS2 (`INT32`) {#SIM_GZ_EC_DIS2}
|
||||
|
||||
SIM_GZ ESC 2 Disarmed Value.
|
||||
@@ -5034,17 +4991,6 @@ Note that non-motor outputs might already be active in prearm state if COM_PREAR
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_DIS9 (`INT32`) {#SIM_GZ_EC_DIS9}
|
||||
|
||||
SIM_GZ ESC 9 Disarmed Value.
|
||||
|
||||
This is the output value that is set when not armed.
|
||||
Note that non-motor outputs might already be active in prearm state if COM_PREARM_MODE is set.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FAIL1 (`INT32`) {#SIM_GZ_EC_FAIL1}
|
||||
|
||||
SIM_GZ ESC 1 Failsafe Value.
|
||||
@@ -5056,39 +5002,6 @@ When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC1
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FAIL10 (`INT32`) {#SIM_GZ_EC_FAIL10}
|
||||
|
||||
SIM_GZ ESC 10 Failsafe Value.
|
||||
|
||||
This is the output value that is set when in failsafe mode.
|
||||
When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC10).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FAIL11 (`INT32`) {#SIM_GZ_EC_FAIL11}
|
||||
|
||||
SIM_GZ ESC 11 Failsafe Value.
|
||||
|
||||
This is the output value that is set when in failsafe mode.
|
||||
When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC11).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FAIL12 (`INT32`) {#SIM_GZ_EC_FAIL12}
|
||||
|
||||
SIM_GZ ESC 12 Failsafe Value.
|
||||
|
||||
This is the output value that is set when in failsafe mode.
|
||||
When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC12).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FAIL2 (`INT32`) {#SIM_GZ_EC_FAIL2}
|
||||
|
||||
SIM_GZ ESC 2 Failsafe Value.
|
||||
@@ -5166,17 +5079,6 @@ When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC8
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FAIL9 (`INT32`) {#SIM_GZ_EC_FAIL9}
|
||||
|
||||
SIM_GZ ESC 9 Failsafe Value.
|
||||
|
||||
This is the output value that is set when in failsafe mode.
|
||||
When set to -1 (default), the value depends on the function (see SIM_GZ_EC_FUNC9).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | -1 | 1000 | | -1 |
|
||||
|
||||
### SIM_GZ_EC_FUNC1 (`INT32`) {#SIM_GZ_EC_FUNC1}
|
||||
|
||||
SIM_GZ ESC 1 Output Function.
|
||||
@@ -5248,219 +5150,6 @@ The default failsafe value is set according to the selected function:
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FUNC10 (`INT32`) {#SIM_GZ_EC_FUNC10}
|
||||
|
||||
SIM_GZ ESC 10 Output Function.
|
||||
|
||||
Select what should be output on SIM_GZ ESC 10.
|
||||
The default failsafe value is set according to the selected function:
|
||||
|
||||
- 'Min' for ConstantMin
|
||||
- 'Max' for ConstantMax
|
||||
- 'Max' for Parachute
|
||||
- ('Max'+'Min')/2 for Servos
|
||||
- 'Disarmed' for the rest
|
||||
|
||||
**Values:**
|
||||
|
||||
- `0`: Disabled
|
||||
- `1`: Constant Min
|
||||
- `2`: Constant Max
|
||||
- `101`: Motor 1
|
||||
- `102`: Motor 2
|
||||
- `103`: Motor 3
|
||||
- `104`: Motor 4
|
||||
- `105`: Motor 5
|
||||
- `106`: Motor 6
|
||||
- `107`: Motor 7
|
||||
- `108`: Motor 8
|
||||
- `109`: Motor 9
|
||||
- `110`: Motor 10
|
||||
- `111`: Motor 11
|
||||
- `112`: Motor 12
|
||||
- `201`: Servo 1
|
||||
- `202`: Servo 2
|
||||
- `203`: Servo 3
|
||||
- `204`: Servo 4
|
||||
- `205`: Servo 5
|
||||
- `206`: Servo 6
|
||||
- `207`: Servo 7
|
||||
- `208`: Servo 8
|
||||
- `301`: Peripheral via Actuator Set 1
|
||||
- `302`: Peripheral via Actuator Set 2
|
||||
- `303`: Peripheral via Actuator Set 3
|
||||
- `304`: Peripheral via Actuator Set 4
|
||||
- `305`: Peripheral via Actuator Set 5
|
||||
- `306`: Peripheral via Actuator Set 6
|
||||
- `400`: Landing Gear
|
||||
- `401`: Parachute
|
||||
- `402`: RC Roll
|
||||
- `403`: RC Pitch
|
||||
- `404`: RC Throttle
|
||||
- `405`: RC Yaw
|
||||
- `406`: RC Flaps
|
||||
- `407`: RC AUX 1
|
||||
- `408`: RC AUX 2
|
||||
- `409`: RC AUX 3
|
||||
- `410`: RC AUX 4
|
||||
- `411`: RC AUX 5
|
||||
- `412`: RC AUX 6
|
||||
- `420`: Gimbal Roll
|
||||
- `421`: Gimbal Pitch
|
||||
- `422`: Gimbal Yaw
|
||||
- `430`: Gripper
|
||||
- `440`: Landing Gear Wheel
|
||||
- `450`: IC Engine Ignition
|
||||
- `451`: IC Engine Throttle
|
||||
- `452`: IC Engine Choke
|
||||
- `453`: IC Engine Starter
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FUNC11 (`INT32`) {#SIM_GZ_EC_FUNC11}
|
||||
|
||||
SIM_GZ ESC 11 Output Function.
|
||||
|
||||
Select what should be output on SIM_GZ ESC 11.
|
||||
The default failsafe value is set according to the selected function:
|
||||
|
||||
- 'Min' for ConstantMin
|
||||
- 'Max' for ConstantMax
|
||||
- 'Max' for Parachute
|
||||
- ('Max'+'Min')/2 for Servos
|
||||
- 'Disarmed' for the rest
|
||||
|
||||
**Values:**
|
||||
|
||||
- `0`: Disabled
|
||||
- `1`: Constant Min
|
||||
- `2`: Constant Max
|
||||
- `101`: Motor 1
|
||||
- `102`: Motor 2
|
||||
- `103`: Motor 3
|
||||
- `104`: Motor 4
|
||||
- `105`: Motor 5
|
||||
- `106`: Motor 6
|
||||
- `107`: Motor 7
|
||||
- `108`: Motor 8
|
||||
- `109`: Motor 9
|
||||
- `110`: Motor 10
|
||||
- `111`: Motor 11
|
||||
- `112`: Motor 12
|
||||
- `201`: Servo 1
|
||||
- `202`: Servo 2
|
||||
- `203`: Servo 3
|
||||
- `204`: Servo 4
|
||||
- `205`: Servo 5
|
||||
- `206`: Servo 6
|
||||
- `207`: Servo 7
|
||||
- `208`: Servo 8
|
||||
- `301`: Peripheral via Actuator Set 1
|
||||
- `302`: Peripheral via Actuator Set 2
|
||||
- `303`: Peripheral via Actuator Set 3
|
||||
- `304`: Peripheral via Actuator Set 4
|
||||
- `305`: Peripheral via Actuator Set 5
|
||||
- `306`: Peripheral via Actuator Set 6
|
||||
- `400`: Landing Gear
|
||||
- `401`: Parachute
|
||||
- `402`: RC Roll
|
||||
- `403`: RC Pitch
|
||||
- `404`: RC Throttle
|
||||
- `405`: RC Yaw
|
||||
- `406`: RC Flaps
|
||||
- `407`: RC AUX 1
|
||||
- `408`: RC AUX 2
|
||||
- `409`: RC AUX 3
|
||||
- `410`: RC AUX 4
|
||||
- `411`: RC AUX 5
|
||||
- `412`: RC AUX 6
|
||||
- `420`: Gimbal Roll
|
||||
- `421`: Gimbal Pitch
|
||||
- `422`: Gimbal Yaw
|
||||
- `430`: Gripper
|
||||
- `440`: Landing Gear Wheel
|
||||
- `450`: IC Engine Ignition
|
||||
- `451`: IC Engine Throttle
|
||||
- `452`: IC Engine Choke
|
||||
- `453`: IC Engine Starter
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FUNC12 (`INT32`) {#SIM_GZ_EC_FUNC12}
|
||||
|
||||
SIM_GZ ESC 12 Output Function.
|
||||
|
||||
Select what should be output on SIM_GZ ESC 12.
|
||||
The default failsafe value is set according to the selected function:
|
||||
|
||||
- 'Min' for ConstantMin
|
||||
- 'Max' for ConstantMax
|
||||
- 'Max' for Parachute
|
||||
- ('Max'+'Min')/2 for Servos
|
||||
- 'Disarmed' for the rest
|
||||
|
||||
**Values:**
|
||||
|
||||
- `0`: Disabled
|
||||
- `1`: Constant Min
|
||||
- `2`: Constant Max
|
||||
- `101`: Motor 1
|
||||
- `102`: Motor 2
|
||||
- `103`: Motor 3
|
||||
- `104`: Motor 4
|
||||
- `105`: Motor 5
|
||||
- `106`: Motor 6
|
||||
- `107`: Motor 7
|
||||
- `108`: Motor 8
|
||||
- `109`: Motor 9
|
||||
- `110`: Motor 10
|
||||
- `111`: Motor 11
|
||||
- `112`: Motor 12
|
||||
- `201`: Servo 1
|
||||
- `202`: Servo 2
|
||||
- `203`: Servo 3
|
||||
- `204`: Servo 4
|
||||
- `205`: Servo 5
|
||||
- `206`: Servo 6
|
||||
- `207`: Servo 7
|
||||
- `208`: Servo 8
|
||||
- `301`: Peripheral via Actuator Set 1
|
||||
- `302`: Peripheral via Actuator Set 2
|
||||
- `303`: Peripheral via Actuator Set 3
|
||||
- `304`: Peripheral via Actuator Set 4
|
||||
- `305`: Peripheral via Actuator Set 5
|
||||
- `306`: Peripheral via Actuator Set 6
|
||||
- `400`: Landing Gear
|
||||
- `401`: Parachute
|
||||
- `402`: RC Roll
|
||||
- `403`: RC Pitch
|
||||
- `404`: RC Throttle
|
||||
- `405`: RC Yaw
|
||||
- `406`: RC Flaps
|
||||
- `407`: RC AUX 1
|
||||
- `408`: RC AUX 2
|
||||
- `409`: RC AUX 3
|
||||
- `410`: RC AUX 4
|
||||
- `411`: RC AUX 5
|
||||
- `412`: RC AUX 6
|
||||
- `420`: Gimbal Roll
|
||||
- `421`: Gimbal Pitch
|
||||
- `422`: Gimbal Yaw
|
||||
- `430`: Gripper
|
||||
- `440`: Landing Gear Wheel
|
||||
- `450`: IC Engine Ignition
|
||||
- `451`: IC Engine Throttle
|
||||
- `452`: IC Engine Choke
|
||||
- `453`: IC Engine Starter
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FUNC2 (`INT32`) {#SIM_GZ_EC_FUNC2}
|
||||
|
||||
SIM_GZ ESC 2 Output Function.
|
||||
@@ -5958,77 +5647,6 @@ The default failsafe value is set according to the selected function:
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_FUNC9 (`INT32`) {#SIM_GZ_EC_FUNC9}
|
||||
|
||||
SIM_GZ ESC 9 Output Function.
|
||||
|
||||
Select what should be output on SIM_GZ ESC 9.
|
||||
The default failsafe value is set according to the selected function:
|
||||
|
||||
- 'Min' for ConstantMin
|
||||
- 'Max' for ConstantMax
|
||||
- 'Max' for Parachute
|
||||
- ('Max'+'Min')/2 for Servos
|
||||
- 'Disarmed' for the rest
|
||||
|
||||
**Values:**
|
||||
|
||||
- `0`: Disabled
|
||||
- `1`: Constant Min
|
||||
- `2`: Constant Max
|
||||
- `101`: Motor 1
|
||||
- `102`: Motor 2
|
||||
- `103`: Motor 3
|
||||
- `104`: Motor 4
|
||||
- `105`: Motor 5
|
||||
- `106`: Motor 6
|
||||
- `107`: Motor 7
|
||||
- `108`: Motor 8
|
||||
- `109`: Motor 9
|
||||
- `110`: Motor 10
|
||||
- `111`: Motor 11
|
||||
- `112`: Motor 12
|
||||
- `201`: Servo 1
|
||||
- `202`: Servo 2
|
||||
- `203`: Servo 3
|
||||
- `204`: Servo 4
|
||||
- `205`: Servo 5
|
||||
- `206`: Servo 6
|
||||
- `207`: Servo 7
|
||||
- `208`: Servo 8
|
||||
- `301`: Peripheral via Actuator Set 1
|
||||
- `302`: Peripheral via Actuator Set 2
|
||||
- `303`: Peripheral via Actuator Set 3
|
||||
- `304`: Peripheral via Actuator Set 4
|
||||
- `305`: Peripheral via Actuator Set 5
|
||||
- `306`: Peripheral via Actuator Set 6
|
||||
- `400`: Landing Gear
|
||||
- `401`: Parachute
|
||||
- `402`: RC Roll
|
||||
- `403`: RC Pitch
|
||||
- `404`: RC Throttle
|
||||
- `405`: RC Yaw
|
||||
- `406`: RC Flaps
|
||||
- `407`: RC AUX 1
|
||||
- `408`: RC AUX 2
|
||||
- `409`: RC AUX 3
|
||||
- `410`: RC AUX 4
|
||||
- `411`: RC AUX 5
|
||||
- `412`: RC AUX 6
|
||||
- `420`: Gimbal Roll
|
||||
- `421`: Gimbal Pitch
|
||||
- `422`: Gimbal Yaw
|
||||
- `430`: Gripper
|
||||
- `440`: Landing Gear Wheel
|
||||
- `450`: IC Engine Ignition
|
||||
- `451`: IC Engine Throttle
|
||||
- `452`: IC Engine Choke
|
||||
- `453`: IC Engine Starter
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | | | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MAX1 (`INT32`) {#SIM_GZ_EC_MAX1}
|
||||
|
||||
SIM_GZ ESC 1 Maximum Value.
|
||||
@@ -6039,36 +5657,6 @@ Maxmimum output value (when not disarmed).
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MAX10 (`INT32`) {#SIM_GZ_EC_MAX10}
|
||||
|
||||
SIM_GZ ESC 10 Maximum Value.
|
||||
|
||||
Maxmimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MAX11 (`INT32`) {#SIM_GZ_EC_MAX11}
|
||||
|
||||
SIM_GZ ESC 11 Maximum Value.
|
||||
|
||||
Maxmimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MAX12 (`INT32`) {#SIM_GZ_EC_MAX12}
|
||||
|
||||
SIM_GZ ESC 12 Maximum Value.
|
||||
|
||||
Maxmimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MAX2 (`INT32`) {#SIM_GZ_EC_MAX2}
|
||||
|
||||
SIM_GZ ESC 2 Maximum Value.
|
||||
@@ -6139,16 +5727,6 @@ Maxmimum output value (when not disarmed).
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MAX9 (`INT32`) {#SIM_GZ_EC_MAX9}
|
||||
|
||||
SIM_GZ ESC 9 Maximum Value.
|
||||
|
||||
Maxmimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 1000 |
|
||||
|
||||
### SIM_GZ_EC_MIN1 (`INT32`) {#SIM_GZ_EC_MIN1}
|
||||
|
||||
SIM_GZ ESC 1 Minimum Value.
|
||||
@@ -6159,36 +5737,6 @@ Minimum output value (when not disarmed).
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MIN10 (`INT32`) {#SIM_GZ_EC_MIN10}
|
||||
|
||||
SIM_GZ ESC 10 Minimum Value.
|
||||
|
||||
Minimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MIN11 (`INT32`) {#SIM_GZ_EC_MIN11}
|
||||
|
||||
SIM_GZ ESC 11 Minimum Value.
|
||||
|
||||
Minimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MIN12 (`INT32`) {#SIM_GZ_EC_MIN12}
|
||||
|
||||
SIM_GZ ESC 12 Minimum Value.
|
||||
|
||||
Minimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MIN2 (`INT32`) {#SIM_GZ_EC_MIN2}
|
||||
|
||||
SIM_GZ ESC 2 Minimum Value.
|
||||
@@ -6259,16 +5807,6 @@ Minimum output value (when not disarmed).
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_MIN9 (`INT32`) {#SIM_GZ_EC_MIN9}
|
||||
|
||||
SIM_GZ ESC 9 Minimum Value.
|
||||
|
||||
Minimum output value (when not disarmed).
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 1000 | | 0 |
|
||||
|
||||
### SIM_GZ_EC_REV (`INT32`) {#SIM_GZ_EC_REV}
|
||||
|
||||
Reverse Output Range for SIM_GZ.
|
||||
@@ -6286,14 +5824,10 @@ Note: this is only useful for servos.
|
||||
- `5`: SIM_GZ ESC 6
|
||||
- `6`: SIM_GZ ESC 7
|
||||
- `7`: SIM_GZ ESC 8
|
||||
- `8`: SIM_GZ ESC 9
|
||||
- `9`: SIM_GZ ESC 10
|
||||
- `10`: SIM_GZ ESC 11
|
||||
- `11`: SIM_GZ ESC 12
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 4095 | | 0 |
|
||||
| | 0 | 255 | | 0 |
|
||||
|
||||
### SIM_GZ_SV_DIS1 (`INT32`) {#SIM_GZ_SV_DIS1}
|
||||
|
||||
@@ -14823,6 +14357,22 @@ Defines which RC_MAP_AUXn parameter maps the manual control channel used to enab
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 6 | | 0 |
|
||||
|
||||
### FW_AT_START (`INT32`) {#FW_AT_START}
|
||||
|
||||
Start the autotuning sequence.
|
||||
|
||||
WARNING: this will inject steps to the rate controller
|
||||
and can be dangerous. Only activate if you know what you
|
||||
are doing, and in a safe environment.
|
||||
Any motion of the remote stick will abort the signal
|
||||
injection and reset this parameter
|
||||
Best is to perform the identification in position or
|
||||
hold mode.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------------ | ---- |
|
||||
| | | | | Disabled (0) |
|
||||
|
||||
### FW_AT_SYSID_F0 (`FLOAT`) {#FW_AT_SYSID_F0}
|
||||
|
||||
Start frequency of the injected signal.
|
||||
@@ -14906,6 +14456,24 @@ Desired angular rate closed-loop rise time.
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0.01 | 0.5 | | 0.14 | s |
|
||||
|
||||
### MC_AT_START (`INT32`) {#MC_AT_START}
|
||||
|
||||
Start the autotuning sequence.
|
||||
|
||||
WARNING: this will inject steps to the rate controller
|
||||
and can be dangerous. Only activate if you know what you
|
||||
are doing, and in a safe environment.
|
||||
Any motion of the remote stick will abort the signal
|
||||
injection and reset this parameter
|
||||
Best is to perform the identification in position or
|
||||
hold mode.
|
||||
Increase the amplitude of the injected signal using
|
||||
MC_AT_SYSID_AMP for more signal/noise ratio
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------------ | ---- |
|
||||
| | | | | Disabled (0) |
|
||||
|
||||
### MC_AT_SYSID_AMP (`FLOAT`) {#MC_AT_SYSID_AMP}
|
||||
|
||||
Amplitude of the injected signal.
|
||||
@@ -15009,21 +14577,16 @@ If non-negative, then this will be used instead of the online estimated internal
|
||||
|
||||
Battery 1 monitoring source.
|
||||
|
||||
This parameter controls the source of battery data. The value 'Power Module / Analog'
|
||||
means that measurements are expected to come from either analog (ADC) inputs
|
||||
or an I2C power monitor (e.g. INA226). Analog inputs are voltage and current
|
||||
measurements read from the board's ADC channels, typically from an onboard
|
||||
voltage divider and current shunt, or an external analog power module.
|
||||
I2C power monitors are digital sensors on the I2C bus.
|
||||
If the value is set to 'External' then the system expects to receive MAVLink
|
||||
or CAN battery status messages, or the battery data is published by an external driver.
|
||||
This parameter controls the source of battery data. The value 'Power Module'
|
||||
means that measurements are expected to come from a power module. If the value is set to
|
||||
'External' then the system expects to receive mavlink battery status messages.
|
||||
If the value is set to 'ESCs', the battery information are taken from the esc_status message.
|
||||
This requires the ESC to provide both voltage as well as current (via ESC telemetry).
|
||||
This requires the ESC to provide both voltage as well as current.
|
||||
|
||||
**Values:**
|
||||
|
||||
- `-1`: Disabled
|
||||
- `0`: Power Module / Analog
|
||||
- `0`: Power Module
|
||||
- `1`: External
|
||||
- `2`: ESCs
|
||||
|
||||
@@ -15174,21 +14737,16 @@ If non-negative, then this will be used instead of the online estimated internal
|
||||
|
||||
Battery 2 monitoring source.
|
||||
|
||||
This parameter controls the source of battery data. The value 'Power Module / Analog'
|
||||
means that measurements are expected to come from either analog (ADC) inputs
|
||||
or an I2C power monitor (e.g. INA226). Analog inputs are voltage and current
|
||||
measurements read from the board's ADC channels, typically from an onboard
|
||||
voltage divider and current shunt, or an external analog power module.
|
||||
I2C power monitors are digital sensors on the I2C bus.
|
||||
If the value is set to 'External' then the system expects to receive MAVLink
|
||||
or CAN battery status messages, or the battery data is published by an external driver.
|
||||
This parameter controls the source of battery data. The value 'Power Module'
|
||||
means that measurements are expected to come from a power module. If the value is set to
|
||||
'External' then the system expects to receive mavlink battery status messages.
|
||||
If the value is set to 'ESCs', the battery information are taken from the esc_status message.
|
||||
This requires the ESC to provide both voltage as well as current (via ESC telemetry).
|
||||
This requires the ESC to provide both voltage as well as current.
|
||||
|
||||
**Values:**
|
||||
|
||||
- `-1`: Disabled
|
||||
- `0`: Power Module / Analog
|
||||
- `0`: Power Module
|
||||
- `1`: External
|
||||
- `2`: ESCs
|
||||
|
||||
@@ -15300,21 +14858,16 @@ If non-negative, then this will be used instead of the online estimated internal
|
||||
|
||||
Battery 3 monitoring source.
|
||||
|
||||
This parameter controls the source of battery data. The value 'Power Module / Analog'
|
||||
means that measurements are expected to come from either analog (ADC) inputs
|
||||
or an I2C power monitor (e.g. INA226). Analog inputs are voltage and current
|
||||
measurements read from the board's ADC channels, typically from an onboard
|
||||
voltage divider and current shunt, or an external analog power module.
|
||||
I2C power monitors are digital sensors on the I2C bus.
|
||||
If the value is set to 'External' then the system expects to receive MAVLink
|
||||
or CAN battery status messages, or the battery data is published by an external driver.
|
||||
This parameter controls the source of battery data. The value 'Power Module'
|
||||
means that measurements are expected to come from a power module. If the value is set to
|
||||
'External' then the system expects to receive mavlink battery status messages.
|
||||
If the value is set to 'ESCs', the battery information are taken from the esc_status message.
|
||||
This requires the ESC to provide both voltage as well as current (via ESC telemetry).
|
||||
This requires the ESC to provide both voltage as well as current.
|
||||
|
||||
**Values:**
|
||||
|
||||
- `-1`: Disabled
|
||||
- `0`: Power Module / Analog
|
||||
- `0`: Power Module
|
||||
- `1`: External
|
||||
- `2`: ESCs
|
||||
|
||||
@@ -17544,16 +17097,6 @@ EKF2 enable.
|
||||
| ------ | -------- | -------- | --------- | ----------- | ---- |
|
||||
| | | | | Enabled (1) |
|
||||
|
||||
### EKF2_ENGINE_WRM (`INT32`) {#EKF2_ENGINE_WRM}
|
||||
|
||||
Enable constant position fusion during engine warmup.
|
||||
|
||||
When enabled, constant position fusion is enabled when the vehicle is landed and armed. This is intended for IC engine warmup (e.g., fuel engines on catapult) to allow mode transitions to auto/takeoff despite vibrations from running engines.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------------ | ---- |
|
||||
| | | | | Disabled (0) |
|
||||
|
||||
### EKF2_EVA_NOISE (`FLOAT`) {#EKF2_EVA_NOISE}
|
||||
|
||||
Measurement noise for vision angle measurements.
|
||||
@@ -17741,11 +17284,10 @@ Each threshold value is defined by the parameter indicated next to the check. Dr
|
||||
- `8`: Vertical speed offset (EKF2_REQ_VDRIFT)
|
||||
- `9`: Spoofing
|
||||
- `10`: GPS fix type (EKF2_REQ_FIX)
|
||||
- `11`: Jamming
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------ | -------- | -------- | --------- | ------- | ---- |
|
||||
| | 0 | 4095 | | 2047 |
|
||||
| | 0 | 2047 | | 2047 |
|
||||
|
||||
### EKF2_GPS_CTRL (`INT32`) {#EKF2_GPS_CTRL}
|
||||
|
||||
@@ -20642,14 +20184,6 @@ Mode 6 is intended for use with a ground control station (not necessarily an RTK
|
||||
| ------- | -------- | -------- | --------- | ------- | ---- |
|
||||
| ✓ | 0 | 1 | | 0 |
|
||||
|
||||
### GPS_UBX_PPK (`INT32`) {#GPS_UBX_PPK}
|
||||
|
||||
Enable MSM7 message output for PPK workflow.
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------- | -------- | -------- | --------- | ------------ | ---- |
|
||||
| ✓ | | | | Disabled (0) |
|
||||
|
||||
### GPS_YAW_OFFSET (`FLOAT`) {#GPS_YAW_OFFSET}
|
||||
|
||||
Heading/Yaw offset for dual antenna GPS.
|
||||
@@ -39937,17 +39471,6 @@ uavcan::equipment::ahrs::MagneticFieldStrength2
|
||||
| ------- | -------- | -------- | --------- | ----------- | ---- |
|
||||
| ✓ | | | | Enabled (1) |
|
||||
|
||||
### UAVCAN_SUB_MBD (`INT32`) {#UAVCAN_SUB_MBD}
|
||||
|
||||
subscription MovingBaselineData.
|
||||
|
||||
Enable UAVCAN MovingBaselineData subscription.
|
||||
ardupilot::gnss::MovingBaselineData
|
||||
|
||||
| Reboot | minValue | maxValue | increment | default | unit |
|
||||
| ------- | -------- | -------- | --------- | ------------ | ---- |
|
||||
| ✓ | | | | Disabled (0) |
|
||||
|
||||
### UAVCAN_SUB_RNG (`INT32`) {#UAVCAN_SUB_RNG}
|
||||
|
||||
subscription range finder.
|
||||
|
||||
@@ -284,7 +284,7 @@ A particular vehicle might have more/fewer motors and actuators, but the wiring
|
||||
The following sections explain each part in more detail.
|
||||
|
||||
::: tip
|
||||
If you're using [DroneCAN ESC](../dronecan/escs.md) the control signals will be connected to the CAN BUS instead of the PWM outputs as shown.
|
||||
If you're using [DroneCAN ESC](../peripherals/esc_motors.md#dronecan) the control signals will be connected to the CAN BUS instead of the PWM outputs as shown.
|
||||
:::
|
||||
|
||||
### Flight Controller Power
|
||||
@@ -425,6 +425,7 @@ They recommend sensors, power systems, and other components from the same manufa
|
||||
- [Drone Components & Parts](../getting_started/px4_basic_concepts.md#drone-components-parts) (Basic Concepts)
|
||||
- [Payloads](../getting_started/px4_basic_concepts.md#payloads) (Basic Concepts)
|
||||
- [Hardware Selection & Setup](../hardware/drone_parts.md) — information about connecting and configuring specific flight controllers, sensors and other peripherals (e.g. airspeed sensor for planes).
|
||||
|
||||
- [Mounting the Flight Controller](../assembly/mount_and_orient_controller.md)
|
||||
- [Vibration Isolation](../assembly/vibration_isolation.md)
|
||||
- [Mounting a Compass](../assembly/mount_gps_compass.md)
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
# CAN (DroneCAN & Cyphal)
|
||||
# CAN
|
||||
|
||||
[Controller Area Network (CAN)](https://en.wikipedia.org/wiki/CAN_bus) is a robust wired network that allows drone components such as flight controller, ESCs, sensors, and other peripherals, to communicate with each other.
|
||||
|
||||
It is particularly recommended on larger vehicles.
|
||||
|
||||
## Overview
|
||||
|
||||
CAN it is designed to be democratic and uses differential signaling.
|
||||
For this reason it is very robust even over longer cable lengths (on large vehicles), and avoids a single point of failure.
|
||||
Because it is designed to be democratic and uses differential signaling, it is very robust even over longer cable lengths (on large vehicles), and avoids a single point of failure.
|
||||
CAN also allows status feedback from peripherals and convenient firmware upgrades over the bus.
|
||||
|
||||
PX4 has the ability to track and log detailed information from CAN devices, including firmware versions, hardware versions, and serial numbers.
|
||||
This enables unique identification and lifecycle tracking of hardware connected to the flight controller.
|
||||
See [Asset Tracking](../debug/asset_tracking.md) for more information.
|
||||
|
||||
PX4 supports two software protocols for communicating with CAN devices:
|
||||
|
||||
- [DroneCAN](../dronecan/index.md): PX4 recommends this for most common setups.
|
||||
@@ -28,35 +18,29 @@ In 2022 the project split into two: the original version of UAVCAN (UAVCAN v0) w
|
||||
The differences between the two protocols are outlined in [Cyphal vs. DroneCAN](https://forum.opencyphal.org/t/cyphal-vs-dronecan/1814).
|
||||
:::
|
||||
|
||||
:::warning
|
||||
PX4 does not support other CAN software protocols for drones such as KDECAN (at time of writing).
|
||||
:::
|
||||
|
||||
## Wiring
|
||||
|
||||
The wiring for CAN networks is the same for both DroneCAN and Cyphal/CAN (in fact, for all CAN networks).
|
||||
|
||||
Devices within a network are connected in a _daisy-chain_ in any order (this differs from UARTs peripherals, where you attach just one component per port).
|
||||
|
||||
:::warning Don't connect each CAN peripheral to a separate CAN port!
|
||||
Unlike UARTs, CAN peripherals are designed to be daisy chained, with additional ports such as `CAN2` used for [redundancy](redundancy).
|
||||
:::
|
||||
|
||||
Devices are connected in a chain in any order.
|
||||
At either end of the chain, a 120Ω termination resistor should be connected between the two data lines.
|
||||
Flight controllers and some GNSS modules have built in termination resistors for convenience, thus should be placed at opposite ends of the chain.
|
||||
Otherwise, you can use a termination resistor such as [this one from Zubax Robotics](https://shop.zubax.com/products/uavcan-micro-termination-plug?variant=6007985111069), or solder one yourself if you have access to a JST-GH crimper.
|
||||
|
||||
The following diagram shows an example of a CAN bus connecting a flight controller to 4 CAN ESCs and a GNSS.
|
||||
It includes a redundant bus connected to `CAN 2`.
|
||||
|
||||

|
||||
|
||||
The diagram does not show any power wiring.
|
||||
Refer to your manufacturer instructions to confirm whether components require separate power or can be powered from the CAN bus itself.
|
||||
|
||||
::: info
|
||||
For more information, see [Cyphal/CAN device interconnection](https://wiki.zubax.com/public/cyphal/CyphalCAN-device-interconnection?pageId=2195476) (kb.zubax.com).
|
||||
While the article is written with the Cyphal protocol in mind, it applies equally to DroneCAN hardware and any other CAN setup.
|
||||
For more advanced scenarios, consult with [On CAN bus topology and termination](https://forum.opencyphal.org/t/on-can-bus-topology-and-termination/1685).
|
||||
:::
|
||||
|
||||
### Connectors
|
||||
|
||||
@@ -70,30 +54,7 @@ However, as long as the device firmware supports DroneCAN or Cyphal, it can be u
|
||||
|
||||
DroneCAN and Cyphal/CAN support using a second (redundant) CAN interface.
|
||||
This is completely optional but increases the robustness of the connection.
|
||||
|
||||
Pixhawk flight controllers come with 2 CAN interfaces; if your peripherals support 2 CAN interfaces as well, it is recommended to wire both up for increased safety.
|
||||
|
||||
### Flight Controllers with Multiple CAN Ports
|
||||
|
||||
[Flight Controllers](../flight_controller/index.md) may have up to three independent CAN ports, such as `CAN1`, `CAN2`, `CAN3` (neither DroneCAN or Cyphal support more than three).
|
||||
Note that you can't have both DroneCAN and Cyphal running on PX4 at the same time.
|
||||
|
||||
::: tip
|
||||
You only _need_ one CAN port to support an arbitrary number of CAN devices using a particular CAN protocol.
|
||||
Don't connect each CAN peripheral to a separate CAN port!
|
||||
:::
|
||||
|
||||
Generally you'll daisy all CAN peripherals off a single port, and if there is more than one CAN port, use the second one for [redundancy](redundancy).
|
||||
If three are three ports, you might use the remaining network for devices that support another CAN protocol.
|
||||
|
||||
The documentation for your flight controller should indicate which ports are supported/enabled.
|
||||
At runtime you can check what DroneCAN ports are enabled and their status using the following command on the [MAVLink Shell](../debug/mavlink_shell.md) (or some other console):
|
||||
|
||||
```sh
|
||||
uavcan status
|
||||
```
|
||||
|
||||
Note that you can also check the number of supported CAN interfaces for a board by searching for `CONFIG_BOARD_UAVCAN_INTERFACES` in its [default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6xrt/default.px4board#) configuration file.
|
||||
All Pixhawk flight controllers come with 2 CAN interfaces; if your peripherals support 2 CAN interfaces as well, it is recommended to wire both up for increased safety.
|
||||
|
||||
## Firmware
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ If you have [mounted the compass](../assembly/mount_gps_compass.md#compass-orien
|
||||
|
||||
## Overview
|
||||
|
||||
You will need to calibrate your compass(es) when you first setup your vehicle, and you may need to [recalibrate](#recalibration) it if the vehicles is ever exposed to a very strong magnetic field, or if it is used in an area with abnormal magnetic characteristics.
|
||||
You will need to calibrate your compass(es) when you first setup your vehicle, and you may need to recalibrate it if the vehicles is ever exposed to a very strong magnetic field, or if it is used in an area with abnormal magnetic characteristics.
|
||||
|
||||
:::tip
|
||||
Indications of a poor compass calibration include multicopter circling during hover, toilet bowling (circling at increasing radius/spiraling-out, usually constant altitude, leading to fly-way), or veering off-path when attempting to fly straight.
|
||||
@@ -20,16 +20,13 @@ _QGroundControl_ should also notify the error `mag sensors inconsistent`.
|
||||
The process calibrates all compasses and autodetects the orientation of any external compasses.
|
||||
If any external magnetometers are available, it then disables the internal magnetometers (these are primarily needed for automatic rotation detection of external magnetometers).
|
||||
|
||||
### Types of Calibration
|
||||
|
||||
Several types of compass calibration are available:
|
||||
|
||||
1. [Complete](#complete-calibration): This calibration is required after installing the autopilot on an airframe for the first time or when the configuration of the vehicle has changed significantly.
|
||||
It compensates for hard and soft iron effects by estimating an offset and a scale factor for each axis.
|
||||
1. [Partial](#partial-quick-calibration): This calibration can be performed as a routine when preparing the vehicle for a flight, after changing the payload, or simply when the compass rose seems inaccurate.
|
||||
This type of calibration only estimates the offsets to compensate for a hard iron effect.
|
||||
1. [Large vehicle](#large-vehicle-calibration): This calibration can be performed when the vehicle is too large or heavy to perform a complete calibration.
|
||||
This type of calibration only estimates the offsets to compensate for a hard iron effect.
|
||||
1. [Large vehicle](#large-vehicle-calibration): This calibration can be performed when the vehicle is too large or heavy to perform a complete calibration. This type of calibration only estimates the offsets to compensate for a hard iron effect.
|
||||
|
||||
## Performing the Calibration
|
||||
|
||||
@@ -51,27 +48,23 @@ Before starting the calibration:
|
||||
The calibration steps are:
|
||||
|
||||
1. Start _QGroundControl_ and connect the vehicle.
|
||||
2. Select **"Q" icon > Vehicle Setup > Sensors** (sidebar) to open _Sensor Setup_.
|
||||
3. Click the **Compass** sensor button.
|
||||
1. Select **"Q" icon > Vehicle Setup > Sensors** (sidebar) to open _Sensor Setup_.
|
||||
1. Click the **Compass** sensor button.
|
||||
|
||||

|
||||
|
||||
::: info
|
||||
You should already have set the [Autopilot Orientation](../config/flight_controller_orientation.md).
|
||||
If not, you can also set it here.
|
||||
You should already have set the [Autopilot Orientation](../config/flight_controller_orientation.md). If not, you can also set it here.
|
||||
:::
|
||||
|
||||
4. Click **OK** to start the calibration.
|
||||
5. Place the vehicle in any of the orientations shown in red (incomplete) and hold it still.
|
||||
Once prompted (the orientation-image turns yellow) rotate the vehicle around the specified axis in either/both directions.
|
||||
Once the calibration is complete for the current orientation the associated image on the screen will turn green.
|
||||
1. Click **OK** to start the calibration.
|
||||
1. Place the vehicle in any of the orientations shown in red (incomplete) and hold it still. Once prompted (the orientation-image turns yellow) rotate the vehicle around the specified axis in either/both directions. Once the calibration is complete for the current orientation the associated image on the screen will turn green.
|
||||
|
||||

|
||||
|
||||
6. Repeat the calibration process for all vehicle orientations.
|
||||
1. Repeat the calibration process for all vehicle orientations.
|
||||
|
||||
Once you've calibrated the vehicle in all the positions _QGroundControl_ will display _Calibration complete_ (all orientation images will be displayed in green and the progress bar will fill completely).
|
||||
You can then proceed to the next sensor.
|
||||
Once you've calibrated the vehicle in all the positions _QGroundControl_ will display _Calibration complete_ (all orientation images will be displayed in green and the progress bar will fill completely). You can then proceed to the next sensor.
|
||||
|
||||
### Partial "Quick" Calibration
|
||||
|
||||
@@ -94,8 +87,7 @@ Notes:
|
||||
|
||||
This calibration process leverages external knowledge of vehicle's orientation and location, and a World Magnetic Model (WMM) to calibrate the hard iron biases.
|
||||
|
||||
1. Ensure GNSS Fix.
|
||||
This is required to find the expected Earth magnetic field in WMM tables.
|
||||
1. Ensure GNSS Fix. This is required to find the expected Earth magnetic field in WMM tables.
|
||||
2. Align the vehicle to face True North.
|
||||
Be as accurate as possible for best results.
|
||||
3. Open the [QGroundControl MAVLink Console](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/analyze_view/mavlink_console.html) and send the following command:
|
||||
@@ -115,30 +107,6 @@ Notes:
|
||||
|
||||
After the calibration is complete, check that the heading indicator and the heading of the arrow on the map are stable and match the orientation of the vehicle when turning it e.g. to the cardinal directions.
|
||||
|
||||
## Recalibration
|
||||
|
||||
Recalibration is recommended whenever the magnetic environment of the vehicle has changed or when heading behavior appears unreliable.
|
||||
|
||||
You can use either complete calibration or mag quick calibration depending on the size of the vehicle and your ability to rotate it through the required orientations.
|
||||
Complete calibration provides the most accurate soft-iron compensation.
|
||||
|
||||
Recalibrate the compass when:
|
||||
|
||||
- _The compass module or its mounting orientation has changed._
|
||||
This includes replacing the GPS or mag unit, rotating the mast, or altering how the module is fixed to the airframe.
|
||||
- _The vehicle has been exposed to a strong magnetic disturbance._
|
||||
Examples include transport or storage near large steel structures, welding operations near the airframe, or operation close to high-current equipment.
|
||||
- _Structural, wiring, or payload changes may have altered the magnetic field around the sensors._
|
||||
New payloads, rerouted wires, additional batteries, or metal fasteners can introduce soft-iron effects that affect heading accuracy.
|
||||
- _The vehicle is operated in a region with significantly different magnetic characteristics._
|
||||
Large changes in latitude, longitude, or magnetic inclination can require re-estimation of offsets.
|
||||
- _QGroundControl reports magnetometer inconsistencies_.
|
||||
For example, if you see the error `mag sensors inconsistent`.
|
||||
- _Heading behavior does not match the vehicle’s observed orientation._
|
||||
Symptoms include drifting yaw, sudden heading jumps when attempting to fly straight, and toilet bowling
|
||||
- _QGroundControl_ sends the error `mag sensors inconsistent`.
|
||||
This indicates that multiple magnetometers are reporting different headings.
|
||||
|
||||
## Additional Calibration/Configuration
|
||||
|
||||
The process above will autodetect, [set default rotations](../advanced_config/parameter_reference.md#SENS_MAG_AUTOROT), calibrate, and prioritise, all available magnetometers.
|
||||
|
||||
@@ -77,18 +77,13 @@ Follow these steps:
|
||||
|
||||
1. **Set an Initial Scale**
|
||||
|
||||
Set the CAS scale (`ASPD_SCALE_n`) to 1.0 (the default value).
|
||||
When the scale is at exactly 1.0, PX4 automatically accelerates the learning process during the first 5 minutes of flight, allowing faster convergence to the correct scale value.
|
||||
Use a conservative starting point: set the CAS scale (`ASPD_SCALE_n`) slightly under 1.0 (for example 0.95).
|
||||
This biases the system toward over-speed rather than under-speed, reducing stall risk.
|
||||
|
||||
2. **Perform a Flight**
|
||||
|
||||
After takeoff, place the vehicle in loiter for about 15 minutes to allow the scale estimation to converge.
|
||||
|
||||
::: tip
|
||||
Flying in circles (loiter/hold mode) is important as the scale-validation algorithm requires the aircraft to pass through multiple heading segments (12 segments covering all compass directions).
|
||||
If these heading segments aren’t completed, PX4 cannot validate the estimated scale.
|
||||
:::
|
||||
|
||||
3. **Check Scale Convergence**
|
||||
|
||||
After the flight, review the estimated scale in logs.
|
||||
|
||||
@@ -70,7 +70,7 @@ Airframes with more than two frequency noise spikes typically clean the first tw
|
||||
Dynamic notch filters use ESC RPM feedback and/or the onboard FFT analysis.
|
||||
The ESC RPM feedback is used to track the rotor blade pass frequency and its harmonics, while the FFT analysis can be used to track a frequency of another vibration source, such as a fuel engine.
|
||||
|
||||
ESC RPM feedback requires ESCs capable of providing RPM feedback such as [DShot](../peripherals/dshot.md) with telemetry connected, a bidirectional DShot set up ([work in progress](https://github.com/PX4/PX4-Autopilot/pull/23863)), or [UAVCAN/DroneCAN ESCs](../dronecan/escs.md).
|
||||
ESC RPM feedback requires ESCs capable of providing RPM feedback such as [DShot](../peripherals/esc_motors.md#dshot) with telemetry connected, a bidirectional DShot set up ([work in progress](https://github.com/PX4/PX4-Autopilot/pull/23863)), or [UAVCAN/DroneCAN ESCs](../dronecan/escs.md).
|
||||
Before enabling, make sure that the ESC RPM is correct.
|
||||
You might have to adjust the [pole count of the motors](../advanced_config/parameter_reference.md#MOT_POLE_COUNT).
|
||||
|
||||
@@ -92,10 +92,10 @@ To reduce the control latency, we want to increase the cutoff frequency for the
|
||||
The effect on latency of increasing `IMU_GYRO_CUTOFF` is approximated below.
|
||||
|
||||
| Cutoff (Hz) | Delay approx. (ms) |
|
||||
| ----------- | ------------------ |
|
||||
| 30 | 8 |
|
||||
| 60 | 3.8 |
|
||||
| 120 | 1.9 |
|
||||
| ------------ | ------------------ |
|
||||
| 30 | 8 |
|
||||
| 60 | 3.8 |
|
||||
| 120 | 1.9 |
|
||||
|
||||
However this is a trade-off as increasing `IMU_GYRO_CUTOFF` will also increase the noise of the signal that is fed to the motors.
|
||||
Noise on the motors has the following consequences:
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
# Asset Tracking
|
||||
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.18)" />
|
||||
|
||||
PX4 can track and log detailed information about external hardware devices connected to the flight controller.
|
||||
This enables unique identification of vehicle parts throughout their operational lifetime using device IDs, serial numbers, and version information.
|
||||
|
||||
::: info
|
||||
Asset tracking is currently implemented for [DroneCAN](../dronecan/index.md) devices only.
|
||||
:::
|
||||
|
||||
## Overview
|
||||
|
||||
Asset tracking allows you to determine exactly which hardware is installed on a vehicle, providing serial number, version, and other information.
|
||||
This makes it easier to track and maintain specific vehicle parts across multiple vehicles, to quickly see what versions you're running when debugging, and log component information for regulatory audits.
|
||||
|
||||
Asset tracking automatically collects and logs the following metadata from external devices:
|
||||
|
||||
- **Device identification**: Vendor name, model name, device type
|
||||
- **Version information**: Firmware version, hardware version
|
||||
- **Unique identifiers**: Serial number, device ID
|
||||
- **Device capabilities**: ESC, GPS, magnetometer, barometer, etc.
|
||||
|
||||
This information is published via the [`device_information`](../msg_docs/DeviceInformation.md) uORB topic and logged to flight logs.
|
||||
This enables fleet management, maintenance tracking, and troubleshooting.
|
||||
|
||||
## Viewing Device Information
|
||||
|
||||
### Real-Time Monitoring
|
||||
|
||||
You can view device information in real-time using the [MAVLink Shell](../debug/mavlink_shell.md) or console:
|
||||
|
||||
```sh
|
||||
listener device_information
|
||||
```
|
||||
|
||||
Example output for a CAN GPS module:
|
||||
|
||||
```plain
|
||||
TOPIC: device_information
|
||||
device_information
|
||||
timestamp: 16258961403 (0.216525 seconds ago)
|
||||
device_id: 8944643 (Type: 0x88, UAVCAN:0 (0x7C))
|
||||
device_type: 5
|
||||
vendor_name: "cubepilot"
|
||||
model_name: "here4"
|
||||
firmware_version: "1.14.3006590"
|
||||
hardware_version: "4.19"
|
||||
serial_number: "1c00410018513331"
|
||||
```
|
||||
|
||||
Device information is published in a round-robin fashion for each detected device, at a rate of approximately 1 Hz.
|
||||
|
||||
### Multi-Capability Devices
|
||||
|
||||
Devices with multiple sensors (e.g., a CAN GPS/magnetometer combo module like the HERE4) register separate device information entries for each capability.
|
||||
Each entry shares the same serial number and base metadata but has a different `device_id` corresponding to the specific sensor capability.
|
||||
|
||||
## Flight Log Analysis
|
||||
|
||||
Device information is automatically logged to flight logs.
|
||||
You can extract it using [pyulog](../log/flight_log_analysis.md#pyulog), though note that fields like vendor name, model name, and serial number are stored as `char` arrays and require additional parsing.
|
||||
|
||||
## See Also
|
||||
|
||||
- [CAN (DroneCAN & Cyphal)](../can/index.md) — CAN bus configuration and setup
|
||||
- [DroneCAN](../dronecan/index.md) — DroneCAN-specific documentation
|
||||
- [Flight Log Analysis](../log/flight_log_analysis.md) — Flight log analysis
|
||||
@@ -95,7 +95,6 @@ Set the following parameters in _QGroundControl_:
|
||||
- To optionally disable GPS aiding, set [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to `0`.
|
||||
- Enable [UAVCAN_SUB_FLOW](../advanced_config/parameter_reference.md#UAVCAN_SUB_FLOW).
|
||||
- Enable [UAVCAN_SUB_RNG](../advanced_config/parameter_reference.md#UAVCAN_SUB_RNG).
|
||||
- Set [EKF2_RNG_CTRL](../advanced_config/parameter_reference.md#EKF2_RNG_CTRL) to `1`.
|
||||
- Set [EKF2_RNG_A_HMAX](../advanced_config/parameter_reference.md#EKF2_RNG_A_HMAX) to `10`.
|
||||
- Set [EKF2_RNG_QLTY_T](../advanced_config/parameter_reference.md#EKF2_RNG_QLTY_T) to `0.2`.
|
||||
- Set [UAVCAN_RNG_MIN](../advanced_config/parameter_reference.md#UAVCAN_RNG_MIN) to `0.08`.
|
||||
|
||||
@@ -92,7 +92,6 @@ Set the following parameters in _QGroundControl_:
|
||||
- To optionally disable GPS aiding, set [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to `0`.
|
||||
- Enable [UAVCAN_SUB_FLOW](../advanced_config/parameter_reference.md#UAVCAN_SUB_FLOW).
|
||||
- Enable [UAVCAN_SUB_RNG](../advanced_config/parameter_reference.md#UAVCAN_SUB_RNG).
|
||||
- Set [EKF2_RNG_CTRL](../advanced_config/parameter_reference.md#EKF2_RNG_CTRL) to `1`.
|
||||
- Set [EKF2_RNG_A_HMAX](../advanced_config/parameter_reference.md#EKF2_RNG_A_HMAX) to `10`.
|
||||
- Set [EKF2_RNG_QLTY_T](../advanced_config/parameter_reference.md#EKF2_RNG_QLTY_T) to `0.2`.
|
||||
- Set [UAVCAN_RNG_MIN](../advanced_config/parameter_reference.md#UAVCAN_RNG_MIN) to `0.08`.
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
# ARK G5 RTK GPS
|
||||
|
||||
::: info
|
||||
This GPS module is made in the USA and NDAA compliant.
|
||||
:::
|
||||
|
||||
[ARK G5 RTK GPS](https://arkelectron.com/product/ark-g5-rtk-gps/) is a [DroneCAN](index.md) quad-band [RTK GPS](../gps_compass/rtk_gps.md).
|
||||
|
||||
The module incorporates the [Septentrio mosaic-G5 P3 Ultra-compact high-precision GPS/GNSS receiver module](https://www.u-blox.com/en/product/zed-x20p-module), magnetometer, barometer, IMU, and buzzer module.
|
||||
|
||||

|
||||
|
||||
## Where to Buy
|
||||
|
||||
Order this module from:
|
||||
|
||||
- [ARK Electronics](https://arkelectron.com/product/ark-g5-rtk-gps/) (US)
|
||||
|
||||
## Hardware Specifications
|
||||
|
||||
- [DroneCAN](index.md) RTK GNSS, Magnetometer, Barometer, IMU, and Buzzer Module
|
||||
- [Dronecan Firmware Updating](../dronecan/index.md#firmware-update)
|
||||
- Sensors
|
||||
- [Septentrio mosaic-G5 P3 Ultra-compact high-precision GPS/GNSS receiver module](https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3)
|
||||
- All-band all constellation GNSS receiver
|
||||
- All-in-view satellite tracking: multi-constellation, quad-band GNSS module receiver
|
||||
- Full raw data with positioning measurements and Galileo HAS positioning service compatibility
|
||||
- Best-in-class RTK cm-level positioning accuracy
|
||||
- Advanced GNSS+ algorithms
|
||||
- 20Hz update rate
|
||||
- [ST IIS2MDC Magnetometer](https://www.st.com/en/mems-and-sensors/iis2mdc.html)
|
||||
- [Bosch BMP390 Barometer](https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp390/)
|
||||
- [Invensense ICM-42688-P 6-Axis IMU](https://invensense.tdk.com/products/motion-tracking/6-axis/icm-42688-p/)
|
||||
- STM32F412VGH6 MCU
|
||||
- Safety Button
|
||||
- Buzzer
|
||||
- Two CAN Connectors (Pixhawk Connector Standard 4-pin JST GH)
|
||||
- G5 "UART 2" Connector
|
||||
- 4-pin JST GH
|
||||
- TX, RX, PPS, GND
|
||||
- G5 USB C
|
||||
- Debug Connector (Pixhawk Connector Standard 6-pin JST SH)
|
||||
- LED Indicators
|
||||
- GPS Fix
|
||||
- RTK Status
|
||||
- RGB system status
|
||||
- USA Built
|
||||
- NDAA Compliant
|
||||
- Power Requirements
|
||||
- 5V
|
||||
- 270mA
|
||||
- Dimensions
|
||||
- Without Antenna
|
||||
- 48.0mm x 40.0mm x 15.4mm
|
||||
- 13.0g
|
||||
- With Antenna
|
||||
- 48.0mm x 40.0mm x 51.0mm
|
||||
- 43.5g
|
||||
- Includes
|
||||
- CAN Cable (Pixhawk Connector Standard 4-pin)
|
||||
- Full-Frequency Helical GPS Antenna
|
||||
|
||||
## Hardware Setup
|
||||
|
||||
### Wiring
|
||||
|
||||
The ARK G5 RTK GPS is connected to the CAN bus using a [Pixhawk connector standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) 4-pin JST GH cable.
|
||||
For more information, refer to the [CAN Wiring](../can/index.md#wiring) instructions.
|
||||
|
||||
### Mounting
|
||||
|
||||
The recommended mounting orientation is with the connectors on the board pointing towards the **back of vehicle**.
|
||||
|
||||
The sensor can be mounted anywhere on the frame, but you will need to specify its position, relative to vehicle centre of gravity, during [PX4 Configuration](#px4-configuration).
|
||||
|
||||
## Firmware Setup
|
||||
|
||||
The Septentrio G5 module firmware can be updated using the Septentrio [RxTools](https://www.septentrio.com/en/products/gps-gnss-receiver-software/rxtools) application.
|
||||
|
||||
## Flight Controller Setup
|
||||
|
||||
### Enabling DroneCAN
|
||||
|
||||
In order to use the ARK G5 RTK GPS, connect it to the Pixhawk CAN bus and enable the DroneCAN driver by setting parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` for dynamic node allocation (or `3` if using [DroneCAN ESCs](../dronecan/escs.md)).
|
||||
|
||||
The steps are:
|
||||
|
||||
- In _QGroundControl_ set the parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` or `3` and reboot (see [Finding/Updating Parameters](../advanced_config/parameters.md)).
|
||||
- Connect ARK G5 RTK GPS CAN to the Pixhawk CAN.
|
||||
|
||||
Once enabled, the module will be detected on boot.
|
||||
|
||||
There is also CAN built-in bus termination via [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM)
|
||||
|
||||
### PX4 Configuration
|
||||
|
||||
You need to set necessary [DroneCAN](index.md) parameters and define offsets if the sensor is not centred within the vehicle:
|
||||
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK GPS from the vehicle's centre of gravity.
|
||||
|
||||
## LED Meanings
|
||||
|
||||
The GPS status lights are located to the right of the connectors:
|
||||
|
||||
- Blinking green is GPS fix
|
||||
- Blinking blue is received corrections and RTK Float
|
||||
- Solid blue is RTK Fixed
|
||||
|
||||
## See Also
|
||||
|
||||
- [ARK G5 RTK GPS Documentation](https://docs.arkelectron.com/gps/ark-g5-rtk-gps) (ARK Docs)
|
||||
@@ -1,150 +0,0 @@
|
||||
# ARK G5 RTK HEADING GPS
|
||||
|
||||
::: info
|
||||
This GPS module is made in the USA and NDAA compliant.
|
||||
:::
|
||||
|
||||
[ARK G5 RTK HEADING GPS](https://arkelectron.com/product/ark-g5-rtk-gps/) is a [DroneCAN](index.md) quad-band dual antenna [RTK GPS](../gps_compass/rtk_gps.md) that additionally provides vehicle yaw information from GPS.
|
||||
|
||||
The module incorporates the [Septentrio mosaic-G5 P3H Ultra-compact high-precision GPS/GNSS receiver module with heading capability](https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3H), magnetometer, barometer, IMU, and buzzer module.
|
||||
|
||||

|
||||
|
||||
## Where to Buy
|
||||
|
||||
Order this module from:
|
||||
|
||||
- [ARK Electronics](https://arkelectron.com/product/ark-g5-rtk-heading-gps/) (US)
|
||||
|
||||
## Hardware Specifications
|
||||
|
||||
- [DroneCAN](index.md) RTK GNSS, Magnetometer, Barometer, IMU, and Buzzer Module
|
||||
- [Dronecan Firmware Updating](../dronecan/index.md#firmware-update)
|
||||
- Sensors
|
||||
- [Septentrio mosaic-G5 P3H Ultra-compact high-precision GPS/GNSS receiver module with heading capability](https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3H)
|
||||
- All-band all constellation GNSS receiver
|
||||
- All-in-view satellite tracking: multi-constellation, quad-band GNSS module receiver
|
||||
- Full raw data with positioning measurements and Galileo HAS positioning service compatibility
|
||||
- Best-in-class RTK cm-level positioning accuracy
|
||||
- Advanced GNSS+ algorithms
|
||||
- 20Hz update rate
|
||||
- [ST IIS2MDC Magnetometer](https://www.st.com/en/mems-and-sensors/iis2mdc.html)
|
||||
- [Bosch BMP390 Barometer](https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/bmp390/)
|
||||
- [Invensense ICM-42688-P 6-Axis IMU](https://invensense.tdk.com/products/motion-tracking/6-axis/icm-42688-p/)
|
||||
- STM32F412VGH6 MCU
|
||||
- Safety Button
|
||||
- Buzzer
|
||||
- Two CAN Connectors (Pixhawk Connector Standard 4-pin JST GH)
|
||||
- G5 "UART 2" Connector
|
||||
- 4-pin JST GH
|
||||
- TX, RX, PPS, GND
|
||||
- G5 USB C
|
||||
- Debug Connector (Pixhawk Connector Standard 6-pin JST SH)
|
||||
- LED Indicators
|
||||
- GPS Fix
|
||||
- RTK Status
|
||||
- RGB system status
|
||||
- USA Built
|
||||
- NDAA Compliant
|
||||
- Power Requirements
|
||||
- 5V
|
||||
- 270mA
|
||||
- Dimensions
|
||||
- Without Antenna
|
||||
- 48.0mm x 40.0mm x 15.4mm
|
||||
- 13.0g
|
||||
- With Antenna
|
||||
- 48.0mm x 40.0mm x 51.0mm
|
||||
- 43.5g
|
||||
- Includes
|
||||
- CAN Cable (Pixhawk Connector Standard 4-pin)
|
||||
- Full-Frequency Helical GPS Antenna
|
||||
|
||||
## Hardware Setup
|
||||
|
||||
### Wiring
|
||||
|
||||
The ARK G5 RTK HEADING GPS is connected to the CAN bus using a [Pixhawk connector standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) 4-pin JST GH cable.
|
||||
For more information, refer to the [CAN Wiring](../can/index.md#wiring) instructions.
|
||||
|
||||
### Mounting
|
||||
|
||||
The recommended mounting orientation is with the connectors on the board pointing towards the **back of vehicle**.
|
||||
|
||||
The sensor can be mounted anywhere on the frame, but you will need to specify its position, relative to vehicle centre of gravity, during [PX4 configuration](#px4-configuration).
|
||||
|
||||
## Firmware Setup
|
||||
|
||||
The Septentrio G5 module firmware can be updated using the Septentrio [RxTools](https://www.septentrio.com/en/products/gps-gnss-receiver-software/rxtools) application.
|
||||
|
||||
## Flight Controller Setup
|
||||
|
||||
### Enabling DroneCAN
|
||||
|
||||
In order to use the ARK G5 RTK HEADING GPS, connect it to the Pixhawk CAN bus and enable the DroneCAN driver by setting parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` for dynamic node allocation (or `3` if using [DroneCAN ESCs](../dronecan/escs.md)).
|
||||
|
||||
The steps are:
|
||||
|
||||
- In _QGroundControl_ set the parameter [UAVCAN_ENABLE](../advanced_config/parameter_reference.md#UAVCAN_ENABLE) to `2` or `3` and reboot (see [Finding/Updating Parameters](../advanced_config/parameters.md)).
|
||||
- Connect ARK G5 RTK HEADING GPS CAN to the Pixhawk CAN.
|
||||
|
||||
Once enabled, the module will be detected on boot.
|
||||
|
||||
There is also CAN built-in bus termination via [CANNODE_TERM](../advanced_config/parameter_reference.md#CANNODE_TERM)
|
||||
|
||||
### PX4 Configuration
|
||||
|
||||
You need to set necessary [DroneCAN](index.md) parameters and define offsets if the sensor is not centred within the vehicle:
|
||||
|
||||
- Enable GPS yaw fusion by setting bit 3 of [EKF2_GPS_CTRL](../advanced_config/parameter_reference.md#EKF2_GPS_CTRL) to true.
|
||||
- Enable GPS blending to ensure the heading is always published by setting [SENS_GPS_MASK](../advanced_config/parameter_reference.md#SENS_GPS_MASK) to 7 (all three bits checked).
|
||||
- Enable [UAVCAN_SUB_GPS](../advanced_config/parameter_reference.md#UAVCAN_SUB_GPS), [UAVCAN_SUB_MAG](../advanced_config/parameter_reference.md#UAVCAN_SUB_MAG), and [UAVCAN_SUB_BARO](../advanced_config/parameter_reference.md#UAVCAN_SUB_BARO).
|
||||
- The parameters [EKF2_GPS_POS_X](../advanced_config/parameter_reference.md#EKF2_GPS_POS_X), [EKF2_GPS_POS_Y](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Y) and [EKF2_GPS_POS_Z](../advanced_config/parameter_reference.md#EKF2_GPS_POS_Z) can be set to account for the offset of the ARK G5 RTK HEADING GPS from the vehicle's centre of gravity.
|
||||
|
||||
### Parameter references
|
||||
|
||||
This GPS is using ARK's private driver, the prameters below only exist on the firmware we ship the GPS with. You can set these params either in QGC or using the DroneCAN GUI Tool.
|
||||
|
||||
#### SEP_OFFS_YAW (float)
|
||||
|
||||
Heading offset angle for dual antenna GPS setups that support heading estimation.
|
||||
Set this to 0 if the antennas are parallel to the forward-facing direction of the vehicle and the Rover/ANT2 antenna is in front.
|
||||
The offset angle increases clockwise.
|
||||
Set this to 90 if the ANT2 antenna is placed on the right side of the vehicle and the Moving Base/MAIN antenna is on the left side.
|
||||
|
||||
- Default: 0
|
||||
- Min: -360
|
||||
- Max: 360
|
||||
- Unit: degree
|
||||
|
||||
#### SEP_OFFS_PITCH (float)
|
||||
|
||||
Vertical offsets can be compensated for by adjusting the Pitch offset.
|
||||
Note that this can be interpreted as the "roll" angle in case the antennas are aligned along the perpendicular axis. This occurs in situations where the two antenna ARPs may not be exactly at the same height in the vehicle reference frame. Since pitch is defined as the right-handed rotation about the vehicle Y axis, a situation where the main antenna is mounted lower than the aux antenna (assuming the default antenna setup) will result in a positive pitch.
|
||||
|
||||
- Default: 0
|
||||
- Min: -90
|
||||
- Max: 90
|
||||
- Unit: degree
|
||||
|
||||
#### SEP_OUT_RATE (enum)
|
||||
|
||||
Configures the output rate for GNSS data messages.
|
||||
|
||||
- -1: OnChange (Default)
|
||||
- 50: 50 ms
|
||||
- 100: 100 ms
|
||||
- 200: 200 ms
|
||||
- 500: 500 ms
|
||||
|
||||
## LED Meanings
|
||||
|
||||
The GPS status lights are located to the right of the connectors:
|
||||
|
||||
- Blinking green is GPS fix
|
||||
- Blinking blue is received corrections and RTK Float
|
||||
- Solid blue is RTK Fixed
|
||||
|
||||
## See Also
|
||||
|
||||
- [ARK G5 RTK HEADING GPS Documentation](https://docs.arkelectron.com/gps/ark-g5-rtk-gps) (ARK Docs)
|
||||
@@ -1,14 +1,7 @@
|
||||
# DroneCAN ESCs
|
||||
|
||||
PX4 supports DroneCAN compliant ESCs.
|
||||
|
||||
## Supported ESC
|
||||
|
||||
:::info
|
||||
[Supported ESCs](../peripherals/esc_motors#supported-esc) in _ESCs & Motors_ may include additional devices that are not listed below.
|
||||
:::
|
||||
|
||||
The following articles have specific hardware/firmware information:
|
||||
For more information, see the following articles for specific hardware/firmware:
|
||||
|
||||
- [PX4 Sapog ESC Firmware](sapog.md)
|
||||
- [Holybro Kotleta 20](holybro_kotleta.md)
|
||||
|
||||
@@ -27,8 +27,6 @@ Connecting peripherals over DroneCAN has many benefits:
|
||||
- Wiring is less complicated as you can have a single bus for connecting all your ESCs and other DroneCAN peripherals.
|
||||
- Setup is easier as you configure ESC numbering by manually spinning each motor.
|
||||
- It allows users to configure and update the firmware of all CAN-connected devices centrally through PX4.
|
||||
- PX4 automatically tracks device information (vendor, model, versions, serial numbers) for maintenance and fleet management.
|
||||
See [Asset Tracking](../debug/asset_tracking.md).
|
||||
|
||||
## Supported Hardware
|
||||
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
# ARK 4IN1 ESC (with/without Connectors)
|
||||
|
||||
4 in 1 Electronic Speed Controller (ESC) that is made in the USA, NDAA compliant, and DIU Blue Framework listed.
|
||||
|
||||
The ESC comes in variants without connectors that you can solder in place, and a variant that has built-in motor and battery connectors (no soldering required).
|
||||
|
||||

|
||||
|
||||
## Where to Buy
|
||||
|
||||
Order this module from:
|
||||
|
||||
- [4IN1 ESC (with connectors)](https://arkelectron.com/product/ark-4in1-esc/) (ARK Electronics - US)
|
||||
- [ARK Electronics (without connectors)](https://arkelectron.com/product/ark-4in1-esc-cons/) (ARK Electronics US)
|
||||
|
||||
## Hardware Specifications
|
||||
|
||||
- Battery Voltage: 3-8s
|
||||
- 6V Minimum
|
||||
- 65V Absolute Maximum
|
||||
- Current Rating: 50A Continuous, 75A Burst Per Motor
|
||||
- [STM32F0](https://www.st.com/en/microcontrollers-microprocessors/stm32f0-series.html)
|
||||
- [AM32 Firmware](https://github.com/am32-firmware/AM32/pull/27)
|
||||
- Onboard Current Sensor, Serial Telemetry
|
||||
- 100V/A
|
||||
- Input Protocols
|
||||
- DShot (300, 600)
|
||||
- Bi-directional DShot
|
||||
- KISS Serial Telemetry
|
||||
- PWM
|
||||
- 8 Pin JST-SH Input/Output
|
||||
- 10 Pin JST-SH Debug
|
||||
|
||||
- Motor & Battery Connectors (with-connector version)
|
||||
|
||||
- MR30 Connector Limit Per Motor: 30A Continuous, 40A Burst
|
||||
- Four MR30 Motor Connectors
|
||||
|
||||
- Dimensions (with connectors)
|
||||
|
||||
- Size: 77.00mm x 42.00mm x 9.43mm
|
||||
- Mounting Pattern: 30.5mm
|
||||
- Weight: 24g
|
||||
|
||||
- Dimensions (without connectors)
|
||||
- Size: 43.00mm x 40.50mm x 7.60mm
|
||||
- Mounting Pattern: 30.5mm
|
||||
- Weight: 14.5g
|
||||
|
||||
Other
|
||||
|
||||
- Made in the USA
|
||||
- Open source AM32 firmware
|
||||
- [DIU Blue Framework Listed](https://www.diu.mil/blue-uas/framework)
|
||||
|
||||
## See Also
|
||||
|
||||
- [ARK 4IN1 ESC CONS](https://docs.arkelectron.com/electronic-speed-controller/ark-4in1-esc) (ARK Docs)
|
||||
@@ -1,66 +0,0 @@
|
||||
# ESC Protocols
|
||||
|
||||
This topic lists the main [Electronic Speed Controller (ESC)](../peripherals/esc_motors.md) protocols supported by PX4.
|
||||
|
||||
## DShot
|
||||
|
||||
[DShot](../peripherals/dshot.md) is a digital ESC protocol that is highly recommended for vehicles that can benefit from reduced latency, in particular racing multicopters, VTOL vehicles, and so on.
|
||||
|
||||
It has reduced latency and is more robust than both [PWM](#pwm) and [OneShot](#oneshot-125).
|
||||
In addition it does not require ESC calibration, telemetry is available from some ESCs, and you can reverse motor spin directions.
|
||||
|
||||
PX4 configuration is done in the [Actuator Configuration](../config/actuators.md).
|
||||
Selecting a higher rate DShot ESC in the UI results in lower latency, but lower rates are more robust (and hence more suitable for large aircraft with longer leads); some ESCs only support lower rates (see datasheets for information).
|
||||
|
||||
Setup:
|
||||
|
||||
- [ESC Wiring](../peripherals/pwm_escs_and_servo.md) (same as for PWM ESCs)
|
||||
- [DShot](../peripherals/dshot.md) also contains information about how to send commands etc.
|
||||
|
||||
## DroneCAN
|
||||
|
||||
[DroneCAN ESCs](../dronecan/escs.md) are recommended when DroneCAN is the primary bus used for your vehicle.
|
||||
The PX4 implementation is currently limited to update rates of 200 Hz.
|
||||
|
||||
DroneCAN shares many similar benefits to [DShot](#dshot) including high data rates, robust connection over long leads, telemetry feedback, no need for calibration of the ESC itself.
|
||||
|
||||
[DroneCAN ESCs](../dronecan/escs.md) are connected via the DroneCAN bus (setup and configuration are covered at that link).
|
||||
|
||||
## PWM
|
||||
|
||||
[PWM ESCs](../peripherals/pwm_escs_and_servo.md) are commonly used for fixed-wing vehicles and ground vehicles (vehicles that require a lower latency like multicopters typically use oneshot or dshot ESCs).
|
||||
|
||||
PWM ESCs communicate using a periodic pulse, where the _width_ of the pulse indicates the desired speed.
|
||||
The pulse width typically ranges between 1000 μs for zero power and 2000 μs for full power.
|
||||
The periodic frame rate of the signal depends on the capability of the ESC, and commonly ranges between 50 Hz and 490 Hz (the theoretical maximum being 500 Hz for a very small "off" cycle).
|
||||
A higher rate is better for ESCs, in particular where a rapid response to setpoint changes is needed.
|
||||
For PWM servos 50 Hz is usually sufficient, and many don't support higher rates.
|
||||
|
||||

|
||||
|
||||
In addition to being a relatively slow protocol PWM ESCs require [calibration](../advanced_config/esc_calibration.md) because the pulse widths representing low and high values can vary significantly.
|
||||
Unlike [DShot](#dshot) and [DroneCAN ESC](#dronecan) they do not have the ability to provide telemetry and feedback on ESC (or servo) state.
|
||||
|
||||
Setup:
|
||||
|
||||
- [ESC Wiring](../peripherals/pwm_escs_and_servo.md)
|
||||
- [PX4 Configuration](../peripherals/pwm_escs_and_servo.md#px4-configuration)
|
||||
- [ESC Calibration](../advanced_config/esc_calibration.md)
|
||||
|
||||
## OneShot 125
|
||||
|
||||
[OneShot 125 ESCs](../peripherals/oneshot.md) are usually much faster than PWM ESCs, and hence more responsive and easier to tune.
|
||||
They are preferred over PWM for multicopters (but not as much as [DShot ESCs](#dshot), which do not require calibration, and may provide telemetry feedback).
|
||||
There are a number of variants of the OneShot protocol, which support different rates.
|
||||
PX4 only supports OneShot 125.
|
||||
|
||||
OneShot 125 is the same as PWM but uses pulse widths that are 8 times shorter (from 125 μs to 250 μs for zero to full power).
|
||||
This allows OneShot 125 ESCs to have a much shorter duty cycle/higher rate.
|
||||
For PWM the theoretical maximum is close to 500 Hz while for OneShot it approaches 4 kHz.
|
||||
The actual supported rate depends on the ESC used.
|
||||
|
||||
Setup:
|
||||
|
||||
- [ESC Wiring](../peripherals/pwm_escs_and_servo.md) (same as for PWM ESCs)
|
||||
- [PX4 Configuration](../peripherals/oneshot.md#px4-configuration)
|
||||
- [ESC Calibration](../advanced_config/esc_calibration.md)
|
||||
@@ -1,6 +1,6 @@
|
||||
# Gain compression
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
Automatic gain compression reduces the gains of the angular-rate PID whenever oscillations are detected.
|
||||
It monitors the angular-rate controller output through a band-pass filter to identify these oscillations.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# MicoAir743-Lite
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
:::warning
|
||||
PX4 does not manufacture this (or any) autopilot.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# RadiolinkPIX6 Flight Controller
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
:::warning
|
||||
PX4 does not manufacture this (or any) autopilot.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# AP-H743-R1 Flight Controller
|
||||
# AP-H743-R1
|
||||
|
||||
<Badge type="tip" text="PX4 v1.17" />
|
||||
<Badge type="tip" text="main (planned for: PX4 v1.17)" />
|
||||
|
||||
:::warning
|
||||
PX4 does not manufacture this (or any) autopilot.
|
||||
@@ -50,7 +50,6 @@ These flight controllers are [manufacturer supported](../flight_controller/autop
|
||||
Order from [X-MAV](https://www.x-mav.cn/).
|
||||
|
||||
## Radio Control
|
||||
|
||||
A Radio Control (RC) system is required if you want to manually control your vehicle (PX4 does not require a radio system for autonomous flight modes).
|
||||
|
||||
You will need to select a compatible transmitter/receiver and then bind them so that they communicate (read the instructions that come with your specific transmitter/receiver).
|
||||
@@ -60,14 +59,14 @@ CRSF receiver must be wired to a spare port (UART) on the Flight Controller. The
|
||||
|
||||
## Serial Port Mapping
|
||||
|
||||
| UART | Device | Port |
|
||||
| ------ | ---------- | ------- |
|
||||
| USART1 | /dev/ttyS0 | GPS |
|
||||
| USART2 | /dev/ttyS1 | GPS2 |
|
||||
| USART3 | /dev/ttyS2 | TELEM1 |
|
||||
| UART4 | /dev/ttyS3 | TELEM2 |
|
||||
| UART7 | /dev/ttyS4 | TELEM3 |
|
||||
| UART8 | /dev/ttyS5 | SERIAL4 |
|
||||
| UART | Device | Port |
|
||||
| ------ | ---------- | ------------- |
|
||||
| USART1 | /dev/ttyS0 | GPS |
|
||||
| USART2 | /dev/ttyS1 | GPS2 |
|
||||
| USART3 | /dev/ttyS2 | TELEM1 |
|
||||
| UART4 | /dev/ttyS3 | TELEM2 |
|
||||
| UART7 | /dev/ttyS4 | TELEM3 |
|
||||
| UART8 | /dev/ttyS5 | SERIAL4 |
|
||||
|
||||
## PWM Output
|
||||
|
||||
@@ -134,14 +133,13 @@ The complete set of supported configurations can be found in the [Airframe Refer
|
||||
## Debug Port
|
||||
|
||||
### SWD
|
||||
|
||||
The [SWD interface](../debug/swd_debug.md) operate on the **FMU-DEBUG** port (`FMU-DEBUG`).
|
||||
|
||||
The debug port (`FMU-DEBUG`) uses a [JST SM04B-GHS-TB](https://www.digikey.com/en/products/detail/jst-sales-america-inc/SM04B-GHS-TB/807788) connector and has the following pinout:
|
||||
|
||||
| Pin | Signal | Volt |
|
||||
| ------- | --------- | ----- |
|
||||
| 1 (red) | 5V+ | +5V |
|
||||
| 2 (blk) | FMU_SWDIO | +3.3V |
|
||||
| 3 (blk) | FMU_SWCLK | +3.3V |
|
||||
| 4 (blk) | GND | GND |
|
||||
| Pin | Signal | Volt |
|
||||
| ------- | -------------- | ----- |
|
||||
| 1 (red) | 5V+ | +5V |
|
||||
| 2 (blk) | FMU_SWDIO | +3.3V |
|
||||
| 3 (blk) | FMU_SWCLK | +3.3V |
|
||||
| 4 (blk) | GND | GND |
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
|
||||
<img src="../../assets/site/position_fixed.svg" title="Position fix required (e.g. GPS)" width="30px" />
|
||||
|
||||
The _Hold_ flight mode causes the vehicle to loiter around its current GPS position and maintain its current altitude.
|
||||
|
||||
The mode supports a [number of distinct loiter modes](#loiter-modes), which are triggered using different QGC controls or MAVLink commands.
|
||||
These allow loitering with circular and figure 8 flight paths.
|
||||
The _Hold_ flight mode causes the vehicle to loiter (circle) around its current GPS position and maintain its current altitude.
|
||||
|
||||
:::tip
|
||||
_Hold mode_ can be used to pause a mission or to help you regain control of a vehicle in an emergency.
|
||||
It is usually activated with a pre-programmed RC switch.
|
||||
It is usually activated with a pre-programmed switch.
|
||||
:::
|
||||
|
||||
::: info
|
||||
@@ -27,80 +24,24 @@ It is usually activated with a pre-programmed RC switch.
|
||||
|
||||
:::
|
||||
|
||||
## Loiter modes
|
||||
## Technical Summary
|
||||
|
||||
### Default Loiter
|
||||
The aircraft circles around the GPS hold position at the current altitude.
|
||||
The vehicle will first ascend to [NAV_MIN_LTR_ALT](#NAV_MIN_LTR_ALT) if the mode is engaged below this altitude.
|
||||
|
||||
The aircraft circles around the position at which the mode was triggered and maintain its current altitude.
|
||||
The loiter radius is set by the parameter [NAV_LOITER_RAD](#NAV_LOITER_RAD).
|
||||
Note that if the vehicle altitude is below [NAV_MIN_LTR_ALT](#NAV_MIN_LTR_ALT), it will ascend to that minimum altitude before circling.
|
||||
RC stick movement is ignored.
|
||||
|
||||
The default loiter mode is entered when you switch to Hold mode without explicitly specifying any loiter behaviour.
|
||||
For example, if you switch to Hold mode using an RC switch, select **Hold** on the QGC flight mode selector, or activate the mode using the MAVLink [MAV_CMD_DO_SET_MODE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_MODE) command.
|
||||
|
||||
### Orbit Loiter Mode
|
||||
|
||||
<Badge type="tip" text="PX4 v1.12" />
|
||||
|
||||
The aircraft travels towards a _specified_ orbit center position, then circles it with a given direction and radius.
|
||||
|
||||
This behaviour can be accessed in QGroundControl by clicking on the map in Fly view, selecting **Orbit at Location**, and configuring the radius.
|
||||
|
||||
The behavior can be triggered using the MAVLink [MAV_CMD_DO_ORBIT](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_ORBIT) command.
|
||||
Note that PX4 respects the specified centre point (`param5`, `param6`, `param7`), and the radius and direction (`param1`).
|
||||
PX4 ignores `param3` (Yaw behaviour) and `param4` (Orbits).
|
||||
The value of `param2` (velocity) is also ignored, but the speed can be controlled using the [MAV_CMD_DO_CHANGE_SPEED](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_CHANGE_SPEED) command (constrained between `FW_AIRSPD_MAX` and `FW_AIRSPD_MIN`).
|
||||
PX4 outputs orbit status using the [ORBIT_EXECUTION_STATUS](https://mavlink.io/en/messages/common.html#ORBIT_EXECUTION_STATUS) message.
|
||||
|
||||
### Figure 8 Loiter Mode
|
||||
|
||||
<Badge type="tip" text="PX4 v1.15" /> <Badge type="warning" text="Experimental" />
|
||||
|
||||
The aircraft flys towards the closest point on a specified figure 8 path and then follows it.
|
||||
The path is defined by the figure 8 centre position, orientation, and radius of two circles.
|
||||
|
||||
The feature is experimental, and is not present in PX4 firmware by default (on most flight controller boards).
|
||||
It can be included by setting the `CONFIG_FIGURE_OF_EIGHT` key in the [PX4 board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig) for your board and rebuilding.
|
||||
For example, this is enabled on the [default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/auterion/fmu-v6s/default.px4board#L46) file for the `auterion/fmu-v6s` board.
|
||||
|
||||
The behavior can be triggered using the MAVLink [MAV_CMD_DO_FIGURE_EIGHT](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_FIGURE_EIGHT) command (PX4 respects all the parameters).
|
||||
PX4 outputs the figure 8 status using the [FIGURE_EIGHT_EXECUTION_STATUS](https://mavlink.io/en/messages/common.html#FIGURE_EIGHT_EXECUTION_STATUS) message.
|
||||
|
||||
::: info
|
||||
Figure 8 loitering is not currently supported by QGC: [QGC#12778: Need Support Figure of eight (8 figure) loitering by QGC](https://github.com/mavlink/qgroundcontrol/issues/12778).
|
||||
:::
|
||||
|
||||
Figure 8 loitering is also available in the simulator.
|
||||
You can test it in [Gazebo](../sim_gazebo_gz/index.md) using a fixed wing frame:
|
||||
|
||||
```sh
|
||||
make px4_sitl gz_rc_cessna
|
||||
```
|
||||
|
||||
## Parameters
|
||||
### Parameters
|
||||
|
||||
Hold mode behaviour can be configured using the parameters below.
|
||||
|
||||
| Parameter | Description |
|
||||
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
|
||||
| <a id="NAV_LOITER_RAD"></a>[NAV_LOITER_RAD](../advanced_config/parameter_reference.md#NAV_LOITER_RAD) | The radius of the loiter circle. |
|
||||
| [NAV_LOITER_RAD](../advanced_config/parameter_reference.md#NAV_LOITER_RAD) | The radius of the loiter circle. |
|
||||
| <a id="NAV_MIN_LTR_ALT"></a>[NAV_MIN_LTR_ALT](../advanced_config/parameter_reference.md#NAV_MIN_LTR_ALT) | Minimum height for loiter mode (vehicle will ascend to this altitude if mode is engaged at a lower altitude). |
|
||||
|
||||
## MAVLink Commands
|
||||
|
||||
The following commands are relevant to this mode:
|
||||
|
||||
- [MAV_CMD_DO_ORBIT](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_ORBIT) - Switch to Hold mode and start the specified [Orbit loiter](#orbit-loiter-mode).
|
||||
Params 2 (velocity), 3 (yaw), 4 (orbits) are ignored.
|
||||
[ORBIT_EXECUTION_STATUS](https://mavlink.io/en/messages/common.html#ORBIT_EXECUTION_STATUS) is emitted.
|
||||
- [MAV_CMD_DO_FIGURE_EIGHT](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_FIGURE_EIGHT) - Switch to Hold mode and start the specified [Figure 8 loiter](#figure-8-loiter-mode).
|
||||
All params are respected.
|
||||
[FIGURE_EIGHT_EXECUTION_STATUS](https://mavlink.io/en/messages/common.html#FIGURE_EIGHT_EXECUTION_STATUS) is emitted.
|
||||
|
||||
Note, other commands may be supported.
|
||||
|
||||
## See Also
|
||||
|
||||
- [Hold Mode (MC)](../flight_modes_mc/hold.md)
|
||||
[Hold Mode (MC)](../flight_modes_mc/hold.md)
|
||||
|
||||
<!-- this maps to AUTO_LOITER in flight mode state machine -->
|
||||
|
||||
@@ -162,10 +162,6 @@ Mission Items:
|
||||
- [MAV_CMD_OBLIQUE_SURVEY](https://mavlink.io/en/messages/common.html#MAV_CMD_OBLIQUE_SURVEY)
|
||||
- [MAV_CMD_DO_SET_CAMERA_ZOOM](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAMERA_ZOOM)
|
||||
- [MAV_CMD_DO_SET_CAMERA_FOCUS](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_SET_CAMERA_FOCUS)
|
||||
- [MAV_CMD_DO_AUTOTUNE_ENABLE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_AUTOTUNE_ENABLE)
|
||||
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
|
||||
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0).
|
||||
Instead, the axis bitmask defined by [`FW_AT_AXES`](../advanced_config/parameter_reference.md#FW_AT_AXES) is used.
|
||||
|
||||
GeoFence Definitions
|
||||
|
||||
|
||||
@@ -49,8 +49,8 @@ If the local position is invalid or becomes invalid while executing the takeoff,
|
||||
|
||||
::: info
|
||||
|
||||
- Takeoff towards a target position was added in <Badge type="tip" text="PX4 v1.17" />.
|
||||
- Holding wings level and ascending to clearance attitude when local position is invalid during takeoff was added in <Badge type="tip" text="PX4 v1.17" />.
|
||||
- Takeoff towards a target position was added in <Badge type="tip" text="main (planned for: PX4 v1.17)" />.
|
||||
- Holding wings level and ascending to clearance attitude when local position is invalid during takeoff was added in <Badge type="tip" text="main (planned for: PX4 v1.17)" />.
|
||||
- QGroundControl does not support `MAV_CMD_NAV_TAKEOFF` (at time of writing).
|
||||
|
||||
:::
|
||||
|
||||
@@ -166,9 +166,6 @@ Mission Items:
|
||||
- [MAV_CMD_NAV_VTOL_TAKEOFF](https://mavlink.io/en/messages/common.html#MAV_CMD_NAV_VTOL_TAKEOFF)
|
||||
- `MAV_CMD_NAV_VTOL_TAKEOFF.param2` (transition heading) is ignored.
|
||||
Instead the heading to the next waypoint is used for the transition heading. <!-- at LEAST until PX4 v1.13: https://github.com/PX4/PX4-Autopilot/issues/12660 -->
|
||||
- [MAV_CMD_DO_AUTOTUNE_ENABLE](https://mavlink.io/en/messages/common.html#MAV_CMD_DO_AUTOTUNE_ENABLE)
|
||||
- Disabling autotune by setting `param1` to zero is currently not supported. To abort autotune during a mission, switch to another flight mode.
|
||||
- Axis selection specified in the MAVLink message is ignored (`param2` must be set to 0) .
|
||||
|
||||
GeoFence Definitions
|
||||
|
||||
|
||||
@@ -20,59 +20,52 @@ The RTK compatible devices below that are expected to work with PX4 (it omits di
|
||||
The table indicates devices that also output yaw, and that can provide yaw when two on-vehicle units are used.
|
||||
It also highlights devices that connect via the CAN bus, and those which support PPK (Post-Processing Kinematic).
|
||||
|
||||
| Device | GPS | Compass | [DroneCAN] | [GPS Yaw] | PPK |
|
||||
| :-------------------------------------------------------------------------------------------------------- | :------------------: | :------: | :--------: | :-----------------------: | :-: |
|
||||
| [ARK G5 RTK GPS](../dronecan/ark_g5_rtk_gps.md) | [mosaic-G5 P3] | IIS2MDC | ✓ | | |
|
||||
| [ARK G5 RTK HEADING GPS](../dronecan/ark_g5_rtk_heading_gps.md) | [mosaic-G5 P3H] | IIS2MDC | ✓ | [Heading Capability][mosaic-G5 P3H] | |
|
||||
| [ARK RTK GPS](../dronecan/ark_rtk_gps.md) | F9P | BMM150 | ✓ | [Dual F9P] | |
|
||||
| [ARK RTK GPS L1 L5](../dronecan/ark_rtk_gps_l1_l2.md) | F9P | BMM150 | ✓ | | |
|
||||
| [ARK MOSAIC-X5 RTK GPS](../dronecan/ark_mosaic__rtk_gps.md) | Mosaic-X5 | IIS2MDC | ✓ | [Septentrio Dual Antenna] | |
|
||||
| [ARK X20 RTK GPS](../dronecan/ark_x20_rtk_gps.md) | X20P | IIS2MDC | ✓ | | |
|
||||
| [CUAV C-RTK GPS](../gps_compass/rtk_gps_cuav_c-rtk.md) | M8P/M8N | ✓ | | | |
|
||||
| [CUAV C-RTK2](../gps_compass/rtk_gps_cuav_c-rtk2.md) | F9P | ✓ | | [Dual F9P] | |
|
||||
| [CUAV C-RTK 9Ps GPS](../gps_compass/rtk_gps_cuav_c-rtk-9ps.md) | F9P | RM3100 | | [Dual F9P] | |
|
||||
| [CUAV C-RTK2 PPK/RTK GNSS](../gps_compass/rtk_gps_cuav_c-rtk.md) | F9P | RM3100 | | | ✓ |
|
||||
| [CubePilot Here+ RTK GPS](../gps_compass/rtk_gps_hex_hereplus.md) | M8P | HMC5983 | | | |
|
||||
| [CubePilot Here3 CAN GNSS GPS (M8N)](https://www.cubepilot.org/#/here/here3) | M8P | ICM20948 | ✓ | | |
|
||||
| [Drotek SIRIUS RTK GNSS ROVER (F9P)](https://store-drotek.com/911-sirius-rtk-gnss-rover-f9p.html) | F9P | RM3100 | | [Dual F9P] | |
|
||||
| [DATAGNSS NANO HRTK Receiver](../gps_compass/rtk_gps_datagnss_nano_hrtk.md) | [D10P] | IST8310 | | ✘ | |
|
||||
| [DATAGNSS GEM1305 RTK Receiver](../gps_compass/rtk_gps_gem1305.md) | TAU951M | IST8310 | | ✘ | |
|
||||
| [Femtones MINI2 Receiver](../gps_compass/rtk_gps_fem_mini2.md) | FB672, FB6A0 | ✓ | | | |
|
||||
| [Freefly RTK GPS](../gps_compass/rtk_gps_freefly.md) | F9P | IST8310 | | | |
|
||||
| [Holybro H-RTK ZED-F9P RTK Rover (DroneCAN variant)](../dronecan/holybro_h_rtk_zed_f9p_gps.md) | F9P | RM3100 | ✓ | [Dual F9P] | |
|
||||
| [Holybro H-RTK ZED-F9P RTK Rover](https://holybro.com/collections/h-rtk-gps/products/h-rtk-zed-f9p-rover) | F9P | RM3100 | | [Dual F9P] | |
|
||||
| [Holybro H-RTK F9P Ultralight](https://holybro.com/products/h-rtk-f9p-ultralight) | F9P | IST8310 | | [Dual F9P] | |
|
||||
| [Holybro H-RTK F9P Helical or Base](../gps_compass/rtk_gps_holybro_h-rtk-f9p.md) | F9P | IST8310 | | [Dual F9P] | |
|
||||
| [Holybro DroneCAN H-RTK F9P Helical](https://holybro.com/products/dronecan-h-rtk-f9p-helical) | F9P | BMM150 | ✓ | [Dual F9P] | |
|
||||
| [Holybro H-RTK F9P Rover Lite](../gps_compass/rtk_gps_holybro_h-rtk-f9p.md) | F9P | IST8310 | | | |
|
||||
| [Holybro DroneCAN H-RTK F9P Rover](https://holybro.com/products/dronecan-h-rtk-f9p-rover) | F9P | BMM150 | | [Dual F9P] | |
|
||||
| [Holybro H-RTK M8P GNSS](../gps_compass/rtk_gps_holybro_h-rtk-m8p.md) | M8P | IST8310 | | | |
|
||||
| [Holybro H-RTK Unicore UM982 GPS](../gps_compass/rtk_gps_holybro_unicore_um982.md) | UM982 | IST8310 | | [Unicore Dual Antenna] | |
|
||||
| [LOCOSYS Hawk R1](../gps_compass/rtk_gps_locosys_r1.md) | MC-1612-V2b | | | | |
|
||||
| [LOCOSYS Hawk R2](../gps_compass/rtk_gps_locosys_r2.md) | MC-1612-V2b | IST8310 | | | |
|
||||
| [mRo u-blox ZED-F9 RTK L1/L2 GPS](https://store.mrobotics.io/product-p/m10020d.htm) | F9P | ✓ | | [Dual F9P] | |
|
||||
| [Navisys L1/L2 ZED-F9P RTK - Base only](https://www.navisys.com.tw/productdetail?name=GR901&class=RTK) | F9P | | | | |
|
||||
| [RaccoonLab L1/L2 ZED-F9P][RaccoonLab L1/L2 ZED-F9P] | F9P | RM3100 | ✓ | | |
|
||||
| [RaccoonLab L1/L2 ZED-F9P with external antenna][RaccnLabL1L2ZED-F9P ext_ant] | F9P | RM3100 | ✓ | | |
|
||||
| [Septentrio AsteRx-m3 Pro](../gps_compass/septentrio_asterx-rib.md) | AsteRx | ✓ | | [Septentrio Dual Antenna] | ✓ |
|
||||
| [Septentrio mosaic-go](../gps_compass/septentrio_mosaic-go.md) | mosaic X5 / mosaic H | ✓ | | [Septentrio Dual Antenna] | ✓ |
|
||||
| [SIRIUS RTK GNSS ROVER (F9P)](https://store-drotek.com/911-sirius-rtk-gnss-rover-f9p.html) | F9P | ✓ | | [Dual F9P] | |
|
||||
| [SparkFun GPS-RTK2 Board - ZED-F9P](https://www.sparkfun.com/products/15136) | F9P | ✓ | | [Dual F9P] | |
|
||||
| [Trimble MB-Two](../gps_compass/rtk_gps_trimble_mb_two.md) | F9P | ✓ | | ✓ | |
|
||||
| Device | GPS | Compass | [DroneCAN](../dronecan/index.md) | [GPS Yaw](#configuring-gps-as-yaw-heading-source) | PPK |
|
||||
| :-------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------: | :------: | :------------------------------: | :-----------------------------------------------: | :-: |
|
||||
| [ARK RTK GPS](../dronecan/ark_rtk_gps.md) | F9P | BMM150 | ✓ | [Dual F9P][DualF9P] |
|
||||
| [ARK RTK GPS L1 L5](../dronecan/ark_rtk_gps_l1_l2.md) | F9P | BMM150 | ✓ | |
|
||||
| [ARK MOSAIC-X5 RTK GPS](../dronecan/ark_mosaic__rtk_gps.md) | Mosaic-X5 | IIS2MDC | ✓ | [Septentrio Dual Antenna][SeptDualAnt] |
|
||||
| [ARK X20 RTK GPS](../dronecan/ark_x20_rtk_gps.md) | X20P | BMP390 | ✓ | |
|
||||
| [CUAV C-RTK GPS](../gps_compass/rtk_gps_cuav_c-rtk.md) | M8P/M8N | ✓ | | |
|
||||
| [CUAV C-RTK2](../gps_compass/rtk_gps_cuav_c-rtk2.md) | F9P | ✓ | | [Dual F9P][DualF9P] |
|
||||
| [CUAV C-RTK 9Ps GPS](../gps_compass/rtk_gps_cuav_c-rtk-9ps.md) | F9P | RM3100 | | [Dual F9P][DualF9P] |
|
||||
| [CUAV C-RTK2 PPK/RTK GNSS](../gps_compass/rtk_gps_cuav_c-rtk.md) | F9P | RM3100 | | | ✓ |
|
||||
| [CubePilot Here+ RTK GPS](../gps_compass/rtk_gps_hex_hereplus.md) | M8P | HMC5983 | | |
|
||||
| [CubePilot Here3 CAN GNSS GPS (M8N)](https://www.cubepilot.org/#/here/here3) | M8P | ICM20948 | ✓ | |
|
||||
| [Drotek SIRIUS RTK GNSS ROVER (F9P)](https://store-drotek.com/911-sirius-rtk-gnss-rover-f9p.html) | F9P | RM3100 | | [Dual F9P][DualF9P] |
|
||||
| [DATAGNSS NANO HRTK Receiver](../gps_compass/rtk_gps_datagnss_nano_hrtk.md) | [D10P](https://docs.datagnss.com/gnss/gnss_module/D10P_RTK) | IST8310 | | ✘ |
|
||||
| [DATAGNSS GEM1305 RTK Receiver](../gps_compass/rtk_gps_gem1305.md) | TAU951M | IST8310 | | ✘ |
|
||||
| [Femtones MINI2 Receiver](../gps_compass/rtk_gps_fem_mini2.md) | FB672, FB6A0 | ✓ | | |
|
||||
| [Freefly RTK GPS](../gps_compass/rtk_gps_freefly.md) | F9P | IST8310 | | |
|
||||
| [Holybro H-RTK ZED-F9P RTK Rover (DroneCAN variant)](../dronecan/holybro_h_rtk_zed_f9p_gps.md) | F9P | RM3100 | ✓ | [Dual F9P][DualF9P] |
|
||||
| [Holybro H-RTK ZED-F9P RTK Rover](https://holybro.com/collections/h-rtk-gps/products/h-rtk-zed-f9p-rover) | F9P | RM3100 | | [Dual F9P][DualF9P] |
|
||||
| [Holybro H-RTK F9P Ultralight](https://holybro.com/products/h-rtk-f9p-ultralight) | F9P | IST8310 | | [Dual F9P][DualF9P] |
|
||||
| [Holybro H-RTK F9P Helical or Base](../gps_compass/rtk_gps_holybro_h-rtk-f9p.md) | F9P | IST8310 | | [Dual F9P][DualF9P] |
|
||||
| [Holybro DroneCAN H-RTK F9P Helical](https://holybro.com/products/dronecan-h-rtk-f9p-helical) | F9P | BMM150 | ✓ | [Dual F9P][DualF9P] |
|
||||
| [Holybro H-RTK F9P Rover Lite](../gps_compass/rtk_gps_holybro_h-rtk-f9p.md) | F9P | IST8310 | | | |
|
||||
| [Holybro DroneCAN H-RTK F9P Rover](https://holybro.com/products/dronecan-h-rtk-f9p-rover) | F9P | BMM150 | | [Dual F9P][DualF9P] |
|
||||
| [Holybro H-RTK M8P GNSS](../gps_compass/rtk_gps_holybro_h-rtk-m8p.md) | M8P | IST8310 | |
|
||||
| [Holybro H-RTK Unicore UM982 GPS](../gps_compass/rtk_gps_holybro_unicore_um982.md) | UM982 | IST8310 | | [Unicore Dual Antenna][UnicoreDualAnt] |
|
||||
| [LOCOSYS Hawk R1](../gps_compass/rtk_gps_locosys_r1.md) | MC-1612-V2b | | | |
|
||||
| [LOCOSYS Hawk R2](../gps_compass/rtk_gps_locosys_r2.md) | MC-1612-V2b | IST8310 | | |
|
||||
| [mRo u-blox ZED-F9 RTK L1/L2 GPS](https://store.mrobotics.io/product-p/m10020d.htm) | F9P | ✓ | | [Dual F9P][DualF9P] |
|
||||
| [Navisys L1/L2 ZED-F9P RTK - Base only](https://www.navisys.com.tw/productdetail?name=GR901&class=RTK) | F9P | | | |
|
||||
| [RaccoonLab L1/L2 ZED-F9P][RaccoonLab L1/L2 ZED-F9P] | F9P | RM3100 | ✓ | | |
|
||||
| [RaccoonLab L1/L2 ZED-F9P with external antenna][RaccnLabL1L2ZED-F9P ext_ant] | F9P | RM3100 | ✓ | |
|
||||
| [Septentrio AsteRx-m3 Pro](../gps_compass/septentrio_asterx-rib.md) | AsteRx | ✓ | | [Septentrio Dual Antenna][SeptDualAnt] | ✓ |
|
||||
| [Septentrio mosaic-go](../gps_compass/septentrio_mosaic-go.md) | mosaic X5 / mosaic H | ✓ | | [Septentrio Dual Antenna][SeptDualAnt] | ✓ |
|
||||
| [SIRIUS RTK GNSS ROVER (F9P)](https://store-drotek.com/911-sirius-rtk-gnss-rover-f9p.html) | F9P | ✓ | | [Dual F9P][DualF9P] |
|
||||
| [SparkFun GPS-RTK2 Board - ZED-F9P](https://www.sparkfun.com/products/15136) | F9P | ✓ | | [Dual F9P][DualF9P] |
|
||||
| [Trimble MB-Two](../gps_compass/rtk_gps_trimble_mb_two.md) | F9P | ✓ | | ✓ | |
|
||||
|
||||
<!-- links used in above table -->
|
||||
|
||||
[RaccnLabL1L2ZED-F9P ext_ant]: https://docs.raccoonlab.co/guide/gps_mag_baro/gnss_external_antenna_f9p_v320.html
|
||||
[RaccoonLab L1/L2 ZED-F9P]: https://docs.raccoonlab.co/guide/gps_mag_baro/gps_l1_l2_zed_f9p.html
|
||||
[Dual F9P]: ../gps_compass/u-blox_f9p_heading.md
|
||||
[Septentrio Dual Antenna]: ../gps_compass/septentrio.md#gnss-based-heading
|
||||
[Unicore Dual Antenna]: ../gps_compass/rtk_gps_holybro_unicore_um982.md#enable-gps-heading-yaw
|
||||
[DualF9P]: ../gps_compass/u-blox_f9p_heading.md
|
||||
[SeptDualAnt]: ../gps_compass/septentrio.md#gnss-based-heading
|
||||
[UnicoreDualAnt]: ../gps_compass/rtk_gps_holybro_unicore_um982.md#enable-gps-heading-yaw
|
||||
[DATAGNSS GEM1305 RTK]: ../gps_compass/rtk_gps_gem1305.md
|
||||
[DroneCAN]: ../dronecan/index.md
|
||||
[GPS Yaw]: #configuring-gps-as-yaw-heading-source
|
||||
[mosaic-G5 P3]: https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3
|
||||
[mosaic-G5 P3H]: https://www.septentrio.com/en/products/gnss-receivers/gnss-receiver-modules/mosaic-G5-P3H
|
||||
[D10P]: https://docs.datagnss.com/gnss/gnss_module/D10P_RTK
|
||||
|
||||
Notes:
|
||||
|
||||
@@ -150,7 +143,6 @@ The RTK GPS connection is essentially plug and play:
|
||||

|
||||
|
||||
1. Once Survey-in completes:
|
||||
|
||||
- The RTK GPS icon changes to white and _QGroundControl_ starts to stream position data to the vehicle:
|
||||
|
||||

|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
<Badge type="tip" text="PX4 v1.15" />
|
||||
|
||||
PX4 implements the MAVLink [Standard Modes Protocol](https://mavlink.io/en/services/standard_modes.html) from PX4 v1.15, with a corresponding implementation in QGroundControl Daily builds (and future release builds).
|
||||
PX4 implements the MAVLink [Standard Modes Protocol](https://mavlink.io/en/services/standard_modes.md) from PX4 v1.15, with a corresponding implementation in QGroundControl Daily builds (and future release builds).
|
||||
|
||||
The protocol allows you to discover all flight modes available to the vehicle, including PX4 External modes created using the [PX4 ROS 2 Control Interface](../ros2/px4_ros2_control_interface.md), and get or set the current mode.
|
||||
|
||||
|
||||
@@ -280,8 +280,6 @@ For more information see: [Plotting uORB Topic Data in Real Time using PlotJuggl
|
||||
|
||||
## See Also
|
||||
|
||||
- [uORB Documentation Standard](../uorb/uorb_documentation.md)
|
||||
|
||||
- _PX4 uORB Explained_ Blog series
|
||||
- [Part 1](https://px4.io/px4-uorb-explained-part-1/)
|
||||
- [Part 2](https://px4.io/px4-uorb-explained-part-2/)
|
||||
|
||||
@@ -321,7 +321,7 @@ The configuration can be done using the [UXRCE-DDS parameters](../advanced_confi
|
||||
- [UXRCE_DDS_SYNCT](../advanced_config/parameter_reference.md#UXRCE_DDS_SYNCT): Bridge time synchronization enable.
|
||||
The uXRCE-DDS client module can synchronize the timestamp of the messages exchanged over the bridge.
|
||||
This is the default configuration. In certain situations, for example during [simulations](../ros2/user_guide.md#ros-gazebo-and-px4-time-synchronization), this feature may be disabled.
|
||||
- [UXRCE_DDS_NS_IDX](../advanced_config/parameter_reference.md#UXRCE_DDS_NS_IDX) <Badge type="tip" text="PX4 v1.17" />: Index-based namespace definition
|
||||
- <Badge type="tip" text="PX4 v1.17" /> [`UXRCE_DDS_NS_IDX`](../advanced_config/parameter_reference.md#UXRCE_DDS_NS_IDX): Index-based namespace definition
|
||||
Setting this parameter to any value other than `-1` creates a namespace with the prefix `uav_` and the specified value, e.g. `uav_0`, `uav_1`, etc.
|
||||
See [namespace](#customizing-the-namespace) for methods to define richer or arbitrary namespaces.
|
||||
|
||||
@@ -426,7 +426,7 @@ will generate topics under the namespaces:
|
||||
|
||||
:::
|
||||
|
||||
- A simple index-based namespace can be applied by setting the parameter [`UXRCE_DDS_NS_IDX`](../advanced_config/parameter_reference.md#UXRCE_DDS_NS_IDX) <Badge type="tip" text="PX4 v1.17" /> to a value between 0 and 9999.
|
||||
- A simple index-based namespace can be applied by setting the parameter [`UXRCE_DDS_NS_IDX`](../advanced_config/parameter_reference.md#UXRCE_DDS_NS_IDX) to a value between 0 and 9999.
|
||||
This will generate a namespace such as `/uav_0`, `/uav_1`, and so on.
|
||||
This technique is ideal if vehicles must be persistently associated with namespaces because their clients are automatically started through PX4.
|
||||
|
||||
|
||||
@@ -15,6 +15,38 @@ Subcategories:
|
||||
- [Rpm Sensor](modules_driver_rpm_sensor.md)
|
||||
- [Transponder](modules_driver_transponder.md)
|
||||
|
||||
## MCP23009
|
||||
|
||||
Source: [drivers/gpio/mcp23009](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/gpio/mcp23009)
|
||||
|
||||
### Usage {#MCP23009_usage}
|
||||
|
||||
```
|
||||
MCP23009 <command> [arguments...]
|
||||
Commands:
|
||||
start
|
||||
[-I] Internal I2C bus(es)
|
||||
[-X] External I2C bus(es)
|
||||
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
|
||||
(default=1))
|
||||
[-f <val>] bus frequency in kHz
|
||||
[-q] quiet startup (no message if no device found)
|
||||
[-a <val>] I2C address
|
||||
default: 37
|
||||
[-D <val>] Direction
|
||||
default: 0
|
||||
[-O <val>] Output
|
||||
default: 0
|
||||
[-P <val>] Pullups
|
||||
default: 0
|
||||
[-U <val>] Update Interval [ms]
|
||||
default: 0
|
||||
|
||||
stop
|
||||
|
||||
status print status info
|
||||
```
|
||||
|
||||
## atxxxx
|
||||
|
||||
Source: [drivers/osd/atxxxx](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/osd/atxxxx)
|
||||
@@ -717,40 +749,6 @@ lsm303agr <command> [arguments...]
|
||||
status print status info
|
||||
```
|
||||
|
||||
## mcp230xx
|
||||
|
||||
Source: [lib/drivers/mcp_common](https://github.com/PX4/PX4-Autopilot/tree/main/src/lib/drivers/mcp_common)
|
||||
|
||||
### Usage {#mcp230xx_usage}
|
||||
|
||||
```
|
||||
mcp230xx <command> [arguments...]
|
||||
Commands:
|
||||
start
|
||||
[-I] Internal I2C bus(es)
|
||||
[-X] External I2C bus(es)
|
||||
[-b <val>] board-specific bus (default=all) (external SPI: n-th bus
|
||||
(default=1))
|
||||
[-f <val>] bus frequency in kHz
|
||||
[-q] quiet startup (no message if no device found)
|
||||
[-a <val>] I2C address
|
||||
default: 39
|
||||
[-D <val>] Direction (1=Input, 0=Output)
|
||||
default: 0
|
||||
[-O <val>] Output
|
||||
default: 0
|
||||
[-P <val>] Pullups
|
||||
default: 0
|
||||
[-U <val>] Update Interval [ms]
|
||||
default: 0
|
||||
[-M <val>] First minor number
|
||||
default: 0
|
||||
|
||||
stop
|
||||
|
||||
status print status info
|
||||
```
|
||||
|
||||
## mcp9808
|
||||
|
||||
Source: [drivers/temperature_sensor/mcp9808](https://github.com/PX4/PX4-Autopilot/tree/main/src/drivers/temperature_sensor/mcp9808)
|
||||
|
||||
@@ -127,10 +127,6 @@ commander <command> [arguments...]
|
||||
|
||||
check Run preflight checks
|
||||
|
||||
safety Change prearm safety state
|
||||
on|off [on] to activate safety, [off] to deactivate safety and allow
|
||||
control surface movements
|
||||
|
||||
arm
|
||||
[-f] Force arming (do not run preflight checks)
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Battery status
|
||||
|
||||
Battery status information for up to 3 battery instances.
|
||||
Battery status information for up to 4 battery instances.
|
||||
These are populated from power module and smart battery device drivers, and one battery updated from MAVLink.
|
||||
Battery instance information is also logged and streamed in MAVLink telemetry.
|
||||
|
||||
@@ -11,7 +11,7 @@ Battery instance information is also logged and streamed in MAVLink telemetry.
|
||||
```c
|
||||
# Battery status
|
||||
#
|
||||
# Battery status information for up to 3 battery instances.
|
||||
# Battery status information for up to 4 battery instances.
|
||||
# These are populated from power module and smart battery device drivers, and one battery updated from MAVLink.
|
||||
# Battery instance information is also logged and streamed in MAVLink telemetry.
|
||||
|
||||
@@ -33,9 +33,9 @@ uint8 cell_count # [-] [@invalid 0] Number of cells
|
||||
|
||||
|
||||
uint8 source # [@enum SOURCE] Battery source
|
||||
uint8 SOURCE_POWER_MODULE = 0 # Power module (analog ADC or I2C power monitor)
|
||||
uint8 SOURCE_EXTERNAL = 1 # External (MAVLink, CAN, or external driver)
|
||||
uint8 SOURCE_ESCS = 2 # ESCs (via ESC telemetry)
|
||||
uint8 SOURCE_POWER_MODULE = 0 # Power module
|
||||
uint8 SOURCE_EXTERNAL = 1 # External
|
||||
uint8 SOURCE_ESCS = 2 # ESCs
|
||||
|
||||
uint8 priority # [-] Zero based priority is the connection on the Power Controller V1..Vn AKA BrickN-1
|
||||
uint16 capacity # [mAh] Capacity of the battery when fully charged
|
||||
|
||||
@@ -32,9 +32,9 @@ uint8 cell_count # [@invalid 0] Number of cells
|
||||
|
||||
|
||||
uint8 source # [@enum SOURCE] Battery source
|
||||
uint8 SOURCE_POWER_MODULE = 0 # Power module (analog ADC or I2C power monitor)
|
||||
uint8 SOURCE_EXTERNAL = 1 # External (MAVLink, CAN, or external driver)
|
||||
uint8 SOURCE_ESCS = 2 # ESCs (via ESC telemetry)
|
||||
uint8 SOURCE_POWER_MODULE = 0 # Power module
|
||||
uint8 SOURCE_EXTERNAL = 1 # External
|
||||
uint8 SOURCE_ESCS = 2 # ESCs
|
||||
|
||||
uint8 priority # Zero based priority is the connection on the Power Controller V1..Vn AKA BrickN-1
|
||||
uint16 capacity # [mAh] Capacity of the battery when fully charged
|
||||
|
||||