DCF77 Empfang - Signal detektiert, aber nicht gut genug

Hallo,

irgendwie komme ich nicht weiter.
Ich habe das Pollin DCF77 Modul. Erst habe ich es aus den 3,3V des Arduinos versorgt, jetzt hängt es sogar an einer eigenen Litiumbatterie und ist mit 470nF KerKo und 47µF Elko gepuffert.
An den PC habe ich das Ganze mit einem 5m USB Kabel angeschlossen und in der Nähe des Fensters platziert. Den Ferritstab habe ich auch schon mehrmals von längs auf quer gedreht.
Der PC ist ca. 4m weg, der Fernseher 7m
Auf Pin 13 die interne LED zeigt mir den Sekundentakt und damit erst mal überhaupt einen Empfang an. Der Sketch Arduino Scope aus Udos Lib zeigt mir, das die Phasenlage und das Signal prinzipiell passen sollten. Habe digitalen Eingang und keine Invertierung gesetzt (aber auch mit anderen Einstellungen funzt es net!)
Trotz vielversprechendem Bild vom Scope empfängt The_Clock mit den selben Einstellungen nichts Verwertbares (nur useless Pakete).
So langsam gehen mir die Ideen aus, wo ich noch "dran drehen könnte" :blush:
Bekomme ich in Dresden (Elbtal) überhaupt gescheiten Empfang?
Die Funkuhren bekommen es doch auch gebacken! :stuck_out_tongue_closed_eyes:

Gruß Gerald

Trenne mal den Arduino vom PC und versorge ihn mit einer 9V-Blockbatterie. Bei mir zeigte er dann einen gewaltigen Unterschied und konnte das Signal plötzlich deutlich detektieren. Sobald eine Masse-Verbindung zu PC existierte, erschien wieder nur Müll. Das Debugging wird damit natürlich unheimlich schwierig, aber wenigsten bekam ich sogar hier in der Schweiz einen vernünftigen Empfang hin.

Hm, andere Idee... wenn ich schon nicht galvanisch die Verbindung zum PC trennen kann (in der Testphase wegen ser. Schnittstelle), dann kann ich doch mit einem Transistortreiber die IR-LED eines Optokopplers ansteuern und dann mit dem Fototransistor auf den Digitaleingang gehen. Durc die 3V aus der Li Betterie habe ich auch komplette galvanische Trennung des Empfangsmoduls.
Einen Versuch ist's wert :smiley:

nix_mehr_frei:
Trotz vielversprechendem Bild vom Scope empfängt The_Clock mit den selben Einstellungen nichts Verwertbares (nur useless Pakete).

Was ist "The_Clock"?

nix_mehr_frei:
Bekomme ich in Dresden (Elbtal) überhaupt gescheiten Empfang?

Zur Beurteilung des Empfangs lasse mal diesen Beispiel-Sketch laufen, den Thijs Elenbaas seiner DCF77 Library zum Testen beigefügt hat:
https://github.com/thijse/Arduino-Libraries/blob/master/DCF77/Examples/DCFPulseLength/DCFPulseLength.pde

Poste mal einen Ausschnitt, was Dein Modul so auf Serial ausgibt!

Wenn der DCF77 Empfang "nicht funktioniert" gibt es ja im Prinzip zwei Möglichkeiten:

  1. Das Signal aus dem DCF-Empfänger ist zu schlecht
  2. Der Sketch, der das Signal decodieren soll, ist zu schlecht

Je nachdem muss dann bei der Fehlerbehebung angesetzt werden.

Die Entfernung Dresden-Mainflingen sind unter 500 km, das sollte für DCF kein prinzipielles Problem sein, die angegebene Reichweite ist "2000 km im Umkreis um Mainflingen".

Ein großes Problem sind meiner Erfahrung nach auch Amok-laufende Schaltnetzteile.

Ich hatte hier bspw. ein Acer-Laptop-Netzteil, welches eingesteckt das 77,5kHz Signal völlig und gänzlich blockiert hat.
Dies sogar stark genug, um aus 5m Entfernung meinen eigenen Prüfsender zu überlagern.

Also evtl. mal so Zeug wie Handy/Notebook usw. abstöpseln.

Ich verwende die Blinkenlight lib von Udo, die ist, was die Störresistenz betrifft, wohl das Beste, was es gibt. Ich habe jetzt einen MB104 Optokoppler zur Potentialtrennung drin und teste gerade... Eine LED am Ausgang des Optokopplers blinkt schon mal und der Arduino blinkt auch, das er was empfängt. Lassen wir ihm mal noch ein bisschen Zeit...
Wenn die Potentialtrennung nichts bringt, teste ich nochmal einen anderen Sketch und eine andere Lib.

