ArduPilot / ardupilot

ArduPlane, ArduCopter, ArduRover, ArduSub source
http://ardupilot.org/
GNU General Public License v3.0
10.76k stars 17.22k forks source link

Copter: significant issues with BLHeli on 4.0 #12542

Closed andyp1per closed 4 years ago

andyp1per commented 4 years ago

I am seeing a number of issues with BLHeli support in 4.0

Bug report

APM: ESC: Test PASSED Critical failure


 - If I enable ESC telemetry I lose logging (*UPDATE: caused by DMA on the RX pin*)

If I had to guess I would say the BLHeli support is pegging the CPU somehow

**Version**
4.0
BLHeli version 32.7 with auto telemetry enabled (I'll try switching this off next)

**Platform**
[  ] All
[  ] AntennaTracker
[X ] Copter
[  ] Plane
[  ] Rover
[  ] Submarine

**Airframe type**
Quad 3"

**Hardware type**
KakuteF7 Mini

**Logs**
andyp1per commented 4 years ago

If I turn off auto telemetry in BLHeli I no longer get the "Critical failure" when testing but I do still get "Internal errors (0x8000)" I still get no throttle logging with ESC telemetry enabled

andyp1per commented 4 years ago

Part of this seems to be related to DMA on the telemetry pin. If I disable this then things are better, rpm output is still a little suspicious however:

image

EDIT: I am testing without props and if I graph RCx_OUT then they match well with the rpm values. SO I think this part is working.

and the Internal errors is still there on test / passthrough

vierfuffzig commented 4 years ago

i could reproduce this, doing a BLH_TEST on copter firmware reliably triggers internal error 0x8000. it does this too without setting up or connecting ESC telemetry at all. on a sidenote, BLH_DEBUG prompts also do not work on copter. there's no comparable issues on plane firmware.

andyp1per commented 4 years ago

I played around with blheli yesterday with this in and all looked good, so I think this has essentially fixed the problems I was seeing.