# voxl-ardupilot crashing on mission planner reconnect

Source: https://forum.modalai.com/topic/5366/voxl-ardupilot-crashing-on-mission-planner-reconnect
Category: General Questions (https://forum.modalai.com/category/2/general-questions)
Posted: 2026-08-05 21:02:56 UTC by Dan Jennings
Replies: 8 · Views: 396

## Dan Jennings · 2026-08-05 21:02:56 UTC

We've found that mission planner does not always reconnect to the autopilot after a reboot so we have adopted a policy to disconnect and reconnect mission planner after performing a reboot. We have found that this causes voxl-ardupilot to crash. 

Steps:
* Mission Planner is connected to the ardupilot instance over radio link
* Restart ardupilot, through either the mission planner interface or systemctl restart
* Disconnect mission planner
* Reconnect Mission Planner

Mission Planner will reconnect but when it tries to download the params list from the autopilot the data stream stops and the motors beep indicating loss of signal from the autopilot. Restarting voxl-ardupilot with systemctl resolves the issue but this is a consistent problem.

Performing a full power cycle does not recreate this issue. Mission Planner can be disconnected and reconnected without issue.

**systemctl status voxl-ardupilot** - Before crash

 ```
voxl2 (M0054):~$ systemctl status voxl-ardupilot
● voxl-ardupilot.service - ArduPilot
   Loaded: loaded (/etc/systemd/system/voxl-ardupilot.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2026-07-28 18:59:14 UTC; 2min 52s ago
  Process: 2173 ExecStartPre=/bin/sleep 1 (code=exited, status=0/SUCCESS)
 Main PID: 2320 (voxl-ardupilot)
    Tasks: 8 (limit: 4915)
   CGroup: /system.slice/voxl-ardupilot.service
           ├─2320 /bin/bash /usr/bin/voxl-ardupilot
           └─2323 /usr/bin/ardupilot

Jul 28 18:59:13 m0054 systemd[1]: Starting ArduPilot...
Jul 28 18:59:14 m0054 systemd[1]: Started ArduPilot.
Jul 28 18:59:14 m0054 voxl-ardupilot[2320]: Starting up
Jul 28 18:59:14 m0054 voxl-ardupilot[2320]: Got data msg before configuration complete
```

**systemctl status voxl-ardupilot** - After crash

```
● voxl-ardupilot.service - ArduPilot
   Loaded: loaded (/etc/systemd/system/voxl-ardupilot.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2026-07-28 19:07:34 UTC; 1min 40s ago
  Process: 6178 ExecStartPre=/bin/sleep 1 (code=exited, status=0/SUCCESS)
 Main PID: 6199 (voxl-ardupilot)
    Tasks: 8 (limit: 4915)
   CGroup: /system.slice/voxl-ardupilot.service
           ├─6199 /bin/bash /usr/bin/voxl-ardupilot
           └─6200 /usr/bin/ardupilot

Jul 28 19:09:07 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:08 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:09 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:09 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:10 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:11 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:12 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:13 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:14 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:14 m0054 voxl-ardupilot[6199]: Got response cb 0
Jul 28 19:09:15 m0054 voxl-ardupilot[6199]: Got response cb 0
voxl2 (M0054):~$
```

**voxl-version**
```
voxl2 (M0054):~$ voxl-version
────────────────────────────────────────────────────────────────────────────────
system-image: 1.8.06-M0054-14.1a-perf
kernel:       #1 SMP PREEMPT Wed Oct 22 04:13:18 UTC 2025 4.19.125
────────────────────────────────────────────────────────────────────────────────
hw platform:  M0054
mach.var:     1.0.1
SKU:          MCCA-M0054-C0-T0-M0-X0
────────────────────────────────────────────────────────────────────────────────
voxl-suite:   1.6.3
────────────────────────────────────────────────────────────────────────────────
Packages:
Repo:  http://voxl-packages.modalai.com/ ./dists/qrb5165/sdk-1.6/binary-arm64/
Last Updated: 2026-07-28 17:00:51
List:
libfc-sensor                   1.0.9
libmodal-cv                    0.6.0
libmodal-exposure              0.1.4
libmodal-flow                  1.0.3
libmodal-journal               0.2.7
libmodal-json                  0.4.8
libmodal-pipe                  2.14.11
libqrb5165-io                  0.6.3
libvoxl-cci-direct             0.3.3
libvoxl-codec                  0.0.5
libvoxl-cutils                 0.1.6
modalai-slpi                   1.2.2
mv-voxl                        0.1-r0
qrb5165-bind                   0.1-r0
qrb5165-dfs-server             0.2.0
qrb5165-mini-tof-server        0.2.2
qrb5165-rangefinder-server     0.1.6
qrb5165-slpi-test-sig          01-r0
qrb5165-tflite                 2.17.2
voxl-ardupilot                 4.8.0-8ed7441c
voxl-bind-spektrum             0.1.1
voxl-camera-calibration        0.6.1
voxl-camera-server             2.2.25
voxl-ceres-solver              2:2.0.0-2
voxl-configurator              1.1.5
voxl-cpu-monitor               0.7.7
voxl-docker-support            1.3.1
voxl-elrs                      1.1.0
voxl-esc                       1.5.7
voxl-esptool                   0.2.0
voxl-feature-tracker           0.5.2
voxl-flow-server               0.3.6
voxl-gphoto2-server            0.0.10
voxl-imu-server                2.0.1
voxl-io-server                 0.0.8
voxl-jpeg-turbo                2.1.3-7
voxl-lepton-server             1.3.3
voxl-lepton-tracker            0.0.4
voxl-libgeographic             1.0.0
voxl-libgphoto2                0.0.4
voxl-libuvc                    1.0.7
voxl-logger                    0.6.1
voxl-mavcam-manager            0.6.0
voxl-mavlink                   0.1.6
voxl-mavlink-server            1.4.14
voxl-microdds-agent            3.0.0-0
voxl-modem                     1.2.3
voxl-mongoose                  7.19.0
voxl-mpa-to-ros                0.3.9
voxl-mpa-to-ros2               0.0.7
voxl-mpa-tools                 1.5.8
voxl-nano-tracker              0.1.7
voxl-open-vins-server          0.6.0
voxl-opencv                    4.5.5-3
voxl-osd                       0.3.8
voxl-portal                    0.8.7
voxl-px4                       1.14.0-2.0.133
voxl-px4-params                0.9.0
voxl-qvio-server               1.2.3
voxl-remote-id                 0.0.9
voxl-reset-slpi                0.0.1
voxl-ros2-foxy                 0.0.1
voxl-state-estimator           0.0.6
voxl-streamer                  0.8.0
voxl-suite                     1.6.3
voxl-tag-detector              0.1.0
voxl-tflite-server             0.5.1
voxl-utils                     2.0.2
voxl-uvc-server                0.1.7
voxl-vision-hub                1.9.21
voxl-vtx                       2.0.2
voxl-wavemux                   0.0.3
voxl2-io                       0.0.3
voxl2-security-hardening-utls  1.0-r0
voxl2-system-image             1.8.06-r0
voxl2-wlan                     1.0-r0
```

**voxl-inspect-services**
```
voxl2 (M0054):~$ voxl-inspect-services
Scanning services...

 Service Name             |  Enabled  |   Running   |  CPU Usage
───────────────────────────────────────────────────────────────────
 docker-autorun           | Disabled  | Not Running |
 modallink-relink         | Disabled  | Not Running |
 voxl-ardupilot           |  Enabled  |   Running   |     0.0%
 voxl-camera-server       |  Enabled  |   Running   |     0.0%
 voxl-cpu-monitor         |  Enabled  |   Running   |     0.0%
 voxl-dfs-server          | Disabled  | Not Running |
 voxl-dma-latency         |  Enabled  |   Running   |
 voxl-feature-tracker     | Disabled  | Not Running |
 voxl-flow-server         | Disabled  | Not Running |
 voxl-imu-server          |  Enabled  |   Running   |     3.5%
 voxl-io-server           | Disabled  | Not Running |
 voxl-lepton-server       | Disabled  | Not Running |
 voxl-lepton-tracker      | Disabled  | Not Running |
 voxl-logger              | Disabled  | Not Running |
 voxl-mavcam-manager      | Disabled  | Not Running |
 voxl-mavlink-server      |  Enabled  |   Running   |     0.0%
 voxl-microdds-agent      |  Enabled  |   Running   |
 voxl-mini-tof-server     | Disabled  | Not Running |
 voxl-modem-doodle        |  Enabled  |   Running   |     0.0%
 voxl-modem               |  Enabled  |   Running   |     1.8%
 voxl-nano-tracker        | Disabled  | Not Running |
 voxl-open-vins-server    | Disabled  | Not Running |
 voxl-osd                 | Disabled  | Not Running |
 voxl-portal              |  Enabled  |   Running   |     0.0%
 voxl-px4                 | Disabled  | Not Running |
 voxl-qvio-server         | Disabled  | Not Running |
 voxl-rangefinder-server  | Disabled  | Not Running |
 voxl-remote-id           | Disabled  | Not Running |
 voxl-softap              | Disabled  | Not Running |
 voxl-state-estimator     | Disabled  | Not Running |
 voxl-static-ip-watcher   | Disabled  | Not Running |
 voxl-static-ip           | Disabled  | Not Running |
 voxl-streamer            | Disabled  | Not Running |
 voxl-tag-detector        | Disabled  | Not Running |
 voxl-tflite-server       | Disabled  | Not Running |
 voxl-time-sync           | Disabled  | Not Running |
 voxl-uvc-server          | Disabled  | Not Running |
 voxl-vision-hub          |  Enabled  |   Running   |     1.8%
 voxl-vrx                 | Disabled  | Not Running |
 voxl-vtx                 | Disabled  | Not Running |
 voxl-wait-for-fs         |  Enabled  |  Completed  |
```

**voxl-mavlink-server.cfg**
```
/**
 * voxl-mavlink-server Configuration File
 *
 * primary_static_gcs_ip & secondary_static_gcs_ip
 *    These configure voxl-mavlink-server to automatically try to connect to
 *    up to two known static GCS units. Set to empty or NULL if you don't want
 *    to use this and you want the GCS to initialize the connection instead.
 *    Note the default IP for the primary link is 192.168.8.10 which is the
 *    first IP that VOXL DHCP serves when connecting in wifi softap mode.
 *
 *    DON'T set either of these ip addresses to localhost, these are meant
 *    for external ground control stations. For mavsdk and mavros communication
 *    locally, set the 'en_localhost_mavlink_udp' flag in voxl-vision-hub's
 *    /etc/modalai/voxl-vision-hub.conf file instead.
 *
 * primary_static_gcs_ip_port & secondary_static_gcs_ip_port
 *    UDP port numbers for the static GCS IPs above, default to 14550 each, respectively
 *
 * Settings for running voxl-px4 on SLPI:
 * onboard_port_to_autopilot   - UDP port to send high-rate onboard data to SLPI
 * onboard_port_from_autopilot - UDP port to receive high-rate onboard data from SLPI
 * gcs_port_to_autopilot       - UDP port to send normal-rate gcs data to SLPI
 * gcs_port_from_autopilot     - UDP port to receive normal-rate gcs data from SLPI
 *
 * Settings for running an external autopilot connected via UART:
 * en_external_uart_ap       - set to true to enable an external flight controller
 * autopilot_uart_bus        - uart bus, default 1 for VOXL2
 * autopilot_uart_baudrate   - default 921600
 * autopilot_mission_delay_start - default -1 (off), >0 means to delay mission start for X seconds
 * autopilot_mission_delay_sound - play esc chime tone/behavior, true=on false=off
 * autopilot_mission_notif_dur   - visual notification using motor spin, duration in seconds
 * en_external_fc_timesync   - enable responding to timesync messages
 *                                   (enabled by default)
 * en_external_ap_heartbeat  - enable automatic sending of heartbeat
 * gcs_timeout_s - time without heartbeat to consider GCS disconnected
 *
 * udp_mtu - maximum transfer unit for UDP packets back to GCS. voxl-mavlink-server
 *           will bundle up backets for the GCS into a single UDP packet with
 *           a maxium size of this. This saves network traffic drastically.
 *           Set to 0 to disable this feature and send one UDP packet per msg.
 *
 *
 * External FC field is for QRB5165 only. Set to true to enable UART
 * communication to an external flight controller, otherwise a UDP interface
 * will be started to talk to voxl-px4 on localhost which is the default behavior.
 * Select UART port 1 to go through the legacy B2B connector, that's the port exposed by the
 * M0125 and M0141 accessory boards. Use port 12 to go through the ESC port (J18).
 *
 */
{
        "primary_static_gcs_ip":        "10.223.0.12",
        "primary_static_gcs_ip_port":   14550,
        "secondary_static_gcs_ip":      "10.223.0.202",        
		"secondary_static_gcs_ip_port": 14550,
        "onboard_port_to_autopilot":    14556,
        "onboard_port_from_autopilot":  14557,
        "gcs_port_to_autopilot":        14558,
        "gcs_port_from_autopilot":      14559,
        "en_external_uart_ap":  false,
        "autopilot_uart_bus":   1,
        "autopilot_uart_baudrate":      921600,
        "autopilot_mission_delay_start":        -1,
        "autopilot_mission_delay_sound":        false,
        "autopilot_mission_force_restart":      0,
        "autopilot_mission_notif_dur":  0.1,
        "en_external_ap_timesync":      1,
        "en_external_ap_heartbeat":     1,
        "udp_mtu":      500,
        "gcs_timeout_s":        4.5
}
```

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-05 23:14:10 UTC

I do not have a Windows computer handy so cannot really try Mission Planner. I tried to recreate this with QGroundControl but don't see it. Can you try with QGroundControl just to see what happens? Does it look like the 'systemctl restart voxl-ardupilot' is working reliably?

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-05 23:14:48 UTC

Can you try upgrading to the latest VOXL SDK to see if that helps?

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-05 23:15:33 UTC

What if you disconnect Mission Planner before trying the voxl-ardupilot restart?

## Reply by Dan Jennings · 2026-08-12 18:40:18 UTC (in reply to Eric Katzfey)

> @Eric-Katzfey [said](/post/26563):
>
> I do not have a Windows computer handy so cannot really try Mission Planner. I tried to recreate this with QGroundControl but don't see it. Can you try with QGroundControl just to see what happens? Does it look like the 'systemctl restart voxl-ardupilot' is working reliably?

stemctl restart voxl-ardupilot does work, this is our normal solution for this issue. We don't use QGC, will have to install it to test.

> @Eric-Katzfey [said](/post/26565):
>
> What if you disconnect Mission Planner before trying the voxl-ardupilot restart?

Mentioned this in my post, we've tried this, but it does not change the behavior.

> @Eric-Katzfey [said](/post/26564):
>
> Can you try upgrading to the latest VOXL SDK to see if that helps?

Right now we can't get the FLIR Hadron 640 to work on any other SDK.

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-12 21:41:59 UTC

I'll probably have to recreate this and then debug it. I won't be able to do that until I get back from travel the week after next. Here's something from Codex that you could try:
```
  With Mission Planner closed, add this to its config.xml:

  <UseMavFtpParams>False</UseMavFtpParams>

  Then restart Mission Planner and repeat the exact sequence. This forces the legacy MAVLink parameter protocol instead of the packed MAVFTP download.

  Interpretation:

  - Failure disappears: strongly implicates MAVFTP burst traffic and the QURT/SLPI backpressure path.
  - Failure remains: investigate the broader reconnect/SLPI lifecycle rather than MAVFTP specifically.
  - QGroundControl works consistently: also supports the Mission Planner MAVFTP-trigger theory, though it would not prove MP is defective.
```

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-12 22:41:41 UTC

My only guess at this point is that it may be timing related. I would try each step, wait a long time, then try the next step. Maybe something is taking too long and the system is not yet ready for the next step. But that's just a guess.

## Reply by Alex Kushleyev (ModalAI staff) · 2026-08-13 16:36:34 UTC

@dan-jennings , I would be happy to help you with the Hadron Issues on newer SDKs. There were no changes to the Hadron (Boson + OV64B) functionaliy recently.

Please make a new post for this issue and provide the following details:
- which SDK is working and which SDK(s) are not working for Hadron
- detailed description of the issue, any useful info from camera server or dmesg?
- how is Hadron connected to VOXL2? which interposers and which VOXL2 camera port (J6, J7, or J8)
- please provide `voxl-camera-server.conf` that you are using
- please provide a list of *sensormodule*.bin and *so files in `/usr/lib/camera`

Thank you

Alex

## Reply by Eric Katzfey (ModalAI staff) · 2026-08-20 19:02:48 UTC

I was finally able to get to a Windows PC and try this. I still cannot recreate the issue. I can restart voxl-ardupilot with systemctl restart or via Mission Planner reboot pixhawk and in both cases I can disconnect and then reconnect Mission Planner to ardupilot. I am connected on VOXL2 to my local WiFi network via station mode. I have disabled all other services other than, essentially, voxl-ardupilot and voxl-mavlink-server. I am using recent VOXL2 SDK, recent ArduPilot build, and Mission Planner 1.3.83
