MicroPython-Firmware schmirgeln (150er)

Ja, die 0.3.0 ist noch nicht released. Das was Du auf dem Tisch hast, sind die brandneuesten Errungenschaften einiger gemeinsamer Sessions zusammen mit @einsiedlerkrebs und @tonke während der letzten vier Wochen, die es noch nicht in ein Release geschafft haben.

Wir müssen hier noch ein wenig weiterarbeiten, damit alles ein wenig abgerundeter daherkommt. Vielen Dank für Deine Berichterstattung!

Finding the appropriate serial port

Problem

Ad hoc improvement

a) Was gibt denn das bei Dir aus?
b) Würde denn bei Dir auch rshell --port COM4 boards unter WSL klappen, indem Du die Schnitte per export MCU_SERIAL_PORT=COM4 konfigurierst? Vermutlich geht das so nur nativ unter Windows, was Ihr gerne erforschen könnt. Dafür hatte ich Running rshell natively on Windows vorgesehen.

Real improvement

Wenn die Integration von pycom-fwtool-cli in den Findungsprozess sinnvoll ist, übernehme ich das gerne, so dass es ggf. via make list-serials angesteuert wird, wenn man unter Windows unterwegs ist (RUNNING_IN_HELL).

Reattaching to the serial console

Momentan kann man nur in der REPL per CTRL+D einen soft reboot auslösen und bekommt dann die Log Ausgabe des Datenloggers.

Wir würden gern auch an einen laufenden Datenlogger attachen können, um die gleiche Ausgabe zu bekommen.

Lösung

Man kommt nun per make console an einen laufenden FiPy ran und kann über make reset-device per Software einen Hard Reset auslösen.

Always upgrade your device firmware

Problem I

This is bad.

Problem II

It looks like we only get sparse metadata about the system runtime when running on older firmware releases like 1.18.2.r4.

Improvement for Problem II

================================
BOB MicroPython Datalogger 0.2.1
================================
CPU freq     160.0 MHz
Device id    807d3ac262bc


Python  : 3.4.0
lorawan : 1.0.2
machine : FiPy with ESP32
nodename: FiPy
release : 1.20.0.rc8
sigfox  : 1.0.1
sysname : FiPy
version : v1.9.4-7b83c6d on 2019-03-06

When running on a more recent firmware version, the metadata contains valuable information about the system runtime.

We would appreciate if you could upgrade your firmware.

I have updated the firmware yesterday and now again and the last stable version is 1.18.2.r4 .

Then, the extensive information is probably only available from the development version 1.20.x.

1 Like

2 posts were merged into an existing topic: Aussetzer bei der Datenakquise - Mosquitto auf elbanco läuft holprig

Zu viele Nachkommastellen

Wir übermitteln momentan zu viele Nachkommastellen:

  1. ist es eine Scheingenauigkeit, da die Sensoren gar nicht so genau messen und
  2. verbraucht es Bandbreite (besonders bei LoRa)

Daher würde ich vorschlagen wir runden (wir sollten tatsächlich runden, nciht nur abschneiden!) schon auf dem Node die Messwerte und zwar:

  • Temperatur: 1 Nachkommastelle
  • Luftfeuchtigkeit: 1 Nachkommastelle
  • Luftdruck: keine Nachkommastelle
  • Gewicht in kg mit 3 Nachkommastellen

Das ist der (alte) Status gerade:

