Veröffentlicht am Ein Kommentar

Eine Funkuhr selbst bauen? Bauprojekt DCF77

Eine Funkuhr selbst bauen? Bauprojekt DCF77 bei ELKOBA

Kurz nach Aschaffenburg wird nördlich der Autobahn A3 das Antennenfeld der Sendeanlage DCF77 sichtbar. Mitte der 2000er Jahre konnte ich die Sendeanlage dort bereits besichtigen. Seit längerem entstand in mir der Wunsch, selbst eine Funkuhr zu bauen. Die Sendeanlage DCF77 in Mainflingen feiert im Jahr 2023 seinen 50. Geburstag. Seit Jahrzehnten ist der Zeitzeichensender wichtig für präzise Zeit in unzähligen Funkuhren. Das Bauprojekt mit DCF77 Ist ideal um Auszubildende und Interessierte an Hardware, Software, HF-Technik und schrittweise Fehlersuche heranzuführen. Durch die zunehmende Digitalisierung sowie Störungen durch billige Elektronik ergeben sich analoge Probleme. Die Suche dieser analogen Probleme wird jedoch in Studium oder Ausbildung oft nicht mehr ausreichend vermittelt. Der Bau einer Funkuhr mit DCF77 ist dafür ideal.

Der Sender DCF77 in Mainflingen bei Frankfurt

Sendeanlage DCF77 Mainflingen

Bei der Sendeanlage DCF77 handelt sich um einen Langwellensender auf der Frequenz 77,5kHz mit 50kW Sendeleistung. Das mag in Zeiten teurer Energie hoch erscheinen. Doch es werden damit ca 100 Millionen Menschen zeitgleich und zuverlässig mit dem Zeitsignal versorgt. Im Radius von 500km ist das DCF77-Signal per Bodenwelle sicher empfangbar. Das Sendesignal ist eines der langsamsten Digitalsendungen überhaupt. Pro Sekunde wird in AM lediglich ein Bit übertragen. Binnen einer Minute hat jede Sekunde als Bit eine feste Aufgabe. Auf der Internetseite der ptb ist die Sendeanlage DCF77 sehr gut dokumentiert (link). Neben der Zeit werden zudem Informationen zu Wetter- und Notfallsituationen ausgestrahlt.

Bild DCF77-Signal am Oszilloskop
So sieht das Signal DCF77 am Oszilloskop aus

Wie sieht das DCF77-Signal aus?

Das Signal aus Mainflingen ist amplitudenmoduliert. Jede Sekunde wird ein Bit übertragen. Der Sender senkt dazu seine Sendeleistung ab. Wenn die Absenkung 100ms dauert (0,1 Sekunde) dann entspricht dies einer logischen 0. Wenn die Absenkung 200ms dauert (0,2 Sekunde) dann entspricht dies einer logischen 1. Über 60 Sekunden ergeben sich so 60 Bit. Fügt man diese Bits zusammen so ergibt sich daraus eine Information über Wetter und Zeit. Wir befassen uns hier mit der Dekodierung der Zeit. Die Dekodierung der Wetterdaten würde den Umfang dieses Projekts übersteigen. Bei Interesse können die Wetterdaten live auf der homepage https://www.dcf77logs.de verfolgt werden. Mit einem Oszilloskop kann man sehr gut sehen, wie das DCF77-Signal aussieht. Das Bild oben zeigt eine Messung über zwei Sekunden mit Signal 0 und 1. Als Messpunkt verwenden wir den Ausgang des DCF-Moduls.

Der Funkuhr Schaltplan DCF77 mit Empfänger und Display

Funkuhr DCF77 selber bauen: Hardware

DCF77 Empfangsmodul von ELV

Nachdem wir den Schaltplan erstellt haben beginnen wir mit dem Projekt. Als Hardware genügt ein Arduino Uno, ein LCD-Display und ein separates DCF77-Modul. Ich verwende das DCF77-Modul von ELV. Es ist zuverlässig und preiswert. Beim DCF-Modul von ELV ist zu beachten, dass es eine negative Logik verwendet. Zudem setze ich ein handelsübliches LC-Display mit 16×2 Zeichen ein. Während der Testphase wurde die Hardware aus dem USB-Port mit 5V versorgt.

Funkuhr DCF77 selber bauen: Software

LC-Display mit Anzeige der Länge des Signals

Nach längerer Recherche fand ich einen passenden Code im Internet (link). Mit leichter Modifikation war der Code schnell an mein LC-Display sowie die negative Logik des DCF77-Moduls angepasst. Als Techniker ist mir die Messung von Signalen wichtig. Daher habe ich in die Startphase meiner selbst gebauten Funkuhr eine Anzeige der empfangenen Signallänge integriert. Je näher die Werte an den Soll-Werten des Senders liegen desto besser ist der Empfang. Mit der richtigen Auswahl der passenden Variablen war auch das zügig erledigt.

Fehlersuche und Entstörung

Funkuhr DCF77 entstören

