Inklay Artikel

Inklay: Ein low-powered ePaper Display für Solar Fans

inklay-hero.4fb7a4ac

Hast du eine Solaranlage auf dem Dach oder fasziniert dich das Thema allgemein? Dann solltest du unbedingt weiter lesen. Ich habe Inklay entwickelt: ein einzigartiges ePaper Display für dein Zuhause, um die Daten deiner Solaranlage zu visualisieren. Stromsparend, immer sichtbar und einfach einzurichten. Aber Inklay kann noch viel mehr.

Vor vier Jahren habe ich Inklay gestartet. Inklay war damals ein kleines Hobbyprojekt um meine gesammelten Velo-Kilometer mittels ePaper Display zu visualisieren und um mich damit zu mehr Bike to Work zu motivieren. Ich hatte damals auch bei Digitec einen kleinen Artikel geschrieben. Das überaus positive Feedback von der Community hat mich motiviert, das Projekt weiterzuverfolgen. Also habe ich mir ein Ziel gesetzt: Ich möchte jemandem ein Inklay in die Hand drücken und sagen: Hier, du kannst es ganz alleine einrichten und für dich nutzen. Das ist tatsächlich einfacher gesagt als getan. Mit diesem Artikel möchte ich dir zeigen, was es alles braucht, bis man so weit ist. Womöglich hast du ja Lust, dein eigenes Display zu bauen. Und wenn du dazu keine Lust hast, dann besorg dir einfach jetzt ein Inklay in meinem Shop. Am besten beeilst du dich. Ich habe Inklay als Beta-Version anfangs April lanciert.

gallery-5.ed05a7f5

Aber was ist Inklay überhaupt?

Inklay ist über dein Wi-Fi mit dem Internet verbunden. Es läuft per Batterie (oder UBS-C) und verbraucht extrem wenig Strom. Das Prinzip ist einfach. Das Display schläft in einem stromsparenden Modus. Wird es aufgeweckt, verbindet sich Inklay mit dem Internet und lädt neue Daten oder ein Bild und aktualisiert das Display. Danach wird wieder der Stromspar-Modus aktiviert, bis Inklay dann zum nächsten Mal geweckt wird. Diese Intervalle kannst du als Nutzer frei einstellen. Die Batterie hält natürlich dann sehr lang, wenn die Intervalle nicht zu kurz sind. Und das Beste:  Dank ePaper Technologie verbleibt das Bild auf dem Display auch wenn Inklay schläft. EPaper Displays leuchten nicht wie herkömmliche Displays und sind tagsüber unter direktem Sonnenlicht stets gut zu lesen. Und da Inklay ohne Kabel funktioniert, kannst du es einfach überall in deiner Wohnung aufstellen oder befestigen.

Und was kann ich damit machen?

Du kannst dein Inklay über die Inklay App (iOS/Android) einrichten und konfigurieren. Dort stehen dir verschiedene Anwendungen (ich nenne diese ebenfalls Apps) zu Auswahl. Du kannst zum Beispiel die Solar-Daten deiner Solaranlage visualisieren (via Solar Manager). Es gibt auch eine Bildergalerie und natürlich findest du dort auch die Inklay Strava App um deine Velokilometer und das aktuelle Wetter von deinem gewünschten Standort anzuzeigen. Erfahrene Nutzer nutzen die Inklay Website App und rendern damit eine beliebige Website oder ihr eigenes Dashboard.

Mir persönlich gefällt die Solar Manager App ganz gut und ich glaube, hier einen ganz passablen Use Case für Inklay gefunden zu haben. Dabei zeige ich dir nicht nur die aktuelle Solarproduktion, sondern auch deinen aktuellen Stromverbrauch. Dazu gibt es eine Tagesübersicht. Am Ende vom Tag siehst du also ganz genau, wann und wie viel Strom deine Solaranlage produziert hat. Und im Gegensatz zu einem iPad oder Smartphone ist Inklay für alle in einem Haushalt immer sichtbar.

