Sonntag, 26. Februar 2012

Handy und eingehende SMS

In der letzten Folge hatte ich mich am Kopf gekratzt, ob und ggf. wie ich denn mitbekommen soll, wenn eine SMS eingeht, da das Handy sich per Datenkabel nicht dazu geäußert hat. Zunächst dachte ich an einen dreckigen Hack: bei eingehenden Nachrichten piepst das Handy kurz und das Display Licht geht an. Also hätte ich mich ggf. an den Lautsprecher anklemmen können oder das Displaylicht mit einem Fototransistor beobachten. Alles sehr dirty! Also habe ich weiter die Doku der AT-Kommandos gelesen und siehe da – es gibt eine Lösung: der Befehl AT+CNMI=x,x,x,x,x regelt, wie sich das Handy bei eingehenden Nachrichten verhält. Mit etwas Ausprobieren und Lektüre der Doku ist es mir schließlich gelungen, eine Benachrichtigung am Terminal zu kriegen:
Kurze Führung:
  • zunächst nur höflicher Smalltalk (AT)
  • Dann Einstellen des mode Teils auf 1, d.h. Meldung über die Datenschnittstelle, falls diese nicht gerade belegt ist. (at+cnmi=1,1,0,1)
  • Nochmal Smalltalk
  • Dann habe ich eine SMS geschickt und wurde durch die Rückmeldung +CMTI: "SM",2 über deren Eingang in Kenntnis gesetzt :-)
  • Diese habe ich dann, wie beim letzten Mal gezeigt abgerufen
  • Und das gleiche Spiel nochmal
So – das sieht also ganz gut aus. Das Einzige, was immer noch rumzickt ist das Handy selbst: Trotz diverser Experimente mit verschiedenen Spannungen und diversen Beschaltungen des mittleren Pins schaltet es sich nicht zuverlässig ein, meckert unvorhersehbar über leeren Akku und schaltet sich manchmal schlagartig ab, wenn einen SMS eingeht. Grumpf!
Einige Recherche im Netz hat mich nun auf eine neue Idee gebracht: Angeblich können diese Handies kurzfristig einen Haufen Strom Konsumieren, wenn die Funke aktiv wird – von 1 oder gar 2A war die Rede. Das kann die Versorgungsspannung bei dünnen Kabeln und Aufbau auf dem Breadboard möglicherweise kurz überfordern, Zudem hatte ich die Strombegrenzung meines Labornetzteils natürlich nicht gerade in den Ampere-Bereich gelegt - eher so 300mA. Sobald da mal kein dickes Labornetzteil mehr dranhängt, sondern ein chinesisches Steckernetzteil wird es aber eh nicht mehr Saft geben, daher habe ich nun einen 2200µF Elko parallel geschaltet. Der sollte die Stromspitzen abpuffern können. Auf den ersten Blick scheint es geholfen zu haben, aber ich werde das mal weiter beobachten – dachte schließlich schon öfter ich hätte das endgültig gelöst...

Freitag, 24. Februar 2012


...und jetzt?

Also schön, was bleibt denn jetzt übrig, wenn wir über die letzten Analysen schauen?
  1. Es ist nicht so einfach mit Li-Akkus. Nicht Tiefentladen, nicht überladen, beim Laden auf das Balancing achten...
  2. Was fertiges zu kaufen, sprich Ladegerät, Entladeschutz und Balancer ist teuer und passt oft nicht für die Applikation.
  3. Auf dem Markt gibt es keine fertigen Chips zu kaufen (oder nur sehr schwer), mit denen sich unkompliziert Controller aufbauen lassen.
  4. Li-Akkus sind aber nicht ohne Charme. Lineare Leistungsabgabe, viel Kapazität auf wenig Bauraum, Kubische Bauweise (LiPo), unkompliziert zu handhaben (wenn die Controller-Elektronik tut).
Es bleiben also zwei Optionen, wenn man Li-Akkus einsetzen will:
  • fertige Elektronik ausschlachten, oder
  • selber was entwickeln
Ich hab mich die letzten Tage und Nächte gequält mir das Gehirn zermartert, des Königs Krone mit in den Badezuber genommen - und mit Mieze gespielt. Heureka.
Wie ein Selbstbau-Konzept aussehen könnte, hier die paar Kästchen als Ergebnis:


Der Akku-Controller würde am Akku bleiben, und den Spannungsverlauf des Entladevorgangs überwachen. Eine Strommessung macht weniger Sinn, da sie mit einem zusätzlichem OP und einem Shunt nicht im Verhältnis zum Nutzen steht. Statt dessen könnte man einen Schaltregler realisieren, um z.B. neben der ungefilterten Ausgangsspannung 5V oder 3.3V für die Elektronik bereit zu stellen.

Der Lade-Controller müsste ein MMI beinhalten, also Tasten und/oder Drehencoder mit Display. Ebenfalls müsste über diesen Weg der EEPROM in der Akku-Elektronik zu programmieren sein.
Schließt man den Akku an das Ladegerät an, übermittelt er diese gespeicherten Daten, und stellt die zum Laden notwendigen Parameter ein, wie max. Ladestrom, Schlußspannung, usw.
In der Lade-Elektronik wäre auch die Balancer-Logik drin.

Bin ich auf das Balancing überhaupt eingegangen? Ein Nachtrag:

Balancing - der Akku auf dem Drahtseil

Im Akku-Paket sind die Kapazitäten der Zellen nicht alle gleich, was an Toleranzen in der Fertigung, oder unterschiedlicher Alterung liegt. Durch mehrere Lade- / Entladezyklen verliert der Pack erheblich an Leistung (Cell Balancing - Carlos Martinez, Seite zwei). Zellen mit weniger Selbstentladung sind schneller voll, jene mit höherer schneller leer. Dadurch entsteht ein Ungleichgewicht des Ladezustandes (State of Charge - SoC) der Einzelnen Zellen und der Akku-Pack kann weder voll geladen, noch ganz entladen werden.

Es gibt eine ganze Reihe von Methoden, den SoC der Zellen auszugleichen (Continous Cell Balancing / Li-Ion Charge Balancing and Cell Voltage Monitoring). Die Modellbau-Liga hängt bevorzugt einfach beim Laden einen Leistungs-Transistor an jede Zelle und schaltet diesen bei Erreichen von U_max durch (vgl. http://www.aero-hg.de/lipobal.html / http://www.kc-world.de/LiPo-Balancer.htm).
Ich halte diese Methode für recht brutal, da u.U. bei hohen Strömen wieder Energie aus dem Akku genommen wird. Besser ist es den Strom zu begrenzen, also nur einen Teil des Ladestroms umzuleiten, dafür jedoch schon recht früh mit dem Balancing zu beginnen.

So. Wat nu? Bauen oder schlachten? Ebay oder Reichelt? Ich brauch erst mal ein paar Tage Luft. Was will ich mit dem Akku eigentlich? Die Sache mit dem Geo-Caching hat sich ja erledigt. Sohnemann verweigert.

Roboter bauen? Da hab ich doch von meinen Kollegen ein paar Sensoren und einen Arduino bekommen (danke nochmal - Ihr seit echt verrückt!)...
Staubsauger, Rasenmäher, Fensterputzer, Katzenschreck? Jetzt wird's matschig, wie Golo der Gartenzwerg immer sagte.

Handy Teil 2

Nachdem ich beim letzten mal geschafft hatte, das Handy zu bricken hatte ich mich erstmal auf die Suche nach geeigneter unlocking-Software gemacht und nach kurzer Recherche ein Tool namens Freia gefunden, das in der Lage sein sollte, die alten Siemens Dinger zu entsperren. Ein Datenkabel hatte ich ja schon, aber das war dummerweise ein original Siemens Teil – und mit denen geht das Entsperren nicht. Aber es gibt ja Ebay und so bin ich nun auch stolzer Besitzer eines Noname Kabels – diesmal die USB-Variante, die erwartungsgemäß einen USB–RS232 Konverter enthält. Hier die Meinung von lsusb:

Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Das Durchreichen an die Virtualbox, in der mein olles WinXP installiert ist, war auch kein Problem und nun tut Freia seinen Dienst:

Das Auslesen der Firmware, mit dem ich zunächst mal angefangen hatte dauert zwar eine halbe Ewigkeit, aber immerhin funktioniert es. Nächster Schritt: Unlock versuchen. Scheint auch zu gehen – jedenfalls sieht es im logfile ganz danach aus. Also Luft anhalten, Daumen drücken, Handy einschalten und Photo machen:

Heureka! :-)))))

