I am using Raspberry Pi 4 (OS:bullseye, version 11) and Neo 6 GPS. I have tried to follow the tutorial https://www.instructables.com/Interfacing-GPS-Module-With-Raspberry-Pi/ but I am stuck at step 8. The command 'sudo cat /dev/ttyAMA0' hangs no matter what I do. I strongly suspect that it has something to do with Raspberry Pi 4. Few things I noticed/followed -

  1. The blue light on the antenna is blinking.
  2. Followed other similar threads such as How can Rpi connect a GPS module? but it did not help. Has anybody figured out how to make Neo 6 GPS work with Raspberry Pi4?

[Moved content from comments to the main body of the question] #1: Connected Vcc of GPS module to Power Supply (5V) of Raspberry Pi Connected Tx (Transmitter Pin) of GPS module to Pin No.10 of Raspberry Pi. Connected GND (Ground Pin) of GPS module to GND of Raspberry Pi

#2: Modified /boot/config.txt as following. Added the code at the end dtparam=spi=on dtoverlay=disable-bt (#note for Pi 4, only 'disable-bt' works, 'pi3-disable-bt' gives warning at the bootup time) core_freq=250 enable_uart=1 force_turbo=1

#3: Edited /boot/cmdline.txt and replaced its content with the following dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

#4: Disable the Raspberry Pi Serial Getty Service a. If in your output, Serial0 is linked with ttyAMA0, then to disable it use the below command, sudo systemctl stop [email protected] sudo systemctl disable [email protected] b. If in your output Serial0 is linked with ttys0, then to disable it use the below command, sudo systemctl stop [email protected] sudo systemctl disable [email protected] I followed a) here.

#5: Activate ttys0 To enable the ttys0 use following command, sudo systemctl enable [email protected] #6: sudo apt-get install minicom sudo pip install pynmea2

#6: sudo apt-get install minicom sudo pip install pynmea2

Now, when I issue the command - sudo cat /dev/ttyAMA0, the command just hangs. I see the blue light blinking on the antenna. Also, note that I had used old version of Raspberry pi (2011-12) and it gave correct output when I typed 'sudo cat /dev/ttyAMA0'. The reason I am using raspberry pi 4 is I want it to be powered by batteries and the case of the batteries is compatible with pi 4. That way, I can use it in outdoor settings. Second, version 2011-12 is so old that I thought it is better to move on to latest robust version.

Raspberry Pi 4 has OS bullseye. I am aware that with newer versions, there is a GUI to configure the settings instead of manipulating config or boot files but I don't think it should matter. I do not know what I am missing or how to diagnose the problem. Is there a difference between Pi4 and earlier versions as far as ttyAMA0 goes?

Thanks, ssn

New contributor
SSN is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • I don't know WHAT YOU DID - include in your Question; don't expect users to read a tutorial & guess. Anyone seems to be able to post an "instructables" whether they know what they are doing or not. As dev/ttyAMA0 is connected to Bluetooth it is unlikely to work.
    – Milliways
    Sep 15 at 3:33
  • Post a photo of the wiring between gps and Pi.
    – CoderMike
    Sep 15 at 7:57
  • @SSN this site if not a forum ... it is a question and answer site ... all information belongs in the question ... please delete all of your comments and edit your question instead ... right now your question still does not contain much information
    – jsotola
  • Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.
    – Community Bot

1 Answer 1


I do not have a Neo 6 GPS, but on the RP 4B there are more UARTs to use instead of 0 and 1. I will provide a short example of how to use UART3 on the RP 4B which you may use to adapt to the GPS device.

#!/usr/bin/env python3

EXAMPLE of UART communication on Raspberry Pi 4B using Python.

Multiple UARTs on Raspberry Pi 4B (CM4):
          TXD RXD CTS RTS     Board Pins
  uart0   14  15              8   10
  uart1   14  15              8   10
  uart2   0   1   2   3       27  28  (I2C0)
  uart3   4   5   6   7       7   29  (GPCLK0), (RTS 7 = SPI0-CE1)
  uart4   8   9   10  11      24  21  (SPI0)
  uart5   12  13  14  15      32  33  (gpio-fan)

Raspberry Pi 4B (CM4) setup:
  /boot/config.txt has dtoverlay=uart3, sudo reboot
  jumper from GPIO pin 4 to GPIO pin 5

import serial
from time import sleep

ser = serial.Serial('/dev/ttyAMA1', 2500000, 8, 'N', 1)   # Open port
x = 6
while x:
    ser.write(b'Hello out there!')          # Write byarray
    received_data = ser.read()              # Read serial port
    data_left = ser.inWaiting()             # Check for remaining byte
    received_data += ser.read(data_left)
    print(received_data.decode('utf-8'))   # Print received data
    x -= 1
  • Thank you, I will try the approach and report back.
    – SSN
    7 hours ago

Your Answer

SSN is a new contributor. Be nice, and check out our Code of Conduct.

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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