So viel zum Gerät. Falls es dich interessiert, wie ich Inklay entwickelt habe, lade ich dich gerne ein, weiterzulesen.

Display und Mikrocontroller

Vor drei Jahren habe ich noch mit einem dreifarbigen Display (Rot, Schwarz, Weiss) gearbeitet. Die Auflösung war relativ niedrig und da das Display keine Graustufen unterstützt, war auch das Rendering von kleinem Text problematisch. Ein Display-Refresh dauerte damals bis zu 30 Sekunden. Also habe ich nach Alternativen gesucht. Die Lösung: Sogenannte parallel ePaper Displays. Diese Displays bieten eine höhere Auflösung und 16 Graustufen. Ein Refresh dauert nicht länger als 1-2 Sekunden.

Die Ansteuerung dieser Displays ist aber nicht ganz so einfach. Zum Glück gibt es dazu eine Open Source Bibliothek, das EPDiy Projekt. Das Projekt bietet nicht nur den Code, um die Displays anzusteuern, sondern auch den passenden und funktionierenden Display Controller auf Basis von einem ESP32. Der ESP32 ist ein Mikrocontroller und bietet neben seinem Low-Power-Mode unter anderem auch Wi-Fi und Bluetooth.

Um das EPDiy Projekt gibt es auch eine motivierte und engagierte Community, welche den Controller mit weiteren Funktionalitäten ausstattet.

inklay-article-2

Der Inkster Controller von Martin ist eine solche Weiterentwicklung und bietet zusätzlich einen stabilen und sicheren Weg, eine Li-Po Batterie anzuschliessen und diese über USB zu laden. Also habe ich Inkster für meine Bedürfnisse weiterentwickelt und den Micro-USB Anschluss durch USB-C ersetzt (Danke Simon). Meine Batterie hatte eine Kapazität von 5000 mAh. Im Vergleich dazu: Ein aktuelles iPhone 15 hat etwa 3300 mAh. Die 5000 mAh sind auf jeden Fall eine ordentliche Batterieleistung und ich konnte damit Inklay locker über mehrere Monate betreiben, ohne dass man den Akku laden muss. Eigentlich perfekt, aber...

Leider sind die Li-Po Batterien nicht ganz ungefährlich. Es besteht ein Risiko, dass sich diese Batterien aufblähen (puff up) können und im schlimmsten Fall können sie sogar Feuer fangen und explodieren. Nein, dieses Risiko wollte ich nicht eingehen.

Ich habe mich dann nach alternativen Batterien umgeschaut. Eine Radionuklidbatterie? Da wäre ich nicht ganz sicher, ob das mein Sicherheitsproblem lösen würde. Angeblich aber könnte ich damit Inklay mehr als 50 Jahre mit Strom versorgen. :-) Schlussendlich habe ich mich für wiederaufladbare NiMH (Nickel-Metallhydrid) Batterien in der Grösse AAA entschieden.

inklay-article-1

Diese gebräuchlichen Batterien haben 1.2 Volt und wenn ich drei Stück in Serie schalte, erhalte ich 3.6 Volt. Das passt für den ESP ganz gut, da dieser mit 3.3 Volt betrieben wird. So habe ich nicht so viel Verlust. Die Kapazität der Batterien ist im Vergleich zu der Li-Po Batterie aber nun deutlich reduziert. Je nach Modell erreicht man noch ca. 800 - 1000 mAh. Um trotzdem noch eine längere Laufzeit zu erhalten, habe ich einen Nachtschlaf-Modus entwickelt. Das bedeutet, Inklay schläft dann die ganze Nacht durch und wir erst am Morgen wieder geweckt. So spare ich mir einige Updates und bin schlussendlich bei einer Batterielaufzeit von 51 Tagen gelandet (bei stündlichen Updates). Wer dann aber trotzdem keine Lust hat, die Batterien zu laden, kann Inklay einfach über das USB-C Kabel betreiben. Mit dieser etwas abgespeckten Lösung bin ich aber immer noch happy. Es besteht keine Brandgefahr und ich kann ruhig schlafen.

