Andy Piper
2b885cd79f
AP_HAL_ChibiOS: ensure that serial LED setup goes via an intermediate buffer
...
protect serial LED buffer transfers with mutex
protect serial LED buffer size with mutex
prevent serial LED interactions before rcout is ready
allocate a serial led buffer per channel that needs it
setup clock mask when needed
4 years ago
Andy Piper
401e5c2073
AP_HAL_ChibiOS: add support for bidir DShot support in RCOutput
...
add support for sampling GPIO pins using timer
don't restart pwm group when not doing bi-dir
fix hwdef generation preproc for TIM DMA
decode telemetry at the start of the dshot cycle
calculate dshot pulse separation correctly and ensure we output rapidly enough
calculate dshot min periods and timeouts correctly
refactor dshot_send() into dshot_send_groups()
use bi-dir dshot channel mask
selectively enable bi-dir RC Channels
process bi-dir mask correctly when allocating DMA channels
allow UP and CH DMA channel sharing
optionally enable bidir vars in hwdef.
enable bi-dir dshot in KakuteF7Mini
enable bi-dir dshot in OmnibusF4Pro
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in MatekF405
enable bi-dir dshot in fmuv5
enable bi-dir dshot in fmuv3
enable bi-dir dshot in OmnibusF7V2
enable bi-dir dshot in OmnibusNanoV6
enable bi-dir dshot in CubeOrange
enable bi-dir dshot in Pixracer
enable bi-dir dshot in mRoPixracerPro
Co-authored-by: bugobliterator <siddharthbharatpurohit@gmail.com>
4 years ago
Peter Hall
fe5779fd88
AP_HAL_ChibiOS: add support for ProfiLEDs
5 years ago
Andrew Tridgell
669b98c6df
HAL_ChibiOS: allow more than 32 WS2812 LEDs on a pin
5 years ago
Peter Hall
0ca6b7cf77
AP_HAL_ChibiOS: retry neopixel until successful send
5 years ago
Andrew Tridgell
adf17414e0
HAL_ChibiOS: fixed output string for non-DMA capable chan
...
this fixes a problem where the user requests DShot (which rquired DMA)
on an output channel which cannot allocate a DMA channel. We end up
sending normal PWM, so the string representation of the output modes
should reflect that
5 years ago
Randy Mackay
a71ae54d3a
AP_HAL: add RCOutput::get_output_mode_banner
5 years ago
Andrew Tridgell
4636a4c458
HAL_ChibiOS: support LEDs with a wider range of frequencies
...
this fixed LEDs on FMUv5 boards on first 4 aux channels. We need to
round up not round down in the resulting bitrate
5 years ago
Mirko Denecke
b84dcd483d
AP_HAL_ChibiOS: remove unnecessary tabs and whitespaces
5 years ago
Andrew Tridgell
03c1a8bfd9
HAL_ChibiOS: use safety button logic from AP_BoardConfig
6 years ago
Andrew Tridgell
f441223b55
HAL_ChibiOS: implement updated NeoPixel API
...
allow for N leds per chain, and setting separate colours per led in
each chain
6 years ago
Tom Pittenger
e3416b66dc
AP_HAL_ChibiOS: add Neopixel output type, similar to dshot
6 years ago
Andrew Tridgell
8dd58b4181
HAL_ChibiOS: support reversible DShot motors
6 years ago
Peter Barker
17f643719a
AP_HAL_ChibiOS: add override keyword in many places
6 years ago
Andrew Tridgell
81fe8b7138
HAL_ChibiOS: allow set of safety mask from IOMCU
6 years ago
Siddharth Purohit
87a2dea9d4
HAL_ChibiOS: disable features that require advanced dma
7 years ago
Andrew Tridgell
8c33b4b97d
HAL_ChibiOS: implement set_failsafe_pwm()
7 years ago
Andrew Tridgell
3df2a1c228
HAL_ChibiOS: fixed dshot bad frames
...
adding a pre-bit on the DMAR, and ensuring that all groups are setup
for DMA together fixes the remaining bad frames reports in BLHeli32
7 years ago
Andrew Tridgell
946b4db0e6
HAL_ChibiOS: set min dshot separation to 100usec
...
this fixes a problem with BLHeli32 not recognising dshot
7 years ago
Andrew Tridgell
22ba9a0aea
HAL_ChibiOS: fixed timeout of serial read bytes
...
this allows for fast timeout of serial read bytes in BLHeli pass-thru
7 years ago
Andrew Tridgell
7e897c16c0
HAL_ChibiOS: maintain rcout state beyond BRD_PWM_COUNT
...
allow channels beyond BRD_PWM_COUNT to be sent over SBUS or DShot
distribution
7 years ago
Andrew Tridgell
794ebe32e3
HAL_ChibiOS: fixed mixture of oneshot and normal PWM on IOMCU
7 years ago
Andrew Tridgell
bb0cbd15a4
HAL_ChibiOS: implement fmuv4 safety state
...
and added safety_mask and safety_pwm support for both fmuv3 and fmuv4
7 years ago
Andrew Tridgell
4871bbf403
HAL_ChibiOS: make soft serial for RC serial more efficient
...
using system ticks halves the IRQ time
7 years ago
Andrew Tridgell
71cd58cc7e
HAL_ChibiOS: run rc serial thread at top priority
...
this maximises reliability for serial IO to ESCs, increasing flashing
reliability
7 years ago
Andrew Tridgell
3cd4f2a002
AP_ChibiOS: handle oneshot125 separately
...
this sets up oneshot125 with the full 1000 steps of throttle
resolution, using a 8MHz clock. This matches the behaviour of modern
ESCs that measure PWM values with high accuracy
7 years ago
Andrew Tridgell
8e59f6aad6
HAL_ChibiOS: implement get_esc_scaling()
7 years ago
Andrew Tridgell
6fd0af11ef
HAL_ChibiOS: implement telem request API
7 years ago
Andrew Tridgell
6bdb523630
HAL_ChibiOS: guarantee 1kHz output for DShot
7 years ago
Andrew Tridgell
382772d999
HAL_ChibiOS: initial support for ESC serial output
7 years ago
Andrew Tridgell
26d279e165
HAL_ChibiOS: improve DShot timing accuracy
7 years ago
Andrew Tridgell
bc32276966
HAL_ChibiOS: support DShot output
...
use DMAR burst DMA to minimise number of DMA channels needed
thanks to betaflight for the great reference implementation!
7 years ago
Andrew Tridgell
306d35655e
HAL_ChibiOS: allow for bare board builds
...
this allows for a build with no UARTs, no SPI, no I2C, no PWM. Great
for initial board bringup with just USB
7 years ago
Andrew Tridgell
0cf104f2f3
HAL_ChibiOS: added scale_esc_to_unity()
...
needed for per-motor compass cal
7 years ago
Andrew Tridgell
7c23e33775
HAL_Chibios: set min output rate for oneshot to 100Hz
...
this will keep ESCs happy during gyro cal
7 years ago
Andrew Tridgell
880a84294e
HAL_ChibiOS: support oneshot mode
...
supports oneshot 125 and oneshot
7 years ago
Andrew Tridgell
f14a847b97
HAL_ChibiOS: rename classes to remove 'Chibi'
...
it is redundent as all classes are in ChibiOS namespace, and makes the
code harder to read
7 years ago
Andrew Tridgell
25b68dc150
HAL_ChibiOS: switch base freq when needed
...
timers can't do below 123 Hz with a clock of 8MHz, so we need to
change clock frequency based on the target period
7 years ago
Andrew Tridgell
d17e9f321a
HAL_ChibOS: fixed mixture of brushed and normal PWM
...
allow non-brushed PWM servos with brushed main motors
7 years ago
Andrew Tridgell
c639708e22
HAL_ChibOS: auto-generate full PWM config
...
use PWM markers in hwdef.dat to mark each PWM channel
7 years ago
Andrew Tridgell
3a004adbd4
HAL_Chibios: use macro for NUM_GROUPS
7 years ago
Andrew Tridgell
26d6947bf6
HAL_ChibiOS: fixed PWM output
7 years ago
Andrew Tridgell
8b6bab7b17
HAL_Chibios: added ChibiOS HAL
...
this is based on initial work by Sid, reset here for easier merging
7 years ago