In diesem Beitrag möchte ich dir den ESP32-C3 mit LuatOS System vorstellen und zeigen, wie du diesen Mikrocontroller programmierst.

Einen Mikrocontroller mit ESP32-C3 Chip habe ich dir bereits im Beitrag Mikrocontroller ESP32 C3 mit LCD-Display vorgestellt.


Bezug des ESP32-C3 mit LuatOS System
Den mir vorliegenden Mikrocontroller habe ich auf aliexpress.com für wenige Euro gefunden und für sehr interessant befunden. Es gab im gleichen Shop zusätzlich auch ein LCD-Display, welches man auf diesen stecken kann, dieses habe ich gleich mitbestellt.
Lieferumfang
Zum Lieferumfang des Mikrocontrollers und des LCD-Displays gehörte jeweils 2 Stiftleisten und Buchsenleisten.
Was mich doch recht störte war, dass jede einzelne Stift- / Buchsenleiste einzeln eingepackt war. Diese Ressourcenverschwendung ist bezeichnend für Shops mit Sitz im asiatischen Raum.


ESP32-C3 Chip
Auf dem hier verwendeten Mikrocontroller ist der recht neue ESP32-C3 in der Version 342021 verbaut.
Was ist LuatOS?
Kommen wir zunächst zur Frage: „Was ist LuatOS?“. LuatOS ist ein Embedded Script Running Framework, welches die Entwicklungseffizienz erhöhen soll. Dieses System ist für IoT-Geräte optimiert, welche einen geringen Speicherbedarf haben.
Einrichtung der Entwicklungsumgebung Visual Studio Code
Das LuatOS System wird in Visual Studio Code programmiert, wo du eine zusätzliche Erweiterung für dieses System installieren kannst.
Wenn dieses installiert wurde, dann muss noch die Datei „settings.json“ für den aktuellen Workspace auf nachfolgenden Code angepasst werden.
Diese erreichst du über „Datei“ > „Einstellungen“ > „Einstellungen“ oder einfacher über die Tastenkombination „Strg + ,“.
Wenn der Reiter „Einstellungen“ geöffnet ist, findest du oben recht das Symbol „Einstellungen öffnen (JSON)“ (siehe Bild).
{ "editor.fontFamily": "Consolas, 'Microsoft Yahei UI Light','Courier New', monospace", "editor.renderLineHighlight": "all", "editor.emptySelectionClipboard": false, "files.autoGuessEncoding": true, "editor.bracketPairColorization.enabled": true, "editor.guides.bracketPairs":"active", "luahelper.base.showOnline": false, }
Quellen
Für die nachfolgenden Kapitel habe ich mich aus diversen Quellen bedient, zum einen aus der offiziellen Dokumentation und auch aus dem russischen YouTube Video.
Da ich aber weder russisch noch Chinesisch sprechen / lesen kann habe ich mich mit dem Google Translator und der Seite deepl.com bedient. Des Weiteren waren die Bilder auch schon recht aufschlussreich.
Flashen des Mikrocontrollers
Für den Upload des Codes benötigen wir ein zusätzliches Tool, welches unter https://cdndownload.openluat.com/Luat_tool_src/last_release/Luatools_v2.exe heruntergeladen werden kann.
Mein Browser & Antivirus hatte zunächst die Verbindung abgelehnt, was ich manuell bestätigen musste.
Wenn die EXE-Datei heruntergeladen und mit deinem doppelklick gestartet wurde, wird man mit einem Dialog darauf hingewiesen, dass Updates vorliegen. Diese installiere ich zunächst.
Download des Flash-Files für den
Damit wir mit dem Mikrocontroller kommunizieren können, müssen wir zunächst einige Einstellungen treffen.
- zum einen muss die Checkbox (1) markiert werden,
- der korrekte COM Port (2) muss gewählt werden, und
- die Baudrate muss auf 921600 (3) eingestellt werden
Wenn diese Einstellungen getroffen wurden, kann die Schaltfläche „Open Serial Port“ betätigt werden und die kleine graue Lampe sollte sich grün verfärben (4). Im seriellen Output sollte man nun zeitgleich die Meldung „[Zeitstempel] hi, LuatOS“ finden.
In meinem Fall verwende ich den Mikrocontroller ESP32-C3 und muss die Datei „luatools\resource\esp32c3_lua_lod\core_V0003\LuatOS-SoC_V0003_ESP32C3.soc“ auswählen.
Wenn die Datei ausgewählt wurde, kann die Schaltfläche „download“ betätigt werden. Der Download dauert mit knapp 50 Sekunden recht lange und in der Zeit sollte der Mikrocontroller nicht abgesteckt werden!

