voxl-ardupilot crashing on mission planner reconnect
-
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 completesystemctl 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-r0voxl-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 } -
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?
-
Can you try upgrading to the latest VOXL SDK to see if that helps?
-
What if you disconnect Mission Planner before trying the voxl-ardupilot restart?
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login