Skip to content

Commit ef380e0

Browse files
committed
Update README.md
1 parent 6627841 commit ef380e0

File tree

1 file changed

+37
-44
lines changed

1 file changed

+37
-44
lines changed

README.md

Lines changed: 37 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
SparkFun u-blox Arduino Library
2-
===========================================================
1+
# SparkFun u-blox Arduino GNSS Library
32

43
<table class="table table-hover table-striped table-bordered">
54
<tr align="center">
@@ -18,75 +17,70 @@ SparkFun u-blox Arduino Library
1817
</tr>
1918
</table>
2019

21-
u-blox makes some incredible GNSS receivers covering everything from low-cost, highly configurable modules such as the SAM-M8Q all the way up to the surveyor grade ZED-F9P with precision of the diameter of a dime. This library focuses on configuration and control of u-blox devices over I2C (called DDC by u-blox) and Serial. The UBX protocol is supported over both I2C and serial, and is a much easier and lighterweight interface to a GNSS module. Stop parsing NMEA data! And simply ask for the datums you need.
20+
u-blox makes some incredible GNSS receivers covering everything from low-cost, highly configurable modules such as the SAM-M8Q all the way up to the surveyor grade ZED-F9P with precision of the diameter of a dime. This library focuses on configuration and control of u-blox devices over I2C (called DDC by u-blox) and Serial. The UBX protocol is supported over both I2C and serial, and is a much easier and lighterweight interface to a GNSS module. Stop polling messages and parsing NMEA data! Simply ask for the datums you need and receive an automatic callback when they arrive.
2221

2322
This library can be installed via the Arduino Library manager. Search for **SparkFun u-blox GNSS**.
2423

25-
Although not an integrated part of the library, you will find an example of how to communicate with the older series 6 and 7 modules in the [examples folder](./examples/Series_6_7).
24+
## v2.0
2625

27-
Max (400kHz) I2C Support
28-
-------------------
26+
This library is the new and improved version of the very popular SparkFun u-blox GNSS Arduino Library. v2.0 contains some big changes and improvements:
2927

