<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SDK 1.8 / PX4 1.18: VOXL ESC telemetry is valid in PX4 but MAVLink reports all motors offline]]></title><description><![CDATA[<p dir="auto"><strong>Hardware:</strong> Custom drone, VOXL 2 M0054<br />
SKU: TF-M0054-4-V1-C11</p>
<p dir="auto"><strong>Software version:</strong></p>
<pre><code class="language-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
</code></pre>
<p dir="auto"><strong>Configuration / services:</strong></p>
<pre><code class="language-text">ESC=VOXL_ESC

voxl-px4            Enabled, Running
voxl-mavlink-server Enabled, Running
</code></pre>
<p dir="auto"><strong>What I am trying to do:</strong></p>
<p dir="auto">View normal ESC health and telemetry in QGroundControl's ESC Status Overview.</p>
<p dir="auto"><strong>What actually happens:</strong></p>
<p dir="auto">QGC shows <code>ERR</code> and all four motors as offline. The vehicle can still arm, motors can be spun from the Actuators page, and flight-control outputs work.</p>
<p dir="auto">PX4 itself receives valid ESC telemetry. <code>px4-listener esc_status</code> shows all four ESCs online and fresh:</p>
<pre><code class="language-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
</code></pre>
<p dir="auto">However, each of the four reports has:</p>
<pre><code class="language-text">actuator_function: 0
</code></pre>
<p dir="auto">I captured the MAVLink packets leaving the VOXL for the GCS. <code>ESC_INFO</code> and <code>ESC_STATUS</code> are transmitted, so this is not a voxl-mavlink-server forwarding issue. But they contain:</p>
<pre><code class="language-text">ESC_INFO:   count=4, info=0 (all ESCs offline)
ESC_STATUS: RPM/voltage/current all zero
</code></pre>
<p dir="auto">I traced this to the PX4 MAVLink ESC stream: it now remaps and exports telemetry only for reports with <code>actuator_function</code> set to <code>Motor1..MotorN</code>. The <code>voxl_esc</code> driver publishes valid <code>esc_status</code> telemetry and online flags, but does not populate <code>esc_status.esc[i].actuator_function</code>, so all reports are filtered out before MAVLink serialization.</p>
<p dir="auto">This appears to be a regression caused by the PX4 MAVLink ESC stream change in commit <code>efbc9e64</code> (<code>mavlink: esc: fix ESC_STATUS and ESC_INFO message emission</code>, November 2025). That commit is included in the installed <code>v1.18.0-1.0.9</code> source tag. Before that change, the MAVLink stream forwarded the <code>esc_status</code> arrays and <code>esc_online_flags</code> directly, so it did not depend on <code>actuator_function</code>.</p>
<p dir="auto"><strong>Steps to reproduce:</strong></p>
<ol>
<li>
<p dir="auto">Boot a VOXL 2 using the versions above with <code>ESC=VOXL_ESC</code>.</p>
</li>
<li>
<p dir="auto">Connect QGroundControl to <code>voxl-mavlink-server</code> on UDP port 14550.</p>
</li>
<li>
<p dir="auto">Open the ESC Status Overview. All four motors show offline / <code>ERR</code>.</p>
</li>
<li>
<p dir="auto">On the VOXL, run:</p>
<pre><code class="language-bash">px4-listener esc_status
</code></pre>
</li>
<li>
<p dir="auto">Observe that ESC telemetry and online flags are valid, while <code>actuator_function</code> is <code>0</code> for ESC 0-3.</p>
</li>
</ol>
<p dir="auto"><strong>Logs / pictures:</strong></p>
<p dir="auto"><img src="/assets/uploads/files/1792422639135-0176a0e2-6a2a-4184-aff8-006dcd75f1c8-image.jpeg" alt="0176a0e2-6a2a-4184-aff8-006dcd75f1c8-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto">I can provide the full <code>voxl-version</code>, <code>voxl-inspect-services</code>, <code>px4-listener esc_status</code> output, and the MAVLink packet capture.</p>
<p dir="auto">Could you confirm whether <code>voxl_esc</code> should populate each <code>esc_status.esc[i].actuator_function</code> from the configured <code>VOXL_ESC_FUNC1..4</code> motor mapping, and provide or point me to a fix for the SDK 1.8 / PX4 1.18 package?</p>
]]></description><link>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</link><generator>RSS for Node</generator><lastBuildDate>Mon, 19 Oct 2026 23:11:45 GMT</lastBuildDate><atom:link href="https://forum.modalai.com/topic/5517.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Oct 2026 15:11:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SDK 1.8 / PX4 1.18: VOXL ESC telemetry is valid in PX4 but MAVLink reports all motors offline on Mon, 19 Oct 2026 16:23:54 GMT]]></title><description><![CDATA[<p dir="auto">Thanks for reporting this! A fix is has been pushed. You can find an updated voxl-px4 package here: <a href="http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/voxl-px4_1.18.0-1.0.13-202610190909_arm64.deb" rel="nofollow ugc">http://voxl-packages.modalai.com/dists/qrb5165/dev/binary-arm64/voxl-px4_1.18.0-1.0.13-202610190909_arm64.deb</a></p>
]]></description><link>https://forum.modalai.com/post/26953</link><guid isPermaLink="true">https://forum.modalai.com/post/26953</guid><dc:creator><![CDATA[Eric Katzfey]]></dc:creator><pubDate>Mon, 19 Oct 2026 16:23:54 GMT</pubDate></item></channel></rss>