TechSpeeltuin - GPS Klok

Voor en door inwoners van Dordrecht

Gestopt
Papendrechtsebrug weer open in 277 dagen
Zaterdag 18 Juli 07:37:1718°80%
Taal
Thema
Stratum 1 · NTP

GPS Klok

Exacte GPS-tijd via een lokale Stratum 1 NTP-server — inclusief milliseconden en browser-afwijking.

NTP synchroniseren…

Bel 002, 06-8002 of 0900-8002 voor de tijd — zoals vroeger… of een ander nummer

88888888
12ABC3DEF4GHI5JKL6MNO7PQRS8TUV9WXYZ0+#

Meetwaarden

GNSS-status Nederland

Normaal

Landelijk GNSS-referentienet meldt geen bijzonderheden — geen jamming of ionosferische verstoring gedetecteerd.

GPS10/12 fix
GLONASS6/7 fix
Referentiestations55/55
IonosfeerOK (IR=0.01)
Referentiestation DordrechtGPS 9/12 · GLONASS 5/7online

Bron: 06-gps.nl · meting 18-07-2026 05:34:40 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 linksboven in de klok knippert synchroon met dit signaal.

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.

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.

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 9/12 GPS- en 5/7 GLONASS-satellieten in fix. De actuele status zie je in het blok bovenaan.

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.

  • 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 dag 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 van de dag 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.

Over de sprekende klok

De knop "Bel de tijd" hierboven is een klein eerbetoon aan de telefonische tijdmelding: vroeger belde je een kort nummer en hoorde je "Bij de volgende toon is het…", waarna een toon precies de seconde markeerde.

Hoe we dit gemaakt hebben

De originele stem bestaat alleen nog in oude opnames. We vonden een fragment van de échte tijdmelding en hebben in Audacity letterlijk de zin "Bij de volgende toon is het" en het woord "precies" uitgeknipt. Datzelfde schone fragment (~11 s) gebruikten we als referentie om de stem te klonen met een AI-stemmodel (XTTS). Zo genereerden we alle losse woorden: de getallen 0 t/m 59 plus "uur", "minuut/minuten" en "seconden".

Elke clip is bijgeknipt, genormaliseerd en klik-vrij gemaakt; een handjevol lastige getallen (2, 3, 4, 5, 53…) hebben we net zo lang opnieuw gegenereerd — en soms met de hand vervangen — tot ze klopten. De exacte toonfrequenties en -duur (de slottoon van 800 Hz / 0,525 s, de kiestoon, de DTMF-tonen en de bezettoon) hebben we bepaald met de frequentie-analyse van Audacity.

De klok plakt de losse clips realtime aan elkaar met 300 ms pauze en laat de toon exact op de seconde vallen dankzij de GPS/NTP-tijd van deze pagina. De belsimulatie maakt het compleet: kiestoon → 06-8002 intoetsen (met menselijke timing) → overgaan → de tijd → bezettoon → de hoorn erop.

002, 06-8002, 0900-8002

De Nederlandse tijdmelding was decennialang een van de meest gebelde nummers van het land — op het hoogtepunt zo'n 60 miljoen oproepen per jaar. Je bereikte 'm eerst via 002, later via 06-8002, en tegenwoordig via 0900-8002. De vertrouwde stem was jarenlang die van Willy Brill (1926–2017), die de meldingen zo'n 25 jaar insprak; in 1992 werd ze opgevolgd door Joke van Diessen. Ook nu wordt er nog ruim 200.000 keer per jaar gebeld, met pieken rond de overgang naar zomer- en wintertijd.

Bron: NOS — "Stem achter nummer 002 van de telefonische tijdmelding overleden"