Adafruit-GFX-Library / SSD1306 - Libraries verkleinern

Hallo zusammen,

ich habe mir für ein Projekt ein 0,98" Monochrom OLED gekauft.
Da ich das gerne mit einem Arduino Nano betreiben möchte, stehe ich vor dem Problem, dass die Libraries 98% des Speichers belegen.
Bei einer groben Durchsicht habe ich gesehen, dass man wohl einiges rauswerfen könnte, was ich nicht brauche.

  • 256 Zeichen (Brauche prinzipiell nur Buchstaben + Zahlen)
  • DrawBezier, usw. (Und ähnliche Funktionen zum Zeichnen)
  • StoreBitmap (Eigenes Startlogo auf das Display brennen)
  • Adafruit Logo

Gibt es vielleicht schon eine schlanke Version der Libraries?
Wie gehe ich am besten vor?
Library kopieren und dann Funktion für Funktion löschen & testweise kompilieren? Das ist bei dem Umfang schon ziemlich mühsam, kann ich mir vorstellen.

Hier ist das Git Repository von Adafruit.

Vielleicht hat jemand von Euch das schon gemacht oder einen Tipp, wie ich das möglichst sinnvoll reduzieren kann, ohne nachher keinen lauffähigen oder verbuggten Code zu haben.

Danke!

u8glib/utft nutzen. Nicht benutzte Funktionen sollten den Speicher nicht füllen

Ich habe mir mal irgendwann eine mini OLED Lib gebastelt.
Aus verschiedenen Fundstellen zusammengestückelt.
Siehe Anhang.

Keine Gewähr auf korrekte Funktion!

OLED.zip (3.29 KB)

sschultewolter:
u8glib/utft nutzen. Nicht benutzte Funktionen sollten den Speicher nicht füllen

Danke, schaue ich mir auch an!
Allein die 256 Zeichen nagen aber als statisches Array deutlich am Speicher. Das alleine kann es aber noch nicht sein! Dass der Nano bei 98% steht, obwohl ich nur etwas Text auf das Display schreibe und keine einzige Funktion zum Zeichnen verwende ist schon komisch.

@combie: Hervorragend! Das sieht schonmal exakt nach dem aus was ich benötige! Werde am Wochenende mal einen Test wagen :slight_smile:

Fonts kann man auch kürzen. Dann muss du aber den Zugriff darauf anpassen. Also abfragen ob du Zahlen, Kleinbuchstaben oder Großbuchstaben hast und aus dem ASCII Code jeweils den Index im Font Array anders berechnen.