Bi-directional dshot - testers wanted

Ok I reflashed BLHeli32 to get the very latest and changed to DShot150 - all still works, however I think maybe I have reproduced the lack of telemetry with dshot150. Interestingly with dshot150 my BLHeli_S ESC no longer works.

Also my BLHeli_S ESC after flashing with 16.73 for bidir stopped to work with DShot150.

@andyp1per some problems with small-copter-4.1 of today target MatekH743-bdshot:

[MAV 001:1] ArduPilot Ready
[MAV 001:1] AHRS: DCM active
[MAV 001:1] AHRS: EKF2 active
[MAV 001:1] EKF2 IMU0 tilt alignment complete
[MAV 001:1] EKF2 IMU0 forced reset
[MAV 001:1] EKF2 IMU0 tilt alignment complete
[MAV 001:1] INS: alloc 6144 bytes for ISB (free=854552)
[MAV 001:1] ArduPilot Ready
[MAV 001:1] AHRS: DCM active
[MAV 001:1] AHRS: EKF2 active
[MAV 001:1] EKF2 IMU0 tilt alignment complete
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] PreArm: Internal errors 0x800000 l:176 stack_ovrfl
[MAV 001:1] w
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] EKF2 IMU0 forced reset
[MAV 001:1] EKF2 IMU0 tilt alignment complete
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] PreArm: Internal errors 0x800000 l:176 stack_ovrfl
[MAV 001:1] w
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw
[MAV 001:1] PreArm: Internal errors 0x800000 l:60 stack_ovrflw

[Edit]
I can fly it if I reboot but only with DShot1200, with DShot600 only two motors run.

In chconf.h can you change PORT_INT_REQUIRED_STACK to 256 say and then check the stacks by using ftp @SYS/threads.txt - note that you will see stack overflow if you build with debug (I assume you arenā€™t?)

No I didnā€™t build with debug.
For now I canā€™t do other test, will do in the next days.

Ok, just tried on mine with no issues so my guess is that something you have connected is triggering the overflow - be great to narrow this down before I start making changes.

Sorry only now I remember that I was testing with INS_GYRO_RATE=2 (4KHz), I will test with 1 and let you know

Should not make any difference

Something hardware?
I have only an IBUS receiver on RX6 and a 3DR radio telemetry on UART7.

Its probably mavlink - be great to know what the stack usage is for UART7

Sorry I donā€™t know how to do this, something with ftp @SYS? from mavproxy?

start up mavproxy and run
ftp get @SYS/threads.txt -
It will print out the threads and stack usage

ThreadsV2
ISR           PRI=255 sp=0x20000000 STACK=1308/1536
ArduCopter    PRI=182 sp=0x20000600 STACK=5480/7168
idle          PRI=  1 sp=0x20017108 STACK=72/280
UART_RX       PRI= 60 sp=0x2001A340 STACK=944/1288
OTG1          PRI= 60 sp=0x2001BAA8 STACK=112/520
monitor       PRI=183 sp=0x20012C30 STACK=656/1032
timer         PRI=181 sp=0x20014270 STACK=1392/1800
rcout         PRI=181 sp=0x200135D0 STACK=936/1288
rcin          PRI=177 sp=0x20013080 STACK=816/1288
io            PRI= 58 sp=0x200122E0 STACK=1368/2312
storage       PRI= 59 sp=0x20013B20 STACK=1320/1800
UART7         PRI= 60 sp=0x2001C5E8 STACK=128/520
UART1         PRI= 60 sp=0x2001CC68 STACK=128/520
UART2         PRI= 60 sp=0x2001D4F0 STACK=248/520
UART3         PRI= 60 sp=0x2001DD78 STACK=248/520
OTG2          PRI= 60 sp=0x2001F1E0 STACK=248/520
UART6         PRI= 60 sp=0x30000678 STACK=248/520
I2C0          PRI=176 sp=0x30000938 STACK=760/1288
OSD           PRI= 59 sp=0x30001998 STACK=600/1288
log_io        PRI= 59 sp=0x30012060 STACK=936/1288
SPI4          PRI=181 sp=0x300151E0 STACK=496/1288
FTP           PRI= 58 sp=0x300203B0 STACK=1344/2824

Looks fine - are you still seeing stack overflow?

Not in this moment, but I changed nothing.

Just to confirm, dshot150 does not work with BLHeli_S 16.73 - the telemetry packets are simply not coming back. I was going to try JESC, but it seems passthrough is not working well enough for that to work at the moment.

In trying to figure out why I ran the motors at 2KHz - seems to work fine. If I can get the DMA patch in Iā€™ll put together a PR to make that configurableā€¦

The I number in the message is the thread priority so the two threads giving you problems are I2C and UART. I2C is baro - so maybe thereā€™s something in the baro driver that causes this to go up. It would be great if you could try and reproduce so that we can make sure we squash this.

Now I have not time to do other test, but I will do for sure.
I found a tlog where I had the problem, I see this:

I donā€™t know the meaning of SYS_STATUS.errors_count[2,4] but itā€™s related.

If you are willing to test I can do it. The dynamic notch is only essential for muultirotors

Hi,
Iā€™ running into an error while trying to flash this onto Cube orange with MP:
https://firmware.ardupilot.org/Copter/latest/CubeOrange-bdshot/arducopter_with_bl.hex
Is there another way to flash?
Thanks

Sorry for the OT