Die Grundidee

Mit dem Gedanken ein eigenes Keyboard zu designen, habe ich schon länger in Gedanken gespielt, aber nie wirklich als realistisch betrachtet. KiCad habe ich schon relativ früh angefangen zu nutzen um Probleme mit meinen eigenen Builds zu diagnostizieren, vor allem nachzuvollziehen, welche Verbindungen wo hin gehen müssen, wenn etwas nicht funktioniert. So wirklich los ging es dann eigentlich erst, nachdem ich eine Zeit lang auf dem Discord dessen Name nicht genannt werden darf Mitglied war und mich durch diverse Designer-Channel gelesen hatte. Direkt ein mehr oder weniger kompliziertes Split Keyboard zu designen war mir etwas zu viel für den Anfang, das “klassische” 4x4 Macropad war mir aber auch zu langweilig. Also hab ich den Keyboard Layout Editor angeworfen und etwas herumgespielt.

Ich bin ja schon quasi zum Anfang in das ANSI Layout eingestiegen, habe also keine ISO-Enter mehr auf meinen Boards (wenn ich denn mal wieder eins >40% benutze). Nachdem das auch in der deutschen Community immer ein wichtiger Punkt ist, wollte ich in mein Board eine ISO Enter einbauen. Bei der Bottom-Row gab es auch etwas Abstimmungen im Discord, bis ich mich durch Feedback auf das folgende Layout festgelegt habe:

Designentscheidungen

Damit das ganze nicht langweilig wird, gibt es also auch gleich weitere Layout Optionen mit dazu. Die ISO-Enter war gesetzt als “Hauptfeature”, ich wollte aber nicht den typischen Rowstagger, der normalerweise mit dieser einhergeht. Also musste die fehlende 0.5U irgendwie aufgefüllt werden, was passt da schon besser als ein bisschen RGB. Hier habe ich mich etwas von Boards wie der Neo Ergo inspirieren lassen, bei der die Lücken ja auch mit RGB-Diffusoren geschlossen wurden. Mit den zwei möglichen Layouts für Capslock (ich liebe stepped Capslock) und der Bottom Row, eignet sich das Macropad jetzt auch gut zur Resteverwertung genutzter Keycap Sets. Das HHKB-Layout hatte ich auch von Anfang an im Kopf, ich mag einfach ungewöhnliche Layouts/Bottom Rows mit Blockern. Wirklich praktikabel müssen die Entscheidungen bei einem Macropad ja jetzt auch nicht sein.

Mein richtiger Einsteig in KiCad

Außerhalb der Diagnose habe ich bisher aber noch nichts mit KiCad gemacht. Hier wartet also ein komplett neues Feld auf mich. Eingestiegen bin ich hier mit den sehr guten Tutorials von Joe Scotto. An dieser Stelle eine sehr große Empfehlung dafür, ohne wäre das Board möglicherweise nicht entstanden.

Für alles was Footprints um Tastaturen angeht, habe ich die marbastlib von ebastler genutzt. Auch hier ein großes Danke an einen gewissen Discord, ohne diesen wüsste ich wahrscheinlich nichts davon. Viel in das PCB-Design an sich will ich hier gar nicht einsteigen, das erklärt das Video viel besser, als ich das hier kurz anreißen könnte.

Um den Controller ohne massiven Platzverbrauch unterzubringen gibt es keine Hotswap Switches, die Sockets wären sonst im Weg. Bitte nicht zu streng mit dem Routing sein, ja das geht schöner und irgendwann werde ich das bestimmt auch nochmal überarbeiten.

Nachdem ich die THT-Dioden nicht wirklich mag, habe ich hier voll auf SMD im Footprint SOD-123 gesetzt. Beim Controller fiel die Wahl zum Anfang auf den Xiao RP2040, um mit einem möglichst kleinen Footprint zu arbeiten. Ich habe auch kurz überlegt ob ich einen RP2040 direkt auf das Board setzten soll, habe mich aber dann für den Aufwand und die deutlichen Zusatzkosten beim PCBA vor allem für das erste Projekt dagegen entschieden. Gebaut habe ich meinen Prototypen aber nie mit einem Xiao, nachdem ich festgestellt habe, dass der RP2040 Zero, zumindest auf den Kopf gelegt das gleiche Pinout bietet. Das PCB ist also mit beiden MCUs kompatibel, je nach Typ wird dieser nur “richtig” herum, oder “auf dem Kopf” gelötet. Gerade das auf dem Kopf löten ist jetzt schon fast eine Hommage an klassische Split Boards wie die Corne, mit denen die Reise bei mir ja richtig los ging.

