I’m using your Copernicus II Module https://www.sparkfun.com/products/11858 with a Raspberry Pi 4B, and I’m facing some problems when reading the measured data.
During my first usage I was successful at receiving accurate NEMA data from the GPS, the only issue I faced was it would only provide the GPGGA and GPVTG data strings. This isn’t the main issue for me since the GPGGA provides the coordinates and altitude I need, but I just found it odd.
The main problem is now when I try to read the GPS measurements I receive old incomplete measurements showing me the coordinates of where I first tested it but the string is missing other information such as time and altitude. Below is an example of the received strings.
b’$GPGGA,5331.46971,N,11331.81014,W,7,00,*4C\r\n’
b’$GPVTG,M*33\r\n’
I don’t believe it to be a coding issue on the raspberry pi end since it outputs these strings regardless if it has a connection to any satellites, I know this since it outputs these strings as soon as I connect it to power. I have also looked at the serial data using an oscilloscope and it matches the string I’m receiving.
I’ve looked over the datasheet provided on the product page which seems to be for a different package that contains the Copernicus II chip and didn’t find anything relevant. I’m also unable to locate the Trimble Studio software using the provided link and on the Trimble website.
I’m wondering if it’s a firmware issue on the chip? If so I don’t know how to go about updating or resetting the firmware, I was also unable to find any information about the Copernicus 2 chip on Trimble’s website so finding any recent firmware seems to be unlikely.
Any advice or help would be extremely appreciated, Thank you!
Connected Pins:
GPS - Pi
VCC - 3.3V (Pin 1)
GND - GND (Pin 6)
TXD - RXD (Pin 10)
RXD - TXD (Pin 8)
Python Script:
import time
import serial
ser = serial.Serial(
port = '/dev/ttyS0',
baudrate = 4800,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
timeout = 1
)
while 1:
msg = (str)(ser.readline())
print(msg)