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
Prototyp zeigt eine Message an
Zum Abschluss noch einige unsortierte Links, die mir bei der Minimierung der Codegröße geholfen haben:
This is a library for an ATTiny85 to use an SSD1306 powered, 128x64 pixel OLED, over I2C
TinyWireM vs. Wire für ATtinys
TinyTerminal - USB controlled OLED based on ATtiny85
V-USB with ATtiny45 / ATtiny85 without a crystal
Interface an I2C LCD with Arduino
Fonts for use with the Tiny4kOLED project.
Papers Februar 2021
25.02.2021
Auch wenn der Februar noch nicht ganz um ist haben sich bereits wieder - wie schon im Januar - vier Papers angefunden die ich hier kurz vorstellen möchte.
WeiterlesenAndroid Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Hardware. Links Java Java. Komponenten Jupyter JupyterBinder Komponenten Links Linuc Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Präsentationen Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
Asymmetrische KryptographieIch 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
WeiterlesenWie bereits angekündigt werde ich in den nächsten Wochen einige Aspekte asymmetrischer Kryptographie beschreiben. Der vorliegende Artikel erläutert nochmals eine Alternative zum klassischen Vertrauensmanagement und demonstriert die Implementierung in Java.
WeiterlesenIch habe bereits in früheren Artikeln beschrieben, wie ich mich stückweise von diversen Plugins für (Neo)Vim entwöhnt habe. Dieses Mal habe ich nicht etwa ein Plugin ersetzt, sondern mir in einem der benutzten Plugins fehlende Funktionalität erkämpft...
WeiterlesenManche 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.