Hello everyone, I’m trying to connect my Pixhawk 2.4.8 flight controller to a Raspberry Pi 5 (running Raspberry Pi OS Bookworm 64-bit) via the TELEM2 port using MAVLink. I’m using MAVProxy to establish the connection over /dev/ttyAMA0. However, I’m stuck at the “Waiting for heartbeat” message. Here’s my setup and issue in detail:
Hardware Setup:
Flight Controller: Pixhawk 2.4.8
Raspberry Pi 5(via GPIO UART 14,15)
Connection: TELEM2 port on Pixhawk ↔ GPIO UART (Tx/Rx, GND) on Pi5
Baudrate:57600
Software Setup
Raspberry Pi OS (Bookworm)
MAVProxy installed via pip (in a Python virtual environment)
Command used to start MAVProxy:
mavproxy.py --master=/dev/ttyAMA0 --baudrate 57600 --aircraft MyCopter
OUTPUT:
Connect /dev/ttyAMA0 source_system=255
Failed to load module: No module named ‘adsb’. Use ‘set moddebug 3’ in the MAVProxy console to enable traceback
no script MyCopter/mavinit.scr
Log Directory: MyCopter/logs/2025-08-05/flight2
Telemetry log: MyCopter/logs/2025-08-05/flight2/flight.tlog
Waiting for heartbeat from /dev/ttyAMA0
MAV> link 1 down
Is there any specific difference with Pi5 UART handling compared to earlier Raspberry Pi models?
I read other forums for the connection of pixhawk and p5 over mavlink but it didnt give any result.I tried connecting pixhawk with pi5 via usb which works great but fails to connect with tele2 port
thanks for reaching out. i have tried all of these methods but i cant seem to connect it, are there any other methods which i might not be aware of. If you want i can share more details which you want
I am working on a project where I aim to navigate a drone using Visual-Inertial Odometry (VIO). For this, I need to establish a reliable MAVLink communication link between a Raspberry Pi 5 and a Pixhawk flight controller via UART (TELEM2 port). The Raspberry Pi will serve as a companion computer to process VIO data and send commands to the Pixhawk
Software Configuration Attempts:
I did follow this for the initial setup: Communicating with Raspberry Pi via MAVLink — Dev documentation
(i haven’t used rpanion-server or apsysnc) Enabled UART on Raspberry Pi:
Added the following lines to /boot/firmware/config.txt:
enable_uart=1
dtoverlay=uart1
dtoverlay=disable-bt
This was to ensure the GPIO14/15 pins are free for serial communication by disabling Bluetooth and enabling UART1.
(i also double checked the port to see if there is anythign else on the port active using->ls /dev/serial0 )
Removed ModemManager:
ModemManager can interfere with serial devices by probing them as modems.
To prevent conflicts with MAVLink communication, I disabled and purged ModemManager:
sudo systemctl disable ModemManager
sudo systemctl stop ModemManager
sudo apt purge modemmanager
Tried Multiple Baud Rates:
Attempted to connect using MAVProxy with different baud rates (57600, 115200, 921600) using:
mavproxy.py --master=/dev/serial0 --baudrate --aircraft MyCopter
As a beginner, I suspect I may have missed subtle configurations related to device tree overlays, user permissions, or port mappings.