MicroPython-Firmware schmirgeln (150er)

Wieder mal frustran, aber vielleicht hab ich einfach nur wieder was vergessen … Wollte den neuen deep sleep testen Implement deep sleep between readings · Issue #2 · hiveeyes/hiveeyes-micropython-firmware · GitHub

Was ich gemacht habe

git pull
make setup 
make sketch-and-run

Was raus kommt:

Initializing filesystem as LittleFS!
[boot.py] INFO: Python module search path is: ['', '/flash', '/flash/lib', 'dist-packages']

Traceback (most recent call last):
  File "main.py", line 11, in <module>
ImportError: no module named 'terkin'
Pycom MicroPython 1.20.0.rc11 [v1.9.4-0a38f88] on 2019-05-14; FiPy with ESP32
Type "help()" for more information.
>>>

Problem

No worries and sorry, wir waren 's.

Einmalig "make recycle" oder "make install-framework" noch dazwischen. Ich aktualisiere gleich die Dokumentation. Danke!

Lösung

# Get most recent development sources
git pull

# Setup sandbox environment
make setup

# Upload framework and program to device
make install

# Upload program sketch and invoke hard reset
make sketch-and-run
1 Like

Bingo! Jetzt läuft es, ich musste in der settings.py – wie in der example-Vorlage angedeutet – noch

'deepsleep': True,

hinzufügen. Nun läufts! Danke!

2 Likes

Mehr Strom sparen

[*] Radios abschalten

Nachforschungen

Maßnahmen

WiFi, Bluetooth und LTE, ggf. nur mit SIM Karte.

… oder doch nicht nötig?

All radios on by default | Pycom user forum

Pycom-SSO - LogIn


[*] Peripherie abschalten

HX711, I2C, ADC.

HX711


Internen LDO abschalten

Low power ESP32: Software tweaking (less hardware) - #9 by Andreas


[*] Wake up anders setzen?


30 Sekunden warten vor dem Messen

2 Likes

Stromsparmaßnahmen

Alles.

Power saving: Explicitly turn off all peripherals having implicitly b… · hiveeyes/terkin-datalogger@e432471 · GitHub


Dazu konnte ich in der Pycom MicroPython Dokumentation keine passende Schnittstelle finden. Habt Ihr Ideen?


Das ist nun folgendermaßen gesetzt:

machine.pin_sleep_wakeup(pins=['P8'], mode=machine.WAKEUP_ALL_LOW, enable_pull=False)

Habt Ihr dazu Einwände? Die Implementierung mit Doku gibts unter https://github.com/hiveeyes/hiveeyes-micropython-firmware/blob/master/terkin/device.py#L247-L276.


Brrr.

Was ist denn der Unterschied zwischen

  "system.time": 921,
  "system.runtime": 16,
  "system.uptime": 4202.907,
  • system.time: Die Systemzeit (Unix Epoch) in Sekunden.
  • system.runtime: Zeit seit Start des Sensors in Sekunden.
  • system.uptime: Der Wert aus utime.ticks_ms():

    Returns an increasing millisecond counter with arbitrary reference point, that wraps after some (unspecified) value. The value should be treated as opaque, suitable for use only with ticks_diff().

    time – time related functions — MicroPython 1.7 documentation

https://github.com/hiveeyes/hiveeyes-micropython-firmware/blob/master/terkin/sensor/system.py#L147-L165

1 Like

Den Watchdog. Wollen wir natürlich auch ordentlich erschließen. Weil: Warum nicht?

Dazu findest sich jenes:

Muss nicht stimmen, wurde bestimmt alles von üblen Trollen geschrieben.


image
Why does this always happen to us?

Jetzt

Testbench

Der eine Eumel liegt nun ohne externe Sensoren, nur mit den internen Systemsensoren an ner Batterie bei mir rum und saugt sich leer. Der Meßzyklus ist fünfminütlich – mit deep sleep.

https://swarm.hiveeyes.org/grafana/d/xeR1mH7Wz/amo-fipy-testbench

Update: Jetzt auch mit ein paar Annotationen im Vcc-Graphen rechts oben.

Errata

Dass “weight = 0” übertragen wird, ist ein Fehler, da überhaupt kein HX711 angeschlossen ist.


Workbench

Mit dem anderen wird wechselweise entwickelt und sonst ebenfalls “einfach laufengelassen” – bisher vor allem entweder mit Stromversorgung über die Workstation oder über Netzteil. Die Daten dazu gibt es unter

https://swarm.hiveeyes.org/grafana/d/0CJxruMZz/amo-fipy-workbench

2 Likes