Screenshot 2024-01-16 at 22.34.41

Martin hat mir dann geholfen, den EPDiy Controller für NiMH Batterien umzubauen. Meine Controller (oder auch PCBs oder Printed Circuit Boards) bestelle ich dann jeweils bei JLCPCB in China. Die Vorderseite wird mit allen notwendigen elektronischen Bauteilen und dem ESP32 automatisch bestückt. Aus Kostengründen verzichte ich auf eine automatische Bestückung der Rückseite. Die 3 Buttons und die LED muss ich dann jeweils noch selber verlöten.

inklay-article-3

Firmware

Firmware beschreibt Software, die in elektronische Geräte fest implementiert ist. Eigene Firmware für den ESP32 zu programmieren, geht am besten über die Arduino Plattform. Die Hauptaufgabe meiner Firmware ist es, ein Bild aus dem Internet zu laden und auf dem Display anzuzeigen. Die Bilder stelle ich dazu in der Inklay Cloud als Bitmap-Bild zur Verfügung.

Eine weitere bedeutende Aufgabe meiner Firmware ist das sogenannte Wi-Fi Provisioning, das euch sicherlich bekannt ist, wenn ihr Geräte mit eurem Heimnetzwerk verbindet, wie zum Beispiel eine Hue Lampe oder ein Sonos Lautsprecher. Damit sich auch der ESP32 über Wi-Fi verbinden kann, wird der Name vom Wi-Fi Netzwerk (SSID) und das Passwort benötigt. Diese Credentials müssen auf dem ESP32 permanent gespeichert werden.

Aber wie kommen diese Daten auf den ESP? Dazu gibt es verschiedene Ansätze. Ich habe mich dabei für die benutzerfreundlichste Methode entschieden. Dazu wird die Inklay App benötigt. Diese scannt Wi-Fi Netzwerke in der Umgebung. Als User finde ich so mein Wi-Fi Netzwerk und bestätige dies mit dem Password. Diese Credentials werden dann vom Smartphone über Bluetooth auf den ESP32 übertragen und dort im Dateisystem gespeichert. Erst jetzt kann sich das Gerät selbständig mit dem Internet verbinden.

inklay-article-4

Die Firmware ist auch für die Steuerung der LEDs, das Auslesen der Batteriewerte oder für die Handhabung der Buttons zuständig. Auch kann ich die Firmware über das Internet updaten (OTA).

Als Open-Source-Projekt ist EPDiy unter der GNU Lesser General Public License lizenziert. Das bedeutet, ich muss meine Erweiterung vom PCB und auch meine Firmware ebenfalls unter dieser Lizenz veröffentlichen und über ein Public Repository zugänglich machen.

App

Von Anfang an war klar: Um eine gute Benutzererfahrung zu gewährleisten, benötigte ich eine App. Aufgrund meiner begrenzten Erfahrung in der App-Entwicklung entschied ich mich damals dazu, ein kleines App-Projekt auf Freelancer.com auszuschreiben und einem Entwickler aus Indien den Auftrag zu erteilen. Ursprünglich plante ich, eine App ausschliesslich für das Wi-Fi Provisioning zu entwickeln, während die Konfiguration von Inklay über ein Web-Interface möglich sein sollte. Die Zusammenarbeit mit dem indischen Entwickler verlief angenehm, bis zu dem Zeitpunkt, als wir die App im Store veröffentlichen wollten. Plötzlich war Funkstille. Glücklicherweise besass ich den Sourcecode und konnte die App schliesslich selbst veröffentlichen.