First Contact – diesmal wirklich!

Nun ist es an der Zeit, zu versuchen, mit dem Handy zu reden. Das bereits erwähnte Datenkabel steckt ja noch im Computer und so muß ich nur das Terminalprogramm meines Vertrauens starten und schon kann's losgehen. Ein wenig experimentieren ergab, daß die Kommunikaitonsparameter so aussehen müssen: 19200 bps, 8N1. Hier ein Transkript der ersten Gehversuche:

Bild hinzufügen

Das sieht schon mal ganz gut aus und soll noch etwas erläutert werden: Zunächst habe ich Hersteller, Modell und Revision abgefragt, dann die Seriennummer und IMSI. die beiden letzten (identischen) Kommandos lesen alle (Status 4) Kurznachrichten aus. Beim ersten versuch gab es schlicht noch keine, daher nur die Antwort 'OK'. Dann habe ich eine SMS mit dem vielleicht nicht sehr tiefschürfenden, aber traditionellen Inhalt „Hello world!“ an das Handy verschickt und siehe da – nun bekommen wir eine richtige Antwort. Zunächst wird uns verraten, daß diese Nachricht sich auf Index 1 im Speicher befindet, den Staus REC UNREAD (also empfangen, aber nicht gelesen) hat und es auf eine stolze Länge von 31 bringt! Das Kauderwelsch dannach ist die eigentliche Nachricht und damit uns hier nicht zu schnell langweilig wird ist diese nicht etwa als simpler Text repräsentiert (wäre ja auch phantasielos), sondern als packet data unit, kurz PDU. Diese enthält neben der eigentlichen Nutzlast (dem Text) noch diverse Header Info – ähnlich anderen paketorinetierten Netzwerkformaten. Und so wurden aus bescheidenen 12 Zeichen Text stolze 78 Byte. Um die Sache etwas intereessanter zu machen ist der Text in Buchstaben mit je 7-Bit codiert und wird dann nach einem kreativen Schema zu Oktetten, also Bytes, zusammengesetzt. Ich habe grade keine Lust das genau darzustellen und verweise also einfach auf meine Quelle: http://www.dreamfabric.com/sms/

Einen Decoder zu basteln dürfte keine echte Schwierigkeit sein, was mich eher plagt ist die Frage, wie ich denn mitbekomme, wann eine SMS eingeht. Denn auf dem Terminal tut sich da nix – ich finde es aber wenig elegant, alle paar Sekunden anzufragen, ob eine neue SMS da ist. Das muß doch besser gehen! Nun werde ich also ein wenig Recherchieren und melde mich mit einer neuen Folge zurück, sobald ich schlauer bin!

Mittwoch, 22. Februar 2012

Bilderrätsel

So hier das versprochene Bilderrätsel. Es sollte nicht zu schwierig sein. Ich glaube ich hab ein "Schnäppchen" gemacht ;-). Also frohes Raten!






Montag, 20. Februar 2012


Fragen über Fragen

 Da war doch noch was? Genau, die Messungen filtern und posten:




Mit einem Python Skript hab ich die Daten rund gerechnet. Gemessen wurde mit einer Auflösung von 0.1s, mithilfe des Skripts mittelte ich immer über 500 Werte.

Eigentlich hätten nur die Spannungs-Werte bei Null-Strom berücksichtigt werden dürfen, da sie der tatsächlichen Akku-Spannung entsprechen. Allerdings hätte dies auch nicht mehr Information gebracht.

Beim Betrachten des Stromverlaufes kann man mit etwas Phantasie die im letzten Blog erwähnte Ladestrategie erkennen. Abweichend davon  "heizt" der Laderegler offensichtlichfür ca. 15min den Akku an und beobachtet die Einzelspannungen. Nach dem U12 zu schnell ansteigt, nimmt er den Strom zurück.