Ein bisschen Kunst

Ich bin sehr großer Fan von Silkscreen Art, die Boards von Geist und das Splaytoraid kommen mir da direkt in den Sinn. Ein bisschen Kunst wollte ich also auch auf meinem Board haben. Ich bin mir nicht mehr ganz sicher wie der Name genau entstanden ist, es wurden auf jeden Fall meine ersten grausamen Versuche auf Discord (zurecht) in der Luft zerrissen. Final ist es jetzt ISO13715 geworden. Die ISO-Norm definiert den Zustand von Kanten eines Werkstücks in einer technischen Zeichnung und hat natürlich dafür auch ein eigenes Symbol. Also habe ich mir das Symbol als Logo für das Board in Inkscape erstellt und auch in kleinen Details für die Beschriftung der Switches genutzt.

Case

Das Case war mit meine größte Baustelle und auch größter Painpoint bei dem Projekt. Das PCB hatte ich auf 2 Abende fertig gestellt, hier habe ich dann nur nach einem kurzen Test mit einer einzelnen LED auf drei LEDs aufgerüstet. Leider war ich mit dem Workflow das ganze PCB als STEP aus KiCad zu exportieren und damit in CAD zu arbeiten, nie wirklich zufrieden und hatte spätestens wenn es um die Plate ging Probleme. Diese habe ich mir auch online generieren lassen, aufgrund des KLE Layouts. Mehrfach habe ich hier versucht neu anzufangen, bin aber quasi immer gescheitert sobald ein KiCad Export dabei war. Also ist es jetzt am Ende doch bei meinem ersten Versuch geblieben, der in OnShape erstellt wurde. Zum Release habe ich noch ein paar Themen korrigiert, wirklich sauber ist die Timeline aber immer noch nicht und wird es wohl auch nicht werden.

Vom ursprünglichen Plan mit Schrauben zur arbeiten bin ich dann abgekommen, als ich mein Chiffre Case von bubbleology mit Magneten versehen habe. Hier habe ich mir die Magnet-Methode geklaut. Anfangs hatte ich auch schon kurz daran gedacht, hatte aber nur 6x2mm Magnete von Gridfinity hier liegen und die sind ganz klar zu groß. Die Plate wird ganz klassisch über M2 Heat Inserts und Schrauben gehalten.

Den RGB-Diffusor habe ich aus transparentem PETG gedruckt. Hier haben mir die Ergebnisse nur mit transparentem Material nicht gefallen, die Ausleuchtung war hier noch spürbar verfälscht. Daher haben die letzten 3 Layer direkt auf der LED noch einen Farbwechsel auf weiß erhalten, so ist die Ausleuchtung sichtbar gleichmäßiger.

Firmware

Nachdem ich mit dem Case ewig lange zu tun hatte und hauptsächlich für die CCH|CON ein halbwegs fertiges Projekt mitnehmen wollte, ist die erste Firmware auf Basis von KMK mit POG entstanden. An eine QMK habe ich mich zu dem Zeitpunkt noch nicht ran getraut. Das habe ich jetzt die letzte Nacht erledigt, damit hat die aktuelle Schlaflosigkeit auch ihre Vorteile. Das Board läuft also jetzt (endlich) auch auf einer QMK, welche selbstverständlich auch mit VIAL konfigurierbar ist. Der Aufwand hier war tatsächlich nicht wirklich höher, als ein bestehendes Board auf VIAL zu portieren. Noch dazu kann ich jetzt sagen, das Projekt ist wirklich fertig und nicht nur ein Punkt auf meiner für immer offenen ToDo-Liste.

Schluss

Die Files für PCB und Case liegen in meinem Github, wer also selbst eines bauen möchte, findet dort alles was er braucht. Ein ganz großes Danke von mir geht an die Keyboard Community und vor allem den Discord Server der nicht genannt werden darf. Ohne diesen wäre ich das Projekt wahrscheinlich nie angegangen und hätte auch nicht so einfachen Zugang zu allen nötigen Ressourcen und technischen Infos gehabt.