ArduPlane, ArduCopter, ArduRover, ArduSub source
Go to file
Torsten Z b4f4ad7c01 AP_FETtecOneWire: A serial-based ESC protocol with telemetry
Co-authored-by: Torsten Z <t.zunker@fettec.net>
Co-authored-by: Dr.-Ing. Amilcar do Carmo Lucas <amilcar.lucas@iav.de>
Co-authored-by: Peter Barker <pb-gh@barker.dropbear.id.au>

- uses ArduPilot's coding guidelines and naming conventions
- control motor speed
- Use the AP_ESC_Telem base class to:
  - copy ESC telemetry data into MAVLink telemetry
  - save ESC telemetry data in dataflash logs
  - use RPM telemetry for dynamic notch filter frequencies
  - sum the current telemetry info from all ESCs and use it as virtual battery current monitor sensor
  - average the voltage telemetry info and use it as virtual battery voltage monitor sensor
  - average the temperature telemetry info and use it as virtual battery temperature monitor sensor
- Obey the safety switch. Keeps motors from turning
- Use `SERVO_FWT_MASK` to define which servo output should be routed to FETtec ESCs
- Use `SERVO_FWT_RVMASK` to define the rotation direction of the motors
  - `SERVO_FWT_RVMASK` changes only take effect when disarmed
- Can be compiled when `HAL_WITH_ESC_TELEM` is disabled. No telemetry data will be available but it saves a lot of memory
- pre-arm checks:
  - Check that UART is available
  - check that the desired motor channels parameter (`SERVO_FWT_MASK`) is valid
  - check that the desired motor poles parameter (`SERVO_FWT_POLES`) is valid
  - check that the all desired ESCs are found and configured
  - check that the ESCs are periodically sending telemetry data
- re-init and configure an ESC(s) if not armed (motors not spinning) when
  - telemetry communication with the ESC(s) is lost
- adds a serial simulator (--uartF=sim:fetteconewireesc) of FETtec OneWire ESCs
- adds autotest (using the simulator) to:
  - simulate telemetry voltage, current, temperature, RPM data using SITL internal variables
  - test the safety switch functionality
  - test ESC power outages
  - test `SERVO_FWT_MASK` parameter validation
  - fly a copter over a simulated serial link connection
2021-11-29 19:02:38 +09:00
.github CI: removed test_size.yml 2021-07-22 19:07:36 +09:00
.semaphore .semaphore: add base semaphore.yml 2021-03-18 07:13:47 +11:00
AntennaTracker AntennaTracker: remove values metadata from log bitmask 2021-06-30 09:24:26 +09:00
ArduCopter Copter: version to 4.1.1 2021-11-09 19:00:09 +09:00
ArduPlane Plane: prepare for 4.1.3 release 2021-11-29 19:02:38 +09:00
ArduSub Sub: no need to fabs() get_default_speed_down() as it does fabs already 2021-09-10 14:07:37 +09:00
benchmarks waf: add gbenchmark Waf tool 2015-12-03 07:54:31 +11:00
Blimp Blimp: remove values metadata from log bitmask 2021-06-30 09:24:26 +09:00
docs docs: rename APMrover2 to Rover 2020-04-14 09:50:34 +09:00
libraries AP_FETtecOneWire: A serial-based ESC protocol with telemetry 2021-11-29 19:02:38 +09:00
mk Docs: Change all references from dev.ardupilot.org to the appropriate documentation URLs. 2021-05-31 12:20:45 +10:00
modules ChibiOS: fixed mkdir DMA for 4.1 2021-11-29 19:02:38 +09:00
Rover Rover: #ifdef scripting specific functions 2021-08-28 14:41:27 +09:00
tests tests: avoid warning 2020-05-10 15:11:22 +10:00
Tools Tools: define obal board 2021-11-29 19:02:38 +09:00
.dir-locals.el emacs: add a .dir-locals.el 2016-10-24 09:41:31 -02:00
.dockerignore dockerignore: fix removing of test directory on context 2020-05-26 09:15:26 +10:00
.editorconfig all: Change the editorconfig so that it won't want to reformat 2014-07-09 19:03:18 -07:00
.flake8 .flake8: ignore E221 multiple spaces before operator 2021-02-18 10:43:05 +11:00
.gitattributes .gitattributes: mark bin, elf and hex as binary 2021-05-20 11:45:02 +10:00
.gitignore Tools: added bootloader for MatekF765-SE 2021-10-17 19:03:42 -04:00
.gitmodules git: changed to https git protocol 2021-11-02 19:36:29 +11:00
.pydevproject AP_Relay: add -1:Disabled to list of param values 2014-05-15 17:13:37 +09:00
.travis.yml .github: migrate all chibios build to Github Actions 2020-11-24 22:13:07 +11:00
.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
appveyor.yml CI: fixed appveyor python install 2019-07-03 11:05:55 +10:00
BUILD.md Build.md: Updated waf configure commands for CubeBlack and fmuv3 2021-01-27 12:38:11 +11:00
COPYING.txt cmake overhaul, cleaned up readme, added license 2011-09-30 17:32:51 -04:00
Dockerfile Docker: move to ubuntu 20.04 and correct bash-completion support 2021-03-19 22:36:36 +11:00
Doxyfile.in cfg: Fix typos 2016-05-13 19:20:07 -03:00
Makefile Make: use https:// scheme for ardupilot URLs 2019-12-10 07:53:46 +11:00
README.md readme: change wiki discussion link from gitter to discord 2021-06-14 10:55:33 +09:00
Vagrantfile Vagrant: note EOL for various versions of Ubuntu 2021-05-13 16:17:53 +10:00
waf waf: use Python from environment 2018-11-13 10:30:34 +11:00
wscript waf: added --ekf-double configure option 2021-07-22 19:07:36 +09:00

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

Build SemaphoreCI Build Status

Coverity Scan Build Status

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.