Cherry-Tastatur mit OLED – Teil 3

Hinterlasse einen Kommentar

04.11.2017 von plaintron

Zurück zur Hardware

Im letzten Beitrag habe ich gezeigt, mit welchem Code ich die grundlegende Funktionalität des neuen Tastatur-Controllers erreiche. Nach den ersten Tests hatte ich dann sofort ein paar Ideen, was ich noch alles mit der Tastatur anstellen könnte. Für die Makro-Programmierung wäre ein Display recht sinnvoll, um Makros auch editieren zu können. Außerdem wären über ein Display auch weitere Funktionen denkbar, etwa die Anzeige von Informationen aus einer Software, die gerade auf dem PC läuft.

E-Ink-Display

Zunächst wollte ich aber nur den Status von Scroll-, Num- und Caps-Lock anzeigen sowie eine optische Unterstützung bei der Makro-Erstellung implementieren. Dafür schien mir ein E-Ink-Display (auch E-Paper) eine gute Idee, da die Anzeige sich ohnehin nur selten ändert und dann nur statische Informationen erscheinen, die keine schnellen Bildwiederholraten erfordern. Also habe ich mir so ein Display besorgt und getestet.

Die Anzeigefläche dieses Displays besteht aus kleinen, farbigen und unterschiedlich geladenen Tröpfchen. Je nachdem, mit welcher Polarität ein Pixel angesteuert wird, erscheint das schwarze oder das weiße Tröpfchen im Vordergrund. Das klingt erst mal recht unkompliziert, in der Praxis ergeben sich dadurch aber einige Schwierigkeiten. Je nachdem, ob das gesamte Display oder nur ein Ausschnitt geändert werden soll, sind unterschiedliche Einstellungen notwendig. Wird nur ein Teil geändert, passiert es leicht, dass Tröpfchen in der Umgebung durch das angelegte elektrische Feld ebenfalls ihre Position ändern und dadurch grau erscheinen. Bei vollständiger Änderung des Bildinhaltes bleiben vom vorherigen Bild Reste sichtbar. Deshalb muss vor jeder Änderung das Display entladen werden, welches man durch mehrmaliges Umschalten zwischen einer komplett schwarzen und komplett weißen Flächer erreicht. Das alles schien mir dann doch zu aufwendig und zu unflexibel für meine Zwecke.

Umstieg auf OLED

So fiel die Entscheidung, stattdessen ein OLED zu verwenden. Was mir daran gefällt, ist, dass tatsächlich nur die Pixel leuchten, die gerade mit Strom versorgt werden. Es ist also keine Hintergrundbeleuchtung notwendig. Außerdem ist die Ansteuerung recht unkompliziert und ich habe schnell ein Display gefunden, dessen Maße wie für meine Tastatur gemacht sind. Die Auflösung beträgt 128 x 32 Pixel auf ca. 2,2 Zoll Diagonale. Für die Fläche ergibt das zwar ein recht pixeliges Bild – im Gegensatz zum E-Paper mit der fast vierfachen Pixeldichte – aber dafür ist die Ansteuerung mit wenig Aufwand verbunden und im Teensy wird wenig RAM verbraucht.

Als Controller ist in diesem Display ein SSD1305 mit SPI-Port verbaut, für den es auch einige Libraries gibt. Die Adafruit-Library hat ein paar Fehler, mit denen ich mich jedoch nicht näher auseinandergesetzt habe. Mit der 64 Pixel hohen Version dieses Displays funktioniert sie allerdings. Dann gibt es noch die Mammut-Bibliothek U8g2, mit der man die meisten gängigen Displays ansteuern kann. Die fand ich für meine Zwecke überqualifiziert. Letztendlich habe ich nur die Init-Funktionen von Adafruit verwendet und den Rest selbst gebaut. Schriften kommen bei mir nicht zum Einsatz, also geht es nur darum, Bitmaps an verschiedenen Stellen anzuzeigen, wozu keine riesige Bibliothek notwendig ist.

Ein USB-Hub für die Tastatur

Im Tastatur-Gehäuse ist noch etwas Platz neben der Original-Controllerplatine. Das brachte mich auf die Idee, diese Fläche für einen USB-Hub zu nutzen, in den ich dann Maus und 3D-Controller einstecken kann. Bei der Suche nach einem geeigneten Hub-IC bin ich bei einem kleinen chinesischen Bauteil mit der Bezeichnung FE1.1s im SSOP28-Gehäuse mit 4 Downstream-Ports gelandet. Dieser Chip ist baugleich mit dem XR22404 von Exar, aber deutlich günstiger zu haben. Also habe ich in Target3001 eine Schaltung zusammengeklickt und daraus eine Platine produziert. Zwei USB-Ausgänge sind auf der Rückseite der Tastatur erreichbar, ein dritter Anschluss ist mit dem Teensy verbunden.