timeseries
time temperature.i2c:0.0x76 temperature_28ff641d8fd833ac weight memfree temperature_28ff641d8fd4d5d5 temperature_28ff641d8fd18ab0 humidity.i2c:0.0x76 temperature_28ff641d8fd8778b temperature_28ff641d8fd922ab pressure.i2c:0.0x76
2019-04-12T12:51:07.030258Z 22.35 22.5625 -136610.3 2429952 22.8125 22.875 31.86 22.25 22.375 1019.51
2019-04-12T12:51:22.167623Z 22.36 22.5625 -136702.5 2430000 22.8125 22.875 31.9 22.25 22.375 1019.47
2019-04-12T12:52:07.725812Z 22.37 22.5625 -136518.5 2430032 22.8125 22.875 31.81 22.25 22.4375 1019.39
2019-04-12T12:52:22.881995Z 22.38 22.5625 -136506 2429984 22.8125 22.875 31.95 22.25 22.4375 1019.46
2019-04-12T12:52:38.021274Z 22.39 22.5625 -136562.7 2430048 22.875 22.875 31.88 22.25 22.4375 1019.46
2019-04-12T12:52:53.240296Z 22.39 22.5625 -136519.5 2430128 22.875 22.875 31.76 22.25 22.4375 1019.42
2019-04-12T12:53:08.462735Z 22.39 22.5625 -136499.7 2429856 22.875 22.875 31.81 22.25 22.5 1019.46
2019-04-12T12:53:23.602897Z 22.39 22.5625 -136493 2430000 22.875 22.875 31.81 22.25 22.5 1019.45
2019-04-12T12:53:38.817121Z 22.38 22.5625 -136449.2 2429872 22.875 22.875 31.86 22.25 22.4375 1019.46
2019-04-12T12:53:53.946593Z 22.4 22.5625 -136475.8 2430032 22.875 22.875 31.88 22.25 22.4375 1019.43
2019-04-12T12:54:39.467619Z 22.4 22.625 -136469.3 2429968 22.875 22.875 31.83 22.25 22.4375 1019.44
2019-04-12T12:54:55.125765Z 22.42 22.625 -136373.5 2430032 22.875 22.875 31.84 22.25 22.4375 1019.38
2019-04-12T12:55:09.803500Z 22.42 22.625 -136431.7 2430048 22.875 22.875 31.91 22.25 22.4375 1019.37
2019-04-12T12:55:25.036772Z 22.43 22.625 -136431.7 2430032 22.9375 22.875 31.84 22.25 22.4375 1019.38
2019-04-12T12:55:40.344700Z 22.41 22.625 -136402.8 2429984 22.875 22.875 31.84 22.25 22.4375 1019.45
2019-04-12T12:55:55.477524Z 22.42 22.625 -136387.7 2430128 22.9375 22.875 31.78 22.375 22.4375 1019.44
2019-04-12T12:56:10.623716Z 22.42 22.625 -136397.8 2430080 22.9375 22.875 31.74 22.25 22.4375 1019.38
2019-04-12T12:56:25.831365Z 22.42 22.625 -136434 2429856 22.9375 22.875 31.74 22.25 22.4375 1019.41
2019-04-12T12:57:11.400824Z 22.41 22.625 -136443.8 2429984 22.875 22.875 31.78 22.25 22.375 1019.45
2019-04-12T12:57:26.549550Z 22.42 22.625 -136436.3 2430048 22.875 22.875 31.79 22.25 22.375 1019.38
2019-04-12T12:57:41.681305Z 22.41 22.625 -136403 2430048 22.9375 22.875 31.8 22.25 22.375 1019.45
2019-04-12T12:57:56.825154Z 22.41 22.625 -136433.2 2430000 22.9375 22.875 31.76 22.25 22.375 1019.43
2019-04-12T12:58:12.058364Z 22.41 22.625 -136410.2 2430000 22.9375 22.875 31.75 22.25 22.375 1019.35
2019-04-12T12:58:27.265090Z 22.4 22.625 -136248.8 2429872 22.9375 22.875 31.82 22.25 22.375 1019.38
2019-04-12T12:58:42.398352Z 22.42 22.625 -136260.2 2429984 22.9375 22.875 31.89 22.25 22.375 1019.41
2019-04-12T12:58:57.534634Z 22.42 22.625 -136284.5 2430016 22.9375 22.875 31.78 22.375 22.375 1019.44
2019-04-12T12:59:43.046643Z 22.41 22.625 -136223 2430048 22.9375 22.875 31.78 22.375 22.375 1019.43
2019-04-12T12:59:58.241266Z 22.41 22.625 -136263.5 2430032 22.9375 22.875 31.79 22.375 22.375 1019.37
2019-04-12T13:00:13.373832Z 22.41 22.625 -136328 2429984 22.9375 22.875 31.89 22.375 22.375 1019.37
2019-04-12T13:00:28.506273Z 22.44 22.625 -136327.6 2430016 22.9375 22.875 31.81 22.375 22.375 1019.42
2019-04-12T13:00:43.642104Z 22.42 22.625 -136255.3 2430048 22.9375 22.875 31.74 22.25 22.375 1019.33
2019-04-12T13:00:58.769414Z 22.44 22.625 -136265.7 2430048 22.9375 22.875 31.75 22.375 22.375 1019.4
2019-04-12T13:01:13.909065Z 22.44 22.625 -136271.5 2429984 22.9375 22.875 31.7 22.375 22.375 1019.37
2019-04-12T13:01:29.121866Z 22.43 22.625 -136223.5 2430032 22.9375 22.875 31.73 22.375 22.375 1019.44
2019-04-12T13:02:14.680025Z 22.45 22.625 -136244.5 2430032 22.9375 22.875 31.72 22.375 22.375 1019.42
2019-04-12T13:02:29.839883Z 22.45 22.625 -136232 2429984 22.9375 22.875 31.77 22.375 22.375 1019.39
2019-04-12T13:02:44.988421Z 22.45 22.6875 -136270.7 2430032 22.9375 22.875 31.7 22.375 22.375 1019.39
2019-04-12T13:03:00.195374Z 22.46 22.6875 -136243.8 2429984 22.9375 22.875 31.72 22.375 22.375 1019.38
2019-04-12T13:03:15.323896Z 22.45 22.6875 -136257.5 2430016 22.9375 22.9375 31.66 22.375 22.375 1019.39
2019-04-12T13:03:30.458708Z 22.46 22.6875 -136289.5 2430128 22.9375 22.875 31.69 22.375 22.375 1019.4
2019-04-12T13:03:45.597860Z 22.45 22.6875 -136241.1 2430128 22.9375 22.875 31.74 22.375 22.375 1019.39
2019-04-12T13:04:00.824108Z 22.45 22.6875 -136229 2429824 22.9375 22.875 31.68 22.375 22.375 1019.36
2019-04-12T13:04:46.454332Z 22.46 22.6875 -136253.8 2429824 22.9375 22.875 31.76 22.375 22.375 1019.33
2019-04-12T13:05:01.621803Z 22.46 22.625 -136229 2429984 22.9375 22.875 31.74 22.375 22.375 1019.25
2019-04-12T13:05:16.768808Z 22.47 22.6875 -136271 2429968 22.9375 22.875 31.73 22.375 22.375 1019.35

