GNSS Monitor online: live GPS/NMEA/u-blox UBX viewer in your browser
Published:
🛰

Second tool in the browser-tools series (after HyperTerminal online): a live GNSS monitor with the panels you’d expect from a desktop tool like u-center - data fields, a satellite sky plot, per-satellite signal bars and a raw message console:
https://www.clearevo.com/gnss/
It connects to Bluetooth serial GNSS receivers as well as USB - the Web Serial API covers both, on Android phones (Chrome, paired Bluetooth devices) and desktop (Chrome/Edge, USB or Bluetooth). You get live position, fix quality, DOPs, and every satellite in view drawn on the sky plot - colored per constellation (GPS, GLONASS, Galileo, BeiDou…), filled when used in the fix, with SNR bars beside it. There’s an OpenStreetMap link for the current fix, and you can also replay an NMEA/UBX log file instead of connecting hardware.
Step-by-step user guide (phone and PC): How to use an external Bluetooth or USB GPS receiver in your browser.
The parser is not new code: it’s the same Rust engine that powers my Bluetooth GNSS Android app, compiled to WebAssembly (branch wasm, rust/ crate - binrw + the nmea crate). That’s why it also handles u-blox UBX binary, not just NMEA text: UBX frames are detected and checksum-verified in the stream, the main NAV-PVT position/velocity/time message is fully decoded, and other UBX messages are shown by class/ID (not field-decoded yet). u-blox’s proprietary $PUBX NMEA sentences are decoded too. As far as I can tell, no other in-browser GNSS viewer handles UBX binary at all. Everything runs client-side; your position never leaves your machine (Google Analytics for visit stats only).
No receiver on hand? There are two clearly-marked DEMO simulated devices (u-blox-like and MTK-like), streaming valid NMEA from a fixed position at McCormick Hospital, Chiang Mai - those work in any browser, Firefox included.
Please test it with whatever receiver you have - u-blox, MTK, anything that talks NMEA over serial - and comment below with what works and what breaks. That feedback is the main thing I’m after at this stage.
Full disclosure: this post - and any code or tool it describes - was co-authored with Claude (Anthropic’s AI, via Claude Code). I directed, guided and reviewed. I don’t want to pretend otherwise.
Leave a Comment