Reverse Engineering für externe Datenaufzeichnung

Alles, was mit Elektronik zu tun hat.

Moderator: Moderatoren

CD-ROM-LAUFWERK
Illumina-Mitglied
Beiträge: 581
Registriert: Sonntag 5. Januar 2014, 23:05

Reverse Engineering für externe Datenaufzeichnung

Beitrag von CD-ROM-LAUFWERK »

Um zwei kapazitive Feuchtigkeitssensoren auf mein Erdsubstrat zu kalibrieren habe ich selbiges getrocknet und dann mit einer definierten Menge Wasser versehen. Da ich nicht kiloweise trockene Erde mit verschiedenen Wassermengen anrühren will, belasse ich es bei einem und tracke einfach den Trocknungsprozess.
Dazu muss nun nicht nur der Sensor sondern ebenfalls das Gewicht aufgezeichnet werden. Da ich ungern tage bzw. wochenlang mehrmals täglich das Gewicht protokollieren will musste hier eine automatische Lösung her.
Also habe ich mich daran gemacht und meine Mettler PB1502 überprüft. Eine direkte Datenausgabe über RS232 ist leider nicht vorhanden.
Erstmal habe ich geschaut, wo das Messignal aus der Wägeeinheit selbst kommt. Dieses Signal habe ich dann auf dem PCB weiter verfolgt. Es ging in einen LM393 Comparator und wurde dort als PWM-Signal ausgegeben. Über den Duty-cycle bzw. die Pulsdauer kann der Prozessor damit letzlich das Gewicht bestimmen.
Nun konnte ich also 3 Sachen machen:
1. Die Spannung direkt von der Wägeeinheit auslesen und vom ADC des Arudino, mit dem ich das alles mache, bestimmen. Leider kann ein Arduino nicht ohne weiteres Signale über 5V verarbeiten. Ich werde da mal mit besseren ADC (16 und 24bit) weitere Versuche unternehmen und die Limitierungen der Wägezelle sowie der Spannungsrefferenz ausloten. So sieht es aus, wenn man die Waage in Schwingung versetzt und dieses Signal misst:
Bild

2. Das PWM-Signal direkt auslesen. Dazu habe ich 3 Kabel (Masse, +5V von der Spannungrefferenz und das Signal) reingelötet und durch die leere RS232-öffnung rausgeführt. Dies war leider deutlich schlechter möglich, als ich dachte. Bei 16MHz Taktung des Arduino hätte ich mit einer zeitlichen Auflösung von unter 1µs gerechnet, tatsächlich waren es schritte in ~100 µs und damit deutlich zu ungenau um die geringen Variationen zu messen. Damit wären nur sehr grobe Auflösung machbar gewesen. Es könnte natürlich an meiner Software gelegen haben, dass diese einfach die Hardware nicht völlig ausnutzten kann. Meine Programmierfähigkeiten sind nicht besonders gut.
Blieb noch die Möglichkeit das PWM-Signal durch einen Tiefpassfilter zu schicken und dann mit dem 10bit ADC zu lesen (wie 1. aber <5V). Dazu habe ich einen 1MOhm und einen 1kOhm Widerstand in serie und nach den Widerständen jeweils einen 1µF Kondensator zwischen Signal und Masse. Der Ausgang ist dann die durchschnittliche Spannung des PWM-Signals, welche linear mit der Pulsweite ansteigt. Ich komme mit dem System nun auf eine Auflösung von etwa 0,1g und eine Richtigkeit von etwa 1g. Die Präzision lässt sich dabei einfach durch Mittelwertbildung maximieren. So logge ich nun das Gewicht für den Versuchsaufbau.

3. Den Ausgang des Prozessors (zum Display) auslesen. Dies war mein erster Ansatz und würde ein externes Kalibrieren usw. unnötig machen. Ich habe also versucht das Signal am Oszilloskop zu dekodieren. Leider ist mein Wissen um die gängigen Übertragungsverfahren begrenzt und ich habe es nicht geschafft es zu dekodieren. Ein Datenblatt zum verwendeten Prozessor (in 3 Zeilen: TI WTC201_ME-62072 - CF72610 - 5AADTXW) habe ich nicht gefunden, daraus hätte ich erfahren können wie die Signale ausgegeben werden. Vermutlich ist das eine Spezialanfertigung für Mettler (daher wohl auch ME im Namen). Für den LCD-treiber (TM1723) konnte ich zwar ein Datenblatt finden, jedoch nur auf chinesisch. Da sieht es irgendwie nach seriell aus, aber auch hier komme ich an meine Grenzen. Da könnte ich später aber weitere Versuche starten, wenn die Waage wieder "frei" ist.