Der Probeaufbau lief relativ stabil. Daher überführte ich die Hardware rasch auf eine selbst entwickelte Platine, die bereits für unsere CO2-Messgeräte verwendet wird. Wie beim Arduino Uno kommt dort ebenfalls ein Atmega 328 PU zum Einsatz. Gespeist habe ich den selbst gebauten DCF77-Empfänger zuerst über ein beliebiges USB-Netzteil. Damit endete mein schneller Fortschritt. Denn es fand plötzlich keine Synchronisation mehr statt. Bei der Fehlersuche wurde mir klar, dass das USB-Netzteil die Ursache war. Preiswerte Schaltnetzteile erzeugen oft Störungen, die locker bis zur Nutzfrequenz des Zeitzeichensenders auf 77,5kHz reichen. Ich ersetzte das USB-Netzteil gegen ein MeanWell GST18E05-P1J. Nun fand die Baugruppe wieder das Zeitsignal. Aber erst nach langer Wartezeit. Zudem kam es bei meinem Bauprojekt DCF77 zu Gangabweichungen von mehreren Minuten.

Gangabweichung und Synchronisation optimieren

Ich erkannte, dass es zu Problemen mit den internen PullUp-Widerständen kam. Somit schaltete ich am DCF77-Modul einen 1k-Widerstand zwischen Signal und +Ub. Anschließend fügte ich einen 100nF-Kondensator zwischen +Ub und GND ein um die Versorgungsspannung sauber zu halten. Die Leitung zwischen Controller und DCF77-Modul wurde zusätzlich verdrillt. Mit jeder Maßnahme wurde die Gangabweichung besser. Ein Problem in der aktuellen Software ist, dass ohne gültiges Signal die zuletzt gültige Minute als Schleife wiederholt wird. Sehr hilfreich bei Fehlersuche und Ausrichtung der Antenne war die Anzeige der Signallänge im Display. Ist die angezeigte Signallänge wesentlich von 100ms bzw. 200ms entfernt, dann ist das Signal schlecht. Je näher die Signalzeit an der Sollzeit ist desto besser ist das System abgestimmt. Zudem half ein separater Kontrollempfänger, der das Signal auf 77,5kHz hörbar macht. Zu achten ist auf die richtige Polarisation und richtige Ausrichtung der Ferritantenne sowie auf den Abstand zu Störquellen.

Der optische Feinschliff

So kann man bei DCF77 den Empfang verbessern: abblocken, verdrillen, filtern.

Zum Finale habe ich die Controller-Platine mit Display in ein Gehäuse gepackt. Besonders die Position der Antenne ist wichtig. Am besten wird sie abgesetzt von digitalen Schaltungen und möglichst hoch montiert. Vorbild waren für mich die alten Mittelwellenradios mit drehbarer Ferrit-Antenne. Nun lässt sich die Ferrit-Antenne gut Richtung Mainflingen ausrichten. Die symmetrische Antennenleitung zum DCF77-Modul wurde sinnvoll gekürzt. Sowohl das DCF77-Modul als auch die Ferrit-Antenne montierte ich sauber aufgeräumt mit etwas Heißkleber in der drehbar montierten Box. Als Netzteil kommt ein MeanWell GST18E05-P1J zum Einsatz.

Fertigstellung und Fazit

Eine Funkuhr selbst bauen? Bauprojekt DCF77 bei ELKOBA
Eine Funkuhr selbst bauen. Bauprojekt DCF77 bei ELKOBA

Die selbst gebaute DCF77 Funkuhr synchronisiert bei korrektem Aufbau binnen weniger Minuten präzise. Dank der Anzeige der Signalzeit fällt die Fehlersuche und die Ausrichtung der Antenne sehr leicht. Die Gangabweichung beträgt weniger als eine Sekunde. Interessant war, wie wichtig ein gutes, störfreies Netzteil ist. Elektronische Systeme werden immer komplexer und digitaler. Daher ist es sinnvoll regelmäßig auf klassische Techniken und Methoden der Fehlersuche zurückzublicken. So lassen sich fachübergreifend Störungen und Probleme beheben. Der eigene Aufbau einer Funkuhr mit DCF77 eignet sich gut für Einsteiger und zeigt das praktische Zusammenspiel zwischen Hardware, Software und klassischer Funktechnik. Der verwendete Arduino ist mit seiner Aufgabe bei Weitem nicht ausgelastet und bietet somit Raum für weitere Experimente und Erweiterungen. Denkbar sind Zeitschaltfunktionen oder mit zusätzlichem Aufwand sogar ein NTP-Server um für das Computernetzwerk eine exakte Zeit bereitzustellen.

Ein Gedanke zu „Eine Funkuhr selbst bauen? Bauprojekt DCF77

  1. Hallo
    Ein schönes Projekt.
    Lediglich der Empfänger von ELV ist nicht so gut.
    Funktioniert hat bei mir eine alte Schaltung aus Elrad 7/85, die ein kleiner Superhet Empfänger ist und sich sogar selbst abstimmen lässt.
    Mit freundlichen Grüßen
    Thomas,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert