Commit Graph

54 Commits

Author SHA1 Message Date
Andrew Tridgell 958aa7d09a AP_UAVCAN: support sending pulses as PWM for DroneCAN actuators 2022-10-04 13:38:30 +11:00
bugobliterator 4852ac332d AP_UAVCAN: add option bit for disabling Node Unhealthy check 2022-07-27 18:18:03 +10:00
bugobliterator 34583d750d AP_UAVCAN: include AP_CANManager header 2022-07-27 18:18:03 +10:00
bugobliterator 7ff0af7a0d AP_UAVCAN: add support for dna_server instance per driver 2022-07-27 18:18:03 +10:00
Andrew Tridgell 541de85354 AP_UAVCAN: added dynamically allocated pool size param
allow for smaller pool size to save memory
2022-06-05 16:03:35 +10:00
Andrew Tridgell cc06327526 AP_UAVCAN: allow CAN output for function==0 and allow for 32 CAN servos 2022-05-22 12:07:37 +10:00
Andrew Tridgell 8106291bfe 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-18 21:23:30 +10:00
bugobliterator 5865680070 AP_UAVCAN: move pool allocator to cpp 2022-03-11 18:13:54 +11:00
Siddharth Purohit ef1bdc2e5f AP_UAVCAN: add support for optionally publishing CANFD frames 2022-03-11 18:13:54 +11:00
Pierre Kancir 4037104f59 AP_UAVCAN: hide -Wcast-function-type warning on GCC11 2021-11-13 17:28:30 +11:00
bugobliterator e4c6c0ad17 AP_UAVCAN:add support for sending Vehicle Notify state 2021-09-30 08:52:27 +10:00
Andrew Tridgell 63fcb804b3 AP_UAVCAN: added CAN_Dn_UC_OPTION parameter
this allows for 2 ways of controlling conflicts in the UAVCAN DNA
database. The first is to set CAN_Dn_UC_OPTION to 1, which resets the
DNA database, thus clearing any node conflicts.

The second is to set CAN_Dn_UC_OPTION to 2, which ignores node
conflicts in the DNA database

These options are useful for vehicles with UAVCAN smart batteries
where the node ID is fixed but the hwid changes and you want to do
battery swapping (possibly without rebooting)
2021-09-17 12:32:59 +10:00
bugobliterator e8c4b99a99 AP_UAVCAN: add support for setting parameters on CAN nodes 2021-08-19 14:20:58 +10:00
Andy Piper f513b1d1c2 AP_UAVCAN: add esc telemetry updates
remove send_esc_telemetry_mavlink()
remove datastructures and semaphore obsoleted by AP_ESC_Telem* (<amilcar.lucas@iav.de>)
record volts, amps and consumption as floats
2021-05-12 17:01:11 +10:00
Patrick José Pereira 9904b397d8 AP_UAVCAN: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
Andrew Tridgell 88b5523d47 AP_UAVCAN: added logging of UAVCAN LogMessage messages
this allows us to log internal errors from nodes into main flight
controller log
2020-12-01 11:14:50 +11:00
Siddharth Purohit d8852615ed AP_UAVCAN: disable UAVCAN library when libuavcan drivers are disabled 2020-09-24 12:32:19 +10:00
bugobliterator fbc0b9e599 AP_UAVCAN: silence function cast warning/error for Registry template 2020-09-08 07:42:20 +10:00
Siddharth Purohit 07b4708a36 AP_UAVCAN: move all uavcan related methods to AP_UAVCAN 2020-08-19 17:31:09 +10:00
elhayra fe7e243b01 AP_UAVCAN: sending UAVCAN MAVlink ESC messages 2020-08-06 09:28:35 +10:00
Andrew Tridgell a2d40d040a AP_UAVCAN: added logging of CAN ESC status 2020-01-05 15:25:56 +11:00
Andrew Tridgell b4966f21d8 AP_UAVCAN: added logging of UAVCAN actuator::Status messages
this allows for logging of CAN servo status
2020-01-05 15:25:56 +11:00
Andrew Tridgell b98d5834b4 AP_UAVCAN: fixed build on Linux 2019-12-31 11:38:30 +11:00
Andrew Tridgell 4dd1ec37f1 AP_UAVCAN: support RTCMStream for RTCM injection 2019-11-09 17:11:32 +11:00
Peter Barker 4ddfe2715b AP_UAVCAN: adjust for rename of AP_UAVCAN_Server to AP_UAVCAN_DNA_Server 2019-10-25 20:24:54 +11:00
Siddharth Purohit 9bd379e236 AP_UAVCAN: setup uavcan server with internal storage 2019-10-19 09:55:38 +11:00
Andrew Tridgell 16bc7f800e AP_UAVCAN: support ADSB over UAVCAN 2019-10-16 13:13:24 +11:00
Andrew Tridgell 21cce1385a AP_UAVCAN: support safety buttons on UAVCAN
the button works in parallel with any button attached by IOMCU or by a
pin, and obeys all the same BRD_SAFETY* options
2019-09-10 16:22:33 +10:00
Andrew Tridgell c6c1c4bc31 AP_UAVCAN: support safety LEDs on UAVCAN 2019-09-10 16:22:33 +10:00
Andrew Tridgell d55f76c88e AP_UAVCAN: added buzzer support 2019-09-10 16:22:33 +10:00
Siddharth Purohit d93453f5f9 AP_UAVCAN: fix typedef for callback methods 2019-03-29 17:49:12 +11:00
Jonathan Challinger 71af938a12 AP_UAVCAN: use fixed-size memory pool 2019-03-21 21:25:39 +11:00
Siddharth Purohit 7a871a8843 AP_UAVCAN: add config for enabling/disabling can filters 2019-01-23 15:57:05 +11:00
Siddharth Purohit bb6b176785 AP_UAVCAN: add support for dynamic node allocation 2018-11-29 16:36:29 +11:00
Andrew Tridgell f662cf55e5 AP_UAVCAN: use WITH_SEMAPHORE()
and removed usage of hal.util->new_semaphore()
2018-10-17 12:54:22 +11:00
Siddharth Purohit 0125b2cdd2 AP_UAVCAN: remove UAVCAN sensors related code 2018-08-29 22:54:59 +01:00
Siddharth Purohit f01cc254d3 AP_UAVCAN: add Callback API to link UAVCAN backend callbacks 2018-08-29 22:54:59 +01:00
Francisco Ferreira 3cb8421aa6
AP_UAVCAN: reorganize header and code
Also a bit more cleanup
2018-08-12 13:35:04 +01:00
Francisco Ferreira ee8e2923ae
AP_UAVCAN: cleanup code 2018-08-12 13:35:04 +01:00
Francisco Ferreira 8c382b6904
AP_UAVCAN: adapt to new CANProtocol interface
This includes creating own thread

Also adapts example
2018-08-12 13:35:03 +01:00
Andrew Tridgell 92cda24659 AP_UAVCAN: efficiency improvements
this allows us to support 800Hz main loop rate with UAVCAN ESCs on
copter
2018-05-25 13:53:17 +10:00
Andrew Tridgell b8ae43c30b AP_UAVCAN: added a servo rate limit parameter
this allows for servos at 50Hz while keeping ESCs at higher rates
2018-05-25 13:53:17 +10:00
Tom Pittenger 4c51edfaca AP_UAVCAN: move UAVCAN code from SRV to UAVCAN files 2018-05-25 13:53:17 +10:00
Eugene Shamaev 1a888c16f4 AP_UAVCAN: Change for servo and ESC interface from RCOutput to SRV_Channels 2018-05-25 13:53:17 +10:00
Lucas De Marchi 1dd14a8aed AP_UAVCAN: add can driver getter 2018-03-10 21:07:47 -08:00
Andrew Tridgell f7751ec44a AP_UAVCAN: reverted UAVCAN PR 7827 2018-03-05 14:16:54 +11:00
Tom Pittenger 1ace5ac534 AP_UAVCAN: changed att and fix send timers to be 32bit 2018-03-03 12:59:14 +12:00
DOMINATOR\Eugene c49d4aef50 AP_UAVCAN: position and attitude broadcast 2018-03-03 12:59:14 +12:00
Nikita Tomilov a1017fb815 AP_UAVCAN: utilizing equipment.indication.LightsCommand
This can be used to command multiple devices on the UAVCAN bus to
update their LEDs. This will come in handy for status outputs etc.

This utilizes equipment.indication.LightsCommand message.
This message is not so important and therefore we limit publishing
it to avoid bus overflow. The priority of the message is also low.
2018-03-03 10:40:26 +12:00
DOMINATOR\Eugene 844ed611c6 AP_UAVCAN: UAVCAN battery information added 2018-03-02 11:48:00 +12:00