Scripted Hardware Testing for PX4

Scripted Hardware Testing for PX4 — MAVLink Shell, Docker, and pymavlink

How to script PX4 hardware verification using pymavlink’s SERIAL_CONTROL protocol over a USB connection — download CI firmware, flash from the command line, and run NSH commands programmatically. No QGroundControl required.

April 7, 2026 · 7 min · Pavel Guzenfeld
Fixing a CI Pipeline on Jetson Xavier

Fixing a CI Pipeline on a Jetson Xavier — 15 Failures to Green

A day-long battle fixing a CI pipeline that builds Docker images on a self-hosted Jetson Xavier runner. From stale git submodules to GCC-15 assembler errors, expired tokens, DNS failures inside Docker, and deleted upstream branches — every layer of the stack had something broken.

March 20, 2026 · 10 min · Pavel Guzenfeld
Migrating PX4 ROS Tests from Gazebo Classic to SIH

Migrating PX4's ROS Integration Tests from Gazebo Classic to SIH

PX4’s MAVSDK tests were migrated to SIH but the ROS integration tests were left behind on Gazebo Classic. This post documents the complete migration — the config changes, the CI pipeline surgery, the parameter name pitfall that silently broke GlobalPositionInterfaceTest, and how to reproduce the full 14-test suite locally in Docker.

March 20, 2026 · 9 min · Pavel Guzenfeld