Support Ublox NTRIP Client (No MQTT) SPARTN format #124
Replies: 7 comments 6 replies
-
Hi @jptalledo10 , PyGPSClient can already parse (but not yet fully decode) SPARTN data from MQTT and L-Band sources, so in theory there should be no major difficulty in parsing SPARTN data from an NTRIP (i.e. HTTP) source. The main issue is that, while the SPARTN protocol is ostensibly in the public domain, the documentation is (in my experience) relatively poor and u-blox's SPARTN services all require a paid subscription in order to decrypt the raw data, making it extremely difficult for an unpaid and unsponsored volunteer project like PyGPSClient to develop, test and implement it successfully. SPARTN is basically a money-spinner for u-blox. The NTRIP RTCM3 protocol, on the other hand, is well documented, unencrypted and a great many NTRIP sources are available free of charge from public domain service providers like rtk2go.com and euref-ip.com. u-blox have shown little interest in supporting open source projects like PyGPSClient and certainly no interest in assisting with subscription fees or testing, so at this point I don't feel greatly motivated to implement new SPARTN functionality in support of u-blox's revenue stream. As things stand, the pyspartn library (which PyGPSClient uses to parse, decrypt and decode SPARTN data) is currently still in Alpha and cannot yet fully decode all SPARTN payloads. I suspect the outstanding issues are probably easily resolved (they're almost certainly a document interpretation problem rather than a decryption problem), but I've simply not had the time or frankly the incentive to look into them in any depth. Having said this, contributions of all kinds are always welcome so if anyone out there is in a position to assist with the implementation of such functionality, I'd be more than happy to incorporate it. |
Beta Was this translation helpful? Give feedback.
-
The good news is that Ntrip Spartn is not encrypted and I can share a developer account for debugging/testing if needed. Happy to discuss further. |
Beta Was this translation helpful? Give feedback.
-
That would certainly be helpful - appreciate the offer. In point of fact, you don't actually need to decrypt SPARTN data in order to send it to an RTK-compatible GNSS receiver like the ZED-F9P - you can simply send the raw binary datastream along with the relevant decryption keys and the receiver will happily decrypt it itself. Native SPARTN decryption in pyspartn is provided more as a diagnostic and academic service to end users. I've been reviewing the PointPerfect service description at https://developer.thingstream.io/guides/location-services/pointperfect-ntrip-distribution and it all looks relatively straightforward, particularly as it appears to support the standard NTRIP HTTP port 2101 in addition to an encrypted HTTPS (TLS) service on port 2102. Supporting the service would require the following changes:
I'm moving this issue to the PyGPSClient Ideas and Feature Requests Discussion Forum where we can continue the discussion, if that's OK with you. Thanks again for the suggestion and any assistance you can offer. |
Beta Was this translation helpful? Give feedback.
-
FYI I've just tested my provisional changes to python3 -m pip install git+https://github.com/semuconsulting/pygnssutils.git@add-support-for-SPARTN-NTRIP-service
gnssntripclient -S "ppntrip.services.u-blox.com" -P 2101 -M EU --protocol SPARTN --ntripuser "**********-****-****-****-************" --ntrippassword "**********"
I made some quick changes to PyGPSClient to accommodate the new functionality and, as you can see from this screen shot, it all seems to work fine - the SPARTN data is being successfully parsed from the NTRIP caster to the ZED-F9P receiver, the RXM-COR messages confirm they are being used ( If you're able to confirm you get similar results using the |
Beta Was this translation helpful? Give feedback.
-
That's great news and pretty quick turnaround. Thanks for your support. I will try it out |
Beta Was this translation helpful? Give feedback.
-
u-blox PointPerfect NTRIP SPARTN service support ( Note that the underlying pyspartn library is still in Alpha and not yet fully functional. PyGPSClient can display incoming SPARTN transport-layer messages and their associated metadata (SPARTN-1X-HPAC-GPS*, SPARTN-1X-OCB-GLO* etc.) in the console, but the payloads are not yet fully decoded. |
Beta Was this translation helpful? Give feedback.
-
I was trying to follow up with the example you can provide on how to use
the GPS client CLI to provide the output so it can be consumed and received
by a ntrip client.
My use case is a ZED-F9P able to consume SPARTN Corrections over internet
without U-Center. I don't think there are available NTRIP client supporting
SPARTN corrections right?
…On Thu, Mar 21, 2024, 7:51 AM SEMU Admin ***@***.***> wrote:
Can you clarify your use case? An NTRIP service is itself a TCP socket
stream, albeit in an HTTP(s) wrapper.
—
Reply to this email directly, view it on GitHub
<#124 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AH464ZE4PXPXHBUH6UFW6HTYZLCVZAVCNFSM6AAAAABE2NGNBSVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DQNRUG43TI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***
com>
|
Beta Was this translation helpful? Give feedback.
-
PyGPSClient Feature Request Template
Ublox/Thingstream released a new service based on NTRIP/IP and providing SPARTN format corrections without any MQTT dependencies.
Wondering if this application can add this feature and provide a server for it to connect and retrieve those corrections
Beta Was this translation helpful? Give feedback.
All reactions