In a follow-up to the dshot for IOMCU support that I did (DShot on IOMCU - it's here!) it is also possible to support bi-directional dshot on IOMCU - and I finally have this working!
However, again, I need some help testing. If you are feeling somewhat brave and want to try it out, here is what you do. The firmware supports bdshot on 4 channels - PWM1-4. The reasons why it can’t be 8 are long and boring. To use it load up the firmware of your choice - here are builds for Pixhawk6X and Pixhawk6C on copter and plane: Dropbox - iomcu-bdshot - Simplify your life - and then set: BRD_IO_DSHOT=1
You should then find your dshot configuration magically starts working. dshot commands - including tones and reversing - should also work. You can also use SERVO_DSHOT_ESC
and SERVO_DSHOT_RATE
to control these. To enabled bdshot set SERVO_BLH_BDMASK
to 15 for the first four channels and make sure SERVO_BLH_TRATE
is set to something reasonable.
I have done some testing of bdshot 600 on a 5" quad using this version and it works without issue. If you have EDT enabled ESCs you can enable EDT via SERVO_DSHOT_ESC
and you will get additional telemetry from the ESCs.
How To Test
- Get the latest version from Dropbox - iomcu-bdshot - Simplify your life
- Load up the firmware, you should see a message about the IOMCU update being complete
- Set BRD_IO_DSHOT = 1
- Reboot, you should get another message about the IOMCU update being complete
- Set MOT_PWM_TYPE to 4-6 for copter or Q_M_PWM_TYPE for plane
A big thanks to Holybro who sponsored this work
Thanks in advance for your help!
Andy
The PR can be found here: