[{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/badger2350/","section":"Tags","summary":"","title":"Badger2350","type":"tags"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/e-paper/","section":"Tags","summary":"","title":"E-Paper","type":"tags"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/hsm/","section":"Tags","summary":"","title":"Hsm","type":"tags"},{"content":"Es fing an wie die meisten meiner Projekte: Ich habe ein Gerät gesehen, das ich nicht brauchte, und mir überlegt, wofür ich es brauchen könnte.\nDas Gerät war ein Pimoroni Badger 2350 – ein E-Paper-Display mit RP2350, WLAN, Bluetooth und ein paar Knöpfen, gedacht als programmierbares Namensschild für Konferenzen. Der Anwendungsfall war schnell gefunden: Im Straßenbahnmuseum laufe ich an Fahrtagen ohnehin mit einem Schild herum. Warum nicht mit einem, das mehr kann als meinen Namen anzeigen?\nWarum E-Paper hier genau richtig ist # Ein Namensschild soll den ganzen Fahrtag durchhalten, und genau dafür ist E-Paper gebaut: Strom fließt nur beim Bildwechsel, danach steht das Bild von allein. Ein hinterleuchtetes Display wäre nach ein paar Stunden leer.\nPraktisch ist außerdem, dass die Daten nicht live kommen müssen. Das Museum hat keine flächendeckende WLAN-Abdeckung – aber das Gerät zieht sich seinen Fahrplan einmal, wo Empfang ist, und zeigt ihn dann offline an. Wenn ich doch frische Daten will, geht der Handy-Hotspot.\nZwei Einschränkungen habe ich unterwegs gelernt: Das WLAN kann nur 2,4 GHz, und Captive Portals funktionieren mit so einem Mikrocontroller praktisch nicht. Gäste-WLAN mit Login-Seite fällt also aus.\nWas drauf ist # Aus dem geplanten Namensschild sind am Ende vier Apps geworden.\nHSM Badge ist die eigentliche Museums-App. Mehrere Seiten, per Tasten durchblätterbar: Name und Rolle, der Fahrplan des Tages, ein Fahrgastzähler zum Mitzählen, Funkkanäle und Kontakte, Notfallinformationen und ein QR-Code für Besucher.\nVisitenkarte erzeugt den vCard-QR-Code direkt auf dem Gerät, hat einen Dunkelmodus und einen Präsentationsmodus – für Messen und Veranstaltungen außerhalb des Museums.\nWLAN-Check ist ein eigenständiges Diagnose-Werkzeug mit Fallback über mehrere hinterlegte Netze. Klingt banal, ist aber erstaunlich oft nützlich.\nIT-Crew ist die Arbeitsvariante: WLAN-Test, Erreichbarkeitsprüfung, ein per Code gesperrter WLAN-QR-Code zum Weitergeben, ein kleines Netzwerk-Spickzettelchen und Kontakte.\nDazu kam ein gepatchtes Menü, das eigene Anzeigenamen über eine name.txt unterstützt und Apps in fester Reihenfolge anpinnt.\nWo ich hängengeblieben bin # Der interessante Teil war nicht das Schreiben der Apps, sondern das Herausfinden, warum sie auf der echten Hardware anders liefen als gedacht.\nDie Firmware ruft init() nie auf. Das steht so in keiner Dokumentation, die ich gefunden habe. Wer seinen gespeicherten Zustand brav in einer init()-Funktion lädt, wundert sich, warum die App nach jedem Aufwachen wieder auf Seite null steht. State.load() gehört auf Modulebene.\nJede update()-Funktion muss mit badge.update() enden, gefolgt von wait_for_button_or_alarm(). Fehlt das, friert die App beim Öffnen ein. Zwei Zeilen, ein Nachmittag Fehlersuche.\nDer Simulator ist nicht die Hardware. Ich habe eine ganze Weile gegen den Simulator entwickelt, bis mir aufging, dass dessen Menü andere Importe benutzt als die echte Firmware. Ein Patch, der im Simulator sauber lief, hat das Gerät zuverlässig zerlegt. Seitdem gilt: Referenz ist das Firmware-Repository, nichts anderes.\nUnd dann war da noch uQR. Die QR-Bibliothek stürzte reproduzierbar mit einem Typfehler ab – irgendwo im Optimierungspfad, der intern Reguläre Ausdrücke benutzt und unter MicroPython Strings und Integer durcheinanderbringt. Die Lösung ist ein einziges Argument: add_data() mit optimize=0 aufrufen. Gefunden habe ich das nicht durch Nachdenken, sondern durch Ausprobieren.\nWas ich mitgenommen habe # Mikrocontroller-Entwicklung ist ein anderes Arbeiten als alles, was ich sonst mache. Kein Stacktrace, der einem sagt was los ist. Kein printf-Debugging, das nicht selbst das Timing verändert. Man baut eine Hypothese, flasht, wartet, schaut aufs Display und rät weiter.\nWas mir dabei gefällt: Am Ende steht ein Ding, das man anfassen kann. Und das an einem Fahrtag zwischen hundert Jahre alten Straßenbahnen hängt, während drinnen ein RP2350 rechnet. Diese Kombination hat was.\nStand # Läuft. Die vier Apps sind auf dem Gerät, das Menü ist gepatcht, und ich habe es bei mehreren Gelegenheiten getragen.\nWas noch offen ist: Der automatische Abgleich mit unseren Termindaten. Aktuell pflege ich den Fahrplan von Hand, was für ein System, das ich selbst geschrieben habe, ein bisschen peinlich ist.\n","date":"16.08.2026","externalUrl":null,"permalink":"/projekte/hsm-badge/","section":"Projekte","summary":"Aus einem Pimoroni Badger 2350 ist ein Namensschild fürs Museum geworden – mit Fahrplan, Fahrgastzähler und QR-Code. Und mit ein paar Lektionen über den Unterschied zwischen Simulator und echter Hardware.","title":"HSM-Badge: Ein E-Paper-Namensschild, das mitdenkt","type":"projekte"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/micropython/","section":"Tags","summary":"","title":"Micropython","type":"tags"},{"content":" Moin. Ich bin Philip, Systemadministrator aus Hannover – und jemand, der \u0026ldquo;das schaue ich mir mal kurz an\u0026rdquo; schon lange nicht mehr wörtlich meint. Tagsüber kümmere ich mich um Netzwerke, Server und die Dinge, die funktionieren sollen, damit andere sie nicht bemerken. Abends mache ich im Prinzip dasselbe nochmal – nur freiwillig, mit schlechterer Dokumentation und deutlich mehr Kabeln.\nWas mich beschäftigt # Netzwerk und Infrastruktur. Firewalls, VPN, Routing, Zertifikate. Der Teil des Jobs, bei dem man selten gelobt wird und immer angerufen, wenn er nicht geht.\nProgrammieren. Python für alles, was automatisiert gehört. Lua für FiveM-Server. PHP, weil es nun mal da ist.\nHomelab. Ein Unraid-Server, ein Proxmox-Host, ein paar Dutzend Container und der feste Vorsatz, das alles irgendwann mal aufzuräumen. Hier landen die Notizen zu Dingen, die ich mir beim nächsten Mal selbst erklären muss.\nGaming und Simulation. Von Kerbal Space Program über Landwirtschafts-Simulator bis GTA-Roleplay. Meistens die Sorte Spiel, bei der man freiwillig ein Handbuch liest.\nEhrenamt # Ich bin im Hannoverschen Straßenbahn-Museum in Sehnde-Wehmingen aktiv – dort, wo historische Straßenbahnen nicht nur herumstehen, sondern tatsächlich fahren.\nMeine Rolle dort ist zweigeteilt. Zum einen die technische Seite: Werkzeuge, Apps und kleine Systeme für den Museumsbetrieb. E-Paper-Badges, Funkkonzepte, Digitalkram – alles, was hilft, ohne im Weg zu stehen.\nZum anderen die betriebliche: Als Stammmitglied der Kleinbahn stehe ich zusammen mit meinen Kollegen dafür gerade, dass sonntags Betrieb herrscht. Nicht am Rechner, sondern draußen.\nEine erstaunlich gute Kombination: hundert Jahre alte Technik auf der einen Seite, Mikrocontroller auf der anderen.\nHier auf der Seite # Unter Projekte sammle ich, woran ich gerade baue. Unter Homelab landen Notizen aus dem Serverschrank: Setups, Fehlersuche, Dinge die ich mühsam herausgefunden habe und nicht nochmal suchen möchte. Beides eher unregelmäßig gepflegt. Du weißt ja, wie das ist. Kontakt # Schreib mir gerne an philip@thephilluk.de oder schau bei GitHub vorbei. ","date":"16.08.2026","externalUrl":null,"permalink":"/","section":"Philip","summary":"","title":"Philip","type":"page"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/pimoroni/","section":"Tags","summary":"","title":"Pimoroni","type":"tags"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/categories/projekte/","section":"Categories","summary":"","title":"Projekte","type":"categories"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/projekte/","section":"Projekte","summary":"","title":"Projekte","type":"projekte"},{"content":"","date":"16.08.2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","externalUrl":null,"permalink":"/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"Version: 15.08.2026\nDiese Datenschutzerklärung gilt für die Nutzung von https://thephilluk.de. Sie informiert dich darüber, welche personenbezogenen Daten wir verarbeiten, zu welchem Zweck und auf welcher Rechtsgrundlage. Diese Erklärung wurde zuletzt zum unten genannten Datum aktualisiert.\n1. Verantwortlicher und Kontakt # 1. Verantwortlicher im Sinne der Datenschutz-Grundverordnung (DSGVO) ist Philip Zirzow, erreichbar unter datenschutz@thephilluk.de.\n2. Bei Fragen zu dieser Datenschutzerklärung oder zur Verarbeitung deiner Daten kannst du dich jederzeit an die genannte Kontaktadresse wenden.\n2. Allgemeines zur Datenverarbeitung # 1. Wir verarbeiten personenbezogene Daten unserer Nutzer grundsätzlich nur, soweit dies zur Bereitstellung einer funktionsfähigen Website sowie unserer Inhalte und Leistungen erforderlich ist.\n2. Die Verarbeitung personenbezogener Daten unserer Nutzer erfolgt regelmäßig nur nach Einwilligung des Nutzers oder auf Grundlage einer anderen gesetzlichen Erlaubnis nach Art. 6 DSGVO.\n3. Hosting # 1. Diese Website wird bei Hetzner gehostet. Die auf dieser Website erfassten personenbezogenen Daten werden auf den Servern dieses Anbieters gespeichert.\n2. Mit dem Hosting-Anbieter besteht ein Auftragsverarbeitungsvertrag nach Art. 28 DSGVO.\n4. Server-Log-Dateien # 1. Der Provider der Seiten von https://thephilluk.de erhebt und speichert automatisch Informationen in sogenannten Server-Log-Dateien, die dein Browser automatisch an uns übermittelt.\n2. Dies sind: Browsertyp, verwendetes Betriebssystem, Referrer-URL, Hostname des zugreifenden Rechners, Uhrzeit der Serveranfrage und IP-Adresse. Eine Zusammenführung dieser Daten mit anderen Datenquellen findet nicht statt.\n3. Die Log-Dateien werden nach spätestens 14 Tagen gelöscht. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse am sicheren und stabilen Betrieb).\n5. Cookies und Tracking # 1. Diese Website setzt keine Cookies und verwendet keine Analyse- oder Tracking-Dienste.\n2. Für die Speicherung deiner Anzeigeeinstellung (heller oder dunkler Modus) wird der lokale Speicher deines Browsers (localStorage) genutzt. Diese Information verbleibt auf deinem Gerät und wird nicht an uns übertragen. Du kannst sie jederzeit über die Einstellungen deines Browsers löschen.\n3. Es werden keine Inhalte von Drittanbietern nachgeladen – weder Schriftarten, noch Skripte oder Bilder von externen Servern.\n6. Kontaktaufnahme per E-Mail # 1. Wenn du uns per E-Mail kontaktierst, werden deine Angaben zur Bearbeitung der Anfrage gespeichert. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO.\n2. Die Daten werden gelöscht, sobald die Anfrage abschließend bearbeitet ist und keine gesetzlichen Aufbewahrungsfristen entgegenstehen.\n7. Betroffenenrechte # 1. Du hast im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche Auskunft über deine gespeicherten personenbezogenen Daten, deren Herkunft, Empfänger und den Zweck der Datenverarbeitung.\n2. Außerdem hast du ein Recht auf Berichtigung, Löschung, Einschränkung der Verarbeitung und Datenübertragbarkeit dieser Daten sowie ein Widerspruchsrecht gegen die Verarbeitung.\n8. Beschwerderecht Aufsichtsbehörde # 1. Im Falle von Verstößen gegen die DSGVO steht dir als betroffener Person ein Beschwerderecht bei einer Aufsichtsbehörde zu, insbesondere in dem Mitgliedstaat deines gewöhnlichen Aufenthalts, deines Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes.\n9. Änderungen der Erklärung # 1. Wir behalten uns vor, diese Datenschutzerklärung anzupassen, damit sie stets den aktuellen rechtlichen Anforderungen entspricht oder um Änderungen unserer Leistungen umzusetzen.\n2. Für deinen erneuten Besuch von https://thephilluk.de gilt dann die neue Datenschutzerklärung. Das Datum der letzten Aktualisierung findest du am Anfang dieser Seite.\n","externalUrl":null,"permalink":"/datenschutz/","section":"Philip","summary":"","title":"Datenschutzerklärung","type":"page"},{"content":"","externalUrl":null,"permalink":"/homelab/","section":"Homelab","summary":"","title":"Homelab","type":"homelab"},{"content":"Diese Seite ist ein privates Angebot ohne geschäftlichen Zweck. Ich verkaufe nichts, biete keine Dienstleistungen an und verdiene hier kein Geld.\nErreichbarkeit # Am besten per Mail an philip@thephilluk.de. Ich lese das nicht täglich, antworte aber in der Regel.\nCode und Projekte liegen bei GitHub.\nWenn etwas nicht stimmt # Falls dir auf dieser Seite ein Fehler auffällt – ein kaputter Link, eine falsche Anleitung, ein Rechtschreibfehler, der wehtut – schreib mir gerne. Ich freue mich darüber mehr, als es klingt.\nGleiches gilt, wenn du der Meinung bist, dass hier etwas steht, das nicht stehen sollte. Eine Mail ist schneller als alles andere und wir kriegen das sicher geregelt.\nZur Seite selbst # Gebaut mit Hugo, gehostet auf einem eigenen Server. Kein Tracking, keine Cookies, keine externen Skripte – siehe Datenschutzerklärung.\n","externalUrl":null,"permalink":"/kontakt/","section":"Philip","summary":"","title":"Kontakt","type":"page"},{"content":"","externalUrl":null,"permalink":"/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"Eine Liste von Dingen, die ich benutze. Nicht weil sie die besten sind, sondern weil sie funktionieren und ich mich dran gewöhnt habe.\nArbeitsplatz # Hel ist der Hauptrechner: Ryzen 9 5950X, 64 GB RAM, RTX 3060 Ti. Läuft unter Windows, das eigentliche Arbeiten passiert aber in WSL2. Die 16 Kerne sind Überschuss für das meiste, zahlen sich aber aus, sobald irgendwas kompiliert oder mehrere VMs gleichzeitig laufen.\nMacBook Pro (2022) für unterwegs und alles, wo ich nicht am Schreibtisch sitze.\nDazu eine Ducky One 3 RGB, eine Logitech G502 Hero und ein SteelSeries Arctis Nova Pro.\nSoftware # Vim ist der Editor auf der Kommandozeile, und das ist da auch der Normalfall – die meiste Arbeit passiert im Terminal. VS Code kommt dazu, wenn ein Projekt groß genug wird, dass ich mehr als drei Dateien gleichzeitig im Blick haben will.\nZsh mit angepasstem Oh My Zsh als Shell. Die Konfiguration liegt in einem privaten Repo und wird per ansible auf alle Maschinen verteilt – das erspart mir, auf jedem neuen System wieder von vorn anzufangen.\nFirefox als Browser, Obsidian für Notizen. Obsidian vor allem, weil die Notizen einfach Markdown-Dateien auf der Platte sind und nicht in irgendeiner Datenbank verschwinden.\nHomelab # Thor ist der Server: ein ODROID-H3 mit Pentium Silver N6005 und 16 GB DDR4. Klein, sparsam, und für einen Heimserver völlig ausreichend. Der überwiegende Teil der selbstgehosteten Dienste läuft hier.\nLoki ist der Proxmox-Host. Ein AMD A4-9125 mit knapp 4 GB RAM – deutlich schwächer als Thor und mit dauerhaft hoher Speicherauslastung, aber für ein paar kleine VMs reicht es. Der Ersatz steht auf der Liste. Wie so vieles.\nWas genau darauf läuft, wäre eine eigene Seite. Kurz gesagt: eine ganze Menge, und regelmäßig kommt etwas dazu.\nDiese Seite # Gebaut mit Hugo und dem Blowfish-Theme, deployed über GitHub Actions auf einen vServer bei Hetzner. Statisch, ohne Tracking, ohne Datenbank.\n","externalUrl":null,"permalink":"/setup/","section":"Philip","summary":"","title":"Setup","type":"page"}]