Es handelt sich also um eine Mischung als reverse engineering und "eigenem engineering" um die bestehende Hardware zu erweitern oder potentiell sogar deutlich zu verbessern. Spannende Sache die die Stunden nur so wegsaugt. Zuletzt habe ich so mein kürzlich erworbenes, auf 0,0001K auflösendes, Thermometer um einen Datenlogger erweitert mit dem ich eine Kolonne durchmessen will. In dem Zusammenhang: Hat jemand eine Idee für ein Testgemisch das sowohl relativ schwer zu trennen ist (wie etwa Ethanol-Wasser) als auch leicht Konzentrationsbestimmungen zulässt? Optimal würde ich die Konzentrationen per Brechungsindex verfolgen, eine einfachere und schnellere Methode sehe ich nicht. Daher ist Ethanol-Wasser nicht so gut geeignet, der Brechungsindex ändert sich da nur recht wenig über die Konzentration (grob 0,001 pro Prozent).
Benutzeravatar
eule
Illumina-Mitglied
Beiträge: 822
Registriert: Mittwoch 8. Januar 2014, 00:37
Wohnort: europa
Kontaktdaten:

Beitrag von eule »

Hmm Zucker wäre vllt. eine Möglichkeit und die Bestimmung über den Drehwinkel.
sonst vllt. irgendeine Säure oder Base und die genaue Messung bei geringen Konzentrationen über den PH
Unendliche Vielfalt in unendlicher Kombination.

Agressiv und feindselig, boshaft, manipulierend und hinterhältig, hämisch, überkritisch, herrschsüchtig und sinnlos brutal, das sind die Primärtugenden, die zusammengenommen Menschen vor allen anderen Spezies auszeichnen.
Benutzeravatar
NI2
Illumina-Moderator
Beiträge: 5967
Registriert: Dienstag 19. August 2008, 09:33

Beitrag von NI2 »

Da er augenscheinlich rektifizieren will sind vermutlich Zweikomponenten-Lösungsmittelgemische mit Siedepunkten im Bereich 60-130 °C gesucht wobei die Siedepunkte recht nach beieinander liegen und sie keine Azeotrope bilden.
IOC

There is no sadder sight in the world than to see a beautiful theory killed by a brutal fact. [T. Huxley]
The pursuit of knowledge is hopeless and eternal. Hooray! [Prof. H. J. Farnsworth]
Trust the rhythm and the rhyme of your own heartbeat. [C. Douglas]
Benutzeravatar
eule
Illumina-Mitglied
Beiträge: 822
Registriert: Mittwoch 8. Januar 2014, 00:37
Wohnort: europa
Kontaktdaten:

Beitrag von eule »

ooops, sorry, was hab ich denn da abgesondert...

hmm bildet Ameisensäure ein Azeotrop mit Wasser? Eine Destillation damit könnte etwas knifflig werden, wg. der Zersetzlichkeit am Siedepunkt
Unendliche Vielfalt in unendlicher Kombination.

Agressiv und feindselig, boshaft, manipulierend und hinterhältig, hämisch, überkritisch, herrschsüchtig und sinnlos brutal, das sind die Primärtugenden, die zusammengenommen Menschen vor allen anderen Spezies auszeichnen.
Benutzeravatar
NI2
Illumina-Moderator
Beiträge: 5967
Registriert: Dienstag 19. August 2008, 09:33

Beitrag von NI2 »

Das macht es doch aber auch nicht besser. Wenn es um ne Saubere Rektifikation geht will man ja, dass alles heil bleibt und nicht, dass sich alles zersetzt und sich die Zusammensetzung durch Zersetzung ständig ändert.
IOC

There is no sadder sight in the world than to see a beautiful theory killed by a brutal fact. [T. Huxley]
The pursuit of knowledge is hopeless and eternal. Hooray! [Prof. H. J. Farnsworth]
Trust the rhythm and the rhyme of your own heartbeat. [C. Douglas]
Glaskocher
Illumina-Mitglied
Beiträge: 2531
Registriert: Dienstag 27. Oktober 2015, 22:17
Wohnort: Leverkusen

