Arduino-Projekt: Ein 4-Farben E-Paper Display mit Arduino oder ESP32

Willkommen in der Welt der digitalen Tinte! Heute schauen wir uns ein besonderes Bauteil für Bastler und Tüftler an: Ein 1,54 Zoll großes E-Paper (E-Ink) Modul in der Revision 2.1, das nicht nur Schwarz und Weiß, sondern auch Rot und Gelb darstellen kann. Und die Darstellung bleibt anschließend weiterhin so, auch wenn kein Strom mehr anliegt. Ideal für Ansichten die nur selten geändert werden.

Wie funktioniert eigentlich ein normales E-Ink Display?

Die Technik dahinter nennt man Elektrophorese. Stell dir Millionen winziger Mikrokapseln vor, die so dünn sind wie ein menschliches Haar. In diesen Kapseln schwimmen in einer klaren Flüssigkeit winzige Farbpigmente:

  • Weiße Teilchen sind positiv geladen.
  • Schwarze Teilchen sind negativ geladen.

Legt man nun ein elektrisches Feld an, wandern die Teilchen je nach Ladung nach oben (sichtbar) oder nach unten (unsichtbar). Das Geniale: Einmal oben angekommen, bleiben sie dort auch ohne Strom haften. Deshalb verbraucht ein E-Paper nur Energie, wenn sich das Bild ändert – es ist bistabil.

Und wie kommen die 4 Farben ins Spiel?

Bei meinem neuen Modul (G-Serie) wird es etwas komplexer. Statt nur zwei gibt es nun vier Arten von Pigmenten: Schwarz, Weiß, Rot und Gelb.

Damit das funktioniert, nutzt der Controller einen Trick bei der Ansteuerung:

  1. Verschiedene Spannungen: Die Teilchen reagieren unterschiedlich schnell auf verschiedene elektrische Spannungsstärken.
  2. 2-Bit-Adressierung: Da wir vier Zustände brauchen, reicht ein Bit (0 oder 1) nicht mehr aus. Das System nutzt 2 Bit pro Bildpunkt (Pixel), um dem Controller zu sagen, welche Farbe an welche Stelle wandern soll.
    • Hinweis: Das ist auch der Grund, warum der Bildaufbau bei 4 Farben mit ca. 15–20 Sekunden deutlich länger dauert als bei Schwarz-Weiß-Displays. Die „schwereren“ farbigen Pigmente brauchen einfach mehr Zeit, um sich im „Ölbad“ zu sortieren.

Testaufbau

Hardware:
Waveshare 1.54inch e-Paper Module (G), 200×200
Arduino Uno R4 Wifi

Der Verdrahtungsplan (Arduino R4 WiFi)

Dank der Revision 2.1 (Rev 2.1) des Moduls könnte es direkt mit den 5V des Arduino Uno R4 betreiben werden, da ein Pegelwandler (Level Shifter) die Signale auf 3,3V umsetzt. Wenn ihr die Revisionsnummer nicht kennt: Ich bin da aber mal kein Risiko eingegangen und hab es an 3,3V angeschlossen, geht auch.

Display-PinArduino Uno R4 PinBeschreibung
VCC3,3V oder 5VStromversorgung
GNDGNDMasse
DIND11 (COPI)Controller Out Peripheral In (Datenleitung)
CLKD13 (SCK)Serial Clock (Taktleitung)
CSD10Chip Select (Aktivierung des Displays)
DCD9Data / Command (Daten oder Befehl)
RSTD8Reset (Hardware-Neustart)
BUSYD7Rückmeldung: „Ich bin gerade beschäftigt“

Anfängliche Probleme

Der Betrieb dieses speziellen Displays am Arduino R4 WiFi bringt zwei technische Besonderheiten mit sich, die in diesem Code gelöst sind:

  1. Auflösungs-Mapping: Ging anfangs davon aus das das Panel physisch 152×152 Pixel groß ist, erwartet der verbaute Controller doch eine Adressierung von 200×200 Pixeln.
  2. Farbtiefe (2-Bit): Im Gegensatz zu herkömmlichen Schwarz-Weiß-Displays (1-Bit) benötigt dieses Modell 2 Bits pro Pixel, um vier Farben darzustellen. Dies erfordert eine spezielle Pufferberechnung und die Nutzung der Paint_SetScale(4) Funktion.

Der fertige Code auf GitHub

Notwendige Bibliotheken und weitere Details habe ich von Waveshare e-Paper GitHub Repository.
Ich habe die Hürden bei der Speicherberechnung und der Adressierung gelöst und den Code für euch dokumentiert. Ihr könnt ihn direkt in Visual Studio Code (VS Code) mit PlatformIO (PIO) nutzen.

Den vollständigen Code und die Anleitung findet ihr in meinem GitHub-Repository:

👉 github.com/prilchen/4Farb_E_Ink_Arduino_uno_R4

Viel Spaß beim Nachbauen und Experimentieren!


Teil 2: Smart Weather E-Paper mit 4 Farb-Display

Wie in der Februarausgabe angekündigt, hier nun eine FireBeetle2 Version, die von der Funktion sehr ähnlich ist und daher nur ergänzende Informationen hierzu:

 Hardware:

1x Waveshare 4 Color E-Ink 
1x FireBeetle 2 
1x Akku: Ein passender LiPo-Akku 3,7V, 2000-3000mA (z.B. von EEMB).
Beim bestellen und vor dem Anschließen des LiPo Akku unbedingt auf die Polung achten, da es hier keine einheitliche Normung gibt.
Beispiel im Bild ist irritierend, da ich den Stecker abgeschnitten und Kabel tauschen musste.
Bessere Orientierung bietet der Belegungsplan Firebeetle 2.

Verdrahtung:

4 Color E-Paper PinFireBeetle ESP32-C6 Pin
VCC3,3V
GNDGND
DIN (MOSI)GPIO 22
CLK (SCK)GPIO 21
CSGPIO 8
DCGPIO 14
RSTGPIO 1
BUSYGPIO 18

Quellcode für VS Code auf GitHub:
FireBettle2_ESP32-C6_4_color_EPaper_Calender

Weitere Details siehe ESP32 Projekt: Smart Weather E-Paper Display – Prilchen Laps

, , ,
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzerkomfort bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst und hilft uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.