NTP-Server mit Raspi und EM406a

16.10.2018

Ich habe herausfinden wollen, ob es mir mit ein paar zu Hause herumliegenden Teilen möglich wäre, eine Satellitenuhr zu bauen, die ich dann im Heimnetz als NTP-Server einsetzen könnte.

NTP-Server Ich hatte vor, diese Installation auf dem sowieso schon vorhandenen Pi vorzunehmen, der bei mir als PiHole gegen Werbung arbeitet und als Lauscher Flugzeugtransponderdaten sammelt und damit immer eingeschaltet ist.

Die untenstehenden Links haben mir geholfen - und hier nochmal ein spezieller Dank an SparkFun, die auch für Produkte, die bereits rausgefallen sind Dokumentationen und Datenblätter online weiterhin bereitstellen - denn seien wir ehrlich: Als ich das 406A-GPS-Modul gekauft habe, war ich noch wesentlich jünger als ich es jetzt bin. (Wenn ich mir durchlese, dass nicht einmal die Leute bei Sparkfun wissen, was der Nachfolger 506 eigentlich genau an seiner Schnittstelle liefert bin ich aber froh, das ältere Modell zu besitzen...)

Als ich die Links alle studiert hatte, begann ich zunächst, die Hardware zusammenzustecken, nötige Software zu installieren und das Gesamtsystem nach und nach in Betrieb zu nehmen: Als erstes war der Empfang der GPS-Botschaften dran: Mein Modul war so konfiguriert, dass Textbotschaften übermittelt wurden, die ich nach Umstellen der Baudrate am Raspi dann auch direkt sehen konnte.

Zu diesem Zeitpunkt habe ich das Modul noch einmal kurz entfernt und den Arduino benutzt, um es so zu konfigurieren, dass es auch wirklich alle von mir gewünschten Botschaften übermittelt - ging so einfach schneller und außerdem hatte ich bei meiner Schaltung vor, sparsam zu sein: ich wollte nur einen Draht fürs Empfangen vom Modul investieren und den zum Senden ans Modul weglassen.

Als das alles funktionierte, ging es an die Einkopplung des PPS-Signals: Das wurd kurz gesagt dazu gebraucht, dem Raspi zu sagen, wann genau die Sekunde, die in den GPS-Botschaften drin steht auch wirklich begonnen hat. Ist ein bisschen die Entsprechung des alten Radiokonzepts "Beim letzten Ton des Zeitzeichens ist es 12 Uhr." Dieses Signal wird an einen GPIO-Pin des Raspi angeschlossen und löst dort einen Interrupt aus, der im Zusammenspiel mit der installierten Software für die hohe Genauigkeit der Uhr sorgt.

Das sorgte für unvorhergesehene Probleme: Das Signal wurde nicht erkannt. Glücklicherweise hatte ich genau damit bereits gerechnet - die Beschreibung des Signals sah mir im Datenblatt schon nicht sehr vertrauenswürdig aus. Daher baute ich aus einem guten alten 555er eine Schaltung, die das Signal verlängerte (rund 0,3 Sekunden) und als Nebeneffekt bekam ich dazu auch einen anständigen Pegel. Diese Schaltung erweiterte ich noch um eine Negation des Eingangssignals: der 555 wird mit einer fallenden Flanke am Eingang gestartet, der GPS-Empfänger sendet an PPS aber einen positiven Peak. Zu guter Letzt noch eine LED integriert um die Pulse kontrollieren zu können - fertig.

Die Schaltung ist einfach - ich werde sie trotzdem demnächst nochmals in KiCad entwerfen und die Schaltung dann auch hier veröffentlichen - nunmehr müssen Bilder des Gesamtkunstwerks in einer Pappkiste und Details vom prototypischen Steckbrettaufbau der Impulsanpassung reichen (am Ende des Artikels).

Aktualisierung vom 16. Oktober 2018

Inzwischen existiert ein GitHub-Repository, das das fertige KiCad-Projekt für die kleine Anpassungsschaltung enthält.

Artikel, die hierher verlinken

DNSSEC fähiger Resolver auf dem Pi

13.08.2022

Nachdem ich meinen Raspi immer weiter zum Home-Server ausbaue, versuche ich auch immer mehr, mich vor den Versuchen zu schützen, in das einzudringen, was ich für meine Privatsphäre halte. Nun habe ich einen weiteren Schritt in dieser Richtung vollzogen:

GPS-Logger abgestaubt

26.02.2019

Nachdem ich bereits über andere Ideen zur Benutzung meines schon ein wenig in die Jahre gekommenen GPS-Empfängers berichtet habe, habe ich ihn nun noch einmal seinem ursprünglichen Zweck zugeführt.

Satelliten-Layer

19.01.2019

Ich habe im Zuge der letzten erfolgreichen Mars-Landung ein Thema wiederbelebt, das schon länger auf meiner Platte geschlummert hat:

ESP8266 und ZigBee

19.01.2019

Ich habe neulich bereits über einen Fund in meiner Bastelkiste berichtet und jetzt hatte ich wieder eine Idee, die sich meiner Ansicht nach in den anstehenden langen dunklen Nächten zu untersuchen lohnen würde: Will man einen ESP 8266 schlafen legen, ist das sehr einfach - man kann ihn aufwecken, indem man an einem seiner Beine zieht.

NTP-Server mit Raspi und EM406a II

02.12.2018

Nachdem ich die Hardwareanpasungen für mein altes GPS-Modul hier bereits als Grundlage für meinen eigenen Atomzeit-GPS-NTP-Server beschrieben und die Grundlagen der Hardware in ein GitHub-Repository gepackt habe, habe ich nun den letzten Schritt vollzogen.

Gedanken zu Zeit, NTP, GPS und DIY

21.09.2018

Nachdem ich meinen eigenen Atomzeit-GPS-NTP-Server in Betrieb genommen habe, habe ich mir Gedanken gemacht, warum die käuflich zu erwerbenden einen so hohen Anschaffungswiderstand haben.

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Fährnisse des Buildprozesses unter Windows

    17.07.2019

    Nachdem ich begonnen hatte, mich mit der Beschleunigung der Berechnung des Mandelbrot-Fraktals unter Zuhilfenahme der Shadereinheiten in Graphikkarten zu beschäftigen und erste Erfolge feiern konnte, wollte ich das mal auf einer richtigen Graphikkarte ausprobieren...

    Weiterlesen...

Neueste Artikel

  • Datenvalidierung UTF8 mit BiDi-Steuerzeichen (TrojanSource 2.0)

    Ich bin heute nochmal inspiriert worden, weiter über die Trojan Source Vulnerability nachzudenken. Meiner Meinung nach bestehen hier noch Probleme - speziell bei Nutzereingaben oder Daten, die über externe Schnittstellen ampfangen werden.

    Weiterlesen...
  • OpenStreetMap Navi als Docker-Container

    Ich habe die auf OpenStreetMap basierende OpenSource Navigationslösung Graphhopper in einen Docker-Container gepackt und als neuestes Mitglied in meinem Docker-Zoo willkommen geheißen.

    Weiterlesen...
  • SQL-Aggregatfunktionen in SQLite als BeanShell-Scripts

    Ich habe neulich über eine Möglichkeit berichtet, SQLite mittels der sQLshell und Beanshell-Skripten um SQL-Funktionen zu erweitern. In diesem Artikel versprach ich auch, über eine solche Möglichkeit für Aggregatfunktionen zu berichten.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.