Forum: Mikrocontroller und Digitale Elektronik Digitales Rätsel um Windmesser Technoline TX 12


von Karsten W. (lsmod)


Angehängte Dateien:

Lesenswert?

Hallo,

ich beschäftige mich gerade mit dem immer wiederkehrenden Problem eines 
Windmessers für eine Wetterstation.

Ich konnte bei Ebay günstig den Windmesser von Technoline TX 12 und auch 
den Regensensor schiessen. Regulär gibt es ihn hier zu kaufen:
http://www.heavyweather.de/WS-3600-Windsensor-TX-12_p257_x2.htm

Der Regensensor ist kein Problem, hier wird eine Wippe mit Magnet 
einfach an einem Reed-Relais vorbeigeführt.
Der Windmesser hat jedoch schon eine aufwendigere Elektronik drinnen, 
die ich nach Möglichkeit gerne so weit es geht nutzen würde.

Den elektrischen Anschluss konnte ich Dank dem Platinenaufruck 
enträtseln.
Ich versorge die Schaltung mit 3,3V (Normalerweise 2 AA Zellen), die 
grüne Leitung habe ich mit 1K gegen Masse verbunden, damit die Schaltung 
aktiviert wird.

So weit so gut, nun kommt das Rätsel mit dem digitalen seriellen Signal, 
das auf der schwarzen Leitung ausgegeben wird.
Ich hoffte hier auf eine normale asynchrone Schnittstelle, aber dies ist 
leider nicht der Fall.

Die Windrichtung wird wohl über eine Gray-Code Scheibe in 16 Stufen 
ermittelt und über eine gemultiplexte Lichtschranke ausgelesen.
Auf dem Rad des Windmesser ist ein Magnet, dessen Wechselfeld mit einer 
kleinen Spule oder Hall-Sensor ausgelesen wird.

Je nach Windrichtung wird eine eindeutige Signal- bzw. Bit-Folge alle 4 
sek. ausgegeben.
Diese wird wahrscheinlich direkt aus dem Gray-Code generiert, ich habe 
es noch nicht genau zugeordnet.
Problematisch ist nun wenn zusätzlich Impulse über den Windmesser 
reinkommen.
Dann ergibt sich nämlich ein Mix aus beiden Signalen und sie werden 
nicht einfach hintereinander übertragen.
Man erkennt nur das die Signalfolge dann deutlich länger ist.

Zur Zeit habe ich noch keine Idee wie man dies auseinanderdröseln und 
interpretieren könnte.
Vielleicht gibt es hier einen Bitmaster mit einer Idee?

In der Datei "Oszilloskop" habe ich die Signale jeweils für die 
verschiedenen Windrichtungen aufgenommen.
Jeweils nur die Windrichtung und danach zusätzlich mit Impulsen auf dem 
Windmesser.

Wenn das Rätsel nicht gelüftet werden kann dann ist dieser Windsensor 
hier zumindest schon Mal technisch so weit es geht dokumentiert.

: Bearbeitet durch User
von Karsten W. (lsmod)


Lesenswert?

So einen Windmesser in aktuellerer Baureihe gibt es zur Zeit für 30,- 
Euronen auch Neu bei Ebay:
"WINDSENSOR 2300-15 für WS 2300 WS 2305 WS 2307 WS 2308 TECHNOLINE"
http://www.ebay.de/itm/331230368487

Ich gehe davon aus das sich am Innenleben nichts oder zumindest nicht 
viel geändert haben wird.

von Wolfgang A. (Gast)


Lesenswert?

Karsten M. schrieb:
> Die Windrichtung wird wohl über eine Gray-Code Scheibe in 32 Stufen
> ermittelt und über eine gemultiplexte Lichtschranke ausgelesen.

Die Teilung der Codierscheibe und die vier Bit sprechen eher für 16 
Stufen.

von Karsten W. (lsmod)


Lesenswert?

Ja korrekt - es sind natürlich 16 Stufen - habe ich im Beitrag 
korrigiert.
Das habe ich gedanklich mit den 32 Screenshots vom Oszi verwechselt.

von tim (Gast)


Lesenswert?

Ich habe die Screenshots jetzt mal kurz überflogen...

>Dann ergibt sich nämlich ein Mix aus beiden Signalen und sie werden
>nicht einfach hintereinander übertragen.

Wie kommst du da drauf?

>Man erkennt nur das die Signalfolge dann deutlich länger ist.

Nicht mal das ist sicher. Kann ja sein das hinten nur Nullen
übertragen werden. Und die unterscheiden sich nicht von
"keiner Übertragung".

Offenbar hast du kein STOP Bit, ca 800Baud (bitte mal genau messen!),
und vorne irgendwie die Windrichtung. Hinten vermutlich Anzahl
der Wind Impulse zwischen 2 Daten Paketen.

Zum "auseinanderdröseln":
Mach dir eine Tabelle und schreibe die Bitwerte von jedem(!)
Screenshot untereinander (LA oder Bildbearbeitung helfen).
Dann Versuch mal definierten Wind zu erzeugen. Also Frequenzgenerator
an die Schaltung anklemmen und bei gleicher Windrichtung die Frequenz
verändern. Das auch alles in die Tabelle.
Wichtig ist auch die genaue Zeit zwischen 2 Daten Paketen als
Basis für die Umrechnungen.

Dabei wird dir vermutlich schon da Protokoll ins Auge springen.

von Karsten W. (lsmod)


Angehängte Dateien:

Lesenswert?

tim schrieb:
> Ich habe die Screenshots jetzt mal kurz überflogen...
>
>>Dann ergibt sich nämlich ein Mix aus beiden Signalen und sie werden
>>nicht einfach hintereinander übertragen.
>
> Wie kommst du da drauf?

In dem man einfach Mal die Signale mit und ohne Wind betrachtet.
Direkt das 1. Beispiel S01 + S02 zeigt es doch deutlich.
Statisch scheint nur das 1. (Start-)Bit zu sein.
Danach kommt eine Impulsfolge die sich bei vorhandenem Wind eindeutig 
ändert.
Vor allem nimmt die Datenlänge bei Wind zu, aber sie verdoppelt sich 
nicht.

Ich kann bis jetzt nur sehen das die Signalfolgen ohne Wind eindeutig 
identifizierbar sind.
Sobald Wind hinzu kommt wird es auf den ersten Blick chaotisch.
Vielleicht werden die beiden Daten hier mit EOR gemischt?
Ich finde aber die Flanken der Windrichtung bei Wind nicht wieder.

Meine Frage hier ist ob jemand so etwas in der Art schon Mal gesehen hat 
oder vom Prinzip her erklären kann?

Ich stimme Dir in der weiteren Vorgehensweise zu - die habe ich mir so 
ähnlich auch schon überlegt.
Das Problem ist nur das ich zur Zeit keinen Weg sehe die "gemischten 
Signale" zu trennen.
Wie soll man die Signalfolge der Windrichtung von der 
Windgeschwindigkeit trennen?

So lange ich hier keinen Weg sehe lohnt es sich nicht viel Zeit in die 
Analyse der Signale von der Windgeschwindigkeit zu stecken.
Ich meine es ist dann wohl einfacher zu versuchen die Signale auf der 
Platine aufzutrennen. Also die Impulse der Windgeschwindigkeit nicht mit 
in den seriellen Datenstrom einfliessen zu lassen.
Das ist natürlich auch nicht einfach, vor allem weil sich die 
Kodierscheibe nicht entfernen lässt und die Rückseite der Platine somit 
nicht einfach zugänglich ist.

von Heinz (Gast)


Lesenswert?

Das ieht aus, als wenn die Geschwindigkeit zweimal übertragen wird. 
Einmal invertiert und einmal normal. Schau mal den langen high pegel, 
der im 2. Screen an zwei stellen unterbrochen wird. Genau an diesen 
stellen ist im langen low das Signal 2 mal high.

Also graycode + speed invertiert + speed noninvertiert

von Karsten W. (lsmod)


Lesenswert?

Ja - das ist schon Mal ein sehr guter Hinweis - Danke!
Das scheint auch für andere Beispiele hin zu hauen.

Ich hatte mich auch schon gefragt wofür der HC132 auf der Platine gut 
ist?
Wahrscheinlich hat man auf jeden Fall die Schmitt-Trigger Eingänge 
benötigt.
Zusätzlich kann man mit 4 NAND-Gattern viele weitere Funktionen 
abbilden:
http://de.wikipedia.org/wiki/NAND-Gatter
Wenn man möchte auch ein XOR
http://commons.wikimedia.org/wiki/File:XOR_Aufbau_NAND.svg

Ich hatte leider nicht überprüft ob der serielle Ausgang an den HC132 
angeschlossen ist.
Dafür müsste ich den Windmesser nun wieder zerlegen.

Wie auch immer - jetzt macht es Sinn diese Hypothese Mal näher zu 
untersuchen.
Ich werde Mal etwas in Excel basteln um die Bitmuster darzustellen.
Das wird etwas Zeit benötigen, denn ich bin die nächsten Tage leider 
unterwegs ...

: Bearbeitet durch User
von kutte (Gast)


Lesenswert?

vielleicht hilft dieser Thread:
Beitrag "Windsensor TX23 / TX20 von WS2x00 - Protokoll ?"
Kutte

von tim (Gast)


Angehängte Dateien:

Lesenswert?

Karsten M. schrieb:
>> Wie kommst du da drauf?
>
> In dem man einfach Mal die Signale mit und ohne Wind betrachtet.
> Direkt das 1. Beispiel S01 + S02 zeigt es doch deutlich.

