Dshot Telemetry not started automatically

I have a Pix32v5 system with DShot ESCs. I have configured the DSHOT_TEL_CFG parameter to use TELEM3. However, after system restart, the telemetry is not started:

nsh> dshot esc_info -m 1
ERROR [dshot] Telemetry is not enabled, but required to get ESC info

I have to manually start it, to get access to the esc telemetry data:

nsh> dshot telemetry /dev/ttyS4
nsh> dshot esc_info -m 1
INFO [dshot] ESC Type: #Furling32_A#
INFO [dshot] MCU Serial Number: d14642-353638-100030-4d5057
INFO [dshot] Firmware version: 32.70
INFO [dshot] Rotation Direction: normal
INFO [dshot] 3D Mode: off
INFO [dshot] Low voltage Limit: off
INFO [dshot] Current Limit: off
INFO [dshot] LED 0: off
INFO [dshot] LED 1: off
INFO [dshot] LED 2: off
INFO [dshot] LED 3: unsupported
nsh>

Any clue where to look for the reason for this behavior?

Hi

Which PX4 version is that?
Do you have the output of dmesg?

I’m using 1.12.3 stable. No suspect messages in the dmesg log. I have tried to change the port, and it works (on a different free port), or I get a message about a conflicting port usage (on an already used port). I will post the output from the debug console once I have it.

Here’s output of the debug console. I print all DSHOT* parameters at the bottom:

[boot] Rev 0x0 : Ver 0x0 V500
[boot] Fault Log info File No 4 Length 3177 flags:0x01 state:1
[boot] Fault Log is Armed
sercon: Registering CDC/ACM serial driver
s[hardfault_log] Fault Log is Armed
ercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_FMU_V5
HW type: V500
HW version: 0x00000000
HW revision: 0x00000000
FW git-hash: 2e8918da66af37922ededee1cc2d2efffec4cfb2
FW version: Release 1.12.3 (17564671)
OS: NuttX
OS version: Release 8.2.0 (134349055)
OS git-hash: bf660cba2af81f055002b3817c87b1f63a78fd09
Build datetime: Sep  6 2021 16:39:19
Build uri: localhost
Toolchain: GNU GCC, 9.3.1 20200408 (release)
PX4GUID: 00020000000020323441425650060041001f
MCU: STM32F76xxx, rev. Z
INFO  [param] selected parameter default file /fs/mtd_params
INFO  [parameters] BSON document size 2526 bytes, decoded 2526 bytes
Board architecture defaults: /etc/init.d/rc.board_arch_defaults
Board defaults: /etc/init.d/rc.board_defaults
rgbled_ncp5623c #0 on I2C bus 1 (external) address 0x39
INFO  [px4io] IO FW CRC match
Board sensors: /etc/init.d/rc.board_sensors
icm20602 #0 on SPI bus 1 rotation 2
icm20689 #0 on SPI bus 1 rotation 2
WARN  [SPI_I2C] bmi055: no instance started (no device on bus?)
WARN  [SPI_I2C] bmi055: no instance started (no device on bus?)
ms5611 #0 on SPI bus 4
ist8310 #0 on I2C bus 3 address 0xE rotation 10
ist8310 #1 on I2C bus 1 (external) address 0xE rotation 10
WARN  [SPI_I2C] Already running on bus 1
Board extras: /etc/init.d/rc.board_mavlink
INFO  [mavlink] mode: Config, data rate: 800000 B/s on /dev/ttyACM0 @ 57600B
Starting Benewake TFmini Rangefinder on /dev/ttyS2
Starting Main GPS on /dev/ttyS0
Starting FrSky Telemetry on /dev/ttyS3
INFO  [init] Mixer: /etc/mixers/quad_x.main.mix on /dev/pwm_output0
INFO  [init] setting PWM_AUX_OUT none
ekf2 [357:100]
INFO  [ekf2] 0 - selected distance_sensor:0
INFO  [ekf2] starting instance 0, IMU:0 (3670026), MAG:0 (0)
INFO  [ekf2] 1 - selected distance_sensor:0
INFO  [ekf2] starting instance 1, IMU:1 (3932170), MAG:0 (0)
INFO  [logger] logger started (mode=all)

NuttShell (NSH) NuttX-10.1.0
nsh> INFO  [ekf2] 2 - selected distance_sensor:0
INFO  [ekf2] starting instance 2, IMU:1 (3932170), MAG:1 (396809)
INFO  [ekf2] 3 - selected distance_sensor:0
INFO  [ekf2] starting instance 3, IMU:0 (3670026), MAG:1 (396809)
INFO  [frsky_telemetry] sending FrSky SmartPort telemetry

nsh> dshot esc_info -m 1
ERROR [dshot] Telemetry is not enabled, but required to get ESC info
nsh> dshot telemetry /dev/ttyS4
nsh> dshot esc_info -m 1
INFO  [dshot] ESC Type: #Furling32_A#
INFO  [dshot] MCU Serial Number: d14642-353638-100030-4d5057
INFO  [dshot] Firmware version: 32.70
INFO  [dshot] Rotation Direction: normal
INFO  [dshot] 3D Mode: off
INFO  [dshot] Low voltage Limit: off
INFO  [dshot] Current Limit: off
INFO  [dshot] LED 0: off
INFO  [dshot] LED 1: off
INFO  [dshot] LED 2: off
INFO  [dshot] LED 3: unsupported
nsh> param show dshot*
Symbols: x = used, + = saved, * = unsaved
x   DSHOT_3D_DEAD_H [190,273] : 1000
x   DSHOT_3D_DEAD_L [191,274] : 1000
x   DSHOT_3D_ENABLE [192,275] : 0
x + DSHOT_CONFIG [193,276] : 1200
x   DSHOT_MIN [194,277] : 0.0550
x + DSHOT_TEL_CFG [195,278] : 103

 786/1548 parameters used.
nsh>