# SDK 1.8 / PX4 1.18: VOXL ESC telemetry is valid in PX4 but MAVLink reports all motors offline

Source: https://forum.modalai.com/topic/5517/sdk-1.8-px4-1.18-voxl-esc-telemetry-is-valid-in-px4-but-mavlink-reports-all-motors-offline
Category: VOXL SDK and Software (https://forum.modalai.com/category/47/voxl-sdk-and-software)
Posted: 2026-10-19 15:11:33 UTC by simiken1234
Replies: 1 · Views: 15

## simiken1234 · 2026-10-19 15:11:33 UTC

**Hardware:** Custom drone, VOXL 2 M0054  
SKU: TF-M0054-4-V1-C11

**Software version:**

```text
system-image: 1.8.09-M0054-14.1a-perf-20261009
hw platform:  M0054
voxl-suite:   1.8.0

Relevant packages:
voxl-px4            1.18.0-1.0.9
voxl-mavlink-server 1.4.21-202610161525
voxl-px4-params     0.9.35
voxl-esc            1.6.5
```

**Configuration / services:**

```text
ESC=VOXL_ESC

voxl-px4            Enabled, Running
voxl-mavlink-server Enabled, Running
```

**What I am trying to do:**

View normal ESC health and telemetry in QGroundControl's ESC Status Overview.

**What actually happens:**

QGC shows `ERR` and all four motors as offline. The vehicle can still arm, motors can be spun from the Actuators page, and flight-control outputs work.

PX4 itself receives valid ESC telemetry. `px4-listener esc_status` shows all four ESCs online and fresh:

```text
esc_online_flags: 15 (0b1111)
esc_armed_flags: 15 (0b1111)
esc_count: 4
esc_connectiontype: 1

ESC 0-3: fresh timestamps, 12.497-12.513 V, 32-39 C,
         esc_errorcount: 0, failures: 0
```

However, each of the four reports has:

```text
actuator_function: 0
```

I captured the MAVLink packets leaving the VOXL for the GCS. `ESC_INFO` and `ESC_STATUS` are transmitted, so this is not a voxl-mavlink-server forwarding issue. But they contain:

```text
ESC_INFO:   count=4, info=0 (all ESCs offline)
ESC_STATUS: RPM/voltage/current all zero
```

I traced this to the PX4 MAVLink ESC stream: it now remaps and exports telemetry only for reports with `actuator_function` set to `Motor1..MotorN`. The `voxl_esc` driver publishes valid `esc_status` telemetry and online flags, but does not populate `esc_status.esc[i].actuator_function`, so all reports are filtered out before MAVLink serialization.

This appears to be a regression caused by the PX4 MAVLink ESC stream change in commit `efbc9e64` (`mavlink: esc: fix ESC_STATUS and ESC_INFO message emission`, November 2025). That commit is included in the installed `v1.18.0-1.0.9` source tag. Before that change, the MAVLink stream forwarded the `esc_status` arrays and `esc_online_flags` directly, so it did not depend on `actuator_function`.

**Steps to reproduce:**

1. Boot a VOXL 2 using the versions above with `ESC=VOXL_ESC`.
2. Connect QGroundControl to `voxl-mavlink-server` on UDP port 14550.
3. Open the ESC Status Overview. All four motors show offline / `ERR`.
4. On the VOXL, run:

   ```bash
   px4-listener esc_status
   ```

5. Observe that ESC telemetry and online flags are valid, while `actuator_function` is `0` for ESC 0-3.

**Logs / pictures:**

![0176a0e2-6a2a-4184-aff8-006dcd75f1c8-image.jpeg](https://forum.modalai.com/assets/uploads/files/1792422639135-0176a0e2-6a2a-4184-aff8-006dcd75f1c8-image.jpeg) 

I can provide the full `voxl-version`, `voxl-inspect-services`, `px4-listener esc_status` output, and the MAVLink packet capture.

Could you confirm whether `voxl_esc` should populate each `esc_status.esc[i].actuator_function` from the configured `VOXL_ESC_FUNC1..4` motor mapping, and provide or point me to a fix for the SDK 1.8 / PX4 1.18 package?

## Reply by Eric Katzfey (ModalAI staff) · 2026-10-19 16:23:54 UTC

Thanks for reporting this! A fix is has been pushed. You can find an updated voxl-px4 package here: http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/voxl-px4_1.18.0-1.0.13-202610190909_arm64.deb