Bei etwa einer Stunde Ladezeit wird vom Konstantstrom-Ladaung (CC - Constant Current) auf Konstant-Spannung (CV - Constant Voltage) umgeschalten. Schaut man die Messdaten an, fällt auf, dass die Lade-Spannung in diesem Bereich trotzdem von 11.3V bis 12.6V hochgezogen wird.

Den Einbruch bei 1:45h kann ich nicht erklären. Irgend ein Regler, der in eine Sättigung läuft? Nach 2,5h pulst der Lader dann nicht mehr und lässt den Akku in Ruhe voll laufen.

Auffällig ist, dass die Ladeschlussspannung der Zelle 3 (U23) über die kritischen 4.2V steigt, während die beiden anderen noch lange nicht voll sind. Ich habe die Zellspannungen einen Tag nach dem Laden nochmal gemessen und festgestellt, dass Zelle 2 und 3 genau 4.22V haben. Gleicht das die Controller-Elektronik aus? Wenn ja, wie? Oder passiert noch was in der Chemie?

Und da kommt schon der nächste Sumpf: Wie mit den unterschiedlichen Ladezuständen zwischen den Zellen umgehen? Balancing ist das Zauberwort. Darüber gibt es ebenfalls viel, viel Stoff im Netz.

Damit geht's also weiter. Irgendwo ist der Wald dann hoffentlich zu Ende, und ich kann ein Konzept entwerfen und entscheiden, ob es gebaut wird, oder in der Schublade verschwindet. Meine Güte, langsam träume ich schon von dem Zeug!
Allerdings wird mit klar, dass man nicht einfach ein Allround-Ladegerät bauen kann. Es muss immer ein Gesamt-Konzept entworfen werden, welches jeweils den Anwendungsfall mit allen Randbedingungen berücksichtigt.

Freitag, 17. Februar 2012

Und nochmal: Laden, entladen, laden...

Ja, zum Thema Bilderrätsel hab ich auch noch was: ein paar Diagramme. Sehen wild aus - was sollen sie uns sagen?

Die Schaltung zwischen Akku und dem Arduino ADCs hab ich etwas erweitert. Ein anderer OP, LM2901, den ich unsymmetrisch betreiben kann und zusätzlich zum nicht invertierenden Verstärker (Strommessung) noch drei Impedanzwandler (oder simpel: Spannungsfolger) um die ADC Eingänge zu schützen.

Beim letzten Experiment hatte ich immer ein bisschen Sorge um den ADC. Einmal hab ich beim Kalibrieren der Spannungseingänge das Netzteil zu weit aufgedreht, ein anderes mal war die Spannung über den Shunt zu hoch. Also hab ich mir gedacht, es wäre vielleicht ganz klug die Referenzspannung für die ADCs auf 2.56V zu schalten und den OP mit 5V zu versorgen. Wenn ich meiner Interpretation der "max Ratings" aus dem Datenblatt trauen darf, vertragen die Eingänge auf jeden Fall 5V, auch wenn U-REF signifikant niedriger ist.
OPs, die mit 5V versorgt werden, schaffen eine maximale Ausgangsspannung von ca. 3.4 - 3.6V. Das hängt ganz von dem verwendeten Typen ab. Beachten muss man, dass die Linearität nahe an der Umax Grenze abnimmt, deshalb sollte man die Schaltung so auslegen, dass man diese Bereiche nicht nutzt.


So hat das Ganze dann fertig ausgesehen. Das Kabelwirrwarr hat natürlich eine gewisse Anziehung für ungezogene Katzen. Kaum aufgebaut, hatte ich also das bekannte Problem: "Wildtiere auf der Leiterbahn".

Der erfahrene Katzenbesitzer weiß nun, dass man Mieze nicht einfach von der Schaltung pflückt. Zu gern beißt sie noch in ein Drähtchen, oder krallt sich ein Bauteilchen, um sicher zu gehen nach der Verbannung mit Spielzeug versorgt zu sein. Einer Schaltung ist das natürlich abträglich, sich der Einsatz eines Laserpointers empfiehlt.
Bedächtig und mit ruhiger Hand bewegt, lockte ich das kleine Kätzchen (5kg) ganz langsam weg, immer nur so weit, das es sich selber aus den Kabeln  befreien konnte.
Nach einer gefühlten viertel Stunde hatte ich den Unhold dann endlich auf dem Kratzbaum! Ich musste ihn ja noch müde spielen, damit er nicht sofort wieder an den Kabeln kaut.