Du denkst zu Kompliziert.
Warum sollte das jemand mischen? Kostet Zeit und mach die Sache
Kompliziert was viel Geld Kostet. KISS ist die Devise.
Kurze Analyse:
Wie viele Bits brauchst du um die Windrichtung zu übertragen?
4 LEDs also 4 Bit.
Wie Lange dauert 1 Bit?
Etwas mehr als 1/4 Kästchen also ca 1,3ms.
Da heißt die Windrichtung passt in etwas mehr als 1(!) Kästchen
auf deinen Screenshots.
Die Restlichen 6 Kästchen sind also irgend was anderes.
Zu Diskussion stehen:
- Startbit
- Prüfsumme
- Wind

> Statisch scheint nur das 1. (Start-)Bit zu sein.

Es ist etwas mehr. Es sind ca 6ms die 11011 übertragen.
Um das besser zu sehen habe ich die 16 Windrichtungen
mal schnell im Gimp untereinander geklebt.

> Danach kommt eine Impulsfolge die sich bei vorhandenem Wind eindeutig
> ändert.

Nö. Danach kommen 4 Bit die sich je nach Windrichtung ändern.
Kann man im Bild ja schön sehen. 1111 ist N(S01), 0000 ist NNW(S31)

Weiter rechts ist dann vermutlich eine CRC/XOR/... zu sehen als
Prüfsumme.
Und ohne die Wind-Screenshots jetzt genauer betrachtet zu haben kommt
Zwischendrin der Wind.

> Vor allem nimmt die Datenlänge bei Wind zu, aber sie verdoppelt sich
> nicht.

Wieso soll soll sie sich verdoppeln?
Wie viele Umdrehungen macht die Turbiene bei ordentlich Wind
in 4 Sekunden? Mehr als 16 oder? Also müssen nach deiner
Theorie sich die datenlänge mehr als verdreifachen.

Die Veränderung an der Länge kommt daher dass kein STOP Bit
gesendet wird. Du weißt also nicht ob rechts nichts mehr
gesendet wird oder ob nullen gesendet werden.
Da das aber geringfügig nach rechts wächst wenn Wind da ist
vermute ich da eine Simple XOR Prüfsumme. CRCxx reagiert
stärker auf einzelne veränderte Bits.


> Sobald Wind hinzu kommt wird es auf den ersten Blick chaotisch.
> Vielleicht werden die beiden Daten hier mit EOR gemischt?

Der Wind wird bestimmt nicht gemischt. Sonder eher
die Anzahl der Umdrehungen der letzten x Sekunden gezählt
und als Zahl übertragen. Sonnst bräuchten die doch keinen
Quarz auf der Platine.

> Ich finde aber die Flanken der Windrichtung bei Wind nicht wieder.

Ich glaube wenn du die mal über mein Bild legst, dann schon :-)

> Wie soll man die Signalfolge der Windrichtung von der
> Windgeschwindigkeit trennen?

Die kommen einfach hintereinander.
Bis jetzt wissen wir:
11011 4b     12bit      ?Bit
pppppRRRRwwwwwwwwwwwwPPPPP....

Das Schwierigste dürfte die Prüfsummen funktion sein...
Aber da geht mit einer Tabelle viel einfach als mit Bildern.
Versuche aber erstmal definierten Wind zu machen.
Notfalls mit einen Lüfter.

von Karsten W. (lsmod)


Lesenswert?

Schon Mal vielen Dank für Eure Analyse und Gedanken!

tim schrieb:
> Du denkst zu Kompliziert.

Das ist wahrscheinlich das Problem. :-)

> Warum sollte das jemand mischen? Kostet Zeit und mach die Sache
> Kompliziert was viel Geld Kostet. KISS ist die Devise.

Stimmt.

Der Link auf den anderen Thread ist ganz gut.
Das schaue ich mir noch im Detail an.
Da ist auch schon etwas C-Code zu finden.

Dort ist auch ein Link zu finden der auf eine kurze Beschreibung des 
Datenformats führt:
https://groups.yahoo.com/neo/groups/Lacrosse_weather_stations/conversations/topics/1672
Allerdings scheint dies eine ältere Version zu sein die noch mit einem 
Kugelschalen-Anemometer arbeitet.

Ich bin jetzt auf jeden Fall optimistisch das man das Signal auswerten 
kann und man nicht in die Schaltung eingreifen muss.
Dazu komme ich wohl aber leider erst nächste Woche ...

Es steht nun auch fest das die grüne Leitung gegen GND gezogen wird um 
gezielt eine Messung zu triggern.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?


von Karsten W. (lsmod)


Lesenswert?

Dieter Frohnapfel schrieb:
> Go..le ist Dein Freund:

