Wäre erst mal pragmatisch: Deep Sleep forever!
Wir sollten konservativ bei der Feststellung von low batterie sein, damit man nicht mit einer falschen Messung des System abschaltet, obwohl es nur ein Ausreisser war.
Wäre erst mal pragmatisch: Deep Sleep forever!
Wir sollten konservativ bei der Feststellung von low batterie sein, damit man nicht mit einer falschen Messung des System abschaltet, obwohl es nur ein Ausreisser war.
Devise: Vorschläge einholen und pragmatisch-sinnvoll implementieren.
Deep Sleep forever!
Meinetwegen optional erstmal klar weil am einfachsten. Eine Mini-Ausbaustufe à la “vorher erstmal lustige Blinkmuster rauswerfen um zu warnen” fände ich aber nett.
Wir sollten konservativ bei der Feststellung von “low battery” sein, damit nicht…
Klar klar, immer konservativ. Aufgrund von misreadings abzuschalten wäre natürlich fatal. Entsprechende Algorithmen nehme ich mit Kußhand, dann kann ich mir die Nachforschungen in Richtung estimating battery life - MicroPython Forum (Archive) sparen. Am besten natürlich gleich als Implementierung in (Micro-)Python.
Falls ich noch offene aber wichtige Punkte bei dieser Übersicht vergessen haben sollte, ergänzt sie gerne für mich.
Bei der Spannungsmessung über den internen ADC…
Hi What's the correct formula for Battery monitoring with a LoPy on the pycom expanysion board. According to the datasheet it's a 1:2 voltage divider on the expansion board. And the ADC is 12bit (0-4095) and somewhere i was reading the the reference...
Im Pycom-Forum tauchten ein paar neue Beiträge zum gleichen Thema auf, was uns hier umtreibt.
Bei der Spannungsmessung über den internen ADC des FiPy ist fraglich, ob wir nach der Korrektur der nun richtigen Widerstandswerte passend zum Voltage Divider – nun mit 6dB oder 11dB Dämpfung messen sollten, schließlich ergeben sich daraus unterschiedliche Meßwerte. Ohne (Un-)Sicherheit an dieser Stelle brauchen wir auch kein low-voltage cut-off machen.
Ob wir mit 6dB oder 11dB messen hängt von der erwarteten maximalen Spannung am Messpin ab und die hängt wieder von dem eingesetzten voltage divider ab, der fürs expansion board und für unsere boards unterschiedlich sind. 6dB sollte aber für alle BOB-Heads / shields passen. Bei der zusätzlichen Nutzung des expansion boards muss der voltage divider dort per jumper deaktiviert werden.
vielleicht eine bloede frage… aber kann man das shield ‘detecten’ ?
also via i2c oder aehnliches einen id register auslesen der auf dem andren board nicht da ist…
nur so ne idee. dann koennte man da automagisch presets umschalten… ;)
Theoretisch ja. Man könnte bestimmte unbenutzte Ports z.B. gegen Masse schalten und dann beim hochfahren abfragen. Aber sowas ist, denke ich, unerwünscht und hinderlich. Du musst bedenken, das hier alles open source ist, also Nachbau und Weiterentwicklung erwünscht. Das würde dem nicht gerade dienlich sein.
Man könnte aber im zukünftigen Capital Portal eine Auswahl machen wie Board A; Board B; Board C und Benutzerdef.
Ich wollte mal fragen, ob es bei der Batterieüberwachung bzw. Spannungsmessung mit dem FiPy/LoPy irgendwelche Änderungen oder Fortschritte gab.
Hintergrund ist, dass ich an meinem LoPy4 - ob mit oder ohne angestecktem pyTrack - keine plausiblen Werte bei der Spannungsmessung erhalte, obwohl die Werte für den Spannungsteiler richtig eingestellt sind der settings.py
(BOBHatV5a mit 10M und 2M). Dabei ist es auch egal, ob ich einen Lipo verwende oder das Board über USB betreibe.
Ich habe schon ungefähr alle mir eingefallenen Kombinationen beim Einstellen der Widerstandwerde ausprobiert und komme hier leider nicht mehr weiter. Wenn ich die Werte von 10M und 2M einstelle ist der Spannungswert konstant auf 10.99 V, egal ob per USB oder Lipo versorgt. Stelle ich z.B. 1k und 1k ein, so ist der Spannungswert konstant 3.664 V, mit und ohne pyTrack.
Da kann bei mir ja irgendwas grundlegend nicht stimmen, oder? Ich habe schon gemessen, ob ich die richtigen Widerstände eingelötet habe und habe die Lötstellen sogar schon nachgelötet, weil ich keine andere Idee mehr hatte…
Sollte eigentlich funktionieren, allerdings habe ich es mit einer neueren Firmwareversion noch nicht wieder probiert. Kann sein, das bei einem Release er aus versehen mal auf der strecke geblieben ist.
Wenn ich mir den Schaltplan von @didilamken anschaue ist mir aber ein weiteres Problem aufgefallen, falls die SW1 bestückt wurde, ist der Spannungsteiler zwischen Vin und GND (R10+R11) auch noch zusätzlich über R4 mit 3V3 verbunden ?!?
falls die SW1 bestückt wurde, ist der Spannungsteiler zwischen Vin und GND (R10+R11) auch noch zusätzlich über R4 mit 3V3 verbunden ?!?
ups! nicht gut! @didilamken magst du mal schauen und das fürs nächste Release merken.
Hintergrund ist, dass ich an meinem LoPy4 - ob mit oder ohne angestecktem pyTrack - keine plausiblen Werte bei der Spannungsmessung erhalte, obwohl die Werte für den Spannungsteiler richtig eingestellt sind der
settings.py
(BOBHatV5a mit 10M und 2M). Dabei ist es auch egal, ob ich einen Lipo verwende oder das Board über USB betreibe.
Was verwendest du denn als Hardware? Den LoPy4 und wo ist der LiPo angeschlossen? Was beim pyTrack passiert weiß ich nicht. Hast du mit expansion board solo versucht oder eine eigene Platine? Eigentlich funktioniert die Spannungsmessung nämlich!
Bei externen voltage dividern plus expansion board auch das berücksichtigen:
Da wir bei der Kombi meine Platine plus expansion board für die Messung der Batteriespannung aber eh den voltage divider auf der weißen Platine verwenden müssen , da der fest verbaut ist und wir nur den des expansion boards deaktivieren können , tun wir dies:
Bitte den Jumper
Batt
auf dem expansion board herausnehmen oder wie zu alten Mainboard-Konfigurationszeiten auf nur einen Pin setzen.
Hardware ist die BOBHat V5a Platine, den SW1 habe ich bestückt. Den Lipo hatte ich wahlweise über den pyTrack oder direkt über die BOB Platine angeschlossen.
Dann wird es das von @MKO geschilderte Problem sein, dass der selbe pin für die Spannungsmessung und den SW1 verwendet wird.
Mein Vorschlag wäre:
- # As a reference (all readings using 6dB attenuation unless otherwise noted):
- #
- # - Pycom Expansion board v3.0: 115 kΩ / 56 kΩ
- # - Pycom Expansion board v3.1: 1 MΩ / 1 MΩ
- # - Pycom Expansion board v3.2: 1 MΩ / 1 MΩ
- # - BOB-HAT-V5: 1 MΩ / 470 kΩ or 220 kΩ
- # - BOB-SHIELD: 10 MΩ / 2 MΩ
- # - Air Quality monitor: 100kΩ / 47 kΩ, measured with 2.5dB attenuation
OT
pyTrack hate der überhaupt einen voltage divider, nur laut gedacht, ich kenne das Teil gar nicht, du wirst vielleicht auch andere Werte eintragen müssen so das Ding die Spannung messen kann
Siehe VBATT on pysense and pytrack | Pycom user forum und Pytrack & Pysense Battery Voltage Measurement | Pycom user forum
Ggf. ein anderer Mechanismus um Strom zu messen. Kann das ggf. das GPS un die Daten kommen von da?
Es scheint der Widerstand R4 für den SW1 gewesen zu sein. Ich habe diesen jetzt ausgelötet und jetzt sind die Werte der Messung im erwarteten Bereich, zunächst ohne angeschlossenen pyTrack. Ich mache morgen noch einen Test mit dem pyTrack zusammen, um zu sehen ob das einen Einfluss auf die Messung hat. Danke noch mal für die Hilfe!
Klasse, das wir so schnell helfen konnten.
Wir Sollten aber noch in der Doku eintragen, das entweder SW1 oder R10+R11 je nachdem welche Funktion gewünscht ist, bestückt werden dürfen.
BOB-HAT Platine selbst löten @Clemens Kannst Du das dort berarbeiten? [edit] done, cg]
Bin mir gerade nicht sicher welchen Switch wir da jetzt empfelen sollten.
Flash fällt ja auch weg, wenn wir die RGB nutzen wollen. Der Button ist aktuell ja auch nur für Hiverize/FiPy von interesse, wo es aber keine Spannungsüberwachung gibt. Beim Terkin-Datalogger hingegen gibt es die Spannungsüberwachung, dafür aber keinen Switch.Will jetzt irgendwie nicht, das wir jetzt beim Wechsel der Firmware ständig hin und her Löten müssen.
Hier noch die Info bzgl. angeschlossenem pyTrack: die Spannungsmessung ist auch mit angeschlossenem pyTrack ok. Die Spannungswerte liegen in einem plausiblen Bereich, z.B. beim Anschluss über den USB-Port am Laptop werden 4,70 V gemessen. Die Messung wird durch den pyTrack also wohl nicht beeinträchtigt.
Kannst den Wert ja mal spasseshalber mit
import pytrack
py = pytrack.Pytrack()
print( '{}V'.format(py.read_battery_voltage()))
vergleichen, s. VBATT on pysense and pytrack | Pycom user forum