Does this mean BDShot can only be used on S1, S4, S6, S7?
It’s not obvious to me because before I discovered this file I had BDSHOT on S1-4. Of course S3 didn’t work, but I could get telemetry on the rest, including S2.
Truth is I don’t actually know what BIDIR means in this file or if it has anything to do with BDShot. Can’t find any docs on it and I wasn’t able to find in the source code where this file is interpreted either.
The other issue on my mind is that TIM8 and TIM1 are only connected to three pads. I can switch to S5+ on TIM2 but it’s not mentioned in DMA_PRIORITY? I also have no idea what the implications are for BDShot or motor control but I’m wondering if anyone knows if using TIM2 for one or two of my motors will cause problems.
I think you misunderstand. I had DShot on those outputs, and then attempted to put BDShot on those outputs, with the result that BDShot worked on S1,2 & 4, but not on S3 for the reasons I described above. As a side note (in case it helps anyone who might run into this same problem, I could not connect to ESC #3 using BLHeliSuite and that was a clue that helped me to figure out the cause)
Well I tried it today using S1,S2,S5,S6 and I could see the ESC telemetry for all motors using MAVLink inspector. But I am still not clear on the consequences of using outputs not labeled as BIDIR in the hwdef.dat file or using timers that don’t have DMA priority.
Sorry if it’s not clear, this question is about understanding hwdef.dat and what BIDIR and DMA_PRIORITY do.
Well, crickets. For anyone else trying to understand this, it seems that the hwdef.dat file appears to be parsed by a Python script libraries/AP_HAL_ChibiOS/hwdef/scripts/chibios_hwdef.py.
Unfortunately the script is not too easy to understand, but at least it’s a start.