ardupilot/libraries
Andrew Tridgell 39de7be71f AP_UAVCAN: added CAN_Dx_UC_ESC_OF parameter
this allows for an offset in ESC numbering for much more efficient CAN
bandwidth usage.

For example, on a coaxial OctoQuad quadplane the ESCs are typically
setup as outputs 5 to 12. An ideal setup is to split these over 2 CAN
buses, with one CAN bus for the top layer and the one bus for the
bottom layer (allowing for VTOL flight with one bus failed).

Without this offset parameter you would be sending RawCommand messages
like this:

bus1: [ 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ]
bus2: [ 0, 0, 0, 0, 0, 0, 0, 0, ESC1, ESC2, ESC3, ESC4 ]

this is very wasteful of bus bandwidth, with bus1 using 3x the
bandwidth it should and bus2 using 4x the bandwidth it should (the
above will take 3 can frames for bus1, and 4 can frames for bus 2)

With this patch you can set:

CAN_D1_UC_ESC_OF = 4
CAN_D2_UC_ESC_OF = 8

and you will get this on the bus:

bus1: [ ESC1, ESC2, ESC3, ESC4 ]
bus2: [ ESC1, ESC2, ESC3, ESC4 ]

that takes just 1 can frame per send on each bus
2022-05-28 16:08:17 +09:00
..
AC_AttitudeControl AC_AttitudeControl: Allow diabling of slew limit 2022-05-16 08:16:16 +09:00
AC_AutoTune AC_AutoTune: fix gain determination fail logic 2022-04-29 08:06:29 +09:00
AC_Autorotation AC_Autorotation: use accel_to_angle() 2022-03-30 19:12:45 +09:00
AC_Avoidance AC_Avoidance: get Vector3f when checking all components of relpos 2022-02-02 19:09:25 +11:00
AC_Fence AC_Fence: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AC_InputManager
AC_PID AC_PID: tradheli-change param name from _VFF to _FF 2022-02-04 08:03:38 +09:00
AC_PrecLand AC_PrecLand: Change parameter to bitmask 2022-02-01 17:12:56 +09:00
AC_Sprayer AC_Sprayer: use vector.xy().length() instead of norm(x,y) 2021-09-14 10:43:46 +10:00
AC_WPNav AC_WPNav: use angle/accel functions 2022-03-30 19:12:45 +09:00
APM_Control AR_AttitudeControl: get_turn_rate_from_heading applies acceleration limit 2022-02-10 07:45:12 +09:00
AP_ADC
AP_ADSB AP_ADSB: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_AHRS AP_AHRS: fixed bug in blended EKF bias 2022-05-07 08:40:54 +09:00
AP_AIS AP_AIS: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_AccelCal AP_AccelCal: remove unused calc_mean_squared_residuals 2022-01-26 12:03:17 +09:00
AP_AdvancedFailsafe AP_AdvancedFailsafe: use mission singleton inside AP_AdvancedFailsafe 2021-08-03 10:35:24 +10:00
AP_Airspeed AP_Airspeed: fixed airspeed cal on 2nd airspeed sensor 2022-05-28 16:08:17 +09:00
AP_Arming AP_Arming: add pre-arm check of disabled servo channels 2022-04-29 08:06:29 +09:00
AP_Avoidance AP_Avoidance: tidy construction of vector on stack 2022-02-01 19:40:22 +11:00
AP_BLHeli AP_BLHeli: keep a record of disabled motors 2022-04-29 08:06:29 +09:00
AP_Baro AP_Baro: reformat log message to separate fields out 2022-02-28 12:47:57 +11:00
AP_BattMonitor AP_BattMonitor: fixed battery remaining of sum battery 2022-03-30 19:12:45 +09:00
AP_Beacon AP_Beacon: have nooploop use base-class uart instance 2021-11-02 11:19:18 +11:00
AP_BoardConfig AP_BoardConfig: add options for write protecting bootloader and main flash 2022-02-24 10:19:07 +11:00
AP_Button AP_Button: pre-arm displays gpio vs servo_ch conflict 2022-04-29 08:06:29 +09:00
AP_CANManager AP_CANManager: include hal.h 2022-02-22 12:13:19 +11:00
AP_Camera AP_Camera: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_Common AP_Common: improved accuracy of get_bearing() 2022-03-12 08:00:49 +09:00
AP_Compass AP_Compass: do not use GSF if any model has been clipped 2022-05-28 16:08:17 +09:00
AP_DAL AP_DAL: prevent logical loop between AHRS and EKF 2022-02-07 14:13:49 +11:00
AP_Declination AP_Declination: ensure indexing into declination tables is always correct 2022-03-30 19:12:45 +09:00
AP_Devo_Telem AP_Devo_Telem: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_EFI AP_EFI: added fuel usage integration for Lutan EFI 2022-05-28 16:08:17 +09:00
AP_ESC_Telem AP_ESC_Telem: correct spelling mili -> milli 2022-01-31 08:55:29 +09:00
AP_ExternalAHRS AP_ExternalAHRS: factor substring from allocation_error parameter 2021-10-18 12:49:44 +11:00
AP_FETtecOneWire AP_FETtecOneWire: correct spelling mili -> milli 2022-01-31 08:55:29 +09:00
AP_Filesystem AP_Filesystem: avoid ff.h in header 2022-02-22 12:13:19 +11:00
AP_FlashIface AP_FlashIface: make sure XIP flash is ready before returning 2022-04-29 08:06:29 +09:00
AP_FlashStorage AP_FlashStorage: support L496 MCUs 2021-09-24 18:08:00 +10:00
AP_Follow AP_Follow: added APIs for plane ship landing 2022-03-12 08:00:49 +09:00
AP_Frsky_Telem AP_Frsky_Telem: Remove meaningless semicolons 2022-02-07 08:27:34 +09:00
AP_GPS AP_GPS: prevent switching to a dead GPS 2022-03-30 19:12:45 +09:00
AP_Generator AP_Generator: reserve ID for Loweheiser mavlink-connected generator 2022-01-25 09:44:41 +11:00
AP_Gripper AP_Gripper: change UAVCAN to DroneCAN in param metadata 2021-12-15 09:53:21 +11:00
AP_GyroFFT AP_GyroFFT: fix 'arm_status' shadowing a global declaration error 2022-02-16 19:05:07 +11:00
AP_HAL AP_HAL: add accessor for disabled channels to RCOutput 2022-04-29 08:06:29 +09:00
AP_HAL_ChibiOS hwdef: added FlyingMoonF427 support 2022-05-16 08:16:16 +09:00
AP_HAL_ESP32 AP_HAL_ESP32: remove HAL_COMPASS_DEFAULT define 2022-02-01 12:10:38 +11:00
AP_HAL_Empty AP_HAL_Empty: add HAL_UART_STATS_ENABLED to disable stats gathering 2022-01-12 18:30:49 +11:00
AP_HAL_Linux HAL_Linux: support mavcan 2022-02-12 16:36:05 +11:00
AP_HAL_SITL AP_HAL_SITL: correct disable channel maths 2022-03-30 19:12:45 +09:00
AP_Hott_Telem AP_Hott_Telem: add define AP_AIRSPEED_ENABLED 2022-01-19 18:21:32 +11:00
AP_ICEngine AP_ICEngine: spelling and grammer fixes inc in param description 2021-08-19 10:00:16 +10:00
AP_IOMCU AP_IOMCU: valid_GPIO_pin checks if pin configured for GPIO 2022-04-29 08:06:29 +09:00
AP_IRLock AP_IRLock: correct spelling mili -> milli 2022-01-31 08:55:29 +09:00
AP_InertialNav AP_InertialNav: nfc, fix to say relative to EKF origin 2022-02-03 12:05:12 +09:00
AP_InertialSensor AP_InertialSensor: move frontend update into ramfunc. 2022-04-29 08:06:29 +09:00
AP_InternalError AP_InternalError: change panic to return error code as string in SITL 2021-09-28 09:11:48 +10:00
AP_JSButton
AP_KDECAN
AP_L1_Control AP_L1_Control: update_waypoint wrap added to nav_bearing 2022-02-16 18:29:48 +11:00
AP_LTM_Telem AP_LTM_Telem: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_Landing AP_Landing: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_LandingGear AP_LandingGear: add enable param 2021-11-23 11:40:44 +11:00
AP_LeakDetector AP_LeakDetector: check for valid analog pin 2021-10-06 18:42:51 +11:00
AP_Logger AP_Logger: fixed a bug in wrapped log count 2022-05-16 08:16:16 +09:00
AP_MSP AP_MSP: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_Math AP_Math: added unsigned versions of constrain functions 2022-04-09 17:12:27 +09:00
AP_Menu
AP_Mission AP_Mission: support *10 multipler when storing/retrieving radius in NAV_LOITER_TURNS 2022-05-28 16:08:17 +09:00
AP_Module AP_Module: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_Motors AP_Motors: move turbine start to update_turbine_start and style cleanup 2022-02-23 14:22:47 +09:00
AP_Mount AP_Mount: mark result of get_velocity as unused 2022-02-02 19:32:47 +11:00
AP_NMEA_Output AP_NMEA_Output: use a fixed maximum number of NMEA outputs 2022-02-23 12:36:59 +11:00
AP_NavEKF AP_NavEKF: getYawData also provides number of clipping models 2022-05-28 16:08:17 +09:00
AP_NavEKF2 AP_NavEKF2: update and correct GSF parameter documentation 2022-02-15 10:56:35 +11:00
AP_NavEKF3 AP_NavEKF3: fixed constrain indexing bug 2022-03-12 08:00:49 +09:00
AP_Navigation
AP_Notify AP_Notify: fixed builds 2022-02-23 21:48:58 +11:00
AP_OLC
AP_ONVIF AP_ONVIF: use correct #pragma GCC diagnostic pop 2021-09-29 17:27:29 +10:00
AP_OSD AP_OSD: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
AP_OpticalFlow AP_OpticalFlow: Change division to multiplication 2022-02-01 17:34:40 +11:00
AP_Parachute AP_Parachute: added arming check for chute released 2021-11-18 15:21:15 +11:00
AP_Param AP_Param: fixed param class conversion code 2022-03-30 19:12:45 +09:00
AP_PiccoloCAN AP_PiccoloCAN: GPIO servo does not count as active 2022-03-12 08:00:49 +09:00
AP_Proximity AP_Proximity_Boundary_3D:correction of miswriting 2022-04-29 08:06:29 +09:00
AP_RAMTRON
AP_RCMapper
AP_RCProtocol AP_RCProtocol: added using_uart() method 2022-03-30 19:12:45 +09:00
AP_RCTelemetry AP_RCTelemetry: add define AP_AIRSPEED_ENABLED 2022-01-19 18:21:32 +11:00
AP_ROMFS
AP_RPM AP_RPM: pre-arm displays gpio vs servo_ch conflict 2022-04-29 08:06:29 +09:00
AP_RSSI AP_RSSI : Update Telemetry 2022-01-17 11:26:34 +09:00
AP_RTC AP_RTC: fix oldest_acceptable_date to be in micros 2022-02-10 09:22:30 +11:00
AP_Radio AP_Radio: fix build for skyviper-journey 2022-02-24 09:18:34 +11:00
AP_Rally AP_Rally: convert APM_BUILD_COPTER_OR_HELI() to APM_BUILD_COPTER_OR_HELI 2021-10-26 11:42:12 +11:00
AP_RangeFinder AP_RangeFinder: correct grammar on type field 2022-02-08 10:42:56 +09:00
AP_Relay AP_Relay: pre-arm displays gpio vs servo_ch conflict 2022-04-29 08:06:29 +09:00
AP_RobotisServo AP_RobotisServo: Move crc16-ibm CRC calculation method to a common class 2022-01-13 09:44:40 +11:00
AP_SBusOut
AP_Scheduler AP_Scheduler: allow 9999us for task display 2022-02-09 12:47:55 +00:00
AP_Scripting AP_Scripting: added quicktune.lua script 2022-05-07 08:40:54 +09:00
AP_SerialLED AP_SerialLED: removed empty constructors 2021-11-01 10:24:40 +11:00
AP_SerialManager AP_SerialManager: moved uart declaration to cpp file 2022-02-23 12:36:59 +11:00
AP_ServoRelayEvents
AP_SmartRTL AP_SmartRTL: rename for AHRS restructuring 2021-07-21 21:01:39 +10:00
AP_Soaring AP_Soaring: Remove meaningless semicolons 2022-02-07 08:27:34 +09:00
AP_Stats
AP_TECS AP_TECS: add reset throttle I function 2021-12-22 18:46:14 +11:00
AP_TempCalibration
AP_TemperatureSensor
AP_Terrain AP_Terrain: added logging of terrain correction 2022-03-30 19:12:45 +09:00
AP_Torqeedo AP_Torqeedo: simplify conversion of master error code into string 2021-12-06 14:50:15 +11:00
AP_ToshibaCAN AP_ToshibaCAN: correct spelling mili -> milli 2022-01-31 08:55:29 +09:00
AP_Tuning AP_Tuning: removed controller error messages 2022-02-22 12:23:48 +11:00
AP_UAVCAN AP_UAVCAN: added CAN_Dx_UC_ESC_OF parameter 2022-05-28 16:08:17 +09:00
AP_Vehicle AP_Vehicle: added QLAND_INSTEAD_OF_RTL mode reason 2022-05-28 16:08:17 +09:00
AP_VideoTX AP_VideoTX : fixed typo 2022-01-13 09:45:39 +11:00
AP_VisualOdom AP_VisualOdom: added VOXL backend type 2021-12-27 12:32:41 +11:00
AP_Volz_Protocol
AP_WheelEncoder AP_WheelEncoder: quadrature spelling changed 2021-10-27 16:03:06 +11:00
AP_Winch AP_Winch: use floats for get/set output scaled 2021-10-20 18:29:58 +11:00
AP_WindVane AP_WindVane: add define AP_AIRSPEED_ENABLED 2022-01-19 18:21:32 +11:00
AR_Motors AR_Motors: remove redundant set of throttle limit flags 2022-02-15 08:02:04 +09:00
AR_WPNav AR_WPNav: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Filter Filter: add trivial test for ModeFilter get method (float version) 2022-02-19 11:16:40 +11:00
GCS_MAVLink GCS_MAVLink: send GCS voltage to GCS 2022-03-30 19:12:45 +09:00
PID
RC_Channel RC_Channel: rename and make enum RC_Channel::ControlType 2022-02-27 09:55:01 +11:00
SITL SITL: update for changed INS_NOTCH parameter name 2022-04-29 08:06:29 +09:00
SRV_Channel SRV_Channel: observe disabled_channels when enabling channels 2022-04-29 08:06:29 +09:00
StorageManager StorageManager: fix write_block() comment 2021-12-17 09:53:47 +09:00
doc