ePaper Display für mein Moped

Arduino Nano mit ePaper 1.54 Display und BME280

Der alten Gummi Kuh fehlte eine Aussentemperatur Anzeige. Diese ist aber schon hilfreich, gerade wenn ich im Winter unterwegs bin. Also habe ich den Drucker angeschmiessen und zuvor mit FreeCad ein an das Moped angepasstes Gehäuse entwickelt. Als Sensor kommt der bekannte BME280 zum Einsatz.

Hardware (alles von AliExpress bis auf das ePaper Display):

  • Arduino Nano Clon
  • BME 280 – erfasst Temperatur, Luftdruck und Luftfeuchtigkeit. Ist recht zuverlässig.
  • Display: „12864 Dot Matrix Module 12864G-086-P LCD Module with Backlight COG 5V“ (alte Version)
  • ePaper 1.54 Waveshare V2.1 – bezogen von Eckstein

 

Software:
Ist nicht so einfach. Oder doch…wie auch immer. Der Installation zu Grunde liegen im wesentlichen 2 Bibliotheken.

  • Schrift und Grafik: ‣ u8g2 von Oli Kraus
  • ePaper Bibliothek ‣ GxEPD2 von Jean-Marc Zingg
  • Der BME 280 wird von Standard-Bibliothek von ‣ Adafruit gesteuert.
  • Konverter Software ttf zu bdf, auch hier kann Oli Kraus helfen ‣ otf2bdf. Mehr Infos siehe weiter unten.
  • Konverter Software bdf zu C-Code, findet sich u. a. bei Oli Kraus ‣ bdfconv. Mehr Infos siehe weiter unten.
  • LCD Digital-Schrift: Ich habe die hier von dafont.com ‣ OPEN24DISPLAY. Vielen Dank an dieser Stelle an den Font Ersteller www.southype.com dafür.

Alle Bibliotheken u8g2, GxEPD2 + BME 280 werden bevorzugt über die Arduino Entwicklungsumgebung einbunden. Wie das geht, steht u. a. hier ‣ heise Make Artikel.

Schriften
Die u8gs Bibliothek kennt schon viele Schriften aber (Stand 2018) nicht eine „Digital“ Schrift, die der Displayanzeige der BMW nahe kommt. Also musste ich eine entsprechende Schrift bauen. Die dafür nötigen Tools befinden sich ebenfalls bei Oli Kraus, sie sind aber etwas versteckt und daher weiter oben verlinkt.
Schrift holen:
Zunächst brauchen wir ein Schrift, in meine Falle wie oben beschrieben eine LCD Schrift. Bei dafont.com finden sich viele freie Schriften für den privaten Gebrauch:
https://dl.dafont.com/dl/?f=open_24_display_st

Schrift konvertieren in zwei Schritten

Die Schrift muss zunächst in das bdf Format konvertiert werden. Ich habe dazu otf2bdf unter Linux kompiliert, im Git befindet sich aber auch eine Windows Version.

Ein Beispiel dazu:

./otf2bdf -a -r 50 -p 131 -o tmp.bdf ../Open 24 Display St.ttf

Mit -r wird die Schriftgrösse festgelegt, mit -p die Anzahl der Schriftzeichen. Details zu otf2bd Befehlen zeigt wie immer der „man otf2bdf“ command.

Die bdf Datei muss wiederum im zweiten Schritt in c-Code umgewandelt werden, nur dieser kann von u8gs Bibliothek interpretiert werden. Auch hier ein Beispiel:

./bdfconv -v -f 2 -m "3-131,tmp.bdf -o digital_7_50.c

Auch hier gilt, über „man“ sind alle Befehle nachlesbar.

Auf meinem ‣ GitHub befindet sich die passende „ino“ Datei zum Download.



Moped mit ePaper Display
Einbau der LED mit Kupferlack Draht
Display Halter optimiert auf BMW GS Windschutz Halter