BLHeli32 ESC telemetry setup - how?

Great!

If you are using BLHeli telemetry then yes it matters what INS_HNTCH_FREQ is set to as the value used is the maximum of this parameter and the telemetry derived value, so it is basically the lower bound on your notch centre frequency.

is that item logged anywhere - what is it deriving? or was that the CTUN->N?

Right now, no. You could derive it by averaging your RPM from each ESC. We should probably log it. CTUN->N gives you the selected value, so telemetry derived value above INS_HNTCH_FREQ and INS_HNTCH_FREQ otherwise

I was hopping someone might be able to help me on this, i am also trying to get ESC telemetry working so that I can get battery voltage from the ESC instead of from a power module to save space on a small drone I am building. I am using a Mro Control Zero FC and a Mamba 306 4 in 1 esc. I have the tx wire from my ESC plugged into the Serial 5 rx on the FC.
The esc also has a Curr pin… but I do not know what that one is for…

I am on the latest Arducopter codebase.

Servo_BLH_Auto = 1
Serial5_protocol = 16
Batt_Monitor = 9
Serial2_protocol = 2 (telemetry module)

I can see “ESC telemetry” I think in mission planner, if I set serial5_protocol to -1 i get nothing, if I set it to 16 I get what is shown in this picture. No matter what voltage is going to the esc, they all report around ~18.4 volts, Curr and RPM are always 0 even if the motors are spinning and temp is always around 45.

image

I am not sure if there is some parameter I am missing, any help would be greatly appreciated.
FYI I have 2 almost identical drones, I have the ESC rx wire plugged into a different Serial# on the FC on both with the same exact results.

Param File: BLHeliDroneParam.param (17.9 KB)

The tekko32 also has “current” https://shop.holybro.com/tekko32-f3-4in1-45a-mini-esc_p1132.html I think it’s for the current monitoring on the FC or ESC so the only thing you need to connect is the telemtry port. If you are seeing weirdness I wonder if the FC is configured correctly in hwdef.bat - it wasn’t in the Kakute F7.

are you able to explain a little more about the the “FC is configured correctly in hwdef.bat”
I do know that in the pinout for the control zero Usart CH3 is actualy Serial 2 in mission planner Usart CH4 is Serial 3 and so on.

Serial 5 is what I was going to suggest since that seems to be USART6 and has no dma (which was the key in getting my telemetry working).

This is the UART order in hwdef.dat for that board (in the source code on github):
UART_ORDER OTG1 UART4 USART2 USART3 UART8 USART6 UART7 OTG2

Are you able to try serial 4 (which is UART8) which is also no dma but a UART rather than USART. Doubt it makes any difference but it’s the only difference with my setup.

You are on 4.0rc2 right?

Yes i am on 4.0rc2, i have confirmed by trial and error that on the Mro pinout, Ch2 = serial1, Ch3 = serial2 and Ch4 = serial 3, i just tried esc telem on ch2/serial1 and same result 18.4 volts. Is there another parameter I may be missing, Also no matter what i put the Voltage divider to, the voltage stays between 18.3 and 18.5. I will also note that with this setup while watching mission planer, I pulled the Tx pin from the ESC and the voltage dropped to 0. Is there possibly something I need to chance on the ESC itself. I have confirmed that Auto telemetry is turned off.

if you get voltage and current from ESC data OK - some ESCs do lie a lot. i never saw it lie that much, to be honest, but, it is not too unusual. some 4in1 ESC i have had as much as .3v mismatch - i never saw more than that. not sure what to say other than to swap that ESC. it happens, sometimes, tekko32 esc were always correct voltage/current wise, others - not so much, but usually it is current that they lie about, not voltage. dunno what more to say.

Can you switch on BLH debug and see whether you get any interesting output?

I will try BLH Debug in a second and see what I get but i am not realy sure of the procedure for that. I do think this is probably related to something I am doing wrong with ardupilot, some parameter i am forgetting. Also its not just the ESC being off in its voltage, if i put 16v or 11v into the esc, it still reports back 18.5v also the temperature is always the same and i dont get rmp or current. If I hook a different flight controller up with betaflight to the ESC I get the proper voltage shown.

