Commit Graph

115 Commits

Author SHA1 Message Date
Andrew Tridgell 11ca633503 AP_IOMCU: force safety off on IOMCU reset
if safety was forced off previously and we get an IOMCU reset then
force it off when the reset happens so vehicle can keep flying
2020-05-14 18:29:25 +10:00
Andrew Tridgell bdd7094d17 AP_IOMCU: resync for 4.0 update 2020-05-11 15:55:57 +10:00
Andrew Tridgell 289a0d8694 AP_IOMCU: use more efficient read API for rcin 2020-01-31 19:35:53 +09:00
Andrew Tridgell ac26aea18b AP_IOMCU: added a health check based on status read errors
if we have more than 1 in 128 read status requests failing then mark
IOMCU unhealthy
2020-01-18 16:04:46 +11:00
Andrew Tridgell c8f24b2c71 AP_IOMCU: reduce uart buffer sizes 2020-01-18 16:04:46 +11:00
Andrew Tridgell 6d2d6d7454 AP_IOCMU: added singleton in AP namespace 2019-12-16 13:35:28 +09:00
Andrew Tridgell ef1aaa6db0 AP_IOMCU: fixes for modified AP_ROMFS API
need to use AP_ROMFS::free()
2019-10-24 22:03:43 +11:00
Mirko Denecke 12c9e50aef AP_IOMCU: remove unnecessary tabs and whitespaces 2019-10-21 07:57:44 +11:00
Mark Whitehorn 0a6ae60c89 AP_IOMCU: fix IO fast channel mask 2019-10-01 07:13:33 +10:00
Andrew Tridgell 7c3df18ea3 AP_IOMCU: change optimisation from -O3 to -O2 2019-09-28 08:57:26 +10:00
Andrew Tridgell 672d09c965 AP_IOMCU: use AP::RC() for AP_RCProtocol 2019-09-06 08:51:45 +10:00
Andrew Tridgell 8ef2046f7b AP_IOMCU: use blocking writes to uart
this avoids the issue of arming failing due to a non-zero protocol count
2019-08-17 17:36:41 +10:00
Andrew Tridgell 454717cf6f AP_IOMCU: cleanup IO protocol and add logging
this cleans up the IOMCU protocol structures now we don't need to be
compatible with the old nuttx based protocol and adds logging of IOMCU
errors
2019-08-17 17:36:41 +10:00
Andrew Tridgell 984542fa53 AP_IOMCU: fixed error handling for short packets
this prevents short packets from the IOMCU being processed. A short
enough read could be processed as a valid status packet, which would
lead to invalid values for safety flag and servo voltage

