In diesem Beitrag möchte ich dir den Mikrocontroller M5Stack Core2 vorstellen und ein paar kleine Beispiele mit diesem aufzeigen.





Bezug
Den M5Stack Core2 kannst du über den offiziellen Shop unter M5Stack Core2 ESP32 IoT Development Kit für 46.9 $ zzgl. Versandkosten erwerben. Du bekommst diesen Mikrocontroller auch auf Plattformen wie aliexpress.com und banggood.com jedoch ist dieser dort etwas teurer.
Auf ebay.de* bekommst du diesen zu einer fast doppelt so hohen Preis, jedoch hast du dann den Vorteil das die Lieferdauer deutlich kürzer ist.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Lieferumfang
Zum Lieferumfang des M5Stack Core2 gehört neben dem Mikrocontroller noch ein passendes USB-Typ-C Datenkabel mit einer Länge von knapp 20 cm.
DAS beigelegte USB-Typ-C Datenkabel ist für die Verwendung am PC wirklich klein geraten und ich denke das dieses wohl eher dazu gedacht ist, den Mikrocontroller mit einer Powerbank zu verbinden.
Daher würde ich dir empfehlen, neben dem Mikrocontroller noch ein passendes Datenkabel in ausreichender länge zu bestellen (zbp. 2 m USB-Typ-C Datenkabel über ebay.de).
Technische Daten des M5Stack Core2
Bezeichnung | Wert |
---|---|
Mikrocontroller | ESP32-D0WDQ6-V3 |
Taktgeschwindigkeit | 240 MHz dual core 600 DMIPS |
Speicher | |
SRAM | 520 KB |
PSRAM | 8 MB |
Flash | 16 MB |
Schnittstellen | |
WiFi, Bluetooth, | |
UART, I2C, Grove | |
Spannungsversorgung | |
interner Akku | 390mAh mit 3.7V |
Eingangsspannung | 5V mit min. 500mA Leistung |
Umgebungstemperatur | 0°C bis 60°C |
verbaute Sensoren/Aktoren | |
Touch Screen – FT6336U | |
Lautsprecher – NS4168 | |
Vibrationsmotor | |
Taster – Power, Reset, drei virtuelle Schaltflächen auf dem Bildschirm | |
Mikrofon – SPM1423 | |
sechs Achsen Lagesensor – MPU6886 | |
RealTimeClock – BM8563 | |
PowerManagementUnit – AXP192 | |
Mini SD-Card Slot – 16 GB maximal | |
WiFi Antenne | 2.4G 3D |
Gewicht | |
Netto Gewicht | 52 g |
gesamt Gewicht | 70 g |
Abmaße | |
M5Stack Core2 | 54 mm x 54 mm x 16 mm |
Verpackung | 75 mm x 60 mm x 20 mm |
Gehäusematerial | Plastik (PC – Polycarbonat) |
Eigenschaften des Core2 auf der Rückseite
Auf der Rückseite des Core2 ist eine Abbildung mit den technischen Daten und Features des Core2.
Einrichten des M5Stack Core2 unter Microsoft Windows 10
Wenn der Core2 mit dem Computer verbunden wird, sollte eigentlich der passende Treiber gleich installiert werden. Wenn bei dir unter Windows 10 im Geräte-Manager ein gelbes Ausrufezeichen vor dem Eintrag „CP2104 USB to UART Bridge Controller“ steht, dann ist dieser Vorgang leider nicht erfolgreich gewesen
Wie du in diesem Fehlerfall den passenden Treiber per Hand nachinstallierst, habe ich im Beitrag Einrichten des M5Stack Core2 unter Microsoft Windows 10 ausführlich erläutert.
Programmieren des M5Stack Core2 mit UIFlow
Den Mikrocontroller kannst du mit der Software UIFlow programmieren. Dieses Tool ist ebenso von der Firma M5Stack erschienen und kann kostenfrei genutzt werden.
Du bekommst UIFlow als Version für das Web und als installierbare IDE. Wobei die Betriebssysteme MacOS, Linux und Microsoft Windows unterstützt werden.
Bevor du jedoch den Core2 in UIFlow programmieren kannst, muss dieser zunächst mit einer speziellen Firmware geflasht werden. Dazu nutzt du den M5Burner (ebenso auf der Downloadseite zum kostenfreien Download verfügbar).
M5Burner
Für diesen Beitrag verwende ich den M5Burner in der Version 2.4.0.
Zunächst wähle ich den COM Port (1) an welchem der Core2 angeschlossen ist. (ggf. muss man hier im Geräte-Manager schauen)
Danach die Version des Flashfiles (2) hier belasse ich es jedoch auf der neuesten Version und betätige die Schaltfläche „Download“ (3).
Wenn der Download abgeschlossen ist, dann kann über die Schaltfläche „Configuration“ die Zugangsdaten zum Wi-Fi Netzwerk eingegeben und geschrieben werden.
In meinem Fall wähle ich zunächst lediglich die Schaltfläche „Burn“ und schreibe das zuvor geladene Flashfile auf den Core2.
Das Aufspielen des Flashfiles dauerte in meinem Fall knapp 4 min. Und wir mit nachfolgender der Meldung, bei Erfolg quittiert.
=================
Start Burn
=================
--chip esp32 --port COM6 --baud 115200 --before default_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0x7ff000 E:\9999_Arduino\M5Burner\packages\fw\other\wifi.bin 0x1000 E:\9999_Arduino\M5Burner\packages\fw\core\UIFlow_Core2-v1.8.3-core2.bin
=================
esptool.py v2.5.0
Serial port COM6
Connecting...
.
.
.
.
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse
MAC: 08:3a:f2:44:f1:a4
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 16MB
Compressed 100 bytes to 53...
Writing at 0x007ff000... (100 %)
Wrote 100 bytes (53 compressed) at 0x007ff000 in 0.0 seconds (effective 77.9 kbit/s)...
Hash of data verified.
Compressed 8376320 bytes to 3546383...
Writing at 0x00001000... (0 %)
...
Writing at 0x00361000... (100 %)
Wrote 8376320 bytes (3546383 compressed) at 0x00001000 in 313.8 seconds (effective 213.6 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
=================
Burn Successfully
=================
Der Core2 startet nun selbständig neu und zeigt beim Starten bereits das Logo von UIFlow an.


Im Dashboard kann man nun die aktuellen Einstellungen sehen und natürlich den API Key (im Tab „UIFlow“) welchen wir als Nächstes für die Entwicklung eigener Programme in UIFlow benötigen werden.



Einrichten von UIFlow für den Core2
Für die Programmierung in UIFlow benötigen wir einen geflashten Mikrocontroller und den API Key von diesem. Beim Core2 gibt es die Besonderheit das dieser Key vom Display abgelesen werden kann.
Im Fall von dem M5Stack ATOM Lite oder ATOM Matrix muss dieser aus der Anwendung M5Burner entnommen werden.

Bei mir hat die Verbindung zum M5Stack Core2 vom Computer über die Weboberfläche „UI Flow“ nicht funktioniert und ich bin zur IDE gewechselt. In der UI Flow IDE kann man alternativ die Verbindung vom USB-Kabel wählen und damit konnte die Verbindung erfolgreich hergestellt werden.
Beispiele
Hier jetzt ein paar Beispiele mit dem Core2 welche du programmieren kannst ohne zusätzliche Sensoren / Aktoren anschließen zu müssen.
Die nach folgenden Programme / Beispiele findest du auf meinem GitHub Repository StefanDraeger / m5Stack und kannst diese dort herunterladen.
Beispiel 1 – setzen der Hintergrundfarbe und anzeigen von Texten
Zunächst fangen wir mit einem einfachen Beispiel an. Es soll die Hintergrundfarbe in „grün“ geändert werden und der Text „Hallo Welt!“ auf dem Display angezeigt werden.
Beispiel 2 – Buttons auf dem Display anzeigen und Funktion zuweisen
Im zweiten Beispiel möchte ich dir nun zeigen wie du Buttons auf dem Display platzierst und diesem dann eine Funktion zuweist.
Ausblick & Fazit
Der M5Stack Core2 hat ein paar sehr nette Features und birgt durch seine viel zahl an zusätzlichen Modulen eine breite Spanne für viele Projektideen.
In den folgenden Beiträgen auf meinem Blog werde ich dir garantiert noch ein paar sehr nette Beiträge zu diesem zeigen.
Super zu verstehende Erklärung samt Video. Ich habe auch mein erstes Programm über UIFlow geschrieben und immer die USB verbindung gewählt. Doch jedes Mal, wenn ich das Progamm auf den Core2 geladen habe und ihn ein weiters Mal über USB verbinden wollte, kam keine Verbindung zustande. Ich habe dann immer M5Burner neu flashen müssen, um die Verbindung zu UiFlow zu erstellen. Hast du hierzu eine Idee?
Danke und Gruß, Rainer
Hallo Rainer,
dieses Phänomen habe ich mit einem M5Atom Lite, ich hatte mir dann einfach einen neuen geholt und da war der Fehler dann nicht mehr.
Leider konnte ich den Fehler nicht weiter analysieren, da hier auch Google nicht wirklich weitergeholfen hat.
Gruß,
Stefan
Man sollte sich bewusst sein, dass diese Geräte und deren Software in eine reine Spielzeugecke gehören. Dokumentationen und Foren tragen Ihre verwirrenden Einträge dazu bei.
Ich benutze den StickC Plus und den Core2 mit verschiedenen Betriebssystemen. Am meisten Probleme bereiten mir die Verbindungen. Täglich präsentieren sich neue Treiber im Burner ohne vernünftige Dokus. Alles lässt sich nur mit Try and Error bewältigen. Habe von Mac zu Linux und W10 gewechselt und überall Probleme mit Verbindungen. Das ganze ist einfach zu wenig transparent und trägt zu grossem Zeitverlust bei. Aber zum Spielen sind die Gadgets echt super und man übt sich dabei auch noch etwas in Micropython oder Arduino Ide. Die Möglichkeit des Anschlusses verschiedener Sensoren (betreibe eine Wetterstation und Home Assistant) bewog mich zur Anschaffung der Geräte.
Hi,
ja muss da etwas zustimmen, eine erfolgreiche Verbindung mit UIFlow ist schon sehr fummelig.
Jedoch würde ich diese Geräte nicht als Spielzeug sehen, dazu sind diese einfach zu mächtig und können doch so einiges (wenn es mal läuft).
Aber in meinem Fall ist es genau, das, was Spaß macht, das forschen, wie man es zum Laufen bringt.
Gruß
Stefan Draeger
Wenn man ein Program drauf lädt startet der m5stack dann immer mit dem Program, um in UIFLOW Modus wieder reinzukommen, muss man den m5stack neustarten und beim Bootvorgang kann man den UIFLOW Modus auswahlen, dan kann man die Verbindung zu der Software wiederherstellen ohne neu burnen zu müssen
Hi Stefan,
benutze meinen neuen Core2 als intelligentes Thermostat mit Uhrzeit etc. und voreinstellbaren Temperaturen. Kann ich mit UIFLOW auch die Außentemperatur (aus dem Internet) erfassen ?
Grüße Klaus
Hi,
die außentemperatur bekommst du zbsp. vom Webservice OpenWeathermap als JSON, dieses habe ich bereits im Beitrag https://draeger-it.blog/arduino-lektion-69-openweathermap-daten-auf-oled-display-anzeigen/ gezeigt.
Das sollte auch mit dem Core2 funktionieren.
Gruß,
Stefan