Andy Piper
5d9f9db2fe
AP_IOMCU: treat register_write() as a successful interaction
2023-12-18 19:02:52 +11:00
Andy Piper
92ef809e3b
AP_IOMCU: allow bdshot iomcu on non-bdshot fmu
2023-12-18 19:02:52 +11:00
Andy Piper
43b6fc0dba
AP_IOMCU: constrain PWM channels to 8, telem channels to 4 and RC channels to 16
...
make ADC readings interrupt driven
turn off iomcu updates when debugging
allow for correct number of telemetry channels
cycle between vservo and vrssi when reading adc
build adc with O2
2023-12-18 19:02:52 +11:00
Andy Piper
98aeade904
AP_IOMCU: bdshot for iomcu
...
prevent repeated rcout mode sets
add ESC telemetry if compiled in
add infrastructure to support propagating erpm and telemetry from iomcu
add support to propagate bdmask to iomcu
add support for EDT
scale voltage and current correctly when reading EDT data
ensure that telemetry data is reset
reset ESC telemetry data to zero if stale
ESC type and bdmask must be setup before the output mode
2023-12-18 19:02:52 +11:00
Andy Piper
2af3d53eac
AP_IOMCU: use a command queue for dshot commands and telemetry requests to avoid losing data
2023-08-15 06:53:48 +10:00
Andy Piper
9db5d0bf9b
AP_IOMCU: reduce latency for oneshot
...
correctly update outmode modes when requested
get ARM CPUID and display in startup banner
ensure correct rc input timing on 1Khz iofirmware
2023-08-15 06:53:48 +10:00
Andy Piper
7b96f66413
AP_IOMCU: add support for getting output mode and mcuid
...
give an appropriate MCUID on F103
2023-08-15 06:53:48 +10:00
Andy Piper
e6e0543b8a
AP_IOMCU: propagate dshot rates through to IOMCU
...
implement dshot ESC telemetry
add support for channel enablement/disablement
add stack checks and reporting for MSP stack
wait correct timeout in tickless mode
ensure that dshot sees all pwm updates as the occur in order to maintain periodicity
ensure dshot options are propagated on reset
implement dshot commands
ensure oneshot/125 and mode are setup correctly
add instrumentation for process stack
prevent illegal recursive locks
ignore requests for dshot 600
add support for soft reboot of iomcu
2023-08-15 06:53:48 +10:00
bugobliterator
ad428ac060
AP_IOMCU: add support for sending DShot function command
...
add support for dshot on iomcu
add support for updating to dshot iofirmware
2023-08-15 06:53:48 +10:00
Hayden
11dd9e8095
AP_IOMCU: Add #pragma once
...
Added #pragma once to AP_IOMCU as this caused compile issues when adding bindings to the LUA scripting
2023-05-24 12:39:47 +10:00
Andrew Tridgell
ab0768871b
AP_IOMCU: add internal errors for unresponsive IOMCU
...
if IOMCU stops responding completely or stops giving status update
then give an internal error to help with diagnostics
2023-02-14 09:12:34 +11:00
Peter Barker
0be9c83692
AP_IOMCU: break logging out as a method
2022-09-02 11:16:52 +10:00
Randy Mackay
b6e86eee49
AP_IOMCU: valid_GPIO_pin checks if pin configured for GPIO
2022-04-26 15:19:28 +09:00
Andrew Tridgell
4c5fc1f5ef
AP_IOMCU: removed include of ch.h from headers
2022-02-22 12:13:19 +11:00
TunaLobster
db6383eee7
AP_IOMCU: fix ADC scaling on IOMCU
2021-11-16 14:12:43 +11:00
Iampete1
ba58cb86db
AP_IOMCU: support digital write
2021-09-28 09:40:25 +10:00
Iampete1
c1a2379504
AP_IOMCU: remove safe PWM
2021-09-14 09:23:02 +10:00
Andrew Tridgell
45d82887b3
AP_IOMCU: fixed a safety reset case for IOMCU reset
...
if IOMCU resets in flight when user had disabled the safety switch
using the button then the IOCMU force safety code was not called
2021-05-25 12:14:01 +10:00
Andrew Tridgell
9d87645c6e
AP_IOMCU: fixed event handling bug in IOMCU code
...
if a a message send fails to IOMCU then we were discarding all
currently pending non-recurring events. This means that states like
oneshot enable would be lost if the IOMCU reset.
We now re-trigger all events that have not yet been handled
2021-02-24 18:21:08 +11:00
Andrew Tridgell
017f005737
AP_IOMCU: pass supported RC protocols to IOMCU
2020-08-24 16:32:35 +10:00
Andrew Tridgell
ba779c65ad
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 07:13:11 +11:00
Andrew Tridgell
63c199a600
AP_IOMCU: support RSSI from receiver
2020-01-02 09:52:57 +11:00
Andrew Tridgell
a11f2b5cfb
AP_IOCMU: added singleton in AP namespace
2019-11-02 16:31:04 +11: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
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
6c50feaead
AP_IOMCU: improved handling of IOMCU reset
...
use IOMCU timestamp to detect reset
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
41264568ba
AP_IOMCU: added brushed motor feature bit in protocol
2018-11-30 13:14:14 +11:00
Andrew Tridgell
5771e0a90e
AP_IOMCU: added access to RC protocol name
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
Eugene Shamaev
4d64b86f87
AP_IOMCU: Add binding procedure for DSMx
2018-11-07 07:35:45 +11:00
Andrew Tridgell
beff16abe6
AP_IOMCU: implement manual_rc_mask
2018-11-07 07:35:45 +11:00
Andrew Tridgell
e70a98fa9a
AP_IOMCU: support elevon and vtail mixing in failsafe
2018-11-07 07:35:45 +11:00
Andrew Tridgell
191f72d2e6
AP_IOMCU: added mixing structure to protocol
2018-11-07 07:35:45 +11:00
Andrew Tridgell
cab5199da8
AP_IOMCU: fixed a race in event trigger on startup
...
this fixes the issue with initial safety option state, and with
initial safety mask
2018-11-05 19:24:44 +11:00
Andrew Tridgell
ed48c24600
AP_IOMCU: added shutdown method
...
this cleans up the reboot process
2018-10-30 13:00:48 +11:00
Andrew Tridgell
037a455784
AP_IOMCU: moved protocol structures to a common header
2018-09-19 12:14:15 +10:00
Andrew Tridgell
f22d5f0d40
AP_IOMCU: implement failsafe PWM
2018-09-13 08:15:02 +10:00
Andrew Tridgell
135e37e1f4
AP_IOMCU: cope with IOMCU reset in flight
...
this copes with IOMCU reset when we have safety forced off
2018-09-04 15:24:12 +10:00
Andrew Tridgell
e200de1f57
AP_IOMCU: use compressed interface for IO fw upload
2018-07-09 19:41:56 +10:00
Andrew Tridgell
0e29bcc4ab
AP_IOMCU: use thread_create() API
2018-07-09 19:41:18 +10:00
Andrew Tridgell
7be1125084
AP_IOMCU: implement safety mask and safety pwm
2018-04-17 10:14:01 +10:00
Andrew Tridgell
214fb096eb
AP_IOMCU: added healthy API for use in arming checks
2018-04-17 08:44:44 +10:00
Andrew Tridgell
09e3a3cb78
AP_IOMCU: added IO firmware upload
2018-04-17 08:44:44 +10:00
Andrew Tridgell
f22964a350
AP_IOMCU: implement BRD_SAFETYOPTION
2018-04-14 06:22:07 +10:00
Andrew Tridgell
93fa74518a
AP_IOMCU: limit rate to IOMCU to 500Hz
...
when running with very high loop rates we can saturate the IO link
2018-01-20 17:40:07 +11:00