Gruß Gerald

Wenn die Sekunden Led's plausibel blinkt, und die Sekundenlücke passt dann sollte auch ein synch zustande kommen.
So meine Erfahrung.
Ich kenne die Lib von Udo schon ist bestimmt auch das Beste was in diesem Bereich gibt, ich würde trotzdem mal eine "normale" DCF Lib testen.

So, nun habe ich auch den von jurs verlinkten, alternativen Sketch mit zugehöriger lib getestet. Mit durchgehender Masseverbindung habe ich in affenartiger Geschwindigkeit durchlaufende Werte. Mit Potentialtrennung sieht es besser aus, auch wenn an Pin 13 die LED fast Dauerlicht zeigt. Blöderweise kann ich aus dem ser. Monitor keinen Text rauskopieren :astonished:
Darum ein Screenshot mit einem Ausschnitt der Werte.

Gruß Gerald

nix_mehr_frei:
So, nun habe ich auch den von jurs verlinkten, alternativen Sketch mit zugehöriger lib getestet. Mit durchgehender Masseverbindung habe ich in affenartiger Geschwindigkeit durchlaufende Werte.

Eine Zykluslänge von 20ms entspricht der Netzfrequenz von 50 Hertz.
Du hast da ein kräftiges Netzbrummen auf Deinem Signal!

Wo kommt Dein Netzbrumm her?
Was ist das für ein PC: Desktop oder Laptop/Notebook-PC?
Wenn Laptop: Macht es einen Unterschied mit Netzteil-Betrieb oder Akku-Betrieb bei abgestöpseltem Netzteil?

Und kontrolliere mal die USB-Leitung: Liegt vielleicht eine netzspannungsführende 230V-Leitung einmal quer über dem USB-Kabel? Oder hast Du die DCF-Antenne direkt neben einer Steckdose oder Netzkabel platziert?

nix_mehr_frei:
Blöderweise kann ich aus dem ser. Monitor keinen Text rauskopieren

Welches Betriebssystem? Unter allen Windows-Versionen: Einfach den zu kopierenden Text im seriellen Monitor mit gedrückter linker Maustaste markieren, dann mit Tastenkombination Strg-C in die Zwischenablage kopieren.

Habe Win7 und nach dem markieren kan bei rechter Maustaste kein Kopiermenü.
Ist kein Laptop, sondern ein PC. Ich kann höchstens noch versuchen, statt der USB-Frontbuchse, die quer durch Gehäuse läuft, gleich einen Ausgang am MoBo oder an der USB 3 Karte zu nehmen. Außerdem werde ich mal den Spannungsteiler vom Optokoppler von 10K auf 1K verringern.
In der Nähe der Antenne ist keine benutzte Steckdose. In ca. 2,5m Entfernung sind 6 LED- und Sparlampen. Und 5m Weiter unterm Tisch sind mindestens 3 Steckerschaltnetzteile.

Gruß Gerald

Hrr, keine Besserung! Habe noch einen 47µ Elko über den Spannungsteiler zwischen Masse und +5V drübergenagelt. Werde mal zum großen blauen C und deren DCF-Modul testen. Wobei das von Pollin ja besser (empfindlicher sein soll) vielleicht isses ja zu empfindlich :roll_eyes:

Also ich hab mit dem Teil von Pollin bis jetzt nur gute Erfahrungen gemacht. Hast du in der Nähe eine Leuchtstoffröhre oder eine Energiesparlampe in Betrieb? Die Dinger stören eigentlich alles was von Infrarot-Übertragungen bis Mittelwelle geht, vor allem aber Wellenlängen ab 1000m.

Langwelle: 30kHz - 300KHz ---> DCF 77kHz :frowning:

An der Entfernung liegt es nicht das Signal ist in halb Europa gut zu empfangen wie z.b. in Kenley, London

http://home.btconnect.com/brettoliver1/Master_Clock_MK2/Master_Clock_MK2.htm

Gruß

Ah endliche eine Herausforderung für meine Library. Würdest Du bitte mit dem Teil hier: http://blog.blinkenlight.net/experiments/dcf77/dcf77-scope/ 60 Minuten des Signals aufzeichnen und mir zur Verfügung stellen?

Noch eine Frage am Rande: was für einen Arduino benutzt Du? Einen mit Quarz oder mit Resonator? Siehe auch: http://blog.blinkenlight.net/experiments/dcf77/dcf77-library/ Abschnitt: "Hardware Incompatibilities".

