Hello, I am using an AFF R412M and having trouble to parse relevant data out of the GPS module (SAM-M8Q). The example code is way too difficult for me to understand and not able to expand it for Altitude etc. The example code gives only Lat / Lon, the other options for this nice module are not available. I use a lib from Sparkfun to parse successfully, but the board freezes while communicating over the radio with no error’s.
I hope that someone can help me out finding a useful library for parsing the data (Altitude, Groundspeed, fixType, Number of satellites etc). I Hope for help, with only Lat Lon the board is more or less useless for me.
Thanks for the fast response. The first test with the EVA7M lib example code is successful, I will now integrate it with the rest of the sketch and will update you. Your lib parses enough information for my needs at this moment. It still would be nice to have an M8Q library that could make full benefit off all the capabilities of this module.
Before this post I worked with SparkFun_u-blox_GNSS_Arduino_Library.h // to get the library: http://librarymanager/All#SparkFun_Ublox_GPS. It is also able to parse all the desired info but doesn’t work together with the rest of my sketch (GPS tracker code for R412M KPN M2M Sim).
As I promissed, I will keep you updated.
Kind regards, Henk
I tested the Sodaq_UBlox_GPS lib with some good results. I am able to parse relevant data, but with very bad accuracy (see the mapper.png file for 1 static position) In the grafana.png file, you can see the jumping altitudes. The module was only able to see 5 sats with an HDOP op >>1, maybe that explains the inaccuracy. The GPS antenna however had a clear view to open sky. A comparison with the original example code showed that much better accuracy is posible.
To make use of the Sodaq_UBlox_GPS lib I had to disable the Sodaq_LSM303AGR.h and companying functionality! Having them both active causes the freeze while trying to use the radio.
What I would like to see out of the GPS module is Lat, Lon, Alt (Height above sea level), Groundspeed, fixType (0,1,2,3), Number of sats, HDOP.
I hope you can help me out. Currently, I returned to the first example sketch with only Lat Lon (which I added with temp C and Batt Voltage. It is my goal to build a life tracker for life-saving purposes in rural terrain. For that reason, I need more than Lat Lon only and with a good accuracy.
The default accuracy of the M8Q is 100m
You can have a look with on how to change the M8Q accuracy.
Be aware that with higher accuracy you will have a higher power consumption.
Ok, didn’t know about the default accuracy of 100m. I should have a look at it before, my fault.
Question: Can you point me to a solution using the Sodaq_UBlox_GPS library with increased accuracy? Note: Higher power consumption is not a big issue for me.
Yesterday I did a test run with the GPS example code from the ThingsML library as suggested on the KPN support pages. This example gives only Lat, Lon but with much better accuracy as you can see in the screenshot (always on the road, so << 100m).
For better performance please look into the UBX-CFG-PMS register.
You can find this on page 243.
What you probably is option “0x03 = Aggressive with 1 Hz”, but if you really don’t care about power consumption you could just set “0x00 = Full power”. But I’d not recommend this, I doubt you’ll see a difference.
Where 0xB5 0x62 is the header, 0x06 is the class, 0x86 is the ID, 0x08 0x00 is the length, 0x00 0x03 0x00, 0x00 0x00 0x00 0x00 0x00 is the payload and 0x97 0x6F is the checksum.
If you want to do this a bit nicer, look at the ublox code we have for the universal tracker here.
Thanks for the tips, I tried the 1e prepped version. I didn’t notice any change in accuracy, nor I did in power consumption. I embedded your suggested code snippet in the setup() and hope that’s correct. If not I guess you will tell me
The uBlox document also shows the option to switch between the so-called Dynamic Platform Model. What I found is that default the GPS starts in portable mode with medium position deviation. For a pedestrian one could go for a small deviation, that looks promising (at least for my application). I tried to change the config of the module by using the Sodaq GPS Example sketch & u-Centre SW to try to change and save the default config. That didn’t work, unfortunately. I refer to this doc on pages 22 and 217/218 of:
So I have two questions for you:
Was it correct to place the 1e prepped code snippet in the setup function of my sketch (after enabling GPS etc) or do I need that snippet before every GPS use?
How can I change the UBX-CFG-NAV5 the platform model from portable to pedestrian. I hope with an easy-to-implement snippet like you presented for the PMS register.
I couldn’t try your last option because I use a different sketch for my tracker. I could implement the first option in your first answer from 11 days ago (because you were so kind to calculate the checksum for me ) Can you give me a lead on how to calculate this checksum by myself (tried some online tools but never got a good result, tried to check your calculation as a control )
Your last solution is one without checksum and relies on the rest of the code. So I started to tinker furthermore in my own code. I changed the NMEA parser for LAT LON into int’s and multiplied it to prevent unwanted rounding (which was the fact! and the lead to the solution). I am now able to achieve very accurate position reports. (at the backend I undo this multiplication of course)
Tinkering around in the parser also resulted in being able to parse the other desired values as well. All without the need for a library as a helping hand.
So, I am happy, and thanks for keeping me focused. The checksum question is just to satisfy my curiosity.