Beitrag von Glaskocher »

Ich werfe mal das System "Benzol-Fluorbenzol" in die Runde. Die Siedepunkte liegen nur ca. 5°C auseinander und es handelt sich um ein "nichtazeotropes System". Mit einer 50cm-Spaltrohrkolonne und 1:100 Abnahme:Rücklauf kommte ich in einem Lauf eine deutliche Abreicherung an Fluorbenzol erzielen, mußte aber die Proben per GC vermessen, um aus kleiner Probe das Ergebnis zu bekommen. Um auf eine in der NMR nicht mehr nachweisbare Konzentration zu kommen dauert es mehrere iterative Destillationsläufe. Nachteil des Systems ist, daß die Brechzahlen nur um 0,03 verschieden sind.

Für die Ermittlung des Drehwertes braucht man meistens recht große Probenmengen. Mir fiel da ein, daß man Säuren auch titrieren kann, und dazu Einwaagen von ca. 2g ausreichen. Als zweite Komponente könnten Ketone tauglich sein, da sie recht wenig mit Carbonsäuren reagieren und thermisch stabil sind.

Bei Benzol-Cyclohexan ist die Brechzahl um 0,08 unterschiedlich, die Siedepunkte um ca. 1°C auseinander.


Für andere Systeme empfehle ich, das Werk "Aceotropic Data" zu konsultieren. Das Werk bietet Information über zigtausende Systeme, ob sie Azeotrope bilden oder sich "klassisch" verhalten. Das Werk ist nach der Summenformel des "kleiner" sortierten Stoffes sortiert.


Insgesamt wird die Auswahl eines geeigneten Systems vermutlich in eine Fleißarbeit ausufern, wenn die Konzentrationsbestimmung ebenfalls automatisierbar sein soll.
Benutzeravatar
eule
Illumina-Mitglied
Beiträge: 822
Registriert: Mittwoch 8. Januar 2014, 00:37
Wohnort: europa
Kontaktdaten:

Beitrag von eule »

NI2 hat geschrieben:Das macht es doch aber auch nicht besser. Wenn es um ne Saubere Rektifikation geht will man ja, dass alles heil bleibt und nicht, dass sich alles zersetzt und sich die Zusammensetzung durch Zersetzung ständig ändert.
Nu, doch, schon, senke den Druck auf z.B. 100 mbar und du bekommst feine unzersetzte Ameisensäure, ein Azeotrop ist trotzdem nicht vorhanden und die Siedepunkte liegen nicht allzu weit auseinander.
Der Vorschlag kam von mir, weil Wasser und Ameisensäure wirlich sehr nah beieinander liegen, vom Siedepunkt, leicht verfügbar sind und die Ameisensäure sowohl durch die Acidität wie mittels Redoxreaktion leicht nachzuweisen/bestimmen ist. Außerdem fällt bei Ameisensäure kein besonders zu entsorgendes Material an.

Was den ersten "Vorschlag" betrifft, sorry, da stand ich wohl irgendwie ziemlich neben mir. Das war schlicht Dummfug. Keine Ahnung, wo das herkam.

Ansonsten kann ich mich nur @Glaskocher anschließen, nur fallen da evtl. halt "komplizierte" Abfälle an.
Unendliche Vielfalt in unendlicher Kombination.

Agressiv und feindselig, boshaft, manipulierend und hinterhältig, hämisch, überkritisch, herrschsüchtig und sinnlos brutal, das sind die Primärtugenden, die zusammengenommen Menschen vor allen anderen Spezies auszeichnen.
Benutzeravatar
NI2
Illumina-Moderator
Beiträge: 5967
Registriert: Dienstag 19. August 2008, 09:33

Beitrag von NI2 »

eule hat geschrieben:Nu, doch, schon, senke den Druck auf z.B. 100 mbar und du bekommst feine unzersetzte Ameisensäure, ein Azeotrop ist trotzdem nicht vorhanden und die Siedepunkte liegen nicht allzu weit auseinander.
Der Vorschlag kam von mir, weil Wasser und Ameisensäure wirlich sehr nah beieinander liegen, vom Siedepunkt, leicht verfügbar sind und die Ameisensäure sowohl durch die Acidität wie mittels Redoxreaktion leicht nachzuweisen/bestimmen ist. Außerdem fällt bei Ameisensäure kein besonders zu entsorgendes Material an.

