-
Notifications
You must be signed in to change notification settings - Fork 19.2k
Add support for DShot in IOFirmware #21569
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for DShot in IOFirmware #21569
Conversation
4798f64
to
7697122
Compare
7697122
to
cabee0a
Compare
b9c58ab
to
70414b5
Compare
(mask & ((1U<<chan_offset)-1)) && | ||
AP_BoardConfig::io_enabled()) { | ||
iomcu_mode = mode; | ||
iomcu.set_brushed_mode(); | ||
iomcu.set_output_mode(mask, mode); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
need some testing of oneshot and brushed output with IOMCU to ensure we do get the right update rate
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oneshot and oneshot125 verified
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to test on L431 AP_Periph as I am not quite sure the DMA advanced changes are correct
9823f65
to
6a32bdd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't see that any of my original comments have been addressed
6a32bdd
to
dabf1da
Compare
Rebased |
c92aada
to
39bba9a
Compare
add support for dshot on iomcu add support for updating to dshot iofirmware
use HAL_ENABLE_DSHOT instead of DISABLE_DSHOT
2ba5f65
to
1e24ad1
Compare
@andyp1per I will do some testing of this soon, thanks! |
add support for selectively disabling serial LEDs and passthrough provide mutator to allow iomcu to set dshot rate support HAL_SERIAL_ESC_COMM_ENABLED and DISABLE_SERIAL_ESC_COMM update dshot docs make default serial led enablement dependent on dshot
set timer counter size to be a byte wide use HAL_DSHOT_ENABLED instead of DISABLE_DSHOT build iomcu-dshot from existing iomcu correct defines for DMAR size on iomcu allow iomcu dshot rate to be configured from FMU correct DMA allocation for dshot on iomcu allow debug builds on iofirmware ensure dshot is enabled on iomcu dshot support proper iomcu dshot output thread triggered by FMU allow selective disablement of serial LEDs and passthrough disable serial LEDs and passthrough on iomcu-dshot propagate ESC telemetry to iomcu dshot_send_groups() for iomcu remove use of ICU on iomcu for dshot. only allocate possible DMA channels rename serial passthrough and dshot defines update dshot docs resize dshot iomcu main stack to minimum correct dshot prescaler usage and bit_width_mul calculation use ChibiOS in tickless mode on iomcu-dshot so that virtual timers can be used propagate dshot commands to iomcu passthrough oneshot125 to iomcu
c8ed8a1
to
4a48477
Compare
@tridge can you post the config you used? For the "gap" - I'm not sure what I am looking at - can you expand? |
Not being able to change dshot mode once set without a power cycle is an existing dshot problem that I would like to address in a separate PR since the DMA enablement code is quite hairy |
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
c6cdcae
to
5a0918f
Compare
To select Dshot IO firmware, set
BRD_IO_DSHOT 1
and then reboot. That will load dshot firmware to iomcu.Supported features:
SERVO_DSHOT_ESC
typesSERVO_DSHOT_RATE