Hi, i’ve been trying to connect a pixhawk cube black to a RPI4B . i did all the steps on mavling documentation already 3 times as i am really fresh on raspberry .
changed the serial port as said, added the line droverlay=disable-bt on boot config. after the MAV> link 1 down i can switch flighht modes but have no return. rebuilt the cable 2 times already…
Any sollutions?
trac@raspberrypi:~ $ mavproxy.py --master=/dev/ttyAMA0
WARNING: You should uninstall ModemManager as it conflicts with APM and Pixhawk
Connect /dev/ttyAMA0 source_system=255
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from /dev/ttyAMA0
MAV> link 1 down
MANUAL
Cheers
EDIT
i “purged” modemmanager as shown on the message above. now;
Connect /dev/serial0 source_system=255
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from /dev/serial0
MAV> link 1 down
hi there. yes, i think i damaged the uart port on the raspberry pi so i changed the connection to usb.
simply connect the 2 usbs’s ans switch the ttyAMA0 to ttyUSB0( i am not sure of this port, but you can get the list of tty’s forget about the tty(nr) and try the ones that are not numbers… if i have time tomorrow i will connect the system to my pc again and sort it out.
After days of pulling my remaining hair out, I was able to solve this issue for me.
Steps to resolve (in my case)
Edit file (sudo nano) “/boot/config.txt”. Here my entries.
enable_uart=1 → Enable the UART port
init_uart_baud=115200 → This is the baud rate I use (I use same Baudrate on Reiceiver, RPi4 and Pixhawk6c)
dtoverlay=disable-bt → disable Bluetooth
dtoverlay=gpio-shutdown → Config for “pi-connect” hat (ignore)
dtoverlay=gpio-poweroff → Config for “pi-connect” hat (ignore)
**dtoverlay=pi3-miniuart-bt → IMPORTANT: The dtoverlay=pi3-miniuart-bt ** line configures the serial port to use serial0 .
Testing
Now I call “sudo python3 mavproxy.py --master=/dev/serial0 --baudrate=115200” and am getting the heartbeat and the connection is established.
Root cause
Not sure what caused it. I did notice that “dmesg | grep serial” showed me that there is some kind of issue with the serial port configuration:
[ 1.539560] uart-pl011 fe201000.serial: there is not valid maps for state default
[ 1.540262] uart-pl011 fe201000.serial: cts_event_workaround enabled
[ 1.540416] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 36, base_baud = 0) is a PL011 rev2
[ 742.759363] uart-pl011 fe201000.serial: no DMA platform data
Therefore I decided to force feed the serial communication by adding the dtoverly miniuart config into the boot config file.
Error message was
Connect /dev/serial1 source_system=255
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from /dev/serial0
MAV> link 1 down