Oh ja - aber nur wenn man die richtigen Suchbegriffe eingibt.
"Technoline TX 12" hatte bei mir nicht dieses Ergebnis gebracht ...
Auf "WS2300-15" muss man erst einmal kommen.
Die Wetterstation heisst "WS 3600" und gab auch karge Ergebnisse.

Aber nun sind hier ja bald alle Hinweise zusammengeführt. :-)

von Cyblord -. (cyblord)


Lesenswert?

Dieter Frohnapfel schrieb:
> Go..le ist Dein Freund:
Wer?

L..te d.e s...s sch...ben s..d d..h däm..ch.

: Bearbeitet durch User
von Dieter F. (Gast)


Lesenswert?

Karsten M. schrieb:
> Oh ja - aber nur wenn man die richtigen Suchbegriffe eingibt

Jaa ... eigentlich war der Produktname im eB..y-Link (hier im Thread) 
mein Hinweisgeber :-):

WINDSENSOR 2300-15 Signal

von Dieter F. (Gast)


Lesenswert?

cyblord ---- schrieb:
> L..te d.e s...s sch...ben s..d d..h däm..ch

Tut mir leid für Dich!

von Cyblord -. (cyblord)


Lesenswert?

Dieter Frohnapfel schrieb:
> cyblord ---- schrieb:
>> L..te d.e s...s sch...ben s..d d..h däm..ch
>
> Tut mir leid für Dich!

Gleichfalls, du bist sogar zu dumm richtig dämlich zu schreiben:
Wie bitte würde denn dein
> eB..y

ausgeschrieben aussehen? eBaay oder was?

von Dieter F. (Gast)


Lesenswert?

cyblord ---- schrieb:
> Gleichfalls, du bist sogar zu dumm richtig dämlich zu schreiben

Wieder mal auf Krawall gebürstet? Wenn schon nichts konstruktives, dann 
wenigstens rumnöhlen? Wenns Dir Spaß macht ...

von Cyblord -. (cyblord)


Lesenswert?

Dieter Frohnapfel schrieb:

> Wieder mal auf Krawall gebürstet? Wenn schon nichts konstruktives, dann
> wenigstens rumnöhlen? Wenns Dir Spaß macht ...

Wie und ganz ohne Punkte im Wort? Naja wenigtens am Ende kommen ein 
paar.

Ich bin doch nicht schuld nur weil du dich mit deiner verkorksten 
Schreibweise lächerlich machst. Also lass es nicht an mir aus sondern 
versuch halt mal Eigennamen und Marken und Firmen auszuschreiben. Es 
wird sicher kein SWAT Team deine Tür aufbrechen Ehrlich.

von Karsten W. (lsmod)


Lesenswert?

KINDERGARTEN !

Euch passiert es bestimmt nie das Ihr etwas sucht und nicht findet.
Oder erst später findet nachdem man lange selber geforscht hat ...

Ich bin jetzt erst Mal weg - benehmt Euch in der Zwischenzeit ;-)

von MitLeser (Gast)


Lesenswert?

Karsten M. schrieb:
> Allerdings scheint dies eine ältere Version zu sein die noch mit einem
> Kugelschalen-Anemometer arbeitet.

Hallo das NEUE Anemometer ist das mit den Kugelschalen und das alte das 
mit dem Flügelrad.

Gruß

von Karsten W. (lsmod)


Lesenswert?

Letzte Woche bin ich leider noch nicht dazu gekommen fortzusetzen, da 
noch ein anderes Projekt Priorität hatte.

Ich bin guter Dinge das dieser Link mit Arduino-Code zielführend ist:
http://forum.abacom-online.de/phpBB3/viewtopic.php?p=13864&sid=0be8c4333bb764c788a49049f4d8dccd#p13864

Jetzt baue ich erst einmal eine kleine Platine mit einem ATMega8 auf und 
teste ob es so funktioniert wie beschrieben.

MitLeser schrieb:
> Hallo das NEUE Anemometer ist das mit den Kugelschalen und das alte das
> mit dem Flügelrad.

Interessant. Die Version mit den Kugelschalen scheint aber nicht von dem 
Händler angeboten zu werden.

Welche Version ist letzten Endes besser?
Kann es sein das die Kugelschalen empfindlicher sind?

Natürlich müsste man hier dann auch noch wissen ob sich an dem 
Schnittstellenformat etwas geändert hat und wie der Umrechnungsfaktor 
für die Kugelschalen sind?

: Bearbeitet durch User
von MitLeser (Gast)


Lesenswert?

Der Windmesse mit dem Anemometer ist empfindlicher , egal aus welcher 
Richtung der Wind kommt drehen sich die Schalen.
Beim Flügenrad muss sich der Windmesser erst in die Richtung drehen aus 
der der Wind kommt.

Gruß

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
Noch kein Account? Hier anmelden.