Was den ersten "Vorschlag" betrifft, sorry, da stand ich wohl irgendwie ziemlich neben mir. Das war schlicht Dummfug. Keine Ahnung, wo das herkam.

Ansonsten kann ich mich nur @Glaskocher anschließen, nur fallen da evtl. halt "komplizierte" Abfälle an.
Arghhh... einer von uns beiden steht wohl auf dem Schlauch, entweder sehe ich es zu eng oder du liegst irgendwie immernoch daneben. Wenn er schreibt, dass er ein "cooles" Thermometer hat und ein schwer zu trennendes Gemisch trennen will geht es dabei darum ein Gefühl für die Rektifikation oder das Thermometer zu bekommen, weder darum irgendwo irgendwas rauszuholen noch irgendwas aufzureinigen, sondern lediglich um den Prozess selber. Vakuum ist schlecht, ganz einfach weil man es nicht so konstant genug halten kann um genau Temperaturen zu entsprechenden Zusammensetzungen zu ermitteln und zweitens weil man dann alles umrechnen (was in einem Zweiphasensystem nicht einfacher wird) muss und einen Haufen apparativen Mehraufwand hat und im schlimmsten Fall nicht mal eine Referenz/Literaturangabe, wenn es bei seiner Zielsetzung darum geht evtl. ein Phasendiagramm aufzunehmen etc... Aber am besten lassen wir ihn einfach nochmal zu Wort kommen, ansonsten klingt Glaskochers Vorschlag schon ganz gut.
IOC

There is no sadder sight in the world than to see a beautiful theory killed by a brutal fact. [T. Huxley]
The pursuit of knowledge is hopeless and eternal. Hooray! [Prof. H. J. Farnsworth]
Trust the rhythm and the rhyme of your own heartbeat. [C. Douglas]
CD-ROM-LAUFWERK
Illumina-Mitglied
Beiträge: 581
Registriert: Sonntag 5. Januar 2014, 23:05

Beitrag von CD-ROM-LAUFWERK »

Zur Berechnung/Refferenz der binären Stoffgemische nutze ich eine Software unserer Uni, in der kostenlosen Version gibt es da schon einige Stoffe zur Auswahl wo ich mir entsprechend die Siedediagramme rausholen kann und mit den Messwerten auch die Trennstufenzahl berechnen kann.
Sachen wie irgendwas exotisches, zersetzliches, mit Vakuum oder "Brechungsindex schwer messbar" fällt automatisch raus. Das wären viel zu viele Variablen bzw. Aufwand. Der Brechungsindex wird nicht automatisiert gemessen, das wäre wohl etwas zu teuer. Das ist das, was ich händisch dabei machen werde alle paar dutzend mL.
Methanol, Ethanol, Propanol, Aceton, Toluol, Wasser, n-Hexan... das sind so die Sachen, die ich mir vorstelle. Spontan denke ich an Butanol/Toluol.

Das ist aber alles nur eine kleine Nebenfrage (OT).
Wenn es so weit ist werde ich das ganze in der Software genauer betrachten und mir was hübsches aussuchen.
Glaskocher
Illumina-Mitglied
Beiträge: 2531
Registriert: Dienstag 27. Oktober 2015, 22:17
Wohnort: Leverkusen

Beitrag von Glaskocher »

Spontan denke ich an Butanol/Toluol.
Das scheint von den Siedepunkten (7°C Differenz) und von der Brechzahldifferenz (ca. 0,1 Einheiten) schon nahe am Optimum zu liegen. Ich müßte nur demnächst mal in Azeotropic Data nachsehen, wie das System dort kommentiert wird.

Ein anderes interessantes System könnte Orthokohlensäuretetramethylester/Toluol sein. Der Orthoester siedet nur drei Grad höher, hat aber einen merklich niedrigeren Brechungsindex als Toluol (0,11 Einheiten).

Halogenierte Kohlenwasserstoffe scheinen einen recht hohen Brechungsindex zu haben, sind aber aus anderen Gründen problematisch.
CD-ROM-LAUFWERK
Illumina-Mitglied
Beiträge: 581
Registriert: Sonntag 5. Januar 2014, 23:05

