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
Andrew Tridgell
8ece4e3f64
AP_IOMCU: implement BRD_SAFETY_MASK in iofirmware
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
27f06ce810
AP_IOMCU: trigger override at 1750
...
thanks Michael
2018-11-07 07:35:45 +11:00
Andrew Tridgell
46fcfe0582
AP_IOMCU: removed rc_channel range check
...
feedback from @WickedShell
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
285508d568
AP_IOMCU: added initial mixing support
...
supports aileron, elevator, throttle and rudder
2018-11-07 07:35:45 +11:00
Andrew Tridgell
ec73a7072b
AP_IOMCU: use more bandwidth efficient IO read
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
1711b93602
AP_IOMCU: fixed read packet count
2018-10-30 13:00:48 +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
f600ebd758
AP_IOMCU: added SBUS output support
2018-10-30 13:00:48 +11:00
Andrew Tridgell
af4340d1d1
HAL_ChibiOS: enable analog input on IOMCU
2018-10-30 13:00:48 +11:00
Andrew Tridgell
b45b8ff703
AP_IOMCU: added analog input to iofirmware
2018-10-30 13:00:48 +11:00
Andrew Tridgell
6ec87528db
AP_IOMCU: fixed RCIN failsafe
2018-10-17 15:11:28 +11:00
Andrew Tridgell
92d8ef0e76
AP_IOMCU: run the rcin timer tick in main loop
...
we no longer run a separate RCIN thread
2018-10-17 15:11:28 +11:00
Andrew Tridgell
3641dcee44
AP_IOMCU: only build iofirmware for ChibiOS
2018-09-19 12:14:15 +10:00
Andrew Tridgell
17112c8988
waf: allow build with "./waf iofirmware"
2018-09-19 12:14:15 +10:00
Andrew Tridgell
848dd87d58
AP_IOMCU: fixed code style issues
2018-09-19 12:14:15 +10:00
Andrew Tridgell
ba87856deb
AP_IOMCU: fixed build warning
2018-09-19 12:14:15 +10:00
Siddharth Purohit
605e0de03c
AP_IOMCU: conform to new time conversion API
2018-09-19 12:14:15 +10:00
Siddharth Purohit
bc601c1ff6
AP_IOMCU: add Boardconfig to list of required libraries
2018-09-19 12:14:15 +10:00
Andrew Tridgell
f0b27c9b92
AP_IOMCU: support brushed output
2018-09-19 12:14:15 +10:00
Andrew Tridgell
cfb10fbb2f
AP_IOMCU: fixed oneshot support in IO firmware
2018-09-19 12:14:15 +10:00
Andrew Tridgell
2c7e27374f
AP_IOMCU: use ioevents for oneshot in iofirmware
2018-09-19 12:14:15 +10:00
Andrew Tridgell
ecfe06b9e4
AP_IOMCU: implement safety LED and switch in iofirmware
2018-09-19 12:14:15 +10:00
Andrew Tridgell
037a455784
AP_IOMCU: moved protocol structures to a common header
2018-09-19 12:14:15 +10:00
Andrew Tridgell
89bfd7e850
AP_IOMCU: added blue LED support on PH1
2018-09-19 12:14:15 +10:00
Siddharth Purohit
19c002baaf
AP_IOMCU: add support for iofirmware update
2018-09-19 12:14:15 +10:00
Siddharth Purohit
fe3dda74bd
AP_IOMCU: remove optimize override from iofirmware
2018-09-19 12:14:15 +10:00
Siddharth Purohit
4608e90913
IOMCU: add application for ioboard firmware
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
Lucas De Marchi
668c941717
Global: use new version of ARRAY_SIZE
2018-08-04 15:31:55 +10:00
Siddharth Purohit
9f5dbb74e7
AP_IOMCU: move to using updated time conv API
2018-08-03 13:44:59 +10:00
Andrew Tridgell
8c9f2bc79e
AP_IOMCU: fixed setting of rate masks
...
this affects layouts which set a subset of channels on a timer
2018-07-28 15:25:57 +10:00
Jonathan Challinger
65b20bfd83
AP_IOMCU: fix radio failsafe handling
2018-07-19 06:52:09 +10:00
Andrew Tridgell
ba0fb3d9d2
AP_IOMCU: fixed repeated upload of IO fw
2018-07-11 09:51:43 +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
3242b5eeb9
AP_IOMCU: fail to boot if IO firmware CRC and update fails
...
we don't want to fly with a bad IO firmware
2018-06-06 07:15:41 +10:00
Andrew Tridgell
0047807fbf
AP_IOMCU: fixed build error on F7
2018-06-06 07:15:41 +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
Michael du Breuil
0e8a9c2ec4
AP_IOMCU: Encapsulate debug prints in a #ifdef, fix whitespace
2018-04-14 08:23:24 +10:00
Andrew Tridgell
f22964a350
AP_IOMCU: implement BRD_SAFETYOPTION
2018-04-14 06:22:07 +10:00
Andrew Tridgell
4a7a66cc16
AP_IOMCU: use a higher thread priority
...
this ensures PWM output gets out as fast as possible
2018-04-07 09:10:29 +10:00
Siddharth Purohit
0c914838b2
AP_IOMCU: fix data type for available bytes
2018-02-07 20:33:45 +11:00
Andrew Tridgell
442b280368
AP_IOMCU: improved error checking
...
and avoid pointless change of rates
2018-02-07 20:33:45 +11:00
Andrew Tridgell
5ffcff1a79
AP_IOMCU: use unbuffered UART writes
...
this lowers latency for servo outputs to the IOMCU
2018-02-07 20:33:45 +11: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
Andrew Tridgell
30903f2acb
AP_IOMCU: support oneshot mode
2018-01-20 17:40:07 +11:00
Andrew Tridgell
ff3b0ec1bd
AP_IOMCU: added set_default_rate method
2018-01-15 11:46:02 +11:00
Andrew Tridgell
320ada2002
AP_IOMCU: fixed crash with BRD_IO_ENABLE=0
2018-01-15 11:46:02 +11:00
Andrew Tridgell
82b5b94e24
AP_IOMCU: fixed race condition on thread startup
...
thread_ctx may not be set for first trigger_event()
2018-01-15 11:46:02 +11:00
Andrew Tridgell
d1fd843539
AP_IOMCU: support IMU heater
2018-01-15 11:46:02 +11:00
Andrew Tridgell
1568f578d7
AP_IOMCU: added retries on event failure
2018-01-15 11:46:02 +11:00
Andrew Tridgell
9b9b4a169e
AP_IOMCU: fixed build on systems without IO MCU
2018-01-15 11:46:02 +11:00
Andrew Tridgell
71a47303b4
AP_IOMCU: support servo voltage and rssi
2018-01-15 11:46:02 +11:00
Andrew Tridgell
bb3ed9d6a3
AP_IOMCU: added APIs for RC input
2018-01-15 11:46:02 +11:00
Andrew Tridgell
ceeade5822
AP_IOMCU: added periodic reading of RC input
2018-01-15 11:46:02 +11:00
Andrew Tridgell
06322da4e2
AP_IOMCU: added setting of output rates
2018-01-15 11:46:02 +11:00