Unable to get a GPS FIX with the Tracker HAT

Hello, hopefully someone can help me.

I’m using the Tracker HAT with a raspi 4 and a pijuice module with a 5000mAh battery.

Firstly, I’m not able to establish a PPP connection without the pijuice supplying the power. When powered only by a 3A USB-C adapter, PPP fails with:

send (AT+CGDCONT=1,"IP","net2.vodafone.pt",,0,0^M)
expect (OK)
^M
^M
+CME ERROR

When using the pijuice, PPP works without problems.

In both cases, though, I’m never able to get a GPS Fix, even after hours outside with clear sky.

I’ve experimented with and without the PPP connection on, tried on a Raspi 3 and on a raspi zero W.
Also tried using the GPSforceOn() method on the Tracker api.

Below is the current output of the L96, using the readNMEA() method.

Am I missing something? Could this be a power issue? Could it be a faulty board?

Thank you very much for the attention.

L96 output:

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131343.086,,,,,0,0,,,M,,M,,*41
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,20,0*6F
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131343.086,V,N*73
$GPRMC,131344.086,V,,,,,0.00,0.00,280520,,,N,V*34
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131344.086,,,,,0,0,,,M,,M,,*46
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,20,0*6F
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131344.086,V,N*74
$GPRMC,131345.086,V,,,,,0.00,0.00,280520,,,N,V*35
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131345.086,,,,,0,0,,,M,,M,,*47
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,20,0*6F
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131345.086,V,N*75
$GPRMC,131346.086,V,,,,,0.00,0.00,280520,,,N,V*36
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131346.086,,,,,0,0,,,M,,M,,*44
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,20,0*6F
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131346.086,V,N*76
$GPRMC,131347.086,V,,,,,0.00,0.00,280520,,,N,V*37
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131347.086,,,,,0,0,,,M,,M,,*45
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,20,0*6F
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131347.086,V,N*77
$GPRMC,131348.086,V,,,,,0.00,0.00,280520,,,N,V*38
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,131348.086,,,,,0,0,,,M,,M,,*4A
$GPGSA,A,1,,,,,,,,,,,,,,,,1*03
$GPGSA,A,1,,,,,,,,,,,,,,,,2*00
$GPGSV,1,1,01,18,,,19,0*65
$GLGSV,1,1,00,1*78
$GPGLL,,,,,131348.086,V,N*78
$GPRMC,131349.086,V,,,,,0.00,0.00,280520,,,N,V*39

Full PPP output when used without the pijuice (and failing):

pppd options in effect:
debug           # (from /etc/ppp/peers/provider)
updetach                # (from /etc/ppp/peers/provider)
dump            # (from /etc/ppp/peers/provider)
noauth          # (from /etc/ppp/peers/provider)
remotename 3gppp                # (from /etc/ppp/peers/provider)
/dev/ttyS0              # (from /etc/ppp/peers/provider)
115200          # (from /etc/ppp/peers/provider)
lock            # (from /etc/ppp/peers/provider)
connect chat -s -v -f /etc/chatscripts/chat-connect -T net2.vodafone.pt         # (from /etc/ppp/peers/provider)
disconnect chat -s -v -f /etc/chatscripts/chat-disconnect               # (from /etc/ppp/peers/provider)
nocrtscts               # (from /etc/ppp/peers/provider)
modem           # (from /etc/ppp/peers/provider)
asyncmap 0              # (from /etc/ppp/options)
lcp-echo-failure 4              # (from /etc/ppp/options)
lcp-echo-interval 30            # (from /etc/ppp/options)
hide-password           # (from /etc/ppp/peers/provider)
novj            # (from /etc/ppp/peers/provider)
novjccomp               # (from /etc/ppp/peers/provider)
ipcp-accept-local               # (from /etc/ppp/peers/provider)
ipcp-accept-remote              # (from /etc/ppp/peers/provider)
ipparam 3gppp           # (from /etc/ppp/peers/provider)
noipdefault             # (from /etc/ppp/peers/provider)
ipcp-max-failure 30             # (from /etc/ppp/peers/provider)
defaultroute            # (from /etc/ppp/peers/provider)
replacedefaultroute             # (from /etc/ppp/peers/provider)
usepeerdns              # (from /etc/ppp/peers/provider)
noccp           # (from /etc/ppp/peers/provider)
noipx           # (from /etc/ppp/options)
abort on (BUSY)
abort on (NO CARRIER)
abort on (NO DIALTONE)
abort on (ERROR)
abort on (NO ANSWER)
timeout set to 30 seconds
send (AT^M)
expect (OK)
^M
OK
 -- got it

send (ATE0^M)
expect (OK)
^M
^M
OK
 -- got it

send (ATI;+CSUB;+CSQ;+COPS?;+CGREG?;&D2^M)
expect (OK)
^M
^M
Quectel_Ltd^M
Quectel_M95^M
Revision: M95FAR02A08^M
^M
SubEdition:V03^M
^M
+CSQ: 31,0^M
^M
+COPS: 0^M
^M
+CGREG: 0,0^M
^M
OK
 -- got it

send (AT+CGDCONT=1,"IP","net2.vodafone.pt",,0,0^M)
expect (OK)
^M
^M
+CME ERROR
 -- failed
Failed (ERROR)
Script chat -s -v -f /etc/chatscripts/chat-connect -T net2.vodafone.pt finished (pid 1654), status = 0x7
Connect script failed

Edit:
Also, I’m not using any GPS antenna, as it should work without one, correct?

UPDATE:

I got a GPS fix after a few hours of the device connected with the PiJuice.
Afterwards, tried a restart and full shutdown and a got a fix immediately.
What could cause such a slow TTFF? Would adding a CR1220 battery help with this?

UPDATE 2:

After maintaining a GPS fix for a long time while outside, brought the module inside the house and it lost the fix as expected. Kept it inside for 1 hour while still on.
Brought it back outside and after 30 minutes still no fix.
Something must be wrong, as the TTFF should be 15 sec on average.
I have a clear sky…

Can someone shed some light on this?

UPDATE 3

It appears that resetting the module while outside does provide a faster TTFF.
Is this something you’ve experienced?
Should I keep track of how long the module has been without a fix and reset it if longer than X amount of time?

Actually, can’t reproduce this.