30-
To achieve 400kHz I2C speed please be sure to remove all pull-ups on the I2C bus. Most, if not all, u-blox modules include pull ups on the I2C lines (sometimes called DDC in their manuals). Cut all I2C pull up jumpers and/or remove them from peripheral boards. Otherwise, various data glitches can occur. See issues [38](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/issues/38) and [40](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/issues/40) for more information. If possible, run the I2C bus at 100kHz.
28+
* Seamless support for "automatic" message delivery:
29+
* In v1.8, you could ask for the NAV PVT (Navigation Position Velocity Time) message to be delivered _automatically_, without polling. v2.0 adds automatic support for [**23 messages**](./Theory.md#auto-messages), covering the full range of: standard and High Precision position, velocity and time information; relative positioning; event capture with nanosecond time resolution; raw GNSS signal data including carrier phase; Sensor Fusion; and High Navigation Rate data.
30+
* Dynamic memory allocation with clearly-defined data storage structs for each message:
31+
* There are no static 'global' variables to eat up your RAM. v2.0 automatically allocates memory for the automatic messages when they are enabled. You may find your total RAM use is lower with v2.0 than with v1.8.
32+
* Each "auto" message has a clearly-defined [data storage struct](./src/u-blox_structs.h) which follows the u-blox protocol specification precisely.
33+
* Callbacks:
34+
* No more polling! Simply request the "auto" messages you need and receive an automatic callback when each message arrives.
35+
* Please see the [callback examples](./examples/Callbacks) for more details.
36+
* Built-in support for data logging:
37+
* Want to log RXM SFRBX and RAWX data for Post-Processed Kinematics or Precise Point Positioning? You can absolutely do that! v2.0 provides built-in support for data logging, allowing you to log **any** of the "auto" messages simply and easily.
38+
* Incoming "auto" data can be stored in a configurable ring buffer. You can then extract the data from the buffer and write it to (e.g.) SD card using your favorite SD library.
39+
* Data is logged in u-blox UBX format which is compact and efficient. You can replay the data using [u-center](https://www.u-blox.com/en/product/u-center).
40+
* Please see the [data logging examples](./examples/Data_Logging) for more details.
3141

32-
-------------------
42+
## Migrating to v2.0
3343

34-
Want to help? Please do! We are always looking for ways to improve and build out features of this library.
44+
Migrating to v2.0 is easy. There are two small changes all users will need to make:
3545

36-
* We are always interested in adding SPI support with a checkUbloxSPI() function
46+
* The name of the library class has changed from ```SFE_UBLOX_GPS``` to ```SFE_UBLOX_GNSS``` to reflect that the library supports all of the Global Navigation Satellite Systems:
47+
* As a minimum, you need to change: ```SFE_UBLOX_GPS myGPS;```
48+
* to: ```SFE_UBLOX_GNSS myGPS;```
49+
* But we would encourage you to use ```SFE_UBLOX_GNSS myGNSS;```. You will see that all of the library examples now use ```myGNSS``` instead of ```myGPS```.
50+
* The name of the library header and C++ files have changed too:
51+
* Change: ```#include <SparkFun_Ublox_Arduino_Library.h>```
52+
* to: ```#include <SparkFun_u-blox_GNSS_Arduino_Library.h>```
3753

38-
Thanks to:
54+
If you are using the Dead Reckoning Sensor Fusion or High Dynamic Rate messages, you will need to make more small changes to your code. Please see the [dead reckoning examples](./examples/Dead_Reckoning) for more details. There is more detail available in [Theory.md](./Theory.md#migrating-your-code-to-v20) if you need it.
3955

40-
* [trycoon](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/pull/7) for fixing the lack of I2C buffer length defines.
41-
* [tve](https://github.com/tve) for building out serial additions and examples.
42-
* [Redstoned](https://github.com/Redstoned) and [davidallenmann](https://github.com/davidallenmann) for adding PVT date and time.
43-
* [wittend](https://forum.sparkfun.com/viewtopic.php?t=49874) for pointing out the RTCM print bug.
44-
* Big thanks to [PaulZC](https://github.com/PaulZC) for implementing the combined key ValSet method, geofence functions, better saveConfig handling, as well as a bunch of small fixes.
45-
* [RollieRowland](https://github.com/RollieRowland) for adding HPPOSLLH (High Precision Geodetic Position).
46-
* [tedder](https://github.com/tedder) for moving iTOW to PVT instead of HPPOS and comment cleanup.
47-
* [grexjmo](https://github.com/grexjmo) for pushing for a better NMEA sentence configuration method.
48-
* [averywallis](https://github.com/averywallis) for adding good comments to the various constants.
49-
* [blazczak](https://github.com/blazczak) and [geeksville](https://github.com/geeksville) for adding support for the series 6 and 7 modules.
50-
* [bjorn@unsurv](https://github.com/unsurv) for adding powerOff and powerOffWithInterrupt.
51-
* [dotMorten](https://github.com/dotMorten) for the MSGOUT keys, autoHPPOSLLH, autoDOP and upgrades to autoPVT.
52-
* [markuckermann](https://github.com/markuckermann) for spotting the config layer gremlins
53-
* [vid553](https://github.com/vid553) for the Zephyr port
54-
* [balamuruganky](https://github.com/balamuruganky) for the NAV-PVT velocity parameters, getSpeedAccEst, getHeadingAccEst, getInvalidLlh, getHeadVeh, getMagDec and getMagAcc
55-
* [nelarsen](https://github.com/nelarsen) for the buffer overrun improvements
56-
* [mstranne](https://github.com/mstranne) and [shaneperera](https://github.com/shaneperera) for the pushRawData suggestion
57-
* [rubienr](https://github.com/rubienr) for spotting the logical AND issues
56+
## Max (400kHz) I2C Support
5857

59-
Need a Python version for Raspberry Pi? Checkout the [Qwiic Ublox GPS Py module](https://github.com/sparkfun/Qwiic_Ublox_Gps_Py).
58+
To achieve 400kHz I2C speed please be sure to remove all pull-ups on the I2C bus. Most, if not all, u-blox modules include internal pull ups on the I2C lines (sometimes called DDC in their manuals). Cut all I2C pull up jumpers and/or remove them from peripheral boards. Otherwise, various data glitches can occur. See issues [38](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/issues/38) and [40](https://github.com/sparkfun/SparkFun_Ublox_Arduino_Library/issues/40) for more information. If possible, run the I2C bus at 100kHz.
6059

61-
Need a library for the u-blox and Particle? Checkout the [Particle library](https://github.com/aseelye/SparkFun_Ublox_Particle_Library) fork.
62-
63-
Contributing
64-
--------------
60+
## Contributing
6561

6662
If you would like to contribute to this library: please do, we truly appreciate it, but please follow [these guidelines](./CONTRIBUTING.md). Thanks!
6763

68-
Repository Contents
69-
-------------------
64+
## Repository Contents
7065

7166
* **/examples** - Example sketches for the library (.ino). Run these from the Arduino IDE.
7267
* **/src** - Source files for the library (.cpp, .h).
7368
* **[keywords.txt](./keywords.txt)** - Keywords from this library that will be highlighted in the Arduino IDE.
7469
* **[library.properties](./library.properties)** - General library properties for the Arduino package manager.
7570
* **[CONTRIBUTING.md](./CONTRIBUTING.md)** - Guidelines on how to contribute to this library.
7671
* **[Theory.md](./Theory.md)** - provides detail on how data is processed by the library.
72+
* **/Utils** - contains a Python utility which can check the contents of UBX log files.
7773

78-
Documentation
79-
--------------
74+
## Documentation
8075

8176
* **[Installing an Arduino Library Guide](https://learn.sparkfun.com/tutorials/installing-an-arduino-library)** - Basic information on how to install an Arduino library.
8277

83-
Theory
84-
--------------
78+
## Theory
8579

8680
If you would like to learn more about how this library works, including the big changes we made in version 2.0, please see **[Theory.md](./Theory.md)** for full details.
8781

88-
Products That Use This Library
89-
---------------------------------
82+
## Products That Use This Library
83+
9084
* [GPS-16481](https://www.sparkfun.com/products/16481) - SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic)
9185
* [GPS-15136](https://www.sparkfun.com/products/15136) - SparkFun GPS-RTK2 Board - ZED-F9P (Qwiic)
9286
* [GPS-16344](https://www.sparkfun.com/products/16344) - SparkFun GPS-RTK Dead Reckoning Breakout - ZED-F9R (Qwiic)
@@ -99,8 +93,7 @@ Products That Use This Library
9993
* [SPX-14980](https://www.sparkfun.com/products/14980) - SparkX GPS-RTK Black
10094
* [SPX-15106](https://www.sparkfun.com/products/15106) - SparkX SAM-M8Q
10195

102-
License Information
103-
-------------------
96+
## License Information
10497

10598
This product is _**open source**_!
10699

0 commit comments

Comments
 (0)