I recently purchased the Sparkfun Mosaic X5 kit. It is marketed as a receiver capable of L-band corrections along with L1,L2,L5 reception. Unfortunately there is not a disclaimer that this is not possible without use of another device (R-Pi) to help with library translation. I think the R-Pi solution allows for L-band reception without internet, but it’s a pretty big hassle to have to manage multiple devices. Is there any way to achieve Point Perfect L-band corrections without the Pi? Is there any method in the works for allowing the Septentrio receiver to make use of L-band without support of another device?
u-blox PointPerfect L-Band corrections are transmitted as SPARTN and are encrypted. You need an L-Band plan subscription to obtain the key to decrypt the corrections. The X5 can’t use the SPARTN corrections directly, you need an intermediary to convert the SPARTN into RTCM. The intermediary generates RTCM corrections as if they are coming from a virtual base near your location. The PointPerfect Library (PPL) code that runs on the RPi is that intermediary. u-blox don’t share the source code for the PPL, but they have shared the executable (binary blob). The Septentrio RPi demonstrator wraps glue code around the PPL, taking in the raw L-Band data stream from the X5, and outputting RTCM to the X5.
u-blox kindly gave us permission to share the ESP32 version of the PPL executable. That is the core of the SparkFun_u-blox_PointPerfect_Library. It is possible to run the PPL on the ESP32 inside the SparkFun RTK mosaic-X5. It works well but it is only a demonstration, not fully-fledged firmware.
Overwriting the original firmware prevents the ESP32 from acting as a Ethernet-to-WiFi bridge (its main purpose).
You need to download the PointPerfect current encryption key manually from Thingstream and compile it into the code (secrets.h).
You won’t see anything on the OLED display. All output is via the CONFIG ESP32 USB-C (CH340 COM) interface.
The L-Band frequency is hard coded. It defaults to the US frequency. If you’re in the EU, you’ll need to change the frequency in the code (line 56).
The demonstrator is SparkFun_u-blox_PointPerfect_Library Example7_RTK_mosaic-X5.
Compilation instructions are in the code.
Thank you for supporting our product. It was a lot of fun to design. The X5 is such a great chip…
Thanks for the information Paul I appreciate it. I’ll work on getting the RPi solution in place so I can keep my ESP32 doing good things. I’m hoping to compare Lband to NTRIP on land and at sea. I just read yesterday that point perfect may only work until 12 miles from shore?? Wonder if that’s the case or just a note for aviation stuff?
While we haven’t tested the 12 mile limit, we suspect it to be true. PointPerfect is an SSR so it is, by nature, limited in its accuracy to a given area.
SPARTN is bounded by GAD grid areas, over which the base data is extrapolated over.
These might change over time, but are instructive.
You just want your reference stations or RTCM3 VRS to be within the operational envelope. The RTCM3 isn’t going to be bounded in quite the same way, but obviously the further you are from the point of reference the less effective/helpful the data is going to be.
Daniel, this might be tangential to what you are looking for (depending on how bound you are to the mosaic-x5 as receiver, and the usage of L5), but have you looked at the RTK EVK?
It is designed to allow all sorts of corrections transports (PointPerfect L-Band and IP, direct cellular data transport, etc…).
With some minor changes, Example7 could be made to run on a separate ESP32 board, e.g. the ESP32 Thing Plus C. That board could be connected to the X5 COM1 TX, RX and GND screw terminals - and powered from the VIO screw terminal (check VIO is set to 3.3V first).
But, yes, with the EVK (L1+L2) you don’t need to do any of this… With an L-Band + IP plan, the RTK Everywhere firmware will connect to Thingstream and grab the keys for you, configure the NEO-D9S to receive the L-Band signal, pass the keys to the ZED-F9P so it can decrypt and use the SPARTN corrections direct… You also have the option of corrections via IP, including PointPerfect localized corrections. Full cellular support is coming soon…
You guys are awesome. I really appreciate the help and ideas. I am thinking my next device will be F9P based (or maybe the X20 just released…) sounds like a good solution is example 7 above with a separate ESP32 board. That keeps it simple and could be pretty elegant. I’ll work on that setup and let you know how it goes. Thanks again for the ideas and help the support is really appreciated.