ChroGPS Dash Troubleshooting
Table of Contents:
Dashboard not loading (Nginx “Welcome” Page)
If you see the default “Welcome to nginx!” page after installation, it means the default Nginx configuration is still active and taking priority over ChroGPS Dash.
To resolve this, run the following commands to disable the default site and restart the web server:
sudo rm /etc/nginx/sites-enabled/default && sudo systemctl restart nginx
Empty Graphs?
If graphs appear but have no data:
- Verify Chrony is logging:
sudo ls -l /var/log/chrony/ - Wait a few minutes for logs to populate.
- Run the installer again to re-apply permission fixes.
Upgraded your OS and now the Dashboard won’t load or throws an error?
Easy - just run the installer command.
This can happen when an OS upgrade bumps the PHP-FPM version (e.g. Debian 12 uses PHP 8.2 and Debian 13 uses PHP 8.4). The installer will detect this and fix it automatically.
“Cannot create/open log file: …” Message?
You broke something. Simply re-run the installer to fix it.
Wrong constellation colors?
Your GPS receiver may be using u-blox-style gnssid values instead of the NMEA standard. ChroGPS Dash handles both automatically by validating gnssid against PRN ranges.
To verify which scheme your receiver is using:
gpspipe -w | grep '"class":"SKY"' | head -3 | jq '.satellites[]? | {PRN, gnssid}'
Requires gpspipe and jq. If either is missing, run:
sudo apt-get install -y gpsd-clients jq
Then re-run the test command.
If you see GLONASS satellites (PRN 65-96) with gnssid=6, that’s u-blox numbering. If you see gnssid=2, that’s NMEA numbering. ChroGPS Dash handles both correctly.
Missing satellites?
Some receivers report satellites across multiple gpsd messages. ChroGPS Dash caches satellites for 30 seconds to accumulate all of them - the satellite count should grow from ~15 to ~25 over a few refreshes.
To inspect the cache directly:
cat /var/tmp/cgpsd-sat-cache.json | jq '.satellites | length'
Duplicate satellites on a multi-band receiver?
ChroGPS Dash automatically aggregates multiple signals per satellite and shows only the strongest. You should see one entry per PRN regardless of how many frequency bands are being tracked. If you are seeing duplicates, patches are welcome.
Satellites showing but no position fix?
Check that you have:
- A clear view of the sky.
- At least 4 satellites with good signal (> 25 dBHz).
- HDOP < 5.0.
- Waited 30–60 seconds for the initial fix after startup.
General Support (Note: lack thereof)
- Q: “It’s not working, can you help me?”
- A: No.
- Q: “But I used the installer!”
A: It works on my machines.
¯\_(ツ)_/¯This project is a labor of love, not a job. Please consult the Googles, the Linux man pages, or your local wizard for assistance.
In all (kind-of-)seriousness…
This dashboard is provided with a strict “You Break It, You Fix It” warranty.
I have provided crystal-clear instructions and a magical installer script that does 99% of the work for you. If you still manage to break it, congratulations! You have just discovered a learning opportunity.
- Documentation & Code: Read it again. Slower this time.
- Bugs: If you find a bug, patches are welcome.
- Tech Support: I do not offer tech support. If I did, I would charge a lot more than “Free.”
- Q: “Does ChroGPS Dash support the ntpd daemon from Network Time Foundation/ISC (or ntpsec or ntpd-rs or timesyncd or openntpd etc.)?”
- A: God no. And it never will. Chrony is superior in every way. Just…use…Chrony.
- Q: “Can I install ChroGPS Dash on WPSD??”
- A: No!!! 🛑 🚫
Look, I know I wrote both of these apps, but they were (deliberately) designed to not play nice together. WPSD is a managed ‘appliance’ - it likes its designs/setups exactly how they are.
Install ChroGPS Dash on a fresh or other existing, non-WPSD Linux instance so that WPSD remains happy and functional.
For the love of God…Just leave your WPSD installation alone and let it be. 🤦
If you haven't gotten the hint yet, I do not offer support nor do I respond to support inquiries. That means do not ask for support.
This project was created by me as a pet project in order to scratch an itch: I could not find anything like it (otherwise, I'd be using it). I am sharing it with you and giving it away for free; but that does not automatically obligate me to support you.
Asking for support is a guarantee you will be ignored. No fun!