Was den guten Empfang in London angeht: in London ist das Signal eher bescheiden. Brett nutzt deshalb mittlerweile auch meine Library :slight_smile:

Genau und macht zu Recht Werbung dafür!!! 8)

Hallo Udo,

aber gerne doch. Ist ja ein winwin Situation. Ich bekomme eventuell mein DCF ans Laufen und du kommst an Felddaten :wink:
Eine Stunde habe ich bisher nicht laufen lassen. Eher so 20-30 min.
Es ist ein Duemilanove (der hat noch ein DIL-IC) und er hat einen Quarz! Das zum Scope erwähnte Fehlerbild des Wanderns auf der X-Achse habe ich nicht. Die Phasenlage habe ich auch gut sehen können und auf Grund der Ergebnisse vom Scope dann invertiert.
Zum Einen bin ich gerade erfolgreich vom Conrad zurück, zum Anderen ist es Tag und die ganzen Sparlampen sind aus. Ich habe an der Decke ein HV-Schienensystem mit gemischter Bestückung Sparlampen und Power-LED. Vielleicht sind ja auch da die Übeltäter, sind ja alles Schaltnetzteile, die da Störnebel produzieren.

Gruß Gerald

PS. hab mir mal den USB-Opto-Isolator von Olimex in der Bucht unter Beobachtung gesetzt. Ist ja ein recht nützliches Dingen, was immer mal wieder recht hilfreich sein kann

Stimmt, im Moment brauchst du eigentlich keine Lichtquellen. Manchmal sind es auch irgendwelche Geräte auf die man nicht sofort kommt. Vor allem die bei denen sogar im ausgeschalteten Zustand das Schaltnetzteil unter Spannung steht :0

Bitte 60 Minuten mit Störnebel falls sich das einrichten laesst.

nix_mehr_frei:
Hrr, keine Besserung! Habe noch einen 47µ Elko über den Spannungsteiler zwischen Masse und +5V drübergenagelt.

Dein DCF-Signal schwabbelt, nicht unbedingt die Stromversorgung des Moduls.

Aufgrund der extrem kurzen Störimpulse im Takt der Netzspannung würde ich mal in Richtung mangelhaft funkentstörter Phasenanschnittsteuerungen und Dimmer im Haus suchen. Also Dimmer (Licht-Dimmer) und Phasenanschnittsteuerungen (Aquarien-/Terrarienheizung? Umwälzpumpe der Heizung?) , die Funkstörungen verursachen, weil die Teile entweder aus einer Zeit vor der EMV-Richtlinie stammen, Kondensatoren aufgrund des Alters kaputtgegangen sind oder die aus dubiosen China-Quellen stammen und kein CE-Zeichen tragen. Einwandfreie Dimmer mit CE-Zeichen und mehr als zwei Meter Abstand zum DCF-Modul sollten eigentlich problemlos sein.

nix_mehr_frei:
Werde mal zum großen blauen C und deren DCF-Modul testen. Wobei das von Pollin ja besser (empfindlicher sein soll) vielleicht isses ja zu empfindlich :roll_eyes:

Das mit der Empfindlichkeit halte ich für ein Gerücht. Die Pollin-Module haben einen eingebauten Tiefpass-Filter, der das Signal verzögert, aber viele Störungen bereits im Modul ausfiltert, die vom Conrad-Modul ungefiltert zum Datenausgang durchgeleitet werden. Dadurch sind Pollin-Module meist sogar mit der allerdürftigsten Auswertelogik auswertbar, während Conrad-Module eine hochwertige Auswertelogik erfordern.

Anbei habe ich mal einen Test-Sketch gemacht, der im laufenden Betrieb zwischen “ungefilterten” und “gefiltertem” Signal umgeschaltet werden kann, durch Eingabe von “U” oder “F” im Seriellen Monitor. Falls Du wenigstens mit gefiltertem Signal (F) auswertbare DCF-Impulse bekommst, sollte Udos Auswerteprogramm völlig problemlos funktionieren.

Vielleicht möchtest Du mal den Unterschied ungefiltert/gefiltert beim Signalempfang testen:

#define DCFPIN 8   // Pin für die DCF-Daten
#define LED 13     // Pin für eine Kontroll-LED, 13= Board LED
#define INPUTMODE INPUT_PULLUP // für Pollin-Modul INPUT, für Conrad-Modul INPUT_PULLUP
boolean filterActive=false;
unsigned int hiPulse, loPulse;