Zunächst wurde der Akku entladen:


Offensichtlich keine neuen Erkenntnisse. Oder doch?


Diesmal habe ich die Spannungen direkt am Akku abgenommen, also hinter der Controller-Elektronik. In dem Ausschnitt ist die Abschaltung gezeigt, mit der anschließenden Erholungsphase. Dabei ist deutlich zu sehen, dass die dritte Zelle (U_23 in Blau) ein anderes Verhalten zeigt, als die anderen zwei. Auch wird deutlich, dass der Zusammenbruch der ersten Zelle (U_01 in rot) anders verläuft, als jener der zweiten.
Alle drei Zellen verhalten sich also unterschiedlich. Daraus lässt sich schließen, dass im Nutz-Einsatz ein Controller auf dem Akku notwendig ist, welcher die einzelnen Zellen monitort und die Entladung sperrt, sobald eine Zelle in den kritischen Spannungsbereich rutscht. Eine einfache Abschaltung, getriggert durch das Abfallen der gesamt-Spannung unter einen Schwellwert, reicht nicht.

Meine Fresse! Mit dem Lithium Zeug, das ist doch nicht so ganz einfach, wie einem das überall glauben gemacht wird! Eine Controller-Schaltung auf dem Akku zieht natürlich Strom und entlädt zwangsläufig. Lange lagern, ohne zusätzliche Maßnahme ist also nicht.

Der Ladevorgang

Erst mal die Diagramme:

In grün die Spannung des gesamten Packs und in rot der Ladestrom. Die Flächen sehen deshalb gefüllt aus, weil die Spannung gepulst ist. In der hinteren Hälfte erfolgt dann die Konstant-Strom-Ladung, deshalb ist die Linie nur noch so breit, wie der Jitter der Messung.


Hier sind die Einelspannungen gezeigt. Wieder ist der dritte Akku auffällig.

Ich hab die Pulse etwas näher untersucht:
  • direkt nach dem Start: 2sec Strom / 1sec stromlos
  • ab 11.65V, 12min: 700ms Strom / 2.2sec stromlos
  • ab 11.45V, 18min: 100ms Strom / 250ms stromlos 
  • ab 11,75V, 01h, 44min:  2sec Strom / 1sec stromlos
  • ab 12.13V, 02h, 35min: Konstantstrom
Das sieht nach einem ziemlichen Durcheinander aus. Werde deshalb ein Python-Skript bauen, welches Mittelwerte über die Pulse rechnet.

Laut Battery University, "Charging Lithium Ion Batteries", teilt sich der Ladevorgang im Wesentlichen in zwei Teile:
  1. Constant Current Stage und
  2. Saturation Stage
Im ersten Stage wird der Ladestrom konstant gehalten, während die Akku-Spannung stetig steigt. Hat die Zellen ihre volle Spannung - ca. 4.2V  erreicht ist der Akku etwa 80% - 85% geladen.
Dann wird gesättigt. Der Strom sinkt, während die Spannung konstant gehalten wird.
Das Ladeende ist erreicht, wenn der Strom kleiner 3% des Nenn-Ladestroms ist. Dieser Nenn-Ladestrom kann zwischen 0.5C - 1.0C liegen, also z.B. bei einem 4 Ah Akku 2.0 - 4.0A.

Bestätigt sich diese Theorie? Wir werden sehen.

Montag, 13. Februar 2012

Bilderrätsel

Tach zusammen! Ich war neulich mal wieder auf Ebay und habe ein bisschen herumgestöbert. Und da bin ich auf etwas gestoßen, von dem ich nicht die geringste Ahnung habe, was ich damit anfangen will, das ich aber dennoch unbedingt haben musste, weils grad so billig war und ich es spannend fand, nachdem ich es anderswo erklärt bekommen hatte.

Nach nicht allzu schlimmer Wartezeit kam dann das ersehnte Päckchen aus Hong Kong. Kleiner als ich erwartet hatte. Hier ein paar teils unscharfe Impressionen:



Und nun ratet mal, was das ist! Ich bin mir sicher, Christian wird es erkennen...