Beitrag von CD-ROM-LAUFWERK »

Habs grad mal geprüft: Bildet ein Azeotrop... also irgendwo mitten drin, nicht wie bei Ethanol.
Mit Essigsäure-Toluol gibt es auch eins.
Menthanol-Ethanol hat nur 0,03 Differenz im Brechungsindex. Machbar aber schwierig.
(M)Ethanol, Aceton und Chloroform ebenfalls Azeotrope in jeder sinnvollen Variante.
Bild
CD-ROM-LAUFWERK
Illumina-Mitglied
Beiträge: 581
Registriert: Sonntag 5. Januar 2014, 23:05

Beitrag von CD-ROM-LAUFWERK »

Punkt 2 wurde nun überarbeitet und eine bessere Pulsweitenmessung hat jetzt die Auflösung auf mind. die selbe Auflösung der Waage, also 0,01g, verbessert.
Reosir
Illumina-Mitglied
Beiträge: 156
Registriert: Samstag 23. Juni 2018, 11:13
Wohnort: Süddeutschland

Beitrag von Reosir »

CD-ROM-LAUFWERK hat geschrieben:Punkt 2 wurde nun überarbeitet und eine bessere Pulsweitenmessung hat jetzt die Auflösung auf mind. die selbe Auflösung der Waage, also 0,01g, verbessert.
Finde dieses Auslesen der Messwerte eine spannende Möglichkeit. Gibt ja viele Geräte, wo das standardmäßig nicht geht, aber sehr schön wäre.
Hast die bessere Auflösung jetzt über Tiefpass+A/D oder über zeitliche Erfassung des Tastverhältnisses erreicht?
CD-ROM-LAUFWERK
Illumina-Mitglied
Beiträge: 581
Registriert: Sonntag 5. Januar 2014, 23:05

Beitrag von CD-ROM-LAUFWERK »

Das war eine Messung der Pulsweite über einen Tiefpass, wenn ich mich nicht irre. Allerdings würde ich trotzdem lieber direkt auf das "kalibrierte Messsignal" der Waage zurückgreifen, sonst hat man irgendwelche Drifts und Rauschen mit drin. Wenn man mehr Ahnung von der Thematik hat sollte es nicht so schwer sein, den richtigen Datenstrom zu finden und auch zu decodieren. Was nützt einem 1/2 Stelle höhere Auflösung, wenn der Wert driftet bzw. rauscht? Das ist jeweils das selbe 1kg Prüfgewicht auf der Waage, mit Mittlung über den kompletten jeweiligen Bereich (~200...400s) ist der Drift bei unter 1g. Nach 24h wäre der Drift, wenn er so weiter geht, ~30g. Da ich mehrere Tage messen wollte, wäre das viel zu schlecht. Noch dazu wird der Drift insbesondere temperaturabhängig sein und nicht einfach immer perfekt linear und damit kompensierbar.

Bild
Reosir
Illumina-Mitglied
Beiträge: 156
Registriert: Samstag 23. Juni 2018, 11:13
Wohnort: Süddeutschland

Beitrag von Reosir »

CD-ROM-LAUFWERK hat geschrieben:Das war eine Messung der Pulsweite über einen Tiefpass, wenn ich mich nicht irre. Allerdings würde ich trotzdem lieber direkt auf das "kalibrierte Messsignal" der Waage zurückgreifen, sonst hat man irgendwelche Drifts und Rauschen mit drin. Wenn man mehr Ahnung von der Thematik hat sollte es nicht so schwer sein, den richtigen Datenstrom zu finden und auch zu decodieren. Was nützt einem 1/2 Stelle höhere Auflösung, wenn der Wert driftet bzw. rauscht? Das ist jeweils das selbe 1kg Prüfgewicht auf der Waage, mit Mittlung über den kompletten jeweiligen Bereich (~200...400s) ist der Drift bei unter 1g. Nach 24h wäre der Drift, wenn er so weiter geht, ~30g. Da ich mehrere Tage messen wollte, wäre das viel zu schlecht. Noch dazu wird der Drift insbesondere temperaturabhängig sein und nicht einfach immer perfekt linear und damit kompensierbar.
Erinnerst du dich noch, in wie weit die digitale Anzeige während der ganzen Zeit auch den Wert verändert hat?
Antworten