Vorteil dieses ICs: Es ist gut von Hand zu löten, hat relativ wenige Pins und braucht nur wenige externe Bauteile (ein paar Keramik-Kondensatoren, ein Widerstand, ein Quarz).

Platinenherstellung

Von einem früheren Projekt hatte ich noch ein paar schöne Bungard-Fotoplatten mit blau eingefärbtem Substrat übrig. Das lag zwar schon ein paar Jahre in der Kiste, aber mit langer Belichtungszeit hatte ich trotzdem auf ein vernünftiges Ergebnis gehofft. Allerdings kam auch nach mehreren Versuchen kein brauchbares Leiterbild dabei heraus, da die Fotoschicht teilweise überhaupt nicht mehr auf Licht reagiert hat und bei langer Ätzzeit die feinen Leiterbahnen zu dünn wurden.

Eine Empfehlung am Rande: Platinenfilme nicht mit Laser- oder Tintendrucker herstellen, sondern Digitaldruck-Filme bei Firma Bauriedl bestellen. Das geht schnell und sorgt für eine extrem hohe Randschärfe und sehr lichtdichte schwarze Bereiche. Das Ergebnis finde ich äußerst überzeugend. Die Platine ist zweiseitig angelegt, Durchkontaktierungen mache ich entweder mit Draht oder Bungard-Hohlnieten.

Als Basismaterial habe ich diesmal frische Platten von Bungard verwendet, damit hat auf Anhieb alles geklappt. Um die Bohrungen und Fräsungen möglichst genau hinzubekommen, lege ich die Platine zuerst auf die CNC-Fräse, bohre Positionierungslöcher, markiere diese durch kleine Stifte auf der Fräsunterlage und richte an diesen Löchern die Filme aus. Die fertige Platine stecke ich dann am Schluss wieder auf die Stifte und bohre/fräse alles fertig. Die rötliche Farbe ist das Fotoresist, das ich auf der Platine lasse, die Lötpads in einem zweiten Entwicklungsvorgang freilege und die Platine dann für eine halbe Stunde in den Backofen lege. Dadurch wird die Fotoschicht deaktiviert und erhält diese schöne Optik. Die Pads werden anschließend noch mit Chemisch Zinn (Sur Tin) beschichtet. Die Kontaktflächen zur Tastaturfolie (auf der Unterseite) habe ich zusätzlich noch mit Leitsilber beschichtet, damit sie nicht oxidieren.

SMD-Bestückung

Nun sind die SMD-Bauteile an der Reihe. Dazu klebe ich die Komponenten zunächst mit Sekundenkleber auf die Platine. Das geht am besten unter dem Mikroskop mit einem Zahnstocher.

An Lötverfahren habe ich diverse Varianten ausprobiert, mit Lötpaste und Heißluft, im Reflow-Ofen und mit Lötzinn von der Rolle. Für Einzelstücke finde ich die Handlötung mit bleihaltigem Lötzinn am komfortabelsten. Meine selbst gebaute Lötstation hat sich hier wirklich bewährt.

Fertig bestückt und eingebaut sieht das Ganze jetzt so aus:

Das OLED-Modul wird auf die Buchsenleisten aufgesetzt. Leider ist ein Befestigungsloch exakt an der Position der OLED-Stiftleiste., deshalb musste ich zwei Pins leicht versetzen. Der Teensy++ 2.0 fehlt noch. Dessen Position ist auf der Unterseite der Platine links im Bild, da die Oberseite vom Display belegt ist.

Im nächsten Teil geht es dann wieder um die Programmierung für Makrofunktion und OLED-Ansteuerung.

Cherry-Tastatur mit OLED, Teil 1

Cherry-Tastatur mit OLED, Teil 2

Kommentieren

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..

Blogverzeichnis - Bloggerei.de

RSS Make:

  • Raspberry Pi mit 4-Zoll-Display für die Hosentasche
  • Raspberry Pi Connect: Einfacher Fernzugriff im Browser
  • DIY Digitallabor: Heute und gestern ein Spaß
  • 4fach-SSD-Shield für Raspberry Pi 5
  • 3D-Druck: Diese Räder reagieren auf ihre Umgebung
  • Blender Plugin: Platinen aus KiCAD photorealistisch rendern
  • Make E-Dossier Raspberry Pi (PDF) + Raspberry Pi 4 Model B (8GB RAM)
  • Makey Lötbausatz
  • French Cleat – das Ordnungssystem für die Heimwerkstatt
  • KI-Brille übersetzt Zeichensprache on the Fly