ArduPlane, ArduCopter, ArduRover, ArduSub source
Go to file
Andrew Tridgell 1c8048df8f HAL_ChibiOS: fixed CANFD timings
our CANFD timings were resulting in a lot of busoff errors. Here is an
example of master at 1Mbit/5MBit:

Getting @SYS/can0_stats.txt as -
------- Clock Config -------
CAN_CLK_FREQ:   80MHz
Std Timings: bitrate=1000000 presc=7
sjw=0 bs1=7 bs2=0 sample_point=90.00000%
FD Timings:  bitrate=5000000 presc=1
sjw=0 bs1=5 bs2=0 sample_point=90.00000%
------- CAN Interface Stats -------
tx_requests:    2689
tx_rejected:    0
tx_overflow:    443
tx_success:     7
tx_timedout:    2232
tx_abort:       0
rx_received:    18470
rx_overflow:    0
rx_errors:      0
num_busoff_err: 34439
num_events:     18477
ECR:            F8
fdf_rx:         18467
fdf_tx_req:     2182
fdf_tx:         0

here is an example with the new timings:

------- Clock Config -------
CAN_CLK_FREQ:   80MHz
Std Timings: bitrate=1000000 presc=8
sjw=1 bs1=8 bs2=1 sample_point=90.00000%
FD Timings:  bitrate=8000000 presc=2
sjw=3 bs1=8 bs2=3 sample_point=80.00000%
------- CAN Interface Stats -------
tx_requests:    3023
tx_rejected:    0
tx_overflow:    0
tx_success:     3023
tx_timedout:    0
tx_abort:       0
rx_received:    27865
rx_overflow:    0
rx_errors:      0
num_busoff_err: 0
num_events:     30888
ECR:            0
fdf_rx:         27862
fdf_tx_req:     3016
fdf_tx:         3016

I am testing between a CubeOrange and a Pixhawk6X. I tested 1, 2, 4, 5
and 8 MBit (which are the only valid FD bitrates in our parameters)

Many thanks to Kai from Salient Motion for finding this issue and
providing the corrected timing table
2024-01-25 11:44:02 +11:00
.github github: actions problem solvers , annotations and summary 2024-01-16 13:43:06 +11:00
.vscode vscode: Add extension for automatically picking process 2023-08-11 12:29:58 -07:00
AntennaTracker AntennaTracker: use virtual method for GCS_MAVLink::handle_message 2024-01-24 09:07:41 +11:00
ArduCopter ArduCopter: handle RADIO_STATUS is GCS base class 2024-01-24 18:43:15 +11:00
ArduPlane Plane: break out a method for set-attitude-target 2024-01-24 19:10:35 +11:00
ArduSub ArduSub: use virtual method for GCS_MAVLink::handle_message 2024-01-24 09:07:41 +11:00
Blimp Blimp: handle RADIO_STATUS is GCS base class 2024-01-24 18:43:15 +11:00
Rover Rover: handle RADIO_STATUS is GCS base class 2024-01-24 18:43:15 +11:00
Tools AP_ROMFS: fix buffer null terminator 2024-01-25 11:24:31 +11:00
benchmarks
docs docs: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
libraries HAL_ChibiOS: fixed CANFD timings 2024-01-25 11:44:02 +11:00
modules lwip: update for PPP bridge support 2024-01-12 14:23:34 -08:00
tests AP_gtest: enable testing for exit conditions, SITL unit tests 2021-09-28 09:11:48 +10:00
.dir-locals.el
.dockerignore Tools: fix junit report and add firmware version on report 2023-11-22 18:32:19 +11:00
.editorconfig .editorconfig: Update for more standards aware editors 2023-05-23 09:56:28 +10:00
.flake8 Tools: Improved flake8 speed, ignore, and exclude 2022-06-28 13:16:24 +10:00
.git-blame-ignore-revs .git-blame-ignore-revs: Ignore black format change 2023-11-25 13:49:05 -08:00
.gitattributes .gitattributes: mark bin, elf and hex as binary 2021-05-20 11:45:02 +10:00
.gitignore .ignore: remove junit xml files 2023-11-22 18:32:19 +11:00
.gitmodules lwip: remove ext/lwip and add as modules/lwip 2024-01-03 12:14:47 +11:00
.pre-commit-config.yaml .pre-commit: Add Tools/ros2 to list of black formatted files 2023-11-22 11:50:39 -08:00
.pydevproject
.valgrind-suppressions Valgrind: add supressions file and .valgrindrc using it 2019-07-18 16:49:11 +10:00
.valgrindrc Valgrind: add supressions file and .valgrindrc using it 2019-07-18 16:49:11 +10:00
BUILD.md waf : wscript add submoduleclean & submodule_force_clean 2024-01-17 07:41:44 +11:00
CODE_OF_CONDUCT.md Add developer code of coduct 2022-02-08 10:53:35 +11:00
COPYING.txt
Dockerfile Docker: Added oportunity to set build flags (some envs) via docker build args 2023-11-18 12:19:26 +11:00
Doxyfile.in
Makefile Make: use https:// scheme for ardupilot URLs 2019-12-10 07:53:46 +11:00
README.md README: fix GPL license URL 2023-08-16 16:27:17 +10:00
Vagrantfile Vagrant: add Mantic Minotaur to available VMs 2023-10-16 09:12:42 +11:00
pyproject.toml global: add skip-string-normalization to black config 2022-07-26 21:23:42 +10:00
waf waf: use python3 even if /usr/bin/python is v2 2023-05-06 10:09:04 +10:00
wscript waf : wscript add submoduleclean & submodule_force_clean 2024-01-17 07:41:44 +11:00

README.md

ArduPilot Project

Discord

Test Copter Test Plane Test Rover Test Sub Test Tracker

Test AP_Periph Test Chibios Test Linux SBC Test Replay

Test Unit Tests test size

Test Environment Setup

Cygwin Build Macos Build

Coverity Scan Build Status

Test Coverage

Autotest Status

ArduPilot is the most advanced, full-featured, and reliable open source autopilot software available. It has been under development since 2010 by a diverse team of professional engineers, computer scientists, and community contributors. Our autopilot software is capable of controlling almost any vehicle system imaginable, from conventional airplanes, quad planes, multi-rotors, and helicopters to rovers, boats, balance bots, and even submarines. It is continually being expanded to provide support for new emerging vehicle types.

The ArduPilot project is made up of:

User Support & Discussion Forums

Developer Information

Top Contributors

How To Get Involved

License

The ArduPilot project is licensed under the GNU General Public License, version 3.

Maintainers

ArduPilot is comprised of several parts, vehicles and boards. The list below contains the people that regularly contribute to the project and are responsible for reviewing patches on their specific area.