Micropython auf ESP32-S3

Hubert Högl,

2024-07-17

Dies ist eine Kurzanleitung um Micropython (https://micropython.org) für das Heltec LoRa ESP32 V3 Board zu kompilieren. Die Kommandos habe ich der offiziellen Anleitung entnommen, die man unter folgendem Link findet:

https://github.com/micropython/micropython/blob/master/ports/esp32/README.md

ESP-IDF klonen in ~/esp-idf/:

$ git clone -b v5.2.2 --recursive https://github.com/espressif/esp-idf.git
$ cd esp-idf
$ git checkout v5.2.2
$ git submodule update --init --recursive
$ cd esp-idf
$ ./install.sh
$ . export.sh

In /home/hhoegl/.espressif/ sind danach fast 6 GByte installiert.

Micropython fuer ESP32-S3 holen (evtl. wget installieren mit apt install wget):

$ wget https://micropython.org/resources/source/micropython-1.23.0.tar.xz

Entpacken

$ tar axvf micropython-1.23.0.tar.xz 

Micropython fuer ESP32-S3 kompilieren:

$ cd micropython-1.23.0/ports/esp32
$ make BOARD=ESP32_GENERIC_S3

(Nur zur Info: Das “Executable” des gebauten Micropython Interpreters ist hier: build-ESP32_GENERIC_S3/micropython.elf)

Flash loeschen

$ esptool.py -p /dev/ttyUSB0 -b 460800 --before default_reset --after hard_reset --chip esp32-s3 erase_flash

Flashen

$ make deploy BOARD=ESP32_GENERIC_S3

Nach dem Flashen muss man noch auf den Reset-Knopf des ESP32 druecken.

Terminalprogramm installieren

$ sudo apt install picocom 

Aufrufen

$ picocom -b 115200 /dev/ttyUSB0

Nun sollte man den Python Prompt >>> sehen, auf dem man bereits wie gewohnt in Python interaktiv arbeiten kann.

Picocom beendet man mit Strg-A Strg-X. Gerne mal in die Man-Page schauen (man picocom).

Um produktiv mit Micropython zu arbeiten sollte man das mpremote Tool verwenden. Man installiert es mit pip install mpremote. Auf dem Python Package Index findet man es unter https://pypi.org/project/mpremote. Geschrieben wurde es vom Micropython-Erfinder Damien P. George.

Hier ist eine kurze Zusammenfassung für den Kurs: https://tha.de/~hhoegl/iot_workshop/alp24/mpremote.html

Die offizielle Doku ist hier: https://docs.micropython.org/en/latest/reference/mpremote.html