Raspberry Pi Dcf77 Pollin

  • Hallo Zusammen,


    hat schon jemand den Raspberry Pi 3 mit dem DCF77 Modul von Pollin zum laufen gebracht?
    Ich habe dein Eindruck, dass die alten Tutorials dafür nicht mehr so ganz funktionieren!?

    Vielleicht weiß ja jemand was zu tun ist.

    Danke u Gruß.

  • Hallo!
    Dieses Spezielle Modul kenn ich nicht. Ich hab aber neulich mal mit einem alten Modul getüftelt...
    Lt Datenblatt arbeitet das Modul mit 3,3 V und liefert auch 3,3V am Ausgang (meines war open drain - das funktioniert dann anders). Du musst also nur das Modul an 3,3V und GND anschließen und den Data-Pin an einen GPIO (mit 1k Widerstand). Dazu PON an GND (optional mit Widerstand 4,7k oder 10k), damit das Empfangsteil sicher aktiv ist. Die Impulse solltest du dann am GPIO schon mit einer Schleife erkennen können... Der Rest ist Software - am besten mit Interrupt auf das Signal reagieren, Signallänge erfassen und dann die Wert berechnen... Ist nicht so schwer.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Einmal editiert, zuletzt von Gnom (3. August 2017 um 10:26)

  • Lass mir etwas Zeit, ich bastel gerade ein Tutorial.

    Das Ergebnis vorweg, es funktioniert, ich habe 2 der Uhren am laufen.

    Das meiste hat mein Vorschreiber schon geschrieben,
    nur nicht, das das Ausgangssignal invertiert werden muss.

    MfG

    Jürgen

  • Super, vielen Dank für das Feedback.

    Ja über ein Tutorial würde ich mich natürlich sehr freuen...


    Zitat von "Jürgen Böhm" pid='293892' dateline='1501774594'


    Lass mir etwas Zeit, ich bastel gerade ein Tutorial.

    Das Ergebnis vorweg, es funktioniert, ich habe 2 der Uhren am laufen.

    MfG,
    Korbi

  • Jürgen Böhm
    3. August 2017 um 23:48

    Auf die Schnelle...

    MfG

    Jürgen

  • Vielen Dank, Jürgen.

    Ich habe die Anleitung durchgearbeitet. Leider läuft die Uhr noch nicht.
    Nun bin ich auf der Fehlersuche.

    Die Uhr synchronisiert sich wie man hier sieht:


    Hier sieht man aber, dass die Signale beim ntp Server nicht ankommen:


    Wäre dankbar um Tips und Hilfe.

    Gruß,
    Korbi

    Einmal editiert, zuletzt von korbi (2. September 2017 um 15:53)

  • Was steht in Deiner /etc/ntp.conf?

    Das ist der Ausschnitt meiner conf-Datei:

    Den Teil mit "time1 0.869573 stratum 1" solltest Du erstmal weglassen.
    Ich habe insgesamt 4 NTP-Server nach dieser Anleitung aufgesetzt, das erste Mal hatte ich in einem Mediawiki mitgeschrieben.
    Danach hatte ich den Artikel nur in den "Code" für dieses Forum übersetzt.

    MfG

    Jürgen

    Nachtrag: http://www.netzmafia.de/skripten/hardw…CF77/index.html
    Hier steht auch Testprogramme.
    Und noch ein Link: https://www.issb.de/mw/index.php/T…Mikroconcroller

  • Das steht in meinem /etc/ntp.conf File.

  • Das was mich etwas stutzig macht, das in Deinem syslog nicht so etwas zu finden ist:

    Code
    Sep  2 18:33:54 raspi12 ntpd[581]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 53 bits
    Sep  2 18:33:54 raspi12 ntpd[581]: PARSE receiver #0: interval for following error message class is at least 00:01:00
    Sep  2 18:33:54 raspi12 ntpd[581]: PARSE receiver #0: FAILED TIMECODE: "--##-#-#--##-##--D--S--4-12-P---81-p-2-----241--8-12" (check receiver configuration / wiring)
    Sep  2 18:34:00 raspi12 ntpd[581]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 7 bits
    Sep  2 18:42:00 raspi12 ntpd[581]: PARSE receiver #0: interval for following error message class is at least 00:01:00
    Sep  2 18:42:00 raspi12 ntpd[581]: PARSE receiver #0: FAILED TIMECODE: "-###-##-#---###--D--S-2----4p---?1-p-2-----241--8-124-1---" (check receiver configuration / wiring)
    Sep  2 18:43:00 raspi12 ntpd[581]: PARSE receiver #0: FAILED TIMECODE: "--#----#---?--#--D--S12----4P---81-p-2-----241--8-124-1---" (check receiver configuration / wiring)

    Hast Du den Raspi direkt an der Uhr angeschlossen oder (wie in der Raspberry Geek beschrieben) über einen Inverter (74HC04 bzw. 74LVC1G14GV)?
    https://www.raspberry-pi-geek.de/ausgaben/rpg/2…m-1-zeitserver/ Seite 2

    Nicht das das "clock_sync" nur die Synchronisation nur das "syncen" mit den Internetserver meint.

    Hinter dem "timecode" sollte das DCF-Signal in der Zeile:

    Code
    device="RAW DCF77 CODE (Conrad DCF77 receiver module)", timecode=,


    so etwas stehen:

    Code
    timecode="-##-###-#-#------D--S12-----p-----2P-2-----241--8-124-1---P"


    Das steht z.Z. bei mir:

    Bei Dir steht: "associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,"
    Bei mir steht dort: "associd=0 status=0215 leap_none, sync_lf_radio, 1 event, clock_sync,"


    Kriegen wir schon hin,

    Jürgen

    Edit: Link korrigiert

  • Okay, Hardwaredebuggen, dazu bauen wir jetzt ein hochpräzises Meßgerät:

    Man nehme eine Leuchtdiode, einen 2,2kOhm Widerstand und löte die an einer Stelle zusammen.
    Dann testest Du, welcher Pin an GND kommt, der andere kommt dann an "+".
    Egal wie Du das zusammengelötet hast, in einer Richtung leuchtet die LED. Merk Dir, welcher Pin die GND-Seite ist.

    Dann die GND-Seite an Pin7 des HC04 und wenn Du die Schaltung aus der Raspberry Geek genommen hast die "+"-Seite auf Pin 2.
    Die LED sollte jetzt im Sekundentakt blinken. Sollte das funktionieren, wiederholst Du das
    mit Pin 9 (GND) auf der GPIO-Leiste und Pin 10 (RxD). Hier sollte es auch blinken.
    Melde Dich wenns funktioniert.

    MfG

    Jürgen

    P.S.: Anders habe ich es früher auch nicht gemacht.

  • Ok die Uhr läuft nun. Ich vermute irgendwas an der seriellen Schnittstelle war falsch im Config File.

    Jedenfalls habe ich jetzt auch einen timecode und Synchronisation im Log File mit
    der passenden Bezeichnung dazu.

    Danke an Jürgen für die nette Hilfe.

    Mfg,
    Korbi

  • Hallo zusammen hallo Jürgen,

    ich versuche schon seit längerer Zeit den DCF77 von Conrad auf Rpi 3 b+ Stretch Lite zum laufen zu bringen aber ich scheitere am ntpd. Im ntp.log bekomme ich durchgehend einen

    parse: convert_rawdcf Start Bit / Parity Check failed

    Angeschlossen ist der dcf an UART Pin 10 ( GPIO 15) . Timecode unter ntpq-c cv -c as -c rv bekomme ich aber kein Sync Clock.

    Wenn mit jemand helfen könnte, wäre ich sehr dankbar!

  • Nachtrag:

    bei einem ntpq -c as -c cv -c rv -p 127.0.0.1. bekomme ich:

    associd=0 status=0012 1 event, clk_bad_format,

    device=“RAW DCF77 CODE (Conrad DCF77 receiver module)“,

    timecode=“###############RADMLS1248124P124812P1248121241248112481248P??“,

    poll=16, noreply=0, badformat=1, baddata=0, fudgetime1=292.000,

    stratum=0, refid=DCFa, flags=0, refclock_time=““,

    refclock_status=““, refclock_format=“RAW DCF77 Timecode“,

    refclock_states=“*BAD FORMAT: 00:16:39 (100.00%); running time: 00:16:39″

    associd=0 status=c016 leap_alarm, sync_unspec, 1 event, restart,

    version=“ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1)“,

    processor=“armv7l“, system=“Linux/4.14.79-v7+“, leap=11, stratum=16,

    precision=-21, rootdelay=0.000, rootdisp=14.985, refid=INIT,

    reftime=00000000.00000000 Thu, Feb 7 2036 7:28:16.000,

    clock=df9929b1.f8e7e923 Fri, Nov 16 2018 12:34:09.972, peer=0, tc=3,

    mintc=3, offset=0.000000, frequency=0.000, sys_jitter=0.000000,

    clk_jitter=0.000, clk_wander=0.000

    remote refid st t when poll reach delay offset jitter

    ==============================================================================

    GENERIC(0) .DCFa. 0 l – 64 0 0.000 0.000 0.000

    de.pool.ntp.org .POOL. 16 p – 64 0 0.000 0.000 0.000

    ptbtime1.ptb.de .SHM. 1 u 18 64 377 25.746 3607947 2.743

    ptbtime2.ptb.de .PTB. 1 u 7 64 377 26.466 3607946 3.083

    ptbtime3.ptb.de .PTB. 1 u 14 64 377 26.190 3607947 2.874

    Beim: tail -f -n 100 /var/log/syslog | grep ntpd

    Nov 16 12:36:37 ccop117 ntpd[523]: parse: convert_rawdcf: start bit / parity check FAILED for „###############RADMLS1248124P124812P1248121241248112481248P??“

    Heißt also:

    # alle Bits sind angekommen, aber der Paritäts-Check ist fehlgeschlagen

    Frage: Was mache ich da falsch?

    Wenn ihr mir helfen könntet werde ich euch durch aus dankbar, da das Projekt sich schon zwei Wochen lang zieht und ich komm einfach nicht weiter

  • Heißt also:


    # alle Bits sind angekommen, aber der Paritäts-Check ist fehlgeschlagen

    Heißt eher: Irgendwas ist angekommen, aber das sieht nicht nach DCF77 aus, könnte Bluetooth sein.

    Sieh mal im Beitrag #9 wie das aussehen sollte und mach Dich mal über die serielle Schnittstelle am 3B+

    mit Debian Stretch schlau.

    Hast Du die serielle Schnittstelle und Bluetooth abgeschaltet?

    Erstmal mittels sudo raspi-config die serielle Schnittstelle abschalten

    und in der /boot/cmdline.txt wird noch dieser Teil entfernt: console=serial0,115200
    Dann wieder eingeschaltet:in der /boot/config.txt

    Code
    enable_uart=1
    dtoverlay=pi3-miniuart-bt

    Neu booten und dann sieh Dir die Ausgabe nochmal an.

    MfG

    Jürgen

    der jetzt die Bettkarte abstempelt

  • Hallo Jürgen,

    sudo raspi-config die serielle Schnittstelle abschalten = ist das erste was ich tat.

    /boot/cmdline.txt wird noch dieser Teil entfernt: console=serial0,115200 = der Teil ist nicht vorhanden.

    /boot/config.txt = dtoverlay=pi3-miniuart-bt - ergänzt.

    ntpq -p

    remote refid st t when poll reach delay offset jitter

    ==============================================================================

    GENERIC(0) .DCF. 0 l - 16 0 0.000 0.000 0.000

    de.pool.ntp.org .POOL. 16 p - 16 0 0.000 0.000 0.000

    -rondra.lf-net.o 192.53.103.108 2 u 12 16 377 20.886 -0.080 0.110

    -kashra.auction 192.168.100.15 2 u 16 16 377 34.073 -1.381 3.707

    -spacys.de 36.224.68.195 2 u 2 16 377 22.795 0.915 0.481

    +tethys.hot-chil 131.188.3.222 2 u 1 16 377 22.226 0.248 1.093

    -maggo.info 124.216.164.14 2 u 11 16 377 22.122 0.280 0.227

    *stratum2-3.ntp. 129.70.130.71 2 u 10 16 377 29.272 0.530 0.118

    +25000-021.cloud 192.53.103.108 2 u 8 16 377 20.573 0.317 0.099

    -vmhost-external 131.188.3.220 2 u 7 16 377 20.794 -0.026 0.129

    root@ccop117:/home/pi# ntpq -c as -c cv -c rv

    ind assid status conf reach auth condition last_event cnt

    ===========================================================

    1 49588 801b yes no none reject clock_alarm 1

    2 49589 8811 yes none none reject mobilize 1

    3 49590 1314 no yes none outlier reachable 1

    4 49591 131a no yes none outlier sys_peer 1

    5 49592 132a no yes none outlier sys_peer 2

    6 49593 142a no yes none candidate sys_peer 2

    7 49594 1314 no yes none outlier reachable 1

    8 49595 161a no yes none sys.peer sys_peer 1

    9 49596 1414 no yes none candidate reachable 1

    10 49597 1314 no yes none outlier reachable 1

    associd=0 status=0012 1 event, clk_bad_format,

    device="RAW DCF77 CODE (Conrad DCF77 receiver module)", timecode="-?-",

    poll=43, noreply=0, badformat=1, baddata=0, fudgetime1=292.000,

    stratum=0, refid=DCF, flags=0, refclock_time="<UNDEFINED>",

    refclock_status="", refclock_format="RAW DCF77 Timecode",

    refclock_states="NOMINAL: 00:00:03 (0.44%); *BAD FORMAT: 00:11:09 (99.55%); running time: 00:11:12"

    associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,

    version="ntpd 4.2.8p10@1.3728-o Sat Mar 10 18:03:33 UTC 2018 (1)",

    processor="armv7l", system="Linux/4.14.79-v7+", leap=00, stratum=3,

    precision=-21, rootdelay=29.653, rootdisp=6.086, refid=129.70.132.32,

    reftime=dfa0ce82.dd3e77c6 Thu, Nov 22 2018 7:43:14.864,

    clock=dfa0cea5.f2ef834c Thu, Nov 22 2018 7:43:49.948, peer=49595, tc=4,

    mintc=3, offset=0.406035, frequency=-7.719, sys_jitter=0.302440,

    clk_jitter=1.197, clk_wander=0.534

    tail -f -n 100 /var/log/syslog | grep ntpd

    Nov 22 07:32:30 ccop117 ntp[460]: Starting NTP server: ntpd.

    Nov 22 07:32:30 ccop117 ntpd[482]: proto: precision = 0.625 usec (-21)

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen and drop on 0 v6wildcard [::]:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen and drop on 1 v4wildcard 0.0.0.0:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen normally on 2 lo 127.0.0.1:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen normally on 3 eth0 192.168.43.25:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen normally on 4 lo [::1]:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listen normally on 5 eth0 [fe80::a64f:f86c:b177:96c4%2]:123

    Nov 22 07:32:30 ccop117 ntpd[482]: Listening on routing socket on fd #22 for interface updates

    Nov 22 07:32:32 ccop117 ntpd[482]: Soliciting pool server 188.68.36.203

    Nov 22 07:32:33 ccop117 ntpd[482]: Soliciting pool server 80.151.151.109

    Nov 22 07:32:34 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:32:34 ccop117 ntpd[482]: PARSE receiver #0: interval for following error message class is at least 00:01:00

    Nov 22 07:32:34 ccop117 ntpd[482]: PARSE receiver #0: FAILED TIMECODE: "-" (check receiver configuration / wiring)

    Nov 22 07:32:34 ccop117 ntpd[482]: Soliciting pool server 178.63.9.212

    Nov 22 07:32:35 ccop117 ntpd[482]: Soliciting pool server 138.201.64.208

    Nov 22 07:32:37 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:32:49 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:33:17 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:33:34 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:33:36 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:34:14 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:34:23 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:34:46 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:34:58 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:35:11 ccop117 ntpd[482]: Soliciting pool server 78.46.253.198

    Nov 22 07:35:12 ccop117 ntpd[482]: Soliciting pool server 129.70.132.32

    Nov 22 07:35:13 ccop117 ntpd[482]: Soliciting pool server 159.69.4.181

    Nov 22 07:35:14 ccop117 ntpd[482]: Soliciting pool server 193.30.120.245

    Nov 22 07:35:16 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 2 bits

    Nov 22 07:35:34 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:35:39 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:35:48 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:36:01 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:36:04 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:36:13 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 3 bits

    Nov 22 07:36:36 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:36:44 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:36:49 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:37:03 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:37:24 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:37:39 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits

    Nov 22 07:37:47 ccop117 ntpd[482]: parse: convert_rawdcf: INCOMPLETE DATA - time code only has 1 bits


    Ich bin der Meinung das beim Rpi 3b+ die serielle Schnittstelle "ttyAMA0" für Bluetooth ist und die "ttyS0" die ehmalige "ttyAMA0" ersetzt hat.

    Ja der Parity Check vom ntpd ist verschwunden aber jetzt bekomme ich keinen Timecode von der dcf77 platine.

    MfG

    s4nt4

  • Kommentiere ersteinmal den de.pool.ntp.org in der ntp.conf aus, wegen der Übersichtlichkeit.

    Und dann könntest Du dir einen Gefallen tun:

    In der schwarzen Leiste über diesen Edit-Fenster befindet sich dieser Button: </>.

    Diesen klickst Du an kopierst dann sämtliche Ausgaben des RPis in dieses Fenster,

    das sieht dann etwa so aus:

    Und schon wir das Ganze etwas übersichtlicher und man kann das auch lesen, bzw. auswerten.

    Hast Du auch mal versucht die Antenne zu drehen? Ich weiß nicht, in welcher Richtung bei Dir Mainflingen ist.

    Auch ein Standortwechsel könnte helfen.

    Für diesen Fall habe ich eine ältere Funkuhr ähnlich dieser: https://www.conrad.de/de/funk-uhrwer…900-641871.html

    Wenn man die Uhr resetted, zeigt sie die Empfangsstärke (0-5) an, fast ideal zur Standortsuche.

    MfG

    Jürgen

  • Ich habe hier noch einen Link:

    http://www.raspberry-pi-geek.de/Magazin/2014/0…guage%29/ger-DE

    Er ist zwar von 2014, aber die Hardwareanbindung und die NTP Einstellungen sind nach wie vor gültig.

    Lediglich die serielle Schnittstelle hat sich beim 3B+ geändert.

    Insbesondere Abbildung 3 auf der 2. Seite würde ich Dir empfehlen. Es fiel mir erst später ein, da meine Uhren bereits seit

    mehreren Jahren laufen.

    MfG

    Jürgen

    Edit: Dieser Link könnte Dir auch weiterhelfen:

    http://www.netzmafia.de/skripten/hardw…CF77/index.html

  • Hm, ich hab mal spaßhalber nach DCF Modulen gesucht, da gibt es eines, das ein DCF Signal Invertiert und auch nicht Invertiert anliegen hat.

    Sowas würde den 74HC0 sparen oder für Elektronik Laien interessant sein.

    Ist das "DCF Empfänger Modul 641138" von Conrad und auch eines der teuren.

    Plus, Minus und das entsprechende DF-Signal, alles was man braucht.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!