fixes issue #12030
2019-08-17 17:36:41 +10:00
bugobliterator c07fe55b87 AP_IOMCU: remove autodetection of heater pin polarity, instead hardcode it 2019-07-25 17:05:41 +10:00
Andrew Tridgell 76a8d494c3 AP_IOMCU: dither heater pin to prevent 1Hz impact on mags
with the simpler duty cycle code we see a 1Hz 25 mGauss cycle in the
internal mags
2019-07-12 12:46:27 +10:00
Siddharth Purohit f23746053d AP_IOMCU_FW: autodetect active high/low on heater control pin 2019-06-08 14:31:01 +10:00
Andrew Tridgell ef5f83d0b5 AP_IOMCU: remove 2s delay on boot and skip crc check on watchdog
thanks to @Jaaaky for the suggestion in #11232
2019-05-03 13:44:56 +10:00
Andrew Tridgell 6c50feaead AP_IOMCU: improved handling of IOMCU reset
use IOMCU timestamp to detect reset
2019-04-28 07:45:33 +10:00
Andrew Tridgell d4c68da76e AP_IOMCU: added IOMCU time since boot to protocol
and optional watchdog testing using safety switch
(compile time option)
2019-04-28 07:45:33 +10:00
Andrew Tridgell af54e8620e AP_IOMCU: prevent startup sync causing an internal error 2019-04-28 07:45:33 +10:00
Andrew Tridgell c7be7d7343 AP_IOMCU: cope with IOMCU reset 2019-04-22 16:53:35 +10:00
Andrew Tridgell 6181c66e5c AP_IOMCU: handle watchdog reset in IO firmware 2019-04-22 16:53:35 +10:00
Andrew Tridgell 480d33706c AP_IOMCU: fixed safety state on reboot
fixes issue #11031
2019-04-20 14:48:59 +10:00
Pierre Kancir eab7d08021 AP_IOMCU: fix includes 2019-03-26 10:27:54 +11:00
Andrew Tridgell 664e92ed7e AP_IOMCU: fixed build warnings 2019-02-26 16:18:26 +11:00
Andrew Tridgell a6e989e263 AP_IOMCU: fixed shadowed variable warning 2019-02-26 16:18:26 +11:00
Tom Pittenger 28323147ab AP_IOMCU: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
Michael du Breuil 85f3280705 AP_IOMCU: Remove unneeded AP_Buffer include 2018-12-31 11:41:43 +09:00
Andrew Tridgell 41264568ba AP_IOMCU: added brushed motor feature bit in protocol 2018-11-30 13:14:14 +11:00
Andrew Tridgell 69c4fb671e AP_IOMCU: optimisations to reduce ISR latency
this speeds up the DMA ISR handlers to reduce the change of losing a
byte on RC input due to loss of an interrupt
2018-11-27 09:38:18 +11:00
Andrew Tridgell 8e7695e5f0 AP_IOMCU: respond to override change more quickly 2018-11-07 07:35:45 +11:00
Andrew Tridgell 5771e0a90e AP_IOMCU: added access to RC protocol name 2018-11-07 07:35:45 +11:00
Andrew Tridgell 3d90ddc453 AP_IOMCU: fixed stop bits in sbus output 2018-11-07 07:35:45 +11:00
Andrew Tridgell a7c5ac8902 AP_IOMCU: run main loop at max rate
removed delay in main loop to reduce latency of RC input. This works
as we only have one thread
2018-11-07 07:35:45 +11:00
Andrew Tridgell 2159198c3e AP_IOMCU: allow DSM input as pulses in iomcu
useful for receivers where DSM uses a normal servo plug
2018-11-07 07:35:45 +11:00
Andrew Tridgell e6cadfa2d9 AP_IOMCU: disable DSM and SBUS for pulse input 2018-11-07 07:35:45 +11:00
Andrew Tridgell 49d07ed234 AP_IOMCU: catch parity errors on SBUS input 2018-11-07 07:35:45 +11:00
Andrew Tridgell c148813c17 AP_IOMCU: enable uart for SBUS input 2018-11-07 07:35:45 +11:00
Andrew Tridgell fab181345c AP_IOMCU: fixed override on RC loss
use mid-stick positions
2018-11-07 07:35:45 +11:00
Andrew Tridgell 29fb674f3f AP_IOMCU: use macros for LED outputs in iofirmware 2018-11-07 07:35:45 +11:00
Andrew Tridgell a8d91a24b6 AP_IOMCU: fixed compat with nuttx firmwares
this allows older firmwares to change the IO firmware back to a nuttx
based firmware
2018-11-07 07:35:45 +11:00
Andrew Tridgell 107ccb3eef AP_IOMCU: enable DSM input in iofirmware 2018-11-07 07:35:45 +11:00
Andrew Tridgell b9e4916c17 AP_IOMCU: fixed delay in DSM bind 2018-11-07 07:35:45 +11:00
Andrew Tridgell 2488d25284 AP_IOMCU: fixed rate of failsafe handling 2018-11-07 07:35:45 +11:00
Andrew Tridgell f8dc17f8ff AP_IOMCU: implement DSM bind 2018-11-07 07:35:45 +11:00
Andrew Tridgell 184c05bc70 AP_IOMCU: fixed DSM bind 2018-11-07 07:35:45 +11:00
Andrew Tridgell c57fe83217 AP_IOMCU: rename sbus_out.cpp to rc.cpp
will also handle DSM input on USART1
2018-11-07 07:35:45 +11:00
Eugene Shamaev 4d64b86f87 AP_IOMCU: Add binding procedure for DSMx 2018-11-07 07:35:45 +11:00
Andrew Tridgell 843772a2bc AP_IOMCU: added some debug code
and lower PKT_MAX_REGS to reduce max DMA size. This fixes an
occasional fault
2018-11-07 07:35:45 +11:00