Solarbetrieb der BOB-Platine, verschiedene Möglichkeiten

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.

Am 15. und 19.10. habe ich das Entladen und Laden des 2000 mAh LiPo-Akkus untersucht. Aus einem vollen Akku können bei 1 A Entladestrom ca. 7 Wh Energie entnommen werden. Geladen wurde mit einem USB-Lader ( TP4056 ) und einem Solarlader ( CN3065 ) an USB.
Am 20.10. habe ich mit einem 6V / 5 Wp Solarmodul den leeren Akku


und am 21.10. den fast vollen Akku geladen

Der trübe Herbsttag am 20. hat nur magere 0.6Wh eingebracht, der USB-Lader bracht 5.5Wh ( blau). Am 21. war der Akku fast voll, Solar hat in 9 Stunden knapp 0.9 Wh gebracht, der USB-Lader brauchte kaum nachzuladen.
Wenn wir BOB im Winter mit Solar betreiben wollen, müssen wir sehr sparsam mit der vorhandenen Energie umgehen. Wenn wir alle 10 sec messen wollen und der FiPy benötigt 1 W, dann brauchen wir dazu 24 Wh am Tag. Mit Stromsparmassnahmen können wir vielleicht auf 15 Wh reduzieren.
Die können wir im Herbst mit einem 5W Solarmodul nie erreichen. Strom sparen kann man nur, indem man weniger oft misst.
Als nächstes möchte ich untersuchen, wie viel Energie ein Messzyklus benötigt. Dann könnte man die Deepsleep-Zeit abhängig vom Ladezustand des Akkus machen.

2 Likes

doch - ich hatte es Dir oben vorgerechnet: dies liegt nur am verbauten shunt; mit Rshunt= 1 Ohm sind 10µA drin , und mit 10 Ohm bei PGA=8 klappen 1µA. Nicht optimal, aber geht, und ist auch nur die Auflösung, nicht die Genauigkeit.

Nein, es geht auch mit diesem genauer.

Das stimmt allemal.


preiswerteste Heimwerker-Alternative zu den genannten (semi-)professionellen Meßverstärkern (zwinker @clemens), die auch gegen den µCurrent antreten kann (bei indoor-Nutzung und nicht allzu hoch gewählter PGA-Stufe) : im ±20mA-Bereich läßt sich bei einem shunt von 1 Ohm eine Bürdespannng von nur 1µV / 1µA erreichen! Die nutzbare Auflösung beträgt damit immerhin 100 nA; wenn man Schirmung/EMV-Aspekte, Temperatur, Feuchte und Speisespannung beachtet, geht damit eine Genauigkeit von 1µA!

µA-Meter mit HX711

(simpler Schaltplan und alternative Aufbauvarianten dazu in den Kommentaren)


Mit nur wenigen Änderungen ließe sich damit auch ein Milliohmmeter bauen, man sollte dann aber wieder über einen ADS1220 oder ADS1231 nachdenken, damit man eine Vierleiter-Messung realisieren kann - sonst nützt auch die hohe Auflösung dieser ICs nichts, und alles geht wieder im Rauschen und den parasitären Thermospannungen unter.

2 Likes

Mit dem gängigen Breakout-Board mit INA219 und 0.1 Ohm Shunt kann man bis 3.2 A messen. Das reicht bei 5 V bis gut 15 W für viele Verbraucher. Für sehr kleine Leistungen reicht die Auflösung nicht, da muss man den Wert des Shunts verändern. Wäre er 10 Ohm, könnte man max. 32 mA messen.

Der FiPy verbraucht aber im Betrieb 5 V x 200 mA = 1 W. Der Spannungsabfall am Shunt wäre 10 Ohm x 0.2 A = 2 V. Damit kämen von der Betriebsspannung 5 V nur noch 3 V beim FiPy an, der damit nicht stabil laufen kann. Man hätte also eine sehr instabile Stromversorgung im Takt des Stromverbrauchs ( 5 V im Ruhemodus und 3 V im Normalbetrieb )
Es ist also in der Praxis nicht so einfach mit einem unmodifizierten Breakout-Board den Ruhestrom des FiPy zu messen. Deshalb bezogen sich meine Ausführungen oben auf den Normalbetrieb von ca. 1 W. Um Ruheströme messen zu können, muss ich noch etwas basteln.