1

I'm trying to get an Adafruit Ulitmate GPS Hat to work on my new RPi3

/boot/cmdline.txt has been modified to remove references to ttyAMA0:

pi@gpsp3:/boot $ more /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=
yes rootwait

I'm running Jessie so I executed:

sudo systemctl stop serial-getty@ttyAMA0.service
sudo systemctl disable serial-getty@ttyAMA0.service 

and rebooted.

When I try:

cat /dev/ttyAMA0

the console just hangs.

The GPS LED is blinking once every 10 seconds which suggests it's gotten a lock, and as I understand it, it should be outputting an ASCII data stream even if it didn't have a lock. It has to be one of the following issues:

  1. The UART isn't set up correctly.
  2. The GPS has a faulty device.

Other than dragging the unit into my workplace and putting an oscilloscope on the UART pins, does anyone have any suggestions?

1

You don't use cat to read serial data from /dev you need screen.

First, install screen with:

sudo apt-get install screen

Then, to access the serial data, enter:

screen /dev/ttyAMA0 [BAUDRATE]

where [BAUDRATE] is the baudrate of your GPS, probably 9600 or 115200.

This will work, assuming your /boot/cmdline.txt file is correct, which it may not be, as you've edited it by hand, instead of using raspi-config.

1

The Pi3B serial link has changed device. The original UART is now used for Bluetooth. /dev/ttyAMA0 now uses the mini UART.

The change has not been seamless.

You have to go through some shenanigans to make the baud rate fixed. It changes if the core clock rate changes. Personally I'd consider the serial link broken for a few days yet while the powers that be decide on a solution.

If you are impatient search for Pi3B serial link on raspberrypi.org/forums and look through some posts there.

My piscope will let you work out the baud rate of any data being sent by your GPS. If you want to check the data you can also use my pigs utility to read serial data.

From the command line

sudo pigpio # Start the daemon.

pigs slro 4 4800 8 # Open serial read on GPIO 4 at 4800 baud 8 data bits.

pigs -a slr 4 1000 # Read up to a 1000 characters and display as text.

man pigs for help.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.