Compare commits
136 Commits
master
...
AP_Periph-
Author | SHA1 | Date |
---|---|---|
Andrew Tridgell | 8c8682c0d1 | 3 years ago |
Andrew Tridgell | 2819d1c046 | 3 years ago |
Andrew Tridgell | 88409bd777 | 3 years ago |
MallikarjunSE | d4f5a98303 | 3 years ago |
MallikarjunSE | 771a7d8c9a | 3 years ago |
Andrew Tridgell | 0a38fa7172 | 3 years ago |
Andrew Tridgell | c6cc817d34 | 3 years ago |
Andrew Tridgell | 0e66cb6748 | 3 years ago |
Andrew Tridgell | bc1a2673c3 | 3 years ago |
Andrew Tridgell | 17d78dda77 | 3 years ago |
Andrew Tridgell | 6e12eb3f7a | 3 years ago |
Andrew Tridgell | 0268976dac | 3 years ago |
Andrew Tridgell | c5939145c5 | 3 years ago |
Andrew Tridgell | 15c21b1395 | 3 years ago |
Andrew Tridgell | 4eabbe8bf2 | 3 years ago |
Andrew Tridgell | 26d7e1ba74 | 3 years ago |
Andrew Tridgell | 1464607cff | 3 years ago |
Andrew Tridgell | 2ff76eca5f | 3 years ago |
Andrew Tridgell | 724803db27 | 3 years ago |
Andrew Tridgell | 4cb0d3ff55 | 3 years ago |
mateksys | 6c03594c16 | 3 years ago |
mateksys | d82d93f859 | 3 years ago |
Andrew Tridgell | 7bdeeb24e2 | 3 years ago |
Andrew Tridgell | fdccae7b5e | 3 years ago |
Henry Wurzburg | 5f866ed369 | 3 years ago |
Andrew Tridgell | ef9341f8a9 | 3 years ago |
Andrew Tridgell | de173707bc | 3 years ago |
Andrew Tridgell | 5df777e889 | 3 years ago |
Andrew Tridgell | 912df2992f | 3 years ago |
Andrew Tridgell | 0f3e33e766 | 3 years ago |
Andy Piper | 6ddb813fba | 3 years ago |
Tim Tuxworth | 6e915df31b | 3 years ago |
Andrew Tridgell | 8b7366d619 | 3 years ago |
Peter Barker | 85171e94e0 | 3 years ago |
Andrew Tridgell | 5abd244874 | 3 years ago |
Andrew Tridgell | 6e3a2663bf | 3 years ago |
Andrew Tridgell | 3cef6b8167 | 3 years ago |
Andrew Tridgell | 518b126f52 | 3 years ago |
Andrew Tridgell | 14571ee24b | 3 years ago |
Andrew Tridgell | d7052b4d5a | 3 years ago |
Andrew Tridgell | 0bab0dc26c | 3 years ago |
Andrew Tridgell | 66c13d29b7 | 3 years ago |
Andrew Tridgell | ecbcbbe044 | 3 years ago |
Andrew Tridgell | f398cf8814 | 3 years ago |
Andrew Tridgell | a16357fb08 | 3 years ago |
Andrew Tridgell | 6839533e5d | 3 years ago |
Andrew Tridgell | 965a571063 | 3 years ago |
Andrew Tridgell | 139411f0c5 | 3 years ago |
Andrew Tridgell | 42c2ec053a | 3 years ago |
Andrew Tridgell | 0aeb7e1500 | 3 years ago |
Leonard Hall | b9628f106d | 3 years ago |
Leonard Hall | 94b83d34b1 | 3 years ago |
Iampete1 | 8fd386f50b | 3 years ago |
Peter Barker | 9981a08791 | 3 years ago |
Henry Wurzburg | c8bc0b7e0d | 3 years ago |
Peter Barker | f10f3da159 | 3 years ago |
Peter Barker | a7aa4155ad | 3 years ago |
Andy Piper | 0f10a50b3d | 3 years ago |
Iampete1 | dbb4fafa74 | 3 years ago |
m | 280792abef | 3 years ago |
Leonard Hall | 16e3ef06fa | 3 years ago |
Leonard Hall | 453ef6f800 | 3 years ago |
Leonard Hall | bcddd0b949 | 3 years ago |
Leonard Hall | 3d8a6533d9 | 3 years ago |
Leonard Hall | 310a7ccaaa | 3 years ago |
Leonard Hall | 44c1b3a789 | 3 years ago |
Andrew Tridgell | 58cc0b4289 | 3 years ago |
Leonard Hall | d7f283d3b5 | 3 years ago |
Leonard Hall | 594fc3f02d | 3 years ago |
Leonard Hall | 9c70fc1aa9 | 3 years ago |
Leonard Hall | 8049efabbc | 3 years ago |
Leonard Hall | f9192b0c2c | 3 years ago |
Leonard Hall | 54f17d4a82 | 3 years ago |
Leonard Hall | 2936b6cb5e | 3 years ago |
Andrew Tridgell | 38fb4038ed | 3 years ago |
MallikarjunSE | 0670bcba34 | 3 years ago |
MallikarjunSE | 2a39b3733e | 3 years ago |
Andy Piper | 6a9d01e3ac | 3 years ago |
Evgeniy | 9b940b3e51 | 3 years ago |
Andrew Tridgell | e4fd86f679 | 3 years ago |
MallikarjunSE | 5c4d896f40 | 3 years ago |
MallikarjunSE | a553cb08b1 | 3 years ago |
murata | bc0954e124 | 3 years ago |
murata | d8fec32b9a | 3 years ago |
Andrew Tridgell | 0df1dd6999 | 3 years ago |
Andrew Tridgell | 83404f7537 | 3 years ago |
Andrew Tridgell | f501c32a21 | 3 years ago |
Andy Piper | 85d73eeb5c | 3 years ago |
Andrew Tridgell | e0e60c8654 | 3 years ago |
Iampete1 | a71b406287 | 3 years ago |
Iampete1 | d5af006e5c | 3 years ago |
Iampete1 | 7265ed552b | 3 years ago |
Iampete1 | 150fc527d7 | 3 years ago |
Iampete1 | d069b6503b | 3 years ago |
Andrew Tridgell | 67a1d159d4 | 3 years ago |
Tom Pittenger | 4eb39b8dae | 3 years ago |
Iampete1 | 832ac24bb9 | 3 years ago |
Iampete1 | ff2fdb65ef | 3 years ago |
Iampete1 | d83503b9d1 | 3 years ago |
Andrew Tridgell | beeb46b4a5 | 3 years ago |
Andrew Tridgell | 1d2a64951c | 3 years ago |
Andrew Tridgell | ce4580efd2 | 3 years ago |
Andrew Tridgell | 20e30fbda9 | 3 years ago |
Andrew Tridgell | c4ce86a839 | 3 years ago |
Andrew Tridgell | ab54dda3ca | 3 years ago |
Andrew Tridgell | 96a55878a7 | 3 years ago |
Andrew Tridgell | f7e10208cd | 3 years ago |
Andrew Tridgell | c41a3af59d | 3 years ago |
Andrew Tridgell | 32404f5aa5 | 3 years ago |
Andrew Tridgell | 948ae05922 | 3 years ago |
Andrew Tridgell | 395cf1b6dd | 3 years ago |
Andrew Tridgell | c9938658da | 3 years ago |
Andrew Tridgell | b62e98c7e3 | 3 years ago |
Andrew Tridgell | 613e1ae7a9 | 3 years ago |
Andrew Tridgell | 2358e84d4e | 3 years ago |
Andrew Tridgell | 8f8d327c82 | 3 years ago |
Andrew Tridgell | c0f8fd9dce | 3 years ago |
Andrew Tridgell | d0ce3c8774 | 3 years ago |
Andrew Tridgell | 25f57af2e3 | 3 years ago |
Andrew Tridgell | abae8518f0 | 3 years ago |
Andrew Tridgell | 878219be3a | 3 years ago |
Andrew Tridgell | 76f483f3de | 3 years ago |
Andrew Tridgell | 46ede1b73f | 3 years ago |
Andrew Tridgell | fa4edc2ba1 | 3 years ago |
Andrew Tridgell | e8535115bd | 3 years ago |
Andrew Tridgell | 3b0b7b4bf2 | 3 years ago |
Andrew Tridgell | 7a9ac498cf | 3 years ago |
Andrew Tridgell | 6dc843b341 | 3 years ago |
Andrew Tridgell | 38662b98d8 | 3 years ago |
Randy Mackay | cb5ee43077 | 3 years ago |
Andrew Tridgell | 17db2505f2 | 3 years ago |
Andrew Tridgell | 16ae8fb765 | 3 years ago |
Andrew Tridgell | bb81a3bd3b | 3 years ago |
Andrew Tridgell | 88de8cdc21 | 3 years ago |
Randy Mackay | 8b0a080f6f | 3 years ago |
Randy Mackay | aa8f041d14 | 3 years ago |
143 changed files with 8444 additions and 886 deletions
@ -1,180 +0,0 @@
@@ -1,180 +0,0 @@
|
||||
name: test size |
||||
|
||||
on: [push, pull_request, workflow_dispatch] |
||||
# paths: |
||||
# - "*" |
||||
# - "!README.md" <-- don't rebuild on doc change |
||||
concurrency: |
||||
group: ci-${{github.workflow}}-${{ github.ref }} |
||||
cancel-in-progress: true |
||||
|
||||
jobs: |
||||
build: |
||||
runs-on: ubuntu-20.04 |
||||
container: ardupilot/ardupilot-dev-chibios:latest |
||||
strategy: |
||||
fail-fast: false # don't cancel if a job from the matrix fails |
||||
matrix: |
||||
toolchain: [ |
||||
base, # GCC |
||||
] |
||||
config: [ |
||||
Durandal, |
||||
MatekF405, |
||||
Pixhawk1-1M, |
||||
Hitec-Airspeed, # see special code for Periph below (3 places!) |
||||
f103-GPS # see special code for Periph below (3 places!) |
||||
] |
||||
steps: |
||||
- uses: actions/checkout@v2 |
||||
with: |
||||
ref: 'master' |
||||
path: 'master' |
||||
submodules: 'recursive' |
||||
# Put ccache into github cache for faster build |
||||
- name: Prepare ccache timestamp |
||||
id: ccache_cache_timestamp |
||||
run: | |
||||
NOW=$(date -u +"%F-%T") |
||||
echo "::set-output name=timestamp::${NOW}" |
||||
- name: ccache cache files |
||||
uses: actions/cache@v2 |
||||
with: |
||||
path: ~/.ccache |
||||
key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} |
||||
restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master |
||||
- 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 = 400M" >> ~/.ccache/ccache.conf |
||||
ccache -s |
||||
ccache -z |
||||
|
||||
- name: Build master ${{matrix.config}} ${{ matrix.toolchain }} |
||||
env: |
||||
CI_BUILD_TARGET: ${{matrix.config}} |
||||
shell: bash |
||||
run: | |
||||
PATH="/github/home/.local/bin:$PATH" |
||||
cd master |
||||
./waf configure --board ${{matrix.config}} |
||||
if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || |
||||
[ "${{matrix.config}}" = "f103-GPS" ]; then |
||||
./waf AP_Periph |
||||
else |
||||
./waf |
||||
fi |
||||
mkdir -p $GITHUB_WORKSPACE/master_bin |
||||
cp -r build/${{matrix.config}}/bin/* $GITHUB_WORKSPACE/master_bin/ |
||||
|
||||
# build a set of binaries without symbols so we can check if |
||||
# the binaries have changed. |
||||
echo [`date`] Building master with no versions |
||||
|
||||
NO_VERSIONS_DIR="$GITHUB_WORKSPACE/master_bin_no_versions" |
||||
mkdir "$NO_VERSIONS_DIR" |
||||
|
||||
if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || |
||||
[ "${{matrix.config}}" = "f103-GPS" ]; then |
||||
CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" ./waf AP_Periph |
||||
else |
||||
CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" ./waf |
||||
fi |
||||
cp -r build/${{matrix.config}}/bin/* "$NO_VERSIONS_DIR" |
||||
|
||||
echo [`date`] Built master with no versions |
||||
|
||||
- uses: actions/checkout@v2 |
||||
with: |
||||
fetch-depth: 0 |
||||
path: 'pr' |
||||
|
||||
- name: Build PR rebased ${{matrix.config}} ${{ matrix.toolchain }} |
||||
env: |
||||
CI_BUILD_TARGET: ${{matrix.config}} |
||||
shell: bash |
||||
run: | |
||||
PATH="/github/home/.local/bin:$PATH" |
||||
cd pr/ |
||||
git config user.email "ardupilot-ci@ardupilot.org" |
||||
git config user.name "ArduPilot CI" |
||||
git remote add ardupilot https://github.com/ArduPilot/ardupilot.git |
||||
git fetch --no-tags --prune --progress ardupilot master |
||||
git rebase ardupilot/master |
||||
git submodule update --init --recursive --depth=1 |
||||
./waf configure --board ${{matrix.config}} |
||||
if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || |
||||
[ "${{matrix.config}}" = "f103-GPS" ]; then |
||||
./waf AP_Periph |
||||
else |
||||
./waf |
||||
fi |
||||
mkdir $GITHUB_WORKSPACE/pr_bin |
||||
cp -r build/${{matrix.config}}/bin/* $GITHUB_WORKSPACE/pr_bin/ |
||||
|
||||
# build a set of binaries without symbols so we can check if |
||||
# the binaries have changed. |
||||
echo [`date`] Building PR with no versions |
||||
|
||||
NO_VERSIONS_DIR="$GITHUB_WORKSPACE/pr_bin_no_versions" |
||||
mkdir "$NO_VERSIONS_DIR" |
||||
|
||||
if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || |
||||
[ "${{matrix.config}}" = "f103-GPS" ]; then |
||||
CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" ./waf AP_Periph |
||||
else |
||||
CHIBIOS_GIT_VERSION="12345678" GIT_VERSION="abcdef" ./waf |
||||
fi |
||||
cp -r build/${{matrix.config}}/bin/* "$NO_VERSIONS_DIR" |
||||
|
||||
echo [`date`] Built PR with no versions |
||||
|
||||
# build MatekF405 Plane without quadplane |
||||
if [ "${{matrix.config}}" = "MatekF405" ]; then |
||||
PLANE_BINARY="build/MatekF405/bin/arduplane.bin" |
||||
echo "normal size" |
||||
ls -l "$PLANE_BINARY" |
||||
EXTRA_HWDEF="/tmp/extra-options.def" |
||||
echo "define HAL_QUADPLANE_ENABLED 0" >"$EXTRA_HWDEF" |
||||
./waf configure --board ${{matrix.config}} --extra-hwdef="$EXTRA_HWDEF" |
||||
./waf plane |
||||
rm "$EXTRA_HWDEF" |
||||
echo "non-quadplane size:" |
||||
ls -l "$PLANE_BINARY" |
||||
fi |
||||
|
||||
- name: Full size compare with Master |
||||
shell: bash |
||||
run: | |
||||
cd pr/ |
||||
python3 -m pip install -U tabulate |
||||
Tools/scripts/pretty_diff_size.py -m $GITHUB_WORKSPACE/master_bin -s $GITHUB_WORKSPACE/pr_bin |
||||
|
||||
- name: Checksum compare with Master |
||||
shell: bash |
||||
run: | |
||||
diff -r $GITHUB_WORKSPACE/master_bin_no_versions $GITHUB_WORKSPACE/pr_bin_no_versions --exclude=*.elf --exclude=*.apj || true |
||||
|
||||
- name: elf_diff compare with Master |
||||
shell: bash |
||||
run: | |
||||
python3 -m pip install -U weasyprint elf_diff anytree |
||||
mkdir elf_diff |
||||
if [ "${{matrix.config}}" = "Hitec-Airspeed" ] || |
||||
[ "${{matrix.config}}" = "f103-GPS" ]; then |
||||
python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/AP_Periph $GITHUB_WORKSPACE/master_bin/AP_Periph $GITHUB_WORKSPACE/pr_bin/AP_Periph |
||||
else |
||||
python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/plane $GITHUB_WORKSPACE/master_bin/arduplane $GITHUB_WORKSPACE/pr_bin/arduplane |
||||
python3 -m elf_diff --bin_prefix=arm-none-eabi- --html_dir=elf_diff/copter $GITHUB_WORKSPACE/master_bin/arducopter $GITHUB_WORKSPACE/pr_bin/arducopter |
||||
fi |
||||
zip -r elf_diff.zip elf_diff |
||||
|
||||
- name: Archive elf_diff output |
||||
uses: actions/upload-artifact@v2 |
||||
with: |
||||
name: ELF_DIFF_${{matrix.config}} |
||||
path: elf_diff.zip |
||||
retention-days: 14 |
@ -0,0 +1,102 @@
@@ -0,0 +1,102 @@
|
||||
Release 1.3.2 28th Apr 2022 |
||||
--------------------------- |
||||
|
||||
This is a minor release with the following changes: |
||||
|
||||
- added bootloader for Holybro_G4 GPS |
||||
- uncompress bootloader on Holybro_G4 GPS to handle low memory |
||||
- fixed RM3100 mask on Sierra-L431 |
||||
- disable watchdog on DMA errors |
||||
|
||||
Release 1.3.1 18th Apr 2022 |
||||
--------------------------- |
||||
|
||||
This is a minor release with two changes: |
||||
|
||||
- fixed intermittent loss of GPS packets on F4 and L4 GPS nodes which caused loss of GPS lock on the flight controller |
||||
- add support for the MatekL431-Rangefinder target |
||||
|
||||
Release 1.3.0 18th Mar 2022 |
||||
--------------------------- |
||||
|
||||
This is a major release with several significant bug fixes and |
||||
improvements: |
||||
|
||||
- added new peripherals: BirdCANdy, MatekL431, CubeOrange-periph, |
||||
G4-ESC, HerePro, Hitec-Airspeed, HolybroG4GPS, HolybroGPS, |
||||
Sierra-F405, Sierra-F421, Sierra-F9P, Sierra-L431, |
||||
f103-QiotekPeriph, f405-MatekGPS, f405-MatekAirspeed, mRo-M10095, |
||||
ARK_GPS, HitecMosaic, MatekH743-periph, Pixracer-periph |
||||
|
||||
- support dshot for CAN ESC outputs |
||||
|
||||
- support a wider range of notify options |
||||
|
||||
- numerous small bug fixes |
||||
|
||||
- support lua scripting in peripherals |
||||
|
||||
- switched to DroneCAN compiler and libraries |
||||
|
||||
- support logging in peripherals |
||||
|
||||
- support dual CAN bus |
||||
|
||||
- support BLHeli monitoring of ESC telemetry |
||||
|
||||
- support mavlink in peripherals |
||||
|
||||
- support moving baseline yaw dual-GPS on dual-CAN GPS |
||||
|
||||
- support MPPT battery driver |
||||
|
||||
- fixed MSP GPS yaw |
||||
|
||||
Note that the next major release will add CANFD support. |
||||
|
||||
Release 1.2.0 6th Jan 2020 |
||||
-------------------------- |
||||
|
||||
This is a major release with several significant bug fixes and |
||||
improvements: |
||||
|
||||
- support for battery monitor nodes |
||||
|
||||
- support for testing in SITL |
||||
|
||||
- improvements in error reporting to the flight controller |
||||
|
||||
- fixes to stack sizes |
||||
|
||||
- MSP output support |
||||
|
||||
- support for BGR NCP5623 LEDs |
||||
|
||||
- switched to common CAN stack with main ArduPilot vehicle code |
||||
|
||||
- added several new board types |
||||
|
||||
|
||||
Release 1.1.0 14th May 2020 |
||||
--------------------------- |
||||
|
||||
This is a major release with several significant bug fixes: |
||||
|
||||
- fixed initial GPS timestamp which could cause ArduPilot to get bad |
||||
time sync |
||||
|
||||
- fixed airspeed pressure wrap |
||||
|
||||
- fixed rangefinder to send the RNGFND1_ADDR as sensor_id |
||||
|
||||
- added distinctive LED blink pattern when waiting for UAVCAN node ID |
||||
allocation |
||||
|
||||
- added HWESC build targets for HobbyWing ESC telemetry |
||||
|
||||
- fixed RM3100 compass scaling bug |
||||
|
||||
Release 1.0.0 9th November 2019 |
||||
------------------------------- |
||||
|
||||
Initial stable release |
@ -1,46 +0,0 @@
@@ -1,46 +0,0 @@
|
||||
Release 1.2.0 6th Jan 2020 |
||||
-------------------------- |
||||
|
||||
This is a major release with several significant bug fixes and |
||||
improvements: |
||||
|
||||
- support for battery monitor nodes |
||||
|
||||
- support for testing in SITL |
||||
|
||||
- improvements in error reporting to the flight controller |
||||
|
||||
- fixes to stack sizes |
||||
|
||||
- MSP output support |
||||
|
||||
- support for BGR NCP5623 LEDs |
||||
|
||||
- switched to common CAN stack with main ArduPilot vehicle code |
||||
|
||||
- added several new board types |
||||
|
||||
|
||||
Release 1.1.0 14th May 2020 |
||||
--------------------------- |
||||
|
||||
This is a major release with several significant bug fixes: |
||||
|
||||
- fixed initial GPS timestamp which could cause ArduPilot to get bad |
||||
time sync |
||||
|
||||
- fixed airspeed pressure wrap |
||||
|
||||
- fixed rangefinder to send the RNGFND1_ADDR as sensor_id |
||||
|
||||
- added distinctive LED blink pattern when waiting for UAVCAN node ID |
||||
allocation |
||||
|
||||
- added HWESC build targets for HobbyWing ESC telemetry |
||||
|
||||
- fixed RM3100 compass scaling bug |
||||
|
||||
Release 1.0.0 9th November 2019 |
||||
------------------------------- |
||||
|
||||
Initial stable release |
@ -1,14 +1,11 @@
@@ -1,14 +1,11 @@
|
||||
#pragma once |
||||
|
||||
#define THISFIRMWARE "AP_Periph V1.3dev" |
||||
#define THISFIRMWARE "AP_Periph V1.3.2" |
||||
|
||||
// the following line is parsed by the autotest scripts
|
||||
#define FIRMWARE_VERSION 1,3,0,FIRMWARE_VERSION_TYPE_DEV |
||||
#define FIRMWARE_VERSION 1,3,2,FIRMWARE_VERSION_TYPE_OFFICIAL |
||||
|
||||
#define FW_MAJOR 1 |
||||
#define FW_MINOR 3 |
||||
#define FW_PATCH 0 |
||||
#define FW_TYPE FIRMWARE_VERSION_TYPE_DEV |
||||
|
||||
|
||||
|
||||
#define FW_PATCH 2 |
||||
#define FW_TYPE FIRMWARE_VERSION_TYPE_OFFICIAL |
||||
|
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env python3 |
||||
''' |
||||
test script to check if all CAN GPS nodes are producing Fix2 frames at the expected rate |
||||
''' |
||||
|
||||
import dronecan, time |
||||
from dronecan import uavcan |
||||
|
||||
# get command line arguments |
||||
from argparse import ArgumentParser |
||||
parser = ArgumentParser(description='Fix2 gap example') |
||||
parser.add_argument("--bitrate", default=1000000, type=int, help="CAN bit rate") |
||||
parser.add_argument("--node-id", default=100, type=int, help="CAN node ID") |
||||
parser.add_argument("--max-gap", default=0.25, type=int, help="max gap in seconds") |
||||
parser.add_argument("port", default=None, type=str, help="serial port or mavcan URI") |
||||
args = parser.parse_args() |
||||
|
||||
# Initializing a DroneCAN node instance. |
||||
node = dronecan.make_node(args.port, node_id=args.node_id, bitrate=args.bitrate) |
||||
|
||||
# Initializing a node monitor |
||||
node_monitor = dronecan.app.node_monitor.NodeMonitor(node) |
||||
|
||||
last_fix2 = {} |
||||
|
||||
def handle_fix2(msg): |
||||
nodeid = msg.transfer.source_node_id |
||||
tstamp = msg.transfer.ts_real |
||||
if not nodeid in last_fix2: |
||||
last_fix2[nodeid] = tstamp |
||||
return |
||||
dt = tstamp - last_fix2[nodeid] |
||||
last_fix2[nodeid] = tstamp |
||||
if dt > args.max_gap: |
||||
print("Node %u gap=%.3f" % (nodeid, dt)) |
||||
|
||||
# callback for printing ESC status message to stdout in human-readable YAML format. |
||||
node.add_handler(dronecan.uavcan.equipment.gnss.Fix2, handle_fix2) |
||||
|
||||
while True: |
||||
try: |
||||
node.spin() |
||||
except Exception as ex: |
||||
print(ex) |
@ -0,0 +1,87 @@
@@ -0,0 +1,87 @@
|
||||
# iFlight Beast H7 v2 55A AIO Flight Controller |
||||
|
||||
https://shop.iflight-rc.com/Beast-H7-V2-55A-AIO-MPU6000-25.5-25.5-pro1588 |
||||
|
||||
The Beast H7 AIO is a flight controller produced by [iFlight](https://shop.iflight-rc.com/). |
||||
|
||||
## Features |
||||
|
||||
- MCU: BGA-STM32H743 |
||||
- Gyro: BMI270 |
||||
- 16Mb Onboard Flash |
||||
- BEC output: 5V 2.5A |
||||
- No Barometer |
||||
- OSD: AT7456E |
||||
- 5 UARTS: (UART1, UART2, UART3, UART4, UART7) |
||||
- I2C for external compass. UART3 pins are used for I2C (BRD_ALT_CONFIG=1) |
||||
- 5 PWM outputs (4 motors and 1 LED) |
||||
|
||||
## Pinout |
||||
|
||||
![Beast H7 v2 AIO Board](beast_h7v2_pinout.jpg "Beast H7 v2 AIO") |
||||
|
||||
## UART Mapping |
||||
|
||||
The UARTs are marked Rn and Tn in the above pinouts. The Rn pin is the |
||||
receive pin for UARTn. The Tn pin is the transmit pin for UARTn. |
||||
|Name|Pin|Function| |
||||
|:-|:-|:-| |
||||
|SERIAL0|COMPUTER|USB| |
||||
|SERIAL1|RX1/TX1|UART1 (DJI connector)| |
||||
|SERIAL2|TX2/RX2|UART2 (DJI connector, TX is on the back side of board)| |
||||
|SERIAL3|TX3/RX3|UART3| |
||||
|SERIAL4|TX4/RX4|UART4| |
||||
|SERIAL7|TX7/RX7|UART7 (GPS)| |
||||
|
||||
All UARTS support DMA. |
||||
|
||||
## RC Input |
||||
|
||||
RC input is configured on the (UART2_RX/UART2_TX) pins which forms part of the DJI connector. It supports all RC protocols. |
||||
|
||||
## OSD Support |
||||
|
||||
The Beast H7 v2 AIO supports OSD using OSD_TYPE 1 (MAX7456 driver). |
||||
|
||||
## PWM Output |
||||
|
||||
The Beast H7 AIO supports up to 4 PWM outputs. The pads for motor output ESC1 to ESC4 on the above diagram are for the 4 outputs. All 4 outputs support DShot as well as all PWM types. |
||||
|
||||
The PWM are in in two groups. |
||||
|
||||
Channels within the same group need to use the same output rate. If |
||||
any channel in a group uses DShot then all channels in the group need |
||||
to use DShot. |
||||
|
||||
## Battery Monitoring |
||||
|
||||
The board has a builtin voltage sensor. The voltage sensor can handle up to 6S |
||||
LiPo batteries. |
||||
|
||||
The correct battery setting parameters are: |
||||
|
||||
- BATT_MONITOR 4 |
||||
- BATT_VOLT_PIN 12 |
||||
- BATT_VOLT_MULT around 10.9 |
||||
- BATT_CURR_PIN 13 |
||||
- BATT_CURR_MULT around 28.5 |
||||
|
||||
These are set by default in the firmware and shouldn't need to be adjusted |
||||
|
||||
## Compass |
||||
|
||||
The Beast H7 v2 AIO does not have a builtin compass, but you can attach an external compass to I2C pins. Default configuration does not have I2C bus enabled. You need to set BRD_ALT_CONFIG=1 to make I2C use RX3/TX3 pins. |
||||
|
||||
## NeoPixel LED |
||||
|
||||
The board includes a NeoPixel LED on the underside which is pre-configured to output ArduPilot sequences. This is the fifth PWM output. |
||||
|
||||
## Loading Firmware |
||||
|
||||
Initial firmware load can be done with DFU by plugging in USB with the |
||||
bootloader button pressed. Then you should load the "with_bl.hex" |
||||
firmware, using your favourite DFU loading tool. |
||||
|
||||
Once the initial firmware is loaded you can update the firmware using |
||||
any ArduPilot ground station software. Updates should be done with the |
||||
*.apj firmware files. |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
# setup for LEDs on chan5 |
||||
SERVO5_FUNCTION 120 |
||||
NTF_LED_TYPES 257 |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
include ../BeastH7/hwdef-bl.dat |
||||
undef APJ_BOARD_ID |
||||
APJ_BOARD_ID 1056 |
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
# hw definition file for processing by chibios_pins.py |
||||
# for iFlight Beast H7 v2 hardware, based on Beast H7 v1 |
||||
# thanks to betaflight for pin information |
||||
|
||||
include ../BeastH7/hwdef.dat |
||||
undef APJ_BOARD_ID |
||||
undef HAL_SERIAL3_PROTOCOL |
||||
undef IMU |
||||
undef BARO |
||||
undef PD15 |
||||
undef PE9 PE11 PB8 PB9 PB11 PB10 PA10 PA9 PA3 PA2 |
||||
undef HAL_DEFAULT_INS_FAST_SAMPLE DMA_PRIORITY DMA_NOSHARE |
||||
undef STM32_PWM_USE_ADVANCED |
||||
undef I2C1 |
||||
|
||||
# board ID for firmware load |
||||
APJ_BOARD_ID 1056 |
||||
|
||||
# V2 has different motor mapping |
||||
PB4 TIM3_CH1 TIM3 PWM(2) GPIO(51) BIDIR # 2 |
||||
PB5 TIM3_CH2 TIM3 PWM(3) GPIO(52) # 3 |
||||
|
||||
# only one I2C bus |
||||
I2C_ORDER I2C2 |
||||
|
||||
# order of UARTs (and USB) |
||||
SERIAL_ORDER OTG1 USART1 USART2 USART3 UART4 EMPTY EMPTY UART7 |
||||
|
||||
# Buzzer - DMA timer channel use by LEDs |
||||
PD2 BUZZER OUTPUT GPIO(80) LOW |
||||
|
||||
# USART1 (DJI) |
||||
PA10 USART1_RX USART1 |
||||
PA9 USART1_TX USART1 NODMA |
||||
|
||||
# USART2 (DJI RCIN) |
||||
PA3 USART2_RX USART2 |
||||
PA2 USART2_TX USART2 NODMA |
||||
define HAL_SERIAL2_PROTOCOL SerialProtocol_RCIN |
||||
|
||||
# USART3 (RCIN) |
||||
PB11 USART3_RX USART3 |
||||
PB10 USART3_TX USART3 |
||||
|
||||
# I2C2 for compass. These pins can also be used as USART3 |
||||
PB10 I2C2_SCL I2C2 ALT(1) |
||||
PB11 I2C2_SDA I2C2 ALT(1) |
||||
|
||||
# spi devices |
||||
SPIDEV bmi270 SPI1 DEVID1 MPU6000_CS MODE3 10*MHZ 10*MHZ |
||||
|
||||
# no built-in compass and no external I2C so no compass |
||||
define HAL_PROBE_EXTERNAL_I2C_COMPASSES |
||||
|
||||
# one IMU |
||||
IMU BMI270 SPI:bmi270 ROTATION_ROLL_180_YAW_225 |
||||
|
||||
# v2 has no BARO |
||||
define HAL_BARO_ALLOW_INIT_NO_BARO 1 |
@ -0,0 +1,86 @@
@@ -0,0 +1,86 @@
|
||||
# hw definition file for processing by chibios_pins.py |
||||
|
||||
# MCU class and specific type |
||||
MCU STM32G4xx STM32G474xx |
||||
|
||||
FLASH_RESERVE_START_KB 0 |
||||
FLASH_BOOTLOADER_LOAD_KB 32 |
||||
|
||||
# reserve some space for params |
||||
APP_START_OFFSET_KB 4 |
||||
|
||||
# assume 512k flash part |
||||
FLASH_SIZE_KB 512 |
||||
|
||||
# board ID for firmware load |
||||
APJ_BOARD_ID 1053 |
||||
|
||||
# setup build for a peripheral firmware |
||||
env AP_PERIPH 1 |
||||
|
||||
# debug on USART2 |
||||
STDOUT_SERIAL SD2 |
||||
STDOUT_BAUDRATE 57600 |
||||
|
||||
# crystal frequency |
||||
OSCILLATOR_HZ 16000000 |
||||
|
||||
define CH_CFG_ST_FREQUENCY 1000000 |
||||
|
||||
# order of UARTs |
||||
SERIAL_ORDER USART2 |
||||
|
||||
# blue LED |
||||
PC10 LED_BOOTLOADER OUTPUT HIGH |
||||
define HAL_LED_ON 0 |
||||
|
||||
PB15 LED_RED OUTPUT HIGH |
||||
PC6 LED_GREEN OUTPUT HIGH |
||||
|
||||
# USART2 |
||||
PA2 USART2_TX USART2 |
||||
PA3 USART2_RX USART2 |
||||
|
||||
# SWD debugging |
||||
PA13 JTMS-SWDIO SWD |
||||
PA14 JTCK-SWCLK SWD |
||||
|
||||
define HAL_USE_SERIAL TRUE |
||||
|
||||
define STM32_SERIAL_USE_USART1 FALSE |
||||
define STM32_SERIAL_USE_USART2 TRUE |
||||
define STM32_SERIAL_USE_USART3 FALSE |
||||
|
||||
define HAL_NO_GPIO_IRQ |
||||
define HAL_USE_EMPTY_IO TRUE |
||||
|
||||
# avoid timer and RCIN threads to save memory |
||||
define HAL_NO_TIMER_THREAD |
||||
define HAL_NO_RCIN_THREAD |
||||
|
||||
define DMA_RESERVE_SIZE 0 |
||||
|
||||
define HAL_DISABLE_LOOP_DELAY |
||||
|
||||
# enable CAN support |
||||
|
||||
PA11 CAN1_RX CAN1 |
||||
PA12 CAN1_TX CAN1 |
||||
PC13 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW |
||||
|
||||
PB12 CAN2_RX CAN2 |
||||
PB13 CAN2_TX CAN2 |
||||
PB14 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW |
||||
|
||||
define CAN_APP_NODE_NAME "org.ardupilot.HolybroG4_GPS" |
||||
|
||||
# make bl baudrate match debug baudrate for easier debugging |
||||
define BOOTLOADER_BAUDRATE 57600 |
||||
|
||||
# use a smaller bootloader timeout |
||||
define HAL_BOOTLOADER_TIMEOUT 2500 |
||||
|
||||
# Add CS pins to ensure they are high in bootloader |
||||
PB1 BARO_CS CS |
||||
PC4 GYRO_CS CS |
||||
PC14 ICM_CS CS |
@ -0,0 +1,161 @@
@@ -0,0 +1,161 @@
|
||||
# hw definition file for processing by chibios_pins.py |
||||
# MCU class and specific type |
||||
|
||||
# MCU class and specific type |
||||
MCU STM32G4xx STM32G474xx |
||||
|
||||
FLASH_RESERVE_START_KB 36 |
||||
|
||||
STORAGE_FLASH_PAGE 16 |
||||
define HAL_STORAGE_SIZE 800 |
||||
|
||||
# board ID for firmware load |
||||
APJ_BOARD_ID 1053 |
||||
|
||||
# setup build for a peripheral firmware |
||||
env AP_PERIPH 1 |
||||
|
||||
# crystal frequency |
||||
OSCILLATOR_HZ 16000000 |
||||
|
||||
define CH_CFG_ST_FREQUENCY 1000000 |
||||
|
||||
# assume 512k flash part |
||||
FLASH_SIZE_KB 512 |
||||
|
||||
# debug on USART2 |
||||
STDOUT_SERIAL SD2 |
||||
STDOUT_BAUDRATE 57600 |
||||
|
||||
# order of UARTs |
||||
SERIAL_ORDER USART2 USART3 |
||||
|
||||
# sensor power control |
||||
PC11 VDD_3V3_SENSORS_EN OUTPUT HIGH |
||||
|
||||
# LEDs |
||||
PC10 LED OUTPUT HIGH GPIO(2) # blue |
||||
PB15 LED_R OUTPUT HIGH GPIO(0) |
||||
PC6 LED_G OUTPUT HIGH GPIO(1) |
||||
|
||||
define HAL_GPIO_A_LED_PIN 0 |
||||
define HAL_GPIO_B_LED_PIN 1 |
||||
define HAL_GPIO_C_LED_PIN 2 |
||||
|
||||
define HAL_GPIO_LED_ON 0 |
||||
define HAL_GPIO_LED_OFF 1 |
||||
|
||||
define HAL_HAVE_PIXRACER_LED |
||||
|
||||
# USART3, GPS |
||||
PB10 USART3_TX USART3 |
||||
PB11 USART3_RX USART3 |
||||
|
||||
# USART2, debug |
||||
PA2 USART2_TX USART2 |
||||
PA3 USART2_RX USART2 |
||||
|
||||
# SWD debugging |
||||
PA13 JTMS-SWDIO SWD |
||||
PA14 JTCK-SWCLK SWD |
||||
|
||||
# I2C1 bus |
||||
PB7 I2C1_SDA I2C1 |
||||
PB8 I2C1_SCL I2C1 |
||||
|
||||
# I2C2 bus |
||||
PA8 I2C2_SDA I2C2 |
||||
PA9 I2C2_SCL I2C2 |
||||
|
||||
define HAL_I2C_INTERNAL_MASK 3 |
||||
|
||||
# I2C buses |
||||
I2C_ORDER I2C1 I2C2 |
||||
|
||||
# one SPI bus |
||||
PA5 SPI1_SCK SPI1 |
||||
PA6 SPI1_MISO SPI1 |
||||
PA7 SPI1_MOSI SPI1 |
||||
|
||||
# SPI CS |
||||
PC4 GYR_CS CS |
||||
PB1 ACC_CS CS |
||||
PC14 ICM_CS CS |
||||
|
||||
# GPS PPS |
||||
PA15 GPS_PPS_IN INPUT |
||||
|
||||
# SPI devices |
||||
SPIDEV bmi088_a SPI1 DEVID1 ACC_CS MODE3 10*MHZ 10*MHZ |
||||
SPIDEV bmi088_g SPI1 DEVID2 GYR_CS MODE3 10*MHZ 10*MHZ |
||||
|
||||
# compass |
||||
COMPASS BMM150 I2C:0:0x10 false ROTATION_YAW_90 |
||||
|
||||
# baro |
||||
BARO BMP388 I2C:0:0x77 |
||||
|
||||
# IMU |
||||
IMU BMI088 SPI:bmi088_a SPI:bmi088_g ROTATION_ROLL_180_YAW_90 |
||||
|
||||
define HAL_BARO_ALLOW_INIT_NO_BARO |
||||
|
||||
define HAL_USE_ADC FALSE |
||||
define STM32_ADC_USE_ADC1 FALSE |
||||
define HAL_DISABLE_ADC_DRIVER TRUE |
||||
|
||||
define HAL_NO_GPIO_IRQ |
||||
|
||||
# avoid RCIN thread to save memory |
||||
define HAL_NO_RCIN_THREAD |
||||
|
||||
define HAL_USE_RTC FALSE |
||||
define DISABLE_SERIAL_ESC_COMM TRUE |
||||
|
||||
define DMA_RESERVE_SIZE 0 |
||||
|
||||
define HAL_DISABLE_LOOP_DELAY |
||||
|
||||
# enable CAN support |
||||
|
||||
PA11 CAN1_RX CAN1 |
||||
PA12 CAN1_TX CAN1 |
||||
PC13 GPIO_CAN1_SILENT OUTPUT PUSHPULL SPEED_LOW LOW |
||||
|
||||
PB12 CAN2_RX CAN2 |
||||
PB13 CAN2_TX CAN2 |
||||
PB14 GPIO_CAN2_SILENT OUTPUT PUSHPULL SPEED_LOW LOW |
||||
|
||||
define CAN_APP_NODE_NAME "org.ardupilot.HolybroG4_GPS" |
||||
|
||||
define HAL_NO_LOGGING |
||||
define HAL_NO_MONITOR_THREAD |
||||
|
||||
define HAL_MINIMIZE_FEATURES 0 |
||||
|
||||
define HAL_DEVICE_THREAD_STACK 768 |
||||
|
||||
# we setup a small defaults.parm |
||||
define AP_PARAM_MAX_EMBEDDED_PARAM 256 |
||||
|
||||
# disable dual GPS and GPS blending to save flash space |
||||
define GPS_MAX_RECEIVERS 1 |
||||
define GPS_MAX_INSTANCES 1 |
||||
define HAL_COMPASS_MAX_SENSORS 1 |
||||
|
||||
# GPS+MAG+BARO+LEDs |
||||
define HAL_PERIPH_ENABLE_GPS |
||||
define HAL_PERIPH_ENABLE_MAG |
||||
define HAL_PERIPH_ENABLE_BARO |
||||
define HAL_PERIPH_ENABLE_NOTIFY |
||||
define HAL_PERIPH_ENABLE_RC_OUT |
||||
|
||||
# single baro |
||||
define BARO_MAX_INSTANCES 1 |
||||
|
||||
# GPS on 2nd port |
||||
define HAL_PERIPH_GPS_PORT_DEFAULT 1 |
||||
|
||||
# keep ROMFS uncompressed as we don't have enough RAM |
||||
# to uncompress the bootloader at runtime |
||||
env ROMFS_UNCOMPRESSED True |
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
include ../MatekL431/hwdef-bl.inc |
||||
|
||||
define CAN_APP_NODE_NAME "org.ardupilot.MatekL431-Airspeed" |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue