AmpleGPS library

After having some problems with two libraries I have created my own: [AmpleGPS][1].
Because I did collect the GSV-sentences I already had a pattern based on a callback function, and I made my mind that this is probably a more reasonable approach. Given that a GPS-receiver is always firing there is no need for timers or interrupts, just lean back and listen to the incoming stream. No problems with ‘Serial’ at all.

The library worked for me for uBlox (GPS-bee) and MTK (Ultimate GPS). I haven’t tested it with a SIRF chip yet.
The library as it is right now on Github works for Arduinos.
I have it working with a Photon, not an Electron yet, with some minor modifications.

The specific code for the MTK chip, as in the Adafruit-library, is not implemented. Right now my point of view is, things should be separated and can be combined, if necessary.
However, I see some potential here besides the simple ‘#defines’ from Adafruit.

The code itself is still somewhat ongoing, I have some issues myself. ‘VTG’ needs to be done.
I have an example. Nicely done with an OLED, and maybe not for everybody.
I will reduce it to some simple ‘println’-lines.
[1]: https://github.com/dialThat/AmpleGPS

I have created another library for GPS-receivers.

If one of the knights with the ‘Higher Dust Inhaler’ could move this thread from the champions category into this category, please? And maybe append this post there/
That would be of help. Thanks.

Inside the git is a zipped file named ‘AmpleGPSForParticleOnly.zip’, that is only for particles.
The other files are only for Arduino. Because it uses PROGMEM, I left it as is.
Right now I am not in the mood to deal with this stuff, although I like the idea of a unified library.

The example code is written for a Photon in manual mode. Take care of it yourself.

If somebody needs an example with the OLED, drop me a note.

1 Like

Done (wrong way round first, but should be correct now :blush:)

Just a result, why parsing more than ‘RMC’ can be beneficial.
This are the satellites in view:

The code is generated on a Photon, which acts as TinyWebServer, too.
This is the generated html:

<!DOCTYPE html><html><body><svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="800" height="800">
<g stroke-width="0.5" stroke="black" fill="rgb(230, 240, 250)">
<rect width="800" height="800"/>
<circle cx="400" cy="400" r="390"/>
<circle cx="400" cy="400" r="195"/>
<line x1="400" y1="10" x2="400" y2="790"/>
<line x1="10" y1="400" x2="790" y2="400"/></g>
<g fill="orange" stroke="purple" stroke-width="1" style="font-family:Helvetica;font-size:18">
<circle cx="325" cy="51" r="28"/><text x="315"y="57">8</text>
<circle cx="286" cy="43" r="13"/><text x="276"y="49">10</text>
<circle cx="680" cy="609" r="16"/><text x="670"y="615">11</text>
<circle cx="743" cy="546" r="26"/><text x="733"y="552">14</text>
<circle cx="553" cy="358" r="16"/><text x="543"y="364">17</text>
<circle cx="197" cy="246" r="16"/><text x="187"y="252">27</text>
<circle cx="40" cy="304" r="26"/><text x="30"y="310">32</text>
</g></svg></body></html>

For some reason it does not work on an Electron, though.

2 Likes