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

  • Traceroute Visualisierung mittels GeoJSON

    29.05.2021

    Dieses Wochenende war es wieder einmal an der Zeit für ein Kaninchenbau-Projekt. Es gibt inzwischen einige kostenlose Geolocation-APIs im Netz und ich wurde - durch das Internet - auf die Idee gebracht, das Ergebnis eines Aufrufs von traceroute auf einer Landkarte zu visualisieren

    Weiterlesen

Neueste Artikel

  • Trusted Platform Module im Thin Client Fujitsu Futro nutzen

    Es geht hier speziell um das Modell s920. Bei Recherchen zu meinen letzten Experimenten hatte ich auch realisiert, dass ich einen solchen Thin Client mit montiertem TPM besitze - das musste natürlich ausprobiert werden!

    Weiterlesen
  • Hardwarebeschleunigung zur Berechnung des Mandelbrotfraktals mittels Nvidia

    Ich habe vor geraumer Zeit immer wieder einmal das Mandelbrotfraktal berechnet - auf der Kommandozeile genauso wie mittels Shadern auf der Graphikkarte. Nun bin ich dahin zurückgekehrt: Ich wollte wissen, ob dieser Code heute noch funktioniert und mit einer Nvidia-Karte ebenso funktioniert, wie damals mit meiner guten alten Radeon...

    Weiterlesen
  • Asymmetrische Kryptographie

    Ich habe mich mit der Idee schon länger getragen: Nochmal einen Rundumschlag zu asymmetrischer Kryptographie zu machen. Dabei werde ich mich auf Demonstrationen der einzelnen Konzepte und Operationen mit Beispielcode konzentrieren und zu jedem der vorgestellten Konzepte mehr oder weniger ausführlich bezüglich der Einsatzszenarien und Vor- und Nachteile Stellung beziehen

    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.