GPS Klok
Exacte GPS-tijd via een lokale Stratum 1 NTP-server, inclusief milliseconden en browser-afwijking.
Paginaversie 1.3 · laatst gecontroleerd op 08-08-2026
Meetwaarden
GNSS-status Nederland
- 54/55 referentiestations actief
Bron: 06-gps.nl · meting 13-08-2026 03:25:26 UTC
Info voor de nerds
Over NTP
De lokale NTP-server is een zelfgebouwde Stratum 1 tijdserver gebaseerd op een WaveShare ESP32-P4-ETH microcontroller, gevoed via PoE (Power over Ethernet). Stratum 1 betekent dat de server direct gesynchroniseerd is met een primaire tijdbron, in dit geval GPS.
De nauwkeurigheid wordt bereikt via twee componenten:
- GPS-ontvanger (SparkFun MAX-M10S): ontvangt satellietnavigatiesignalen met ingebouwde tijdinformatie.
- PPS-signaal (Pulse Per Second): de GPS-module geeft elke seconde een elektrisch puls af die nauwkeurig op de UTC-seconde valt. De ESP32 gebruikt dit signaal om de klok op sub-milliseconde niveau te disciplineren. Het groene stipje rechtsboven in de klok licht op elke secondegrens op en dooft daarna langzaam uit; blijft de puls weg, dan dooft het stipje helemaal.
De firmware is geschreven in C++ met ESP-IDF en FreeRTOS (niet Arduino). Updates worden draadloos uitgerold via OTA. De server bedient alle apparaten in het thuisnetwerk via UDP poort 123.
Bronnen: de hardware is de Waveshare ESP32-P4-ETH (RJ45 met PoE) met daarop de SparkFun GNSS Breakout MAX-M10S (Qwiic), gebouwd rond de u-blox MAX-M10-serie. Het stratum-begrip en UDP-poort 123 zijn vastgelegd in RFC 5905 (NTPv4).
NTP (Network Time Protocol) is een protocol waarmee computers hun klok synchroniseren via een netwerk. Het is ontworpen om de klok nauwkeurig te houden, ook over trage of onstabiele verbindingen.
De lokale Stratum 1 NTP-server synchroniseert zichzelf rechtstreeks via GPS+PPS en distribueert de tijd naar alle apparaten in het thuisnetwerk.
Bron:RFC 5905 - Network Time Protocol Version 4: Protocol and Algorithms Specification, waarin NTP is vastgelegd.
De GNSS-status bovenaan deze pagina komt van 06-GPS, volgens eigen zeggen “al meer dan 20 jaar in Nederland dé dienstverlener op het gebied van nauwkeurige satelliet-plaatsbepaling en -navigatie”. Het is een gecertificeerde GNSS-correctiedienst: als klant kun je met één ontvanger in heel Nederland met de hoogste nauwkeurigheid meten.
Daarvoor onderhoudt 06-GPS een landelijk referentienetwerk van ruim 50 vaste meetstations in Nederland en net over de grens, van Groningen en Amsterdam tot Rotterdam, Tilburg en Eijsden, plus grensplaatsen als Emden, Aken, Gent en Ukkel. Die stations leveren correcties voor RTK (1–2 cm nauwkeurig) en DGNSS (~2 dm), plus RINEX-data voor postprocessing. Toepassingen: landmeten en geodesie, GIS-inwinning, machinesturing, mobiele data-inwinning, luchtopnames, mariene toepassingen en deformatiemetingen.
Elk station bewaakt continu de ontvangst (aantal satellieten, ionosfeer, positie-offset). Daardoor is hun publieke statusdashboard een handige, onafhankelijke referentie voor de GNSS-gezondheid boven Nederland, bruikbaar om te zien of een verstoring landelijk is (jamming, ruimteweer) of juist lokaal bij je eigen ontvanger.
Er staat zelfs een referentiestation in Dordrecht (51,81° N, 4,66° O), op het laatste meetmoment 10/11 GPS- en 7/7 GLONASS-satellieten in fix. De actuele status zie je in het blok bovenaan.
Bronnen: het citaat, de omvang van het referentienetwerk en de toepassingen komen van 06-GPS: Over 06-GPS; de actuele meetwaarden van hun statusdashboard.
De weergegeven tijd is nauwkeurig tot enkele milliseconden. De beperking zit niet in NTP zelf (sub-milliseconde nauwkeurig door GPS+PPS), maar in de netwerk-latency tussen de NTP-server en de webserver, en tussen de webserver en jouw browser.
- NTP RTT: de round-trip tijd van de webserver naar de NTP-server. De helft hiervan wordt afgetrokken als netwerk-compensatie.
- HTTP RTT: de round-trip tijd van je browser naar de webserver. De helft wordt meegenomen in de offset-berekening.
- Browser-afwijking: het verschil tussen
Date.now()in je browser en de berekende NTP-tijd. Hiermee zie je hoe goed jouw OS-klok gesynchroniseerd is.
In de praktijk geeft dit een nauwkeurigheid van 5–50 ms, afhankelijk van netwerkjitter.
Bron: die 5–50 ms is géén specificatie maar een eigen waarneming op dit netwerk, op een andere verbinding kan het afwijken. De rekenwijze met halve round-trip-tijd als compensatie volgt RFC 5905.
- NTP round-trip: de round-trip tijd van de webserver naar de NTP-server en terug. Typisch < 1 ms op een LAN.
- Webserver afwijking: hoe ver de klok van de webserver zelf afwijkt van de NTP-tijd. Positief = webserver loopt voor.
- Stratum: de afstand tot de primaire tijdbron. Stratum 1 = direct gekoppeld aan GPS/atoomklok. Stratum 2 = synchroniseert via een Stratum 1 server.
- Precisie. De resolutie van de klok op de NTP-server, uitgedrukt als 2ⁿ seconden. Bijvoorbeeld: n = −20 komt overeen met 2⁻²⁰ ≈ 1 µs, wat zeer nauwkeurig is.
- Root Dispersion: de maximale totale klokfout van de NTP-server t.o.v. de primaire tijdbron. Een lage waarde (sub-ms) duidt op een stabiele GPS-bron.
- Leap Indicator: een 2-bits statusvlag in het NTP-pakket die aankondigt of de laatste minuut van de maand wordt aangepast met een schrikkelseconde. Er zijn 4 mogelijke codes (0 t/m 3); "van 4" verwijst naar dit bereik. Normaal staat dit op code 0 = "OK", wat betekent dat de klok gesynchroniseerd is en er niets bijzonders staat te gebeuren.
- 0. OK: geen waarschuwing, klok is gesynchroniseerd.
- 1. Schrikkelseconde +1 s: de laatste minuut krijgt 61 seconden (er wordt een seconde ingevoegd).
- 2. Schrikkelseconde −1 s: de laatste minuut krijgt 59 seconden (er wordt een seconde overgeslagen).
- 3. Ongesynchroniseerd: de NTP-server heeft geen betrouwbare tijdbron (alarmtoestand), de tijd is dan niet te vertrouwen.
Let op: RFC 5905 is hier zelf niet consequent. De begeleidende tekst spreekt van “the last minute of the current month”, terwijl de tabel eronder (Figuur 9) “last minute of the day” zegt. In de praktijk geldt de maand: het IERS voert een schrikkelseconde alleen in aan het eind van juni of december.
Bronnen: alle veldnamen en hun betekenis komen uit RFC 5905, §7.3 “Packet Header Variables”. Wanneer een schrikkelseconde mag vallen, en of er één aankomt, staat in IERS Bulletin C.