AtTiny85 zur Ansteuerung von OLED-Infodisplays via USB

31.01.2026

Ich hatte neulich bemerkt, dass ich bei meinem Wechsel von Github zu Codeberg nicht alle meine Repositories erwischt hatte...

Ich hatte zwar das Repository migriert, das zeigt, wie man mittels eines Digispark oder allgemeiner mittels eines AtTiny85 Mikroprozessors ein zweizeiliges LCD-Infodisplay ansteuern kann um beliebige Nachrichten anzuzeigen. Vergessen hatte ich aber das Repo, mit dem meine Begeisterung für den AtTiny85 begann: Das zum Selberbauen von RGB Blinksticks. Ich habe das inzwischen korrigiert.

Damit ist es ja möglich, diverse Konfigurationen von smarten oder nicht so smarten RGB-LEDs als USB-Gadget an Rechner zu stecken und diese dann - zum Beispiel über MQTT - Signale abgeben zu lassen. Ich hatte eines dieser Gadgets mit einem Ring aus 12 NeoPixel-LEDs realisiert und es dann zweckentfremdet für eine Tastaturbeleuchtung meines Laptops.

Nun kam es mir aber zu umständlich vor, dafür jedesmal ein Skript zum Ein- und Ausschalten bemühen zu müssen, daher habe ich den entsprechenden Branch des Projektes nun noch um die Möglichkeit erweitert, einen Taster auszulesen. Dies, zusammen mit dem Code zum Entprellen war zu groß, um noch in den Flash des Mikroprozessors zu passen, daher wendete ich anderthalb Stunden intensiver Arbeit auf, diese 160 Bytes noch irgendwie einzusparen - in sehr übersichtlichem Code, in dem jede einzelne Zeile etwas zur Funktion beitrug!

Das war eine interessante Erfahrung, denn viele Wege, die ich versuchte hatte der Compiler offenbar bereits selbst entdeckt und bereits vorweggenommen. Denn oft, wenn ich eine neue Variante ausprobierte stellte sich heraus, dass sich an der Grüße des finalen Produkts nichts geändert hatte.

Ich habe es dennoch geschafft - das Ergebnis lässt sich jetzt nicht nur in AtTinys flashen, die den Mikronukleus-Bootloader verwenden - es ist klein genug, um auch in solchen mit dem DigiSpark-Bootloader verwendet zu werden.

Nachdem ich an diesem Punkt angekommen war und im Zuge dieser Operationen auch nochmal mit dem Projekt zur Kopplung eines I2C-LCD-Displays an USB mittels AtTiny85 herumgespielt hatte fiel mir ein, dass ich ja noch ein I2C-OLED-Display in der Grabbelkiste gesehen hatte.

Also verdrahtete ich das ganze fix und wollte analog dasselbe erreichen wie mit dem LCD: Verbinden mittels USB mit PC und alles, was an die entstehende serielle Schnittstelle geschickt wird, wird auf dem OLED angezeigt.

Hier stieß ich dann wirklich auf einen Endgegner: Es dauerte Ewigkeiten, bis ich den Code so sehr eingedampft hatte, dass er wenigstens mit dem Micronucleus.Bootloader in einen AtTiny85 zu quetschen war. Aktuell denke ich, dass es unnmöglich sein dürfte, dies mit einem Digispoark-Bootloader zu schaffen.

Immerhin habe ich jetzt in diesen winzigen Flash die Funktionalität zur

  • seriellen Kommunikation,
  • Abbildung des USB-Protokolls,
  • I2C-Kommunikation,
  • OLED-Ansteuerung und
  • meinen eigenen Kode für den Kommandointerpreter
integriert, wie das Bild hier zeigt:

Screenshot Prototyp zeigt eine Message an

Zum Abschluss noch einige unsortierte Links, die mir bei der Minimierung der Codegröße geholfen haben:

Alle Artikel rss Wochenübersicht Monatsübersicht Codeberg Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Styles für GeoJSON in EBMap4D

    22.08.2021

    Ich habe bereits darüber berichtet, dass EBMap4D jetzt über die Möglichkeit verfügt, beliebige GeoJSON-Layer darzustellen. Nun ist die Anwendung um die Möglichkeit erweitert worden, in diesen GeoJSON-Daten enthaltene Stilinformationen für die Darstellung zu nutzen.

    Weiterlesen

Neueste Artikel

  • Linux-System SBOM visualisiert als Graph - für YUM!

    Ich schrieb vor einiger Zeit über die Visualisierung und Analyse von Abhängigkeiten in Linux-Distributionen, die auf Debian aufbauen. Damals habe ich noch behauptet, dass andere Distributionen, die zum Beispiel auf yum als Paketmanagement-Lösung setzen nur schwer in dieser Art und Weise analysierbar sind. Ich habe weiter recherchiert und nun auch dafür eine Lösung gefunden.

    Weiterlesen
  • 35 Jahre Antipatterns in Datenmodellen

    Ich habe inzwischen 35 Jahre Softwareentwicklung auf dem Buckel - viele davon für Geld...

    Weiterlesen
  • Highlights der DefCon 34

    Hier meine Highlights der DefCon 34 in Las Vegas

    Weiterlesen

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen Codeberg-Repositories findet man hier.