boolean filteredState(boolean curVal)
// Lowpass filter 
#define N 36
{
  static boolean filteredValue;
  static byte lowPassVal, lowPassMod;
  int i= (N-1)*lowPassVal + curVal*100+lowPassMod;
  lowPassVal= i/N;
  lowPassMod= i%N;
  if (lowPassVal>=67 && !filteredValue) filteredValue=true;
  if (lowPassVal<=33 && filteredValue) filteredValue=false;
  return filteredValue;
}

boolean pulseComplete(byte curSignal)
{
  static boolean lastLogicalSignal;
  static unsigned long switchTime;
  boolean result=false;
  if (curSignal != lastLogicalSignal)
  {
    long now=millis();
    if (curSignal) 
    {
      loPulse=now-switchTime;
      result=true;
    }
    else hiPulse=now-switchTime;
    switchTime=now;
    lastLogicalSignal=curSignal;
  }
  return result;
}

void handleSerial()
{
  if (Serial.available())
  {
    char c=Serial.read();
    if (c=='F' or c=='f') filterActive=true;
    if (c=='U' or c=='u') filterActive=false;
  }
}


void setup() 
{
  Serial.begin(9600);
  Serial.println();
  Serial.println("DCF Pulse Demo by 'jurs' for German Arduino Forum");
  Serial.println("Enter 'U' or 'F' in the Serial Monitor to switch between unfiltered/filtered pulses");
  Serial.println();
  Serial.println("Filter\tHIGH\tLOW\tPULSE");
  pinMode(DCFPIN,INPUTMODE);
  pinMode(LED,OUTPUT);
}


void loop() 
{
  byte state;
  state=digitalRead(DCFPIN);
  digitalWrite(LED,state);
  if (filterActive) state=filteredState(state);
  if (pulseComplete(state))
  {
    if (filterActive) Serial.print("F\t"); else Serial.print("U\t");
    Serial.print(hiPulse);
    Serial.print('\t');
    Serial.print(loPulse);
    Serial.print('\t');
    Serial.println(hiPulse+loPulse);
  }
  handleSerial();
  delay(1);
}

Ansonsten ist in Fensternähe heutezutage “GPS” eine Alternative zum Empfangen der aktuellen Zeit. Die DCF-Empfangsmodule sind heute so preiswert und so leistungsfähig geworden, dass sie zumindest in Fensternähe von Südost- bis Südwestlage völlig problemlos die Zeit empfangen und preislich dabei kaum teurer als ein DCF-Modul sind. Zum Empfangen der GPS-Zeit wird auch nur ein einziges Satellitensignal benötigt, also nicht mindestens 3 wie für eine GPS-Position, so dass insbesondere in den Abendstunden (bessere Empfangsbedingungen) sogar mitten im Raum die Zeit per GPS empfangen werden kann, wenn man nicht gerade Rollläden vor den Fenstern herunterläßt. GPS sendet nämlich nicht nur die Position, sondern auch die Zeit, und die Zeit ist sogar dann empfangbar, wenn die Empfangsbedingungen für die Positionsbestimmung zu schlecht sind.

Das mit der Empfindlichkeit halte ich für ein Gerücht. Die Pollin-Module haben einen eingebauten Tiefpass-Filter, der das Signal verzögert, aber viele Störungen bereits im Modul ausfiltert, die vom Conrad-Modul ungefiltert zum Datenausgang durchgeleitet werden. Dadurch sind Pollin-Module meist sogar mit der allerdürftigsten Auswertelogik auswertbar, während Conrad-Module eine hochwertige Auswertelogik erfordern.

Wenn das so ist, dann sind die Conrad Module besser für meine Library als die Pollin Module.

Warum? - Wenn man zwei Filter hintereinander hängt, dann "faltet" man die Filterkerne. Da mein Filterkern ziemlich nahe an einem optimalen Filterkern ist wird die Situation durch die zusätzliche Faltung verschlechtert. Optimalerweise sollte das DCF77 Modul für meine Library eine möglichst hohe Bandbreite aufweisen. Trotzdem würde ich erwarten, daß in Deutschland das Modul ziemlich egal ist.

@nix_mehr_frei: wann bekomme ich ein Logfile?

Sorry, gestern war ich noch mit Freunden auf'm Mittelaltermarkt und danach wars dunkel und ich hatte wieder die Lampen an. Und die Katz' wollte ich nicht allein mit meinem "Spielzeug" lassen :wink:
Ich bin aber noch auf eine ganz andere potentielle Störquelle gestoßen.
Ich wohne an einer Bahnlinie und 20-30m vor meinem Fenster geht die Fahrleitung lang. Vielleicht koppelt die magnetisch ein? :astonished:
Werde gleich alles aufbauen und mal loggen...

Gruß Gerald