Solarbetrieb der BOB-Platine, verschiedene Möglichkeiten

Ich bin gerade dabei, eine Strommess-Platine zu entwerfen, um dann in einer USB-Stromversorgung ( 3.5 bis 5.5 V ) jede Sekunde Spannungen und Ströme zu messen. Gestern abend hat der MAX471 auf dem Prototypen schon funktioniert. Bis aber die Aufzeichnung läuft, dauert es noch ein paar Tage.

1 Like

Ja das ist sicher das, was @clemens brauchen könnte. Eine Überwachung, der Spannungsversorgung des FiPy außerhalb seiner eigenen Möglichkeiten.

Finde den Stromverbrauch des Fipy, sogar noch wichtiger zu testen, als die Solarmodule. Was bringt mir genau zu wissen, wie viel mAh ich mit Modul xy am Tag rein bekomme, wenn ich nicht genau weiß wie viel ich jetzt wirklich benötige.

Im Pycom Form steht auch irgendwo, das der FiPy Probleme mit dem Runterfahren in den Deep Sleep bei unter 4V haben kann. Soweit ich mich entsinne war das aber nur im Zusammenhang mit einem höheren Stromverbrauch im Deep sleep.
Ich hatte schon versucht, das zu simulieren, könnte, aber bei mir, keine Probleme bis runter auf 2,5V feststellen. Das war aber soweit ich mich entsinne noch mit V0.4.0

Es waren zwei verschiedene LiPos, daran sollte es nicht liegen, die Software ist die hiveeyes, release 0.6.0.

Versuche jetzt herauszufinden, ob es an dem FiPy (vs. WiPy) oder an der Solarzelle liegt und beides nacheinander tauschen.

[edit] Wie oben gerade nachgebessert war der watchdog nicht aktivert und deep sleep ebenfalls nicht, nun mit beidem aktiviert nochmal testen!

ehrlichgesagt finde ich 3.9 nicht verwunderlich.

das ‘datenblatt’ (der schmierzettel als pdf von pycom) schreibt 3.5-5.5V.

ehrlichgesagt glaube ich das nicht, da erfahrungsgemaess lineare spannungsregler sehr oft nicht ideale, theoretische werte sondern reale werte haben… also nicht 0.2V drop, sondern eher 0.7-1.1V
der esp32 will 3.3V haben, ich wuerde also mindestens 3.9V fuer stabilen betrieb vorhalten wollen.

wenn das aus einen lithium-chemie basierten akku mir nur einer zelle (3.x-4.xV) laufen soll kommt man m.e. ohne einen step-up wandler nirgendshin.

das ist der grund warum fast all diese solarsysteme mindestens 12V machen…
selbst schottky dioden haben nicht theoretische 0.1V sondern schnell mal 0.3-0.4V drop. diese spannungsoffsets sind begruendet in der physik von halbleitern und gehn soschnell nicht weg.
daher ist es deutlich einfacher mit hoeheren spannungen zu arbeiten und nur ganz am ende auf z.b. 3.3V zu regeln.

tldr: wie sie sehn sehn sie den unterschied zwischen datenblatt und realitaet ;)

ps: sicher das die 3.9V 3.9V sind? ich glaube nach all den adc-fnord auf der platform jedem china multimeter mehr als diesem adc… mal nachmessen schadet nicht.

1 Like

This. Thanks!

Nun, mit aktiviertem deep sleep und watchdog, schaut es besser aus und das System läuft seit mehr als 24 h! Durch den reboot nach dem deep sleep haben wir allerdings “nur” alle 60 Sekunden Messwerte, siehe auch Diskussion über designierte Messfrequenz :

Die Messelektronik steht auf der Südseite des Hauses und da kommt erst ab Mittag Sonne hin, d.h. mit einem 1-minütigen Intervall, der 5 W-Solarzelle und dem 2000 mAh LiPo werden wir einen konstanten Solarbetrieb nicht hinbekommen, sondern müssten mit der Messfrequenz noch weiter runter, zumindest mit der aktuellen Software, die keine Daten zwischenspeichert.

1 Like

Meine Strommess-Platine läuft jetzt mit einem ACS712, MAX471, INA219 und einem USB-Tester. Die Messwerte des INA219 mit I2C ausgelesen scheinen am genauesten zu sein. Ich habe mal den FiPy mit Hiverize/FiPy, OLED-Display, BME280, HX711 und 5 x DS18B20 gemessen:


nach ca. 1 min habe ich den FiPy eingesteckt, er hat gebootet und alle 10 sec gemessen und gesendet. Dann habe ich ca. 20 sec den Reset-Knopf gedrückt. Aufgezeichnet wurden Spannung, Strom und Leistung, die zwischen 0.9 und 1.0 Watt schwankt. Man beachte, dass auch die Spannungsversorgung eines guten USB-Netzteils mit 2.5 Ampere nicht sehr stabil ist

Heute habe ich den FiPy mit dem LiIon-Akku 2000 mAh von Eckstein betrieben. Er lief fast 10 Stunden bis der Akku schwach wurde. Hier die Entladekurve


Um 16 Uhr gab es einen Aussetzer, der mit einem Reset behoben wurde. Es wurden regelmässig Daten bis 21:56 übertragen, dann immer unregelmässiger. Bei 2,5 V um 22:23 habe ich abgebrochen.
Die verbrauchte Leistung ist stark von der Versorgungsspannung abhängig:
bei 5.2 V ca 0.9 bis 1.0 W
bei 3.8 V ca. 0.8 bis 0.9 W
bei 3.1 V ca. 0.7 W

Die Details:


Um 15:38 hing sich der FiPy auf: es wird nicht mehr gemessen, es werden keine Daten gesendet, der Stromverbrauch bleibt. Um 16:15 ein manueller Reset von einigen Sekunden.


Um 21:31 scheint der FiPy bei ca 3 Volt in einen leistungsärmeren Modus gegangen zu sein, er hat aber bis 21:56 gesendet. Unter 3 Volt läuft nicht mehr viel, bis ich bei 2.5V abgebrochen habe.
Danach hat sich die Spannung des Akkus rasch erholt, er ist aber trotzdem leer.
Man kann also nicht nur aus der Spannung den Status des Akkus ermitteln.

1 Like

Hi Didi,

vielen Dank für Deine Meßreihe. Mit entsprechenden Stromsparmechanismen, die wir uns bei Strom sparen beim Einsatz der MicroPython-Firmware im Batteriebetrieb erarbeitet hatten, sind wir auf ca. 40 Stunden Betriebszeit gekommen.

Vielleicht könntest Du mit den Optionen “Deep Sleep” und “Watchdog” auch noch einmal einen Versuch wagen, damit wir die Meßergebnisse besser vergleichen und ggf. überprüfen könnten.

Viele Grüße,
Andreas.

Das sind die nächsten Schritte

1 Like

Hi Didi,

Achso – erstmal im Trockendock – soweit klar.

Für den Echtbetrieb zusammen mit der Firmware hat @roh hier [1] vor kurzem schon den Treiber für die INA eingebunden. Da fehlt aber natürlich noch entsprechender Code zur Ansteuerung.

Ist das die Richtung, die Du anstrebst, den INA-Treiber in die Firmware zu integrieren, um damit Messungen veranstalten zu können? Sag gern Bescheid, falls Du dabei Unterstützung benötigst.

Viele Grüße,
Andreas.

[1] add ina219 driver from https://github.com/chrisb2/pyb_ina219 · rohlan/hiveeyes-micropython-firmware@71a5a1c · GitHub

Zur Zeit steuere ich den INA219 mit einem RaspberryPi an: 5 Messwerte je sec, gespeichert auf der SD-Karte und mit gnuplot dargestellt. Ich plane die Messung von Solarmodul, Akku und Last (FiPy), also 3 mal 5 Werte pro sec. Ich glaube das überfordert einen FiPy.

Achso, also extern. Gut, ich verstehe. Go ahead! Wir würden uns sehr über detailliertere Verbrauchsmessungen der GitHub - hiveeyes/terkin-datalogger: Datalogger for MicroPython and CPython. in allen Lebenslagen freuen!

Heute noch mal die Messung mit Akku und 6 Minuten Aufzeichnung


Die gleiche Hardware, aber Software hiveeyes-micropython-firmware 0.6.0 mit Watchdog und DeepSleep

Beim ersten Zyklus sieht man das volle Booten, dann Deepsleep, 60 sec warten, dann aufwachen und messen.
Im Vergleich zu oben deutlich sparsamer, aber anstatt alle 10 nur alle 100 sec Messwerte.

2 Likes

Große Klasse, @didilamken!! Sehr spannende Daten! Die offensichtlichen Ergebnisse hast du ja schon benannt, der deep sleep braucht im Vergleich zum normalen Betrieb quasi gar keinen Strom. Hast du dafür noch Zahlen? Was sind die Verbrauchswerte für A und W beim deep sleep?

Interessant finde ich, dass die hiveeyes-Software in der zweiten Hälfte – das ist vermutlich die Periode wenn die Daten verschicht werden – nur 1/3 der Energie der hiverize-Software verbraucht, in der Mess-Phase sind es noch weinger, ca. 2/3 der hiverize-Software! Was ist da anders @vinz @Diren? Kann es daran liegen, dass das LTE-Modem nicht abgeschaltet ist?

Oder gibt es Unterschiede weil das OLED mit der einen Software an ist und mit der anderen nicht, war das einheitlich @didilamken und könntest du mal ohne OLED messen?

Im ersten Messzyklus bei hiveeyes ist etwas anders als bei den beiden darauffolgenden. Hier ist der Stromverbrauch in der Messphase nicht reduziert, bei den anderen beiden Messzyklen schon. Was könnte das sein?

Strom: 0.011 A = 11 mA Leistung: 48 mW

Das OLED-Display war bei der hiveeyes-SW eingesteckt, hat aber nichts angezeigt. Bei der hiverize-SW hat es angezeigt. Ich werde den Stromverbrauch näher untersuchen.

Beim ersten Messzyklus habe ich den FiPy eingesteckt und er hat vollständig gebootet, danach brauchte er nur aus dem deep sleep aufwachen. Das wird der Unterschied sein.

Hat jemand Interesse an der Strommess-Platine ( Schaltplan, Platine, Software ) ?

1 Like

Was meinst du, bis “wie weit runter” ist denn die Messung reliabel? Ich frage auch weil wir hier ganz andere Bereiche haben:

vs.

Ggf. ist es ja das OLED, vielleicht kann man aber mit dem INA219 so kleine Ströme gar nicht reliabel messen. [edit] Was mir gerade noch eingefallen ist, die SD braucht ja auch einiges und das expansion board auch, hattest du die beiden Verbraucher auch am System während der Messung?

Für den deep sleep und normale Multimeter wird ja häufig der µCurrent Gold von Dave Jones / EEVblog oder der Current Ranger von Felix Rusu / Low Power Lab empfohlen, s. auch

Auf jeden Fall, sollen wir einen eigenen thread dazu hier erstellen, fände es super, wenn wir das auch dokumentieren könnten gibt ja sicher noch andere Anlässe so etwas zu nutzen.

Auf den INA219-PCB sind default 100 mOhm -Meßwiderstände (1% Toleranz) verbaut, sein PGA kann Werte von 1, 2, 4, oder 8 annehmen, sein interner ADC hat 12bit. Full scale bei PGA=1 sind ± 40mV, und bei PGA=8 ±320mV an den shunt-Anschlüssen. Heißt also bei Rshunt = 0,1 Ohm
für PGA=1 ±400 mA fs und für PGA=8 ±3,2A fs.

3,2 A / 4096 = 781,25 µA und
0,4 A / 4096 = 97,65 µA

Bei PGA = 1 ist Dein LSB also 0,1 mA, und bei PGA=8 0,8 mA.

Für diese Meßaufgabe wäre also ein 1 Ohm-shunt passender, damit für wenigstens ±40 mA fs eine Auflösung von 10µA da ist. Wenn man den shunt auf 10 Ohm erhöht und den PGA auf 8 setzt, hätte man bei ähnlichem fullscale (32 mA) eine Auflösung von 1µA. - Rauscht dann aber schon ziemlich und taugt ohne schalt- oder steckbare Meßwiderstände nur für wirklich sehr kleine Ströme.

1 Like

Der INA219 kann 11 mA nicht genau messen, dazu ist Messtechnik wie uCurrent Gold ( 75€ ) oder Current Ranger ( 120$ ) viel besser. Wir werden den Ruhestrom nur schätzen können ohne teure Messtechnik.
Ich vermute, dass wir mit dem INA219 ab 50 mA -> 0.25 W gut messen können.

Die nächste Strommess-Platine mit 3 x INA219 soll bei einem Solar-Regler Solar, Akku und Last bis ca 5W messen.

Die neue Strommess-Platine mit 3 x INA219 misst in den Zweigen Laden ( Solar ), Akku und Entladen ( Last ) pro Sekunde Spannung, Strom und Leistung und berechnet die Kapazität in Ah und die Energie in Wh.


Bisher habe ich den Akku nur mit einem USB-LiPo-Lader geladen und mit einer elektronischen Last mit konstantem Strom entladen.

Wegen der Übersichtlichkeit blende ich einige Kurven aus.
Der geladene LiPo-Akku von 2000 mAh wird mit fast konstanten -1A entladen und die mAh aufsummiert ( bis -2200 mAh = -2.2 Ah - schwarze Kurven ). Die Spannung des Akkus sinkt, bis ich bei 3.0V abgebrochen habe um den Akku zu schonen. Wegen des Spannungsabfalls an den Shunts der 2 INA219 ergeben sich 2 rote Kurven ( oben Akku, unten Last ).
Ebenso bei der Leistung ( blau ) Oben abgegebene Leistung des Akkus, unten aufgenomme Leistung der Last. Die Differenz heizt die beiden Shunts auf.
Die Energie ist die aufsummierte Leistung: oben Akku 7.7 Wh und unten Last 7.05 Wh

Beim Laden wird zuerst mit konstanten Strom ( ca. 1.1A ) und dann mit konstanter Spannung von 4.2 V geladen wobei der Ladestrom abnimmt. bei 0.1 A wird der Ladevorgang abgebrochen.


Die Spannungsdifferenz ( grün rot ) ergibt sich wieder aus dem Spannungsabfall der Shunts. Die mAh werden wieder aufsummiert und ergeben bei Ladeschluss wieder 0 ! ( -2200mAh + 2200 mAh )
Die abgegebene Energie des Laders beträgt 8.9 Wh

Zusammenfassend ergibt sich


Interessanterweise benötigt man für Entladen und Laden des 2000 mAh-Akkus jeweils 2200 mAh.
Bei der Energie erkennt man die Verluste: gibt der Lader noch 8.9 Wh ab, sind es beim Akku nur noch 7.7 Wh und bei der Last kommen nur noch 7.05 Wh an.