$ make purge-device fails for @einsiedlerkrebs:

make purge-device
Format /flash on the device? This will delete your program. [y/n]? #.venv3/bin/rshell --port /dev/ttyACM0 --buffer-size 2048 --timing --file tools/clean.rshell
Using buffer-size of 2048
Connecting to /dev/ttyACM0 (buffer-size 2048)...
Trying to connect to REPL  connected
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Apr 15, 2019 09:03:02
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Entering REPL. Use Control-X to exit.
>
Pycom MicroPython 1.20.0.rc8 [v1.9.4-7b83c6d] on 2019-03-06; FiPy with ESP32
Type "help()" for more information.
>>> 
>>> import os ; os.fsformat(/flash) 
Traceback (most recent call last):
  File "<stdin>", line 1
SyntaxError: invalid syntax
>>> took 1.024 seconds

Hier funktioniert es

root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware# make purge-device
Format /flash on the device? This will delete your program. [y/n]? #.venv3/bin/rshell --port /dev/ttyS16 --buffer-size 2048 --timing --file tools/clean.rshell
Using buffer-size of 2048
Connecting to /dev/ttyS16 (buffer-size 2048)...
Testing if ubinascii.unhexlify exists ... Y
Retrieving root directories ... /flash/
Setting time ... Apr 15, 2019 11:48:19
Evaluating board_name ... pyboard
Retrieving time epoch ... Jan 01, 1970
Entering REPL. Use Control-X to exit.
>
Pycom MicroPython 1.20.0.rc9 [v1.9.4-7eeaf3f] on 2019-04-01; FiPy with ESP32
Type "help()" for more information.
>>>
>>> import os ; os.fsformat("/flash")
>>> took 1.545 seconds
root@XPS13-CGruber:/home/cgruber/hiveeyes/sources/hiveeyes-micropython-firmware#

Btw. was ist “yout program” genau?? kann ich mit make recycle wieder etwas draufspielen, oder muss ich make setup wieder ausführen?

Alles! Must rephrase to “Will wipe your device completely.

make setup && make recycle

1 Like

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