Beaglebone Blue no GPS passthrough for Mavlink?

I’ve been pulling my hair out for days trying to get my uBlox LEA-6H working with BBB and either Mission Planner or QGroundControl. I can get a connection to BBB and see all of the ArduCopter parameters, I have display of accelerometer, gyroscope, and compass information, but no GPS.

I was finally able to use uCenter to change the GPS output to NMEA, which I can read in uCenter and in the Arduino serial window.

I connected the GPS to the BBB (TX–>RX, RX–>TX) but could not see any output in Tio until I switched the leads to (TX–>TX, RX–>RX), which is counter to instructions. I can now see the NMEA output with

tio -b 38400 /dev/ttyS2

but when I start Mission Planner there’s still no GPS information.

I’ve checked the serial port parameters in Mission Planner and they seem correct (serial port 3 connected to GPS at 38400). I’ve tried changing the GPS parameter to both uBlox and NMEA, but neither worked.

I am using Windows 10 powershell terminal to ssh via wifi to the BBB, and Windows versions of Mission Planner and QGroundControl.

I have run out of idea and hope the user community can help me. Thanks.

@Jim3857 Take a look at this: https://github.com/mirkix/ardupilotblue

You need to map the physical UART to ArduPilot Serial device using this Parameter mapping:

start parameter ArduPilot serial port
-A SERIAL0
-B SERIAL3
-C SERIAL1
-D SERIAL2
-E SERIAL4
-F SERIAL5

Example: MAVLink groundstation via radio connected to UART4 and GPS connected to /dev/ttyO5 UART5.

sudo /home/debian/arducopter-quad -B /dev/ttyO5 -C /dev/ttyO4

I have my GPS plugged into the GPS port (UART2) on the BBB. I am running a /lib/systemd/system/arducopter.service script on startup that looks like this:

[Unit]
Description=ArduCopter Service
After=networking.service
StartLimitIntervalSec=0
Conflicts=arduplane.service ardurover.service antennatracker.service

[Service]
EnvironmentFile=/etc/default/ardupilot
ExecStartPre=/bin/bash -c “/bin/echo uart > /sys/devices/platform/ocp/ocp:P9_21_pinmux/state”
ExecStartPre=/bin/bash -c “/bin/echo uart > /sys/devices/platform/ocp/ocp:P9_22_pinmux/state”
ExecStartPre=/bin/bash -c “/bin/echo pruecapin_pu > /sys/devices/platform/ocp/ocp:P8_15_pinmux/state”
ExecStart=/usr/bin/ardupilot/arducopter $TELEM1 $TELEM2 $GPS

Restart=on-failure
RestartSec=1

[Install]
WantedBy=multi-user.target

And with a /etc/default/ardupilot file that looks like this:

TELEM1="-C /dev/ttyO0"
TELEM2="-A udp:192.168.8.79:14550"
GPS="-B /dev/ttyO2"

I"ve also tried GPS="-B /dev/ttyS2"

This is a sample of my tio output:

debian@beaglebone:/$ tio -b 38400 /dev/ttyO2
[tio 18:36:15] tio v1.26
[tio 18:36:15] Press ctrl-t q to quit
[tio 18:36:15] Connected
$GPRMC,183616.00,A,3931.74610,N,07430.84010,W,0.037,280918,A66
$GPVTG,T,M,0.037,N,0.068,K,A
29
$GPGGA,183616.00,3931.74610,N,07430.84010,W,1,05,1.99,2.2,M,-34.9,M,63
$GPGSA,A,3,05,13,29,02,15,5.69,1.99,5.33
06
$GPGSV,3,1,10,02,38,118,28,05,55,047,41,07,05,038,13,65,130,417D
$GPGSV,3,2,10,15,42,200,35,20,01,262,21,20,306,24,26,00,308,77
$GPGSV,3,3,10,29,57,257,41,30,13,066,14
70
$GPGLL,3931.74610,N,07430.84010,W,183616.00,A,A
71
$GPRMC,183617.00,A,3931.74607,N,07430.84013,W,0.008,280918,A6E
$GPVTG,T,M,0.008,N,0.015,K,A
2F
$GPGGA,183617.00,3931.74607,N,07430.84013,W,1,05,1.99,2.5,M,-34.9,M,60
$GPGSA,A,3,05,13,29,02,15,5.69,1.99,5.33
06
$GPGSV,3,1,10,02,38,118,29,05,55,047,42,07,05,038,13,65,130,427C
$GPGSV,3,2,10,15,42,200,35,20,01,262,21,20,306,24,26,00,308,77
$GPGSV,3,3,10,29,57,257,41,30,13,066,14
70
$GPGLL,3931.74607,N,07430.84013,W,183617.00,A,A
75
$GPRMC,183618.00,A,3931.74607,N,07430.84017,W,0.039,280918,A67
$GPVTG,T,M,0.039,N,0.072,K,A
2C
$GPGGA,183618.00,3931.74607,N,07430.84017,W,1,05,1.99,2.5,M,-34.9,M,6B
$GPGSA,A,3,05,13,29,02,15,5.69,1.99,5.33
06
$GPGSV,3,1,10,02,38,118,29,05,55,047,42,07,05,038,13,65,130,3970
$GPGSV,3,2,10,15,42,200,34,20,01,262,21,20,306,22,26,00,308,70
$GPGSV,3,3,10,29,57,257,40,30,13,066,14
71
$GPGLL,3931.74607,N,07430.84017,W,183618.00,A,A
7E
$GPRMC,183619.00,A,3931.74604,N,07430.84019,W,0.054,280918,A*60

Use a lightweight Terminal like Minicom (or screen) and check if you read the GPS signal from the BeagleBone ttyO2

btw make sure it is tty + letter ‘‘O’’ + 2

OK seems to read correctly, generally we leave the GPS in auto detect and it is working fine in ArduPilot

I just got it working…more from desperation than anything else. Here’s my GPS parameter list from QGroundControl. See the bottom parameter for the second GPS? I had that set to “none” because I only have one GPS, but when I set it to “auto” my GPS info started showing up in QGroundControl.

Any explanation for this?

Humm I am mostly working with Mission Planner for setiing up things , I generally use QGC for its looking at live data with the Inspector… Anyway its working now… ENJOY !!

btw you can meet us on the gitter channel: https://gitter.im/mirkix/BBBMINI