here are my batt params from a model using kakute and tekko32 esc.
BATT_AMP_OFFSET,0 BATT_AMP_PERVLT,17 BATT_ARM_MAH,0 BATT_ARM_VOLT,0 BATT_CAPACITY,1500 BATT_CRT_MAH,0 BATT_CRT_VOLT,14 BATT_CURR_PIN,-1 BATT_FS_CRT_ACT,2 BATT_FS_LOW_ACT,2 BATT_FS_VOLTSRC,0 BATT_LOW_MAH,0 BATT_LOW_TIMER,10 BATT_LOW_VOLT,14.2 BATT_MONITOR,9 BATT_SERIAL_NUM,-1 BATT_VOLT_MULT,10.98277 BATT_VOLT_PIN,-1 BATT2_MONITOR,0 BATT3_MONITOR,0 BATT4_MONITOR,0 BATT5_MONITOR,0 BATT6_MONITOR,0 BATT7_MONITOR,0 BATT8_MONITOR,0 BATT9_MONITOR,0

also, all SERVO - not sure what is wrong with your setup if betaflight works fine.

SERVO_BLH_AUTO,1 SERVO_BLH_DEBUG,0 SERVO_BLH_MASK,0 SERVO_BLH_OTYPE,0 SERVO_BLH_POLES,14 SERVO_BLH_PORT,0 SERVO_BLH_REMASK,0 SERVO_BLH_TEST,0 SERVO_BLH_TMOUT,0 SERVO_BLH_TRATE,10 SERVO_RATE,50 SERVO_ROB_POSMAX,4095 SERVO_ROB_POSMIN,0 SERVO_SBUS_RATE,50 SERVO_VOLZ_MASK,0

when i run the BLH test i get
ESC: Test FAILED
ESC: short read
ESC: BL_ReadBuf 8 -> 0
ESC: BL_ConnectEx 0/4 at 0
ESC: short read
ESC: BL_ReadBuf 8 -> 0
ESC: BL_ConnectEx 0/4 at 0
ESC: short read
ESC: BL_ReadBuf 8 -> 0
ESC: BL_ConnectEx 0/4 at 0
ESC: short read
ESC: BL_ReadBuf 8 -> 0
ESC: BL_ConnectEx 0/4 at 0
ESC: short read
ESC: BL_ReadBuf 8 -> 0
Initialising APM
ESC: BL_ConnectEx 0/4 at 0
ESC: Running test on channel 0

So something is wrong i am just not sure what it is, i am guessing maybe the ESC model, i have tried 2 of the same ESC.

What version of BLH?

Means that it tried to read 8 bytes from the serial port and got 0. I have no idea why this might be. You don’t have auto telemetry on presumably (you should not). What version of BLHeli? What ESC?

What changed between working and not working?

Turn off auto telemetry - it messes things up and is unecessary

1 Like

Due to time constraints i ha to abandon this approach and just find a way to fit a power module into my small build. But in case someone is still looking into this, it looks like my BLHeli version is 32.6

Not sure if anyone is still monitoring this thread, since it’s been a year since the last post, but I’m just now setting up a quad with PixRacer V1.5 and Kiss 25A singles. I have the ESC telemetry fed into Serial2 Rx, with Serial 2 protocol set to 16. I am getting all 4 ESC telemetry feeds in the logs, but they don’t show up in MP - just zeros for everything. Looking through this thread, I think there was a suggestion to switch the serial port for telemetry to Mavlink 2, but still no joy. Any other suggestions?

One other thing - I’m not sure what to enter for baud rate on the Serial 2 port. The guide says to enter 115 for 115200 baud. I can do that, and save it, but the next time I power up it shows 115200 instead of 115. Doesn’t seem to mater either way, since I get the telemetry is logged successfully. Guessing this is a bug in MP - showing the actual baud rate rather than the entry that would set it to 115200.

OK, resolved this. I had a newer mRobotics naked radio on the quad, but was using an older 3DR telemetry radio on the ground. I swapped that out for a newer mRobotics radio, and now telemetry shows up in MP. I’m guessing the older 3DR radio didn’t support Mavlink 2?

What you nean conneccted to usb?