ESP32 -- Voraussetzungen für MicroPython

Da PyCom leider Pleite ist, wurde bei der letzten Versammlung des BOb-Vereins – btw wir sollten die Termine auch immer hier kommunizieren – gefragt, welche Hardware man als Ersatz nehmen könnte, um darauf auch GitHub - Hiverize/FiPy laufen zu lassen, das ist die im BOb-Projekt entwickelte MicroPython-Software mit captive portal, webbasierter Zurdnung von Temperatursensoren (DS18B20) usw.

Daher die allgemeine Frage, was muss man bei der Auswahl eines ESP32 dev-boards beachten, wenn man auf dem MicroPython laufen lassen möchte?

Unter 1. Getting started with MicroPython on the ESP32 — MicroPython latest documentation habe ich das gefunden:

Requirements

The first thing you need is a board with an ESP32 chip. The MicroPython software supports the ESP32 chip itself and any board should work.

Das ist tatsächlich so oder gibt es weitere Anforderungen? Ggf. auch “Mindestanforderungen”, Gibt es beschränkungen auf bestimmte “Chipsätze”, funktionieren die neuen ESP32-E oder ESP32-S3 auch?

aus https://github.com/micropython/micropython:

  • esp32 – Espressif ESP32 SoC (including ESP32S2, ESP32S3, ESP32C3)

Microcontroller targets can be as small as 256kiB flash + 16kiB RAM, although devices with at least 512kiB flash + 128kiB RAM allow a much more full-featured experience.

MicroPython läuft als task unter dem FreeRTOS, - und natürlich will man mehr RAM und ROM haben; spätestens Anwendungen mit (v.a. größeren) displays machen externem RAM nötig. Im Fall des ESP32 ist dies per SPI angeschlossener, pseudo-statischer RAM (PSRAM).

Espressif hatte bei den ersten beiden Versionen des ESP32 genau beim PSRAM-Support derbe Fehler (ESP32 v0 und v1; s. Support for External RAM - ESP32 - — ESP-IDF Programming Guide latest documentation und ESP32 PSRAM Cache hardware bug - das hat uns bei Pycom auch lange genarrt, bis es als ‘echter’ Fehler des IC identifiziert wurde). Beim ESP32 v3 ist dieses Problem final gefixt, der kann mit PSRAM problemlos und ohne work-arounds umgehen.

Wenn also das Energiebudget es zuläßt, ein System mit PSRAM vorsehen, welches außedem kein ESP32 v0 oder v1 ist. - Der ESP32-WROVER-IE (mit ESP32-D0WD-V3) mit 16 MB (SPI)flash und 8 MB PSRAM wäre ein modernes Beispielsystem, zumal mit uFL-Buchse ausgestattet.

2 Likes

Ich hatte etwas auf den FireBeetle 2 wegen des niedrigen deep sleep current geschielt, der hat nur einen ESP32-E mit 4 MB Flash und 520 k SRAM. Apropos “Display” das Ding hat einen GDI Display Port und in den Kommentaren (gleiche URL unten) wird schon über fehlendes PSRAM orakelt:

How does this perform with camera / screen given that it lacks PSRAM?

Also eher der FireBeetle 2 dann nicht?

Theoretisch preisen sie ihn auch für MicroPython an, ob sich das “very soon” dann auf MicroPython bezieht oder auf Scratch, kann ich nicht sagen.

FireBeetle 2 ESP32-E supports Arduino programming and will support Scratch graphical programming and MicroPython programming very soon.