BeagleBone Blue, ArduRover 4.1, can't find SERVO_BLH_* parameters

First of all thank you for the great work on developing the ArduPilot!
I have an issue I struggle with for a bit now, and would like to ask for support.

I’m running ArduRover 4.1 compiled directly from source from GIT on BeagleBone Blue.

Unfortunately, I struggle to find SERVO_BLH_* parameters on the parameters list.
I know these parameters are present on ArduRover 4.1 on other platforms, e.g. verified on Holybro Pixhawk 4. Therefore, I believe it must be something with my build configuration for BeagleBone Blue. I’ve tried to Google for similar issues but couldn’t find solution.

My full parameters list is attached.

My MOT_PWM_TYPE is set to DShot150:


Options: 0:Normal 1:OneShot 2:OneShot125 3:BrushedWithRelay 4:BrushedBiPolar 5:DShot150 6:DShot300 7:DShot600 8:DShot1200

Description: This selects the output PWM type as regular PWM, OneShot, Brushed motor support using PWM (duty cycle) with separated direction signal, Brushed motor support with separate throttle and direction PWM (duty cyle)

However the only BLH related parameter I have on the list is SERVO_DSHOT_ESC:


Options: 0:None 1:BLHeli32/BLHeli_S/Kiss

Description: This sets the DShot ESC type for all outputs. The ESC type affects the range of DShot commands available. None means that no dshot commands will be executed.

My autopilot initialization messages are:

15.01.2022 08:59:44 : EKF3 IMU0 MAG0 initial yaw alignment complete
15.01.2022 08:59:44 : EKF3 IMU0 tilt alignment complete
15.01.2022 08:59:42 : EKF3 IMU0 initialised
15.01.2022 08:59:41 : Radio Failsafe
15.01.2022 08:59:41 : EKF3 IMU0 buffs IMU=19 OBS=7 OF=17 EN:17 dt=0.0200
15.01.2022 08:59:40 : AHRS: DCM active
15.01.2022 08:59:40 : ArduPilot Ready
15.01.2022 08:59:39 : Beginning INS calibration. Do not move vehicle
15.01.2022 08:59:39 : <startup_ground> Ground start
15.01.2022 08:59:39 : Barometer 1 calibration complete
15.01.2022 08:59:38 : Calibrating barometer
15.01.2022 08:59:37 : 7c6c7174b57dc98718e524fb5e8b2e46
15.01.2022 08:59:37 : ArduRover V4.1.3 (718a8061)

My compilation has been performed with these key commands:

git clone GitHub - ArduPilot/ardupilot: ArduPlane, ArduCopter, ArduRover, ArduSub source
git checkout Rover-4.1
git submodule update --init --recursive
./waf configure --board=blue

I see that the BLH module itself is compiling, e.g.:

[ 742/1470] Compiling libraries/AP_RCProtocol/AP_RCProtocol_CRSF.cpp
[ 743/1470] Compiling libraries/AP_RCProtocol/AP_RCProtocol_Backend.cpp
[ 744/1470] Compiling libraries/AP_BLHeli/AP_BLHeli.cpp
[ 745/1470] Compiling libraries/AC_Fence/AC_Fence.cpp
[ 746/1470] Compiling libraries/AC_Avoidance/AP_OADatabase.cpp
[ 747/1470] Compiling libraries/AC_Avoidance/AP_OABendyRuler.cpp

Build directory: /home/debian/ardupilot/build/blue
Target               Text     Data   BSS    Total
bin/antennatracker   1289708  47288  53464  1390460
bin/arducopter       1762943  72092  62244  1897279
bin/arducopter-heli  1717963  73280  61896  1853139
bin/arduplane        1763855  75532  62756  1902143
bin/ardusub          1550301  56776  58936  1666013
bin/blimp            1195004  43296  52936  1291236
bin/ardurover        1543105  63532  59716  1666353

Build commands will be stored in build/blue/compile_commands.json
'build' finished successfully (4h14m15.462s)

Board drivers test is showing no errors:

debian@beaglebone:~/ardupilot/build/blue/bin$ rc_test_drivers

Kernel: 4.19.94-ti-r42 Debian Buster IoT Image 2020-04-06
Debian: 10.11

PASSED: gpio 0
PASSED: gpio 1
PASSED: gpio 2
PASSED: gpio 3
PASSED: pwm0
PASSED: pwm1
PASSED: pwm2
PASSED: eqep0
PASSED: eqep1
PASSED: eqep2
PASSED: pru-rproc
PASSED: uart1
PASSED: uart2
PASSED: uart4
PASSED: uart5
PASSED: i2c1
PASSED: i2c2

Currently running on a:
Robot Control library Version:

Do you know what to change to get SERVO_BLH_* parameters?
Thanks in advance!

BeagleBoneBlue_AR41.param (13.8 KB)

It’s linux based so no dshot support

Thanks for the quick reply! That would clarify what I see on the oscilloscope.

What I need the BLH for is mainly ESC Battery Monitor - BATT2_MONITOR=9 as described in BLHeli_32 and BLHeli_S ESC Telemetry — Copter documentation

I believe my ESC sends it’s telemetry even though input signal is a regular PWM. I see some data on the ESC’s TX line. Also on BBBlue UART I see some data coming, although I don’t know the protocol nor bitrate.
Is there any chance to enable ESC Battery Monitor in Linux without DShot support?

Alternatively, if I parse the ESC’s UART data with some separate, custom-made system process - is there any way to inject battery monitor message to Ardupilot with one of the available serials (UARTs and the Console — Dev documentation)?

ESC telemetry is part of dshot it doesn’t work without it. Some versions of blheli have support for “auto-telemetry” but we don’t yet support it