-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Summary
I am experiencing persistent TX buffer overflow errors when running mavros on a Raspberry Pi 5 connected to a Pixhawk 6C. The error occurs even with a minimal MAVROS setup (only mavros_node running) and no other topics being
published. This suggests the issue is not related to application-level data overload but rather a deeper incompatibility or bug.
System Configuration
- Companion Computer: Raspberry Pi 5
- Operating System: Ubuntu 24.04
- ROS Distro: ROS 2 Jazzy
- Flight Controller: Holybro Pixhawk 6C
- FCU Firmware: PX4 v1.16.0 (Stable)
- Connection: Raspberry Pi 5 hardware UART (/dev/ttyAMA0) connected to the Pixhawk's TELEM2 port.
Steps to Reproduce
- Connect the RPi 5 and Pixhawk 6C via their hardware serial ports.
- On the PX4 side, configure the corresponding serial port (TELEM2) for MAVLink 2, set the baud rate to 115200, and ensure Flow Control is disabled.
- On the RPi 5, launch a minimal mavros node using a simple configuration, for example:
ros2 launch mavros apm.launch fcu_url:="serial:///dev/ttyAMA0:115200" - Observe the mavros logs.
Expected Behavior
mavros connects to the flight controller and runs stably without errors.
Actual Behavior
After a short period of running correctly, mavros begins reporting [ERROR] [mavros.serial_com]: TX buffer overflow and the connection becomes unstable.
Diagnostics Performed
I have already performed an extensive set of diagnostic steps to rule out common configuration errors:
- Verified Physical Connectivity: Running cat /dev/ttyAMA0 shows a continuous stream of binary data from the FCU, confirming the hardware connection is working.
- Tested Multiple Baud Rates: The issue persists at both high (921600) and standard (115200) baud rates.
- Ruled out Serial Console Conflict: Checked /proc/cmdline; ttyAMA0 is not used as a system console.
- Confirmed Minimal Data Load: The issue occurs with a "bare" mavros node. No high-frequency topics (e.g., from a camera) are being published.
- Forced MAVLink v2.0 Protocol: Set fcu_protocol: "v2.0" in the mavros configuration.
- Explicitly Disabled Flow Control: Confirmed that the "Flow Control" setting for the serial port on the PX4 side is set to "Disabled".
Additional Context
Given that all standard configuration issues have been ruled out, this problem appears to be a more subtle bug or incompatibility. It may be related to the new hardware/drivers in the Raspberry Pi 5 and Ubuntu 24.04, and how they
interact with the PX4 v1.16.0 firmware. Any guidance on further debugging steps would be greatly appreciated.