Moin, ich habe gerade den aktuellen Stand meines derzeitigen Projektes auf github.com geladen und dachte, dass es vielleicht auch etwas für hier ist, um darüber zu diskutieren etc.: https://github.com/boerge42/GPS-Clock-NTP-Server Es handelt sich um eine Uhr auf einem ESP32, welche die Uhrzeit über ein GPS-Modul erhält. Da durch die Auswertung des PPS-Signals, das ebenfalls vom GPS-Modul generiert wird, eine recht genaue Synchronisation der Uhrzeit erfolgt, ist daraus auch ein kleiner NTP-Server (theoretisch Stratum 1) entstanden (deshalb auch ein ESP32-P4-ETH als Grundlage). Die Ausgabe von Datum/Uhrzeit auf einem OLED (siehe Anhang) ist nicht sonderlich innovativ. Im Vordergrund standen da andere Informationen, die platzsparend und kompakt angezeigt werden sollten... Ich würde mich freuen, wenn eine kleine und gewinnbringende Diskussion entsteht. Coole Ideen und Anregungen sind willkommen! Uwe
Nun, es gibt viele Theorien... eigentlich sieht es doch so aus: NIST = 0, Satellit = 1, GPS-Empfänger = 2, ESP = 3. Nur wegen GPS != NTP bekommen alle einen Bonus? Aber auch mit Bonus gibt es maximal eine 2.
Manfred P. schrieb: > Aber nur in der Nacht während eines Traumes. Bauform B. schrieb: > Nun, es gibt viele Theorien... eigentlich sieht es doch so aus: NIST = > 0, Satellit = 1, GPS-Empfänger = 2, ESP = 3. Nur wegen GPS != NTP > bekommen alle einen Bonus? Aber auch mit Bonus gibt es maximal eine 2. Naja, die Vergabe des Stratum ist eigentlich recht eindeutig geregelt und keine Ermessensfrage. Vielleicht nochmal nachlesen? ...vielleicht kommt diese Skepsis am "Stratum 1" auch von der Annahme, dass ein selbstgebauter NTP-Server nicht ausreichend genau/stabil ist? Ich behaupte mal, dass meine Implementierung schon mal nicht ganz so schlecht ist. Verbesserungen sind immer möglich und u.a. darüber wollte ich gern hier diskutieren. Uwe
:
Bearbeitet durch User
Uwe B. schrieb: > Ich würde mich freuen, wenn eine kleine und gewinnbringende Diskussion > entsteht. Coole Ideen und Anregungen sind willkommen! Uwe, - meine Kommentare: - Verlinke/Kopiere den Quellcode der verwendeten Bibliotheken (oder den verwendeten Stand) in der von Dir verwendeten Version. Bibliotheken werden weiter entwickelt und manchmal sind breaking-Changes nicht zu vermeiden. Und dann kann Dein Code nicht mehr kompiliert werden. - Hinweis auf die verwendete Arduino-Version. - Kommentare sind auf deutsch. - Schaltplan fehlt. Ein PDFchen ist manchmal sehr hilfreich. - Sehr schoenes Bildchen ueber das Zusammenspiel der Tasks und der Queues und Interrupts bei RTOS. - Verwendete Lizenz fehlt. Das ganze Projekt ist eigentlich ein sehr schoenes Beispiel warum Arduino so erfolgreich war. Mal sehen, wie sich die Zusammenarbeit community <-> Qualcomm in den naechsten Jahren entwickelt.
Hallo Thomas, danke für die Hinweise/Anmerkungen... Thomas W. schrieb: > - Verlinke/Kopiere den Quellcode der verwendeten Bibliotheken (oder den > verwendeten Stand) in der von Dir verwendeten Version. Bibliotheken > werden weiter entwickelt und manchmal sind breaking-Changes nicht zu > vermeiden. Und dann kann Dein Code nicht mehr kompiliert werden. > > - Hinweis auf die verwendete Arduino-Version. ...ich habe jetzt im Quelltext-Kopf entsprechende Informationen als Kommentar hinterlegt > > - Schaltplan fehlt. Ein PDFchen ist manchmal sehr hilfreich. ok, nicht so umfangreich/kompliziert, aber ich habe ein kleines Bildchen in die README eingebunden (der Anbieter, des verwendeten Zeichenprogramms hat sich mit einem präsenten Wasserzeichen verewigt...) > - Verwendete Lizenz fehlt. ...habe ich bisher noch nie bei meinen Projekten gemacht, aber warum nicht; zu mindesten muss man bei der Auswahl der Lizenz mal darüber nachdenken, was für einen "go"/"no go" ist... und habe eine passende ausgewählt. Uwe
:
Bearbeitet durch User
...aber mal was inhaltliches: Welche Vorschläge habt ihr, um "meinen" NTP-Server mit anderen Servern zu vergleichen? ntpdate -q <IP> --> kenne ich. Mich interessiert aber z.B., ob mein Server tatsächlich synchron zu anderen NTP-Servern ist. Dazu müsste man eigentlich ein paar Server "gleichzeitig" abfragen bzw. den entsprechenden Zeitversatz ins Ergebnis einberechnen. Hat jemand eine Idee? Danke Uwe
Uwe B. schrieb: > Mich interessiert aber z.B., ob mein Server tatsächlich synchron zu > anderen NTP-Servern ist. Dazu müsste man eigentlich ein paar Server > "gleichzeitig" abfragen bzw. den entsprechenden Zeitversatz ins Ergebnis > einberechnen. Auf einem RPi oder einen normalen PC mit Debian reicht "apt install ntpsec". Dann läuft der "offizielle" ntpd und fragt ca. ein Dutzend Server im Internet ab. Nach ein einer halben Stunde (oder so) bekommt man mit "ntpq -pn" so eine Liste:
1 | remote refid st t when poll reach delay offset jitter |
2 | ============================================================================== |
3 | +212.18.3.19 212.18.1.106 2 u 175 256 377 4.627 2.870 2.398 |
4 | -90.187.112.137 237.17.204.95 2 u 218 256 377 20.901 -2.089 2.222 |
5 | -5.45.97.204 195.145.119.188 2 u 164 256 377 17.170 -2.183 3.293 |
6 | +78.47.56.71 129.134.28.123 2 u 52 256 377 7.675 -0.538 2.761 |
Dann hängt man den ESP32 ins gleiche Netz und trägt seine IP-Adresse in /etc/ntpsec/ntp.conf ein, nach den "pool"-Zeilen, ungefähr so: "server 192.168.1.42". Anschließend taucht der ESP gleichberechtigt in der ntpq-Liste auf. Sein jitter müsste eigentlich deutlich kleiner sein als hier bei meinem DSL-Internet. Edit: die Liste ist gekürzt und ausgerechnet die Zeile mit dem * fehlt jetzt :(
:
Bearbeitet durch User
Uwe B. schrieb: > ok, nicht so umfangreich/kompliziert, aber ich habe ein kleines Bildchen > in die README eingebunden (der Anbieter, des verwendeten > Zeichenprogramms hat sich mit einem präsenten Wasserzeichen verewigt...) Das ist leider kein Schaltplan, das sind nur ein paar bunte Striche. Bei einem Schaltplan wären die Signale beschriftet, so daß man sich nicht die Anschlussbelegungen aller beteiligten Platinen raussuchen und nachsehen muss. Schließlich könnte jemand ja auch auf die Idee kommen, das ganze mit einer anderen ESP32-Platine nachzubauen. Fass' das jetzt aber bitte nicht als kompletten Verriss Deines Projektes auf - die Idee an sich finde ich reizvoll.
Bauform B. schrieb: > Nach ein einer halben Stunde (oder so) bekommt > man mit "ntpq -pn" so eine Liste: > remote refid st t when poll reach delay offset jitter > ... > +212.18.3.19 212.18.1.106 2 u 175 256 377 4.627 2.870 > 2.398 Was sind denn das für unvollständige Angaben? So simple Dinge wie "delay" oder "jitter" sind Zeitangaben, die als physikalische Größen auch einer Einheit bedürfen. Das sollte eigentlich jedem, der nicht nur lernt, seinen Namen zu tanzen, in der Schule eingetrichtert worden sein.
Harald K. schrieb: > Das ist leider kein Schaltplan, das sind nur ein paar bunte Striche. > > Bei einem Schaltplan wären die Signale beschriftet, so daß man sich > nicht die Anschlussbelegungen aller beteiligten Platinen raussuchen und > nachsehen muss. Formal hast du natürlich Recht, aber für die Zielgruppe ist dieses bunte Bild optimal. Und speziell dieses hier ist doch wirklich gut. Man könnte natürlich auch in so einem Bild die Signalnamen dran schreiben. Aber bei RX und TX hilft dir das auch nicht viel :) Mit einem normalen Schaltplan müsste der Anwender auch die Anschlussbelegung raussuchen, nur in der umgekehrten Richtung. Und manchmal sind die Pin-Nummern nicht eindeutig, dank WiringPi (oder wer hat das verbrochen?). Hab' ich jetzt gerade Arduino in Schutz genommen? So kenne ich mich garnicht ;) Harald K. schrieb: > Fass' das jetzt aber bitte nicht als kompletten Verriss Deines Projektes > auf - die Idee an sich finde ich reizvoll. Unterschreib! Das Projekt spielt auf jeden Fall in einer anderen Liga.
Rainer W. schrieb: > So simple Dinge wie "delay" oder "jitter" sind Zeitangaben, die als > physikalische Größen auch einer Einheit bedürfen. > ...Schule... Das Format hat sich ein Professor¹ ausgedacht, gewöhnliche Schüler können da nicht mitreden. 1) https://en.wikipedia.org/wiki/David_L._Mills
Bauform B. schrieb: > Harald K. schrieb: >> Fass' das jetzt aber bitte nicht als kompletten Verriss Deines Projektes >> auf - die Idee an sich finde ich reizvoll. > > Unterschreib! Das Projekt spielt auf jeden Fall in einer anderen Liga. Auch die Ausfuehrung (mit Tasks und Semaphores) und eine Interrupt-Routine ist sehr gut geloest.
Bauform B. schrieb: > Das Format hat sich ein Professor¹ ausgedacht, gewöhnliche Schüler > können da nicht mitreden. Auch für den sollte es ein Leichtes sein, in den Spaltenüberschriften ein "delay/ms", "jitter/ms" oder in welche Einheit auch immer die Größen angegeben werden, unterzubringen, damit man nicht erst sonst wo recherchieren muss, um die Bedeutung der Zahlen zu erfahren.
:
Bearbeitet durch User
Aber dann wäre die geheime Linuxelite ja keine verschworene geheime Linuxelite mehr.... Was bedeutet denn das +/- vorn, und st, t, when, poll und reach sind auch unerklärlich. Und natürlich fehlt die Einschätzung wie sich die ESP-Maschine schlägt...
Moin, Jens M. schrieb: > Aber dann wäre die geheime Linuxelite ja keine verschworene > geheime > Linuxelite mehr.... > > Was bedeutet denn das +/- vorn, und st, t, when, poll und reach sind > auch unerklärlich. RTFM bzw. befrage eine der zahlreichen KIs... > Und natürlich fehlt die Einschätzung wie sich die ESP-Maschine > schlägt... kommt demnächst, wenn ich ein entsprechendes Python-Script, auf Basis ntplib, "vorzeigewürdig" habe! Grüße Uwe
GPS-Uhr ist natürlich interessant, sofern GPS zuverlässiger als DCF77 funktioniert, man sollte trotzdem die Plausibilität aller Empfänger gründlich prüfen und gegen Spoofing sichern, nachdem man so hört, was alles gefälscht wird. Durch Schaden wird man klüger. Ein kaputtes DCF-Impulstelegramm hat mir schon viel Ärger eingebracht.
Jens M. schrieb: > Aber dann wäre die geheime Linuxelite ja keine verschworene geheime > Linuxelite mehr.... Das muss aber geheime Unix-Elite heißen. Aus der hat sich dann die geheime Linux-Elite gebildet. Das letzte Wort des vorherigen Satzes ist wörtlich zu verstehen, die können nämlich man-pages und RFCs lesen. ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
