Where can I find the Sodaq_GPS library?

This is referenced in the example sketch at http://support.sodaq.com/loraone-gps/

BTW, not listed in the Arduino Library Manager (v1.6.7)

This is work in progress by Kees. I’m working on an alternative library for u-blox devices, it is still in beta but hopefully soon sharable … what are you after, do you have a LoraOne and want to play with the onboard GPS ?

Thanks. Yes, was wanting to use GPS on LoRaONE.

OK, it’s time to throw it in. Not that it’s ready, but it is usable.

https://github.com/SodaqMoja/Sodaq_UBlox_GPS.git

I’d like to hear feedback about what kind of interface functions you want. I now has a simple structure. Call the function scan(). If it returns true it found a “fix” and then you can call some “getters” for LAT/LON and other parameters.

The default behaviour is to switch on the unit at the start of scan() and switch it off when it is done. The time to find a fix depends very much on how long ago the previous fix was found. It ranges from 1 second to several minutes.

LoRaONE
No Fix :worried:
I took your example “test_ublox_gps” and loaded it.
SODAQ LoRaONE test_gps is starting …
delay … 0ms
waiting for fix …, timeout=900000ms

was the only output I get (no change after 10 minutes on my balcony)
so, no fix and also “no fix” output

a second try shows only the startmessage.
commenting find_fix(0) gives
SODAQ LoRaONE test_gps is starting …
delay … 60000ms
waiting for fix …, timeout=900000ms
but still NO FIX

now the question is: is my GPS DOA or are there bugs in the library???

with the debugging output on
SODAQ LoRaONE test_gps is starting …
delay … 0ms
waiting for fix …, timeout=900000ms
TXT: “ANTSTATUS=INIT”

parseGPGGA
>> GPGGA,0,00,99.99,
parseGPGSA
>> GPGSA,A,1,99.99,99.99,99.99
parseGPGLL
>> GPGLL,V,N
parseGPRMC
>> GPRMC,V,N
parseGPVTG
>> GPVTG,N

after about 10 minutes only the time was recognized but no position
parseGPGGA
>> GPGGA,134357.00,0,00,99.99,
parseGPGSA
>> GPGSA,A,1,99.99,99.99,99.99
parseGPGSV
>> GPGSV,1,1,02,17,27,19,26
parseGPGLL
>> GPGLL,134357.00,V,N
parseGPRMC
>> GPRMC,134358.00,V,080416,N
parseGPVTG
>> GPVTG,N

later …
parseGPVTG

GPVTG,N
parseGPGGA

GPGGA,140812.00,0,00,99.99,
parseGPGSA

GPGSA,A,1,99.99,99.99,99.99
parseGPGSV

GPGSV,4,1,13,02,02,132,06,10,095,10,11,279,12,67,256,22
parseGPGSV

GPGSV,4,2,13,13,04,158,14,21,317,15,31,185,17,24,044,28
parseGPGSV

GPGSV,4,3,13,18,05,249,19,45,070,31,24,83,089,25,30,249,
parseGPGSV

GPGSV,4,4,13,32,19,318,
parseGPGLL

GPGLL,140812.00,V,N
parseGPRMC

GPRMC,140813.00,V,080416,N
[scan] num sats = 13
[scan] datetime = 20160408140813
No Fix
delay … 60000ms
now still only date & time, but NO coordinates :rage:

The library seems to be working, mostly. It’s a bit strange that it sees 13 satellites, but you don’t get coordinates.

The example program is just a quick hack to get something going. It was mainly a test program for myself.

The scan function needs to know when to stop looking. I’ve used a few conditions, like:

  • does it have time and date
  • did it see the LAT/LON
  • does it see enough satellites
  • didn’t it timeout
    Now, if it times out right before it reads the coordinates you could see what you have. 13 satellites should be enough I guess. Maybe you need to increase the timeout. Other than that I don’t know.

increase the timeout???
it’s already set to 900’000msec that means 15 MINUTES

here another capture from the SerialMonitor…
SODAQ LoRaONE test_gps is starting …
delay … 0ms
waiting for fix …, timeout=900000ms
datetime = 20160408170523
No Fix

delay … 60000ms
waiting for fix …, timeout=900000ms
datetime = 20160408172124
No Fix

delay … 60000ms
waiting for fix …, timeout=900000ms
datetime = 20160408173725
No Fix

delay … 60000ms
waiting for fix …, timeout=900000ms
datetime = 20160408175326
No Fix

delay … 120000ms
waiting for fix …, timeout=900000ms
datetime = 20160408181027
No Fix

it looks like a DOA (Death on Arrival) and I will request a replacement…

Thanks for the libraries guys. I’m also having problems with the GPS itself. Long time to get a fix (sometimes >15min) and after leaving it on for a few hours it starts reporting coordinates of 0.00 even though it still reports 12 sats.

Will do more testing.

Andrew have you tried my library ? Indoors it takes some time to get a fix, but for the rest it should work fine.

Next we added a GPS module. We chose the Ublox Eva 7M.
It’s not only very small, but with it’s assisted GPS feature it can get a fix in just seconds.
I also get a fix after an inacceptable time of 395919ms
[scan] num sats = 4
[scan] datetime = 20160411091735
[scan] lat = 47.42xxxxx
[scan] lon = 8.54xxxxx
time to find fix: 395919ms
datetime = 20160411091735
lat = 47.42xxxxx
lon = 8.54xxxxx
num sats = 4
b.t.w. my $15 reference GPS get a fix after 45 SECONDS under the same condition

Indoors you will never get a good fix fast, especially when it is a cold start and the ublox not knowing where the sats are.

It’s not only very small, but with it’s assisted GPS feature it can get a fix in just seconds

That is a correct statement but you to feed it with the assisted data to make that work …

Yes the cheaper knock-offs will get a fix faster as they seem to be more sensitive, but no garantuee on reliability and/or stability. E.g. I experimented with a SIM28 which showed unexpected behaviour like reseting it self for no apparent reason.

2016-04-11 12:28:14 - Up since 1460359598 for 10896 seconds (0)
92 bytes available
2016-04-11 10:28:14.89554 valid=07 lat=52xxxxxxx lon=4xxxxxxx sats=7 fixType=03

Above my current output with limited view of the sky (using my own libary, which process UBX messages). The clock has microsecond precision using the TP of the uBlox.

The ublox requires 4 SV’s for a 3D fix and it needs a 3D fix before it can fall back to a 2D fix.

Yes, I have used your library and kees’. But I think there might be a problem with the board.
I can’t get a lock at all now. I’m testing indoors on a window ledge where other GPSs easily see satellites.

92 bytes available
1980-01-06 00:14:58.0 valid=00 lat=0 lon=0 sats=0 fixType=00
1970-01-01 01:15:14 - Up since 0 for 914 seconds (0)

You did connect the patch antenna i suppose ? First time it can take a long time before it get’s a fix, working on a tool to upload the assist data using the USB port. On which platform are you developing ?

what’s the use case if the sensor is outside without a connection to an “assisting” system?

debug only, when using indoors no real use case, but does there always needs to be ?

@w4e Yes I’ve tried three different patch antennas without any luck.
I’m using OS/X.

Some further info - I have 2x SODAQ LoRaONE boards.

  • The first one I tried consistently gets a lock, but after a few hours starts reporting Lat & Lon as 0.00 even though it still reports 12 sats in view. (I mentioned this in an earlier post). I haven’t tried your library on this board yet.

  • The second one never gets a lock and is the one I’ve been working on over the last 2 days. I left it running for about 4 hours yesterday, with and without your library. If I look at the GPGSV string, it never sees more than 2 satellites and mostly just keeps searching and reporting 1 at a time.

Will keep testing and see what I can work out.