Programmieren der Ausgabe „Hello World!“
Starten wir mit einem kleinen Programm und programmieren, dass die Ausgabe „Hello World!“ auf der seriellen Schnittstelle ausgegeben wird.
In Visual Studio Code erstellen wir eine neue Datei „main.lua“ und kopieren folgenden Code hinein. Die Datei muss den Dateinamen „main.lua“ tragen denn sonst wird diese nicht hochgeladen!
PROJECT = "helloWorld" VERSION = "0.0.1" sys = require"sys" print("Hello World!") sys.run()
Diese Datei müssen wir jetzt mit dem zuvor wendeten luatool auf den Mikrocontroller hochladen.
Im neuen Dialog erzeugen wir uns zunächst ein neues Projekt mit der Schaltfläche „Create project“ (1), diesem müssen wir einen Namen vergeben (2) und dieses mit der Schaltfläche „OK“ (3) bestätigen.
Wenn das Projekt erstellt wurde, dann wird die Schaltfläche „Select the file“ (1) freigeben aus welcher wir die Firmware für den Mikrocontroller markieren (2) und diese über die Schaltfläche „Öffnen“ (3) wählen.
Nun muss die zuvor erzeugte Datei „main.lua“ gewählt werden, dazu klicken wir die Schaltfläche welche in der Grafik mit (1) markiert ist und navigieren in den Projektordner (2) und markieren die Datei (3) und betätigen dieses mit der Schaltfläche „Öffnen“ (4).
Im letzten Schritt betätigen wir die Schaltfläche „Download only script“ (1), nach dem erfolgreichen Download wird die Zeile „download successful“ in grün (2) angezeigt.
hallo, was sond die vor und nacteile von luatos zur arduino ide?
Hi,
ich stecke in dem Thema „LuatOS“ noch nicht so tief drin, muss aber sagen, dass es sich recht intuitiv programmieren lässt. Aber das ist erst mein erster Eindruck.
Es werden noch einige Beiträge dazu folgen und dann denke, ich kann ich auch ein Vergleich zwischen diesen beiden Systemen ziehen.
Gruß,
Stefan Draeger
Das Board ist für den Preis sehr solide! Tasmota läuft darauf auch auf Anhieb.
Mit Tasmota kommt auch eine sehr moderne Script Sprache mit; „Berry“. Diese ist irgendwo zwischen LUA und microPython angesiedelt. Die Dokumentation von Berry ist auf Englisch. Tasmota kann ganz einfach über den Chrome Browser installiert werden. Also einfach das C3 Luatos Board anstecken und diese Website aufrufen
https://tasmota.github.io/install/
Hi, ich habe das Board in der Annahme eines gewöhnlichen esp devboards gekauft und wollte es mit der Arduino ide als espnow Fernbedienung programmieren, habe jedoch ständig eine Fehlermeldung im Serial monitor bekommen, nur so bin ich darauf aufmerksam geworden, das dieses Framework vorinstalliert ist, da ich nicht viel zu luatos und espnow gefunden habe, frage ich mich ob und wie es möglich wäre den esp auf die bisherige Art per Arduino ide zu programmieren, bzw wie ich ein anderes Framework flashen kann.
LG
David
Hi David,
du benötigst dafür ein Flashfile also eine BIN-Datei für den ESP32, dieses findest du auf der Seite vom Chiphersteller Espressif.
Gruß,
Stefan
Hallo,
ich habe auch diesen Controller zur Hand und habe unter Arduino 2.0.3 das board programmiert, indem ich nach Installation der ESP tools das Board Adafruit QT Py ESP32-C3 ausgewählt habe. Dies verwendet die Pins 18 und 19. Die bestehende Applikation wird gelöscht, also sollte das Programmieren funktionieren, ich konnte jedoch die beiden LEDs noch nicht ansteuern.
Viele Grüße, Elmar