Beim nächsten mal muß ich dann testen, ob es auch funktioniert.

Montag, 6. Februar 2012

Panelmeter Teil #1: Vorstellung, Grundfunktion und was nicht geht

Nun bin ich mal wieder an der Reihe ;-). Es freut mich zu sehen, wie unser Blog langsam wächst und immer mehr interessante Inhalte bekommt. Ich hab im Moment etwas Zeit, da ich nach Funktionsfreeze-Stress für die I-340 mit grippalem Infekt darniederliege...

Heute ein Beitrag über ein günstiges Panelmeter von Pollin für 5,95EUR. Hab mir eingebildet ich brauch so was für die Verbesserung meines alten Labornetzteils. Und außerdem ist es cool. Und günstig - sagte ich schon, oder?




Zunächst ein paar technische Daten:
  • Eingang max. 199,9mV=
  • Anzeige max. “1999” 3½-stellig
  • Mit autom. Polaritätsanzeige
  • Anzeigetyp LCD (Flüssigkristall)
  • Messmethode Dual-Slope A/D-Wandler
  • Bereichsüberschreitung Anzeige “1” im Display
  • Messfolge 2-3 Messungen pro Sek.
  • Eingangsimpedanz >100MOhm
  • Genauigkeit ±0,5% (23°±5°C <80% Luftfeuchtigkeit)
  • Dezimalpunkt wählbar über Drahtbrücke
  • Betriebsspannung 8-12V=
  • Maße BxH 68mm x 44mm
  • Einbaumaße BxH 54,5x38mm
Eigentlich ganz cool das Teil - ok, es hat keine Hintergrundbeleuchtung ;-). Über Spannungsteiler bzw. Shunts kann das Teil in einem großen Wertebereich für Spannungs- und Strommessung eingesetzt werden. Man kann entweder direkt die Widerstände/Drahtbrücke auf der Platine ersetzen, oder mit externen Widerständen arbeiten. Über das kleine Poti auf der Rückseite kann auch eine Kalibierung mit einer Spannungsreferenz erfolgen. Übrigens ein Tip fürs Anschließen: hab einfach Stifte in die Lötösen eingelötet, dann kann ich mit Standard-Steckkabeln arbeiten und kann die Komponente leicht in anderen Projekten wiederverwenden.

Soweit so gut, also probieren wir es gleich mal aus:


Wunderbar, das Teil funktioniert also prima und zeigt korrekterweise 0V an. So, jetzt will ich mal schauen, ob das Ding auch Spannung misst ;-): Einfach zweiten 9V Block dran und los gehts - uups - der Messbereich geht aber nur bis 200mV, aber das Meter zeigt brav 1 als Overload an. Na gut, muss ich also doch schnell den Horowitz & Hill bemühen und die Spannungsteilergleichung wälzen... Aber als Physiker leite ich mir die natürlich einfach schnell aus den Grundgesetzen der Elektrodynamik und Festkörperphysik her. Ich weiss, ich weiss, ich hätte die Zeit und Energie auch auf das Umlöten der Brücke für den Kommapunkt aufwenden können, das heb ich mir aber für später auf ;-).


Ok, der Wert scheint plausibel (9,03V; bitte Komma versetzt denken) und stimmt auch mit dem überein, was mein Uni-T UT61E anzeigt (90,3mV). Hab über 1M, 10k V-Teiler den 200mV-Bereich des Panelmeters auf 0-20V gemappt.

Wunderbar, Grundfunktion ist also gegeben und Genauigkeit sieht auch ganz gut aus. Also weiter zum nächsten Punkt: Kann das Panelmeter auch die Spannung messen, mit der es versorgt wird (was häufig als "Common ground capability" bezeichnet wird)?

Die Antwort ist leider "NEIN". Das kann es nicht. Versucht man es, bekommt man immer nur den Overload Hinweis "1". Na super! Muss ich jetzt in mein Labornetzteil eine 9V Batterie einbauen? Das wäre nicht so praktisch. Oder besser doch ein "teures" Panelmeter kaufen, das "common ground" kann? Aber so schnell gebe ich nicht auf, das muss doch irgendwie gehen, oder?

Fortsetzung folgt...