Jedoch war ich mit dem oben beschriebenen Ansatz nicht zufrieden. Ich wollte, dass ein Inklay-Benutzer alles in der App erledigen kann, nicht nur das Wi-Fi Provisioning. Also habe ich mich einige Wochen lang intensiv mit den Grundlagen von Flutter auseinandergesetzt. Flutter ist ein plattformübergreifendes Mobile-Framework von Google, das es ermöglicht, Apps für iOS und Android mit einer einzigen Codebasis zu entwickeln. Mit den neu erworbenen Fähigkeiten habe ich mich durch alle Teile der App gearbeitet: zuerst das Login und die Registrierung, dann das neue Wi-Fi Provisioning und schliesslich alle Einstellungen fürs Inklay.

Der Upload der App in die entsprechenden App-Stores war beim ersten Mal etwas mühsam, aber nachdem ich gewusst hatte, wie und was ich alles einstellen musste, verlief es reibungslos. Da die Kollegen bei Apple oft kritischer sind, habe ich ein Video aufgenommen, welches die App im Zusammenspiel mit einem Inklay zeigt. Der Überprüfungsprozess für Version 1.0 dauerte weniger als einen Tag, und die App wurde ohne Beanstandungen freigegeben. Das war grossartig.

Inklay Cloud

Eine frühere Version von Inklay verwendete ausschliesslich die Firmware, um Bilder auf dem Display anzuzeigen. Daten wurden direkt vom ESP32 aus dem Internet geladen, und ein Bild für das Display wurde erstellt. Dieser Ansatz stösst jedoch an seine Grenzen, wenn es um die Unterstützung mehrerer Nutzer geht. Zukünftige Nutzer sollten in der Lage sein, ihr Inklay individuell einzurichten. Auch die Bildherstellung sollte in der Cloud erfolgen, da dort wesentlich mehr Flexibilität in Bezug auf das Layout sowie das Einbinden zusätzlicher Bilder oder spezieller Schriftarten möglich ist.

Ein Freund (Danke, Romain) empfahl mir dann Firebase. Firebase ist eine Plattform von Google mit verschiedenen Cloud-Services. Unter anderem bietet Firebase eine einfache Möglichkeit zur Authentifizierung von Nutzern und zum Speichern von Daten in einem Data Store. Mithilfe von Cloud Functions habe ich dann die bereits erwähnten Inklay-Apps entwickelt. Nehmen wir als Beispiel die Solar Manager App: Immer wenn ein Inklay ein Bild anfordert, wird in der Cloud überprüft, welche App der Nutzer aktiviert hat, und es wird ein Bild der Solar Manager App angefordert. Dieses wird dann on-the-fly mit aktuellen Daten der Solar Manager API generiert. Die Inklay Website App ist etwas komplizierter. Hier wird eine Chrome-Instanz erstellt, die genutzt wird, um eine Website aufzurufen und ein Bild davon zu erfassen. In beiden Fällen generiert jede dieser Apps ein Bild. Dieses Bild durchläuft dann zum Schluss meine ePaper Pipeline. Das Bild wird auf 16 Graustufen reduziert, und um die Bildqualität zu verbessern, nutze ich Dithering. Bei Dithering geht es darum, über spezielle Rasteralgorithmen, Graustufen zu simulieren, die das Display nicht anzeigen kann. Der Rastereffekt wird für das menschliche Auge erst sichtbar, wenn man genau hinschaut. Aus der Ferne betrachtet erscheint das Bild jedoch wie ein normales Graustufenbild.

Zusammenfassend ist der Einsatz von Google Firebase für meinen Zweck ideal. Übrigens nutze ich Firebase auch für das Hosting der Website sowie für Firmware-Updates. Auf diese Weise sind alle Anwendungen unter einem Dach vereint und können bei Bedarf mit Plugins erweitert oder mit externen Anwendungen verknüpft werden. Ein kleiner Nachteil besteht jedoch: Die Kosten in der Cloud sind schwierig abzuschätzen, da Google je nach Verbrauch der genutzten Leistungen abrechnet.

Hardware und Produktion

Inklay besteht im Wesentlichen aus den folgenden Komponenten:

Um das Cover zu befestigen, habe ich kleine Magnete sowohl im Gehäuse als auch im Cover angebracht. Dank der Magnete kann das Cover einfach ausgetauscht werden, ohne dass Schrauben oder ähnliche Befestigungen sichtbar sind, was das Erscheinungsbild gestört hätte. Das Cover gibt es in zwei unterschiedlichen Materialien: Walnuss und Eiche. Diese Hölzer besitzen einen MDF Kern. Dieser sorgt für die notwendige Stabilität und verhindert, dass sich das Cover im Laufe der Zeit verbiegt – ein Problem, das bei meinem ursprünglichen Display auftrat, als ich Massivholz verwendete.

inklay-8

Da das Cover auf der Rückseite eine Vertiefung für die Magnete und die Batterien benötigt, kann ich es nicht mehr mit dem Laser schneiden. Deshalb habe ich auf eine CNC-Fräse umgestellt. Um das Material in der CNC-Fräse schnell und einfach zu fixieren, habe ich mir einen kleinen Vakuumtisch gekauft. Dadurch muss ich das Holz nicht mit Klebeband befestigen und vermeide das Risiko von Kleberückständen am Cover.

Auch wenn ich auf die CNC-Fräse umgestiegen bin, kann ich trotzdem nicht auf den Laser verzichten. Das Inklay Logo auf dem Cover wird nach wie vor per Laser graviert. Ich habe zwar einige Experimente mit der CNC-Maschine gemacht, aber die Ergebnisse waren nicht präzise genug.

Das Gehäuse wird mithilfe des 3D-Druckers erstellt. Es verfügt über alle Vorrichtungen und Vertiefungen, um alle Komponenten sicher zu verstauen. Das PCB-Board wird durch kleine Gewindeeinsätze und 2 M2-Schrauben befestigt. Bis zur finalen Form habe ich mehrere Iterationen durchgeführt. Ein Druckvorgang dauert noch etwa 4 Stunden mit meinem Bambu Labs X1 C 3D Drucker. Durch den Umstieg auf diesen schnellen Drucker konnte ich etwa 5 Stunden Druckzeit einsparen. Die Qualität ist akzeptabel, aber langfristig suche ich nach besseren und noch schnelleren Produktionsmethoden.

Ein Inklay soll auch ordnungsgemäß und sicher verpackt werden. Dafür verwende ich kleine Kartonschachteln und PE-Schaumstoff. Diese Schaumstoff-Einsätze schneide ich ebenfalls mit der CNC-Maschine.

Zudem wird der Verpackung ein kleiner Startup-Guide beigelegt. Eine schmale Banderole rundet die Verpackung ab.

gallery-4.660ae93e

Zusammenfassend kann ich sagen, dass ich derzeit noch viel Zeit in die Produktion investiere. Das Fräsen der Covers oder die Verpackung sind aufwendig, und es kann durchaus vorkommen, dass Fehler auftreten und ich von vorne beginnen muss. Aus diesem Grund habe ich begonnen, kleine Montageanleitungen zu schreiben. Ich hoffe, dass ich dadurch schneller werde und trotzdem eine hohe Produktionsqualität sicherstellen kann.

Statistiken zum Projekt

Inklay Beta

Mein erstes Ziel habe ich erreicht: Ich kann dir ein Inklay Beta für CHF 320.- verkaufen, und du kannst es eigenständig einrichten und nutzen.

gallery-11.5b7d59f9

Ob ich in Zukunft weitere Schritte unternehme und mehr Zeit und Geld investiere, hängt nun davon ab, wie gross das Interesse an Inklay ausfällt. Aus diesem Grund habe ich Anfangs April mit der einer Beta-Phase gestartet. Diese Beta-Phase soll mir helfen, das Marktpotenzial richtig einschätzen zu können. Und natürlich freue ich auf Feedback. Diese fliesst dann direkt in die Weiterentwicklung vom Produkt ein.

Hol es dir jetzt! www.inklay.app