@Boggle und
@wolfram sowie auch
@KurantRubys sind - im positiven Sinne! - verantwortlich für die folgenden Zeilen. Diese kleinen Sticheleien in Richtung des Kastenwagens, der sich seit drei Jahren die Reifen platt steht, haben mich getriggert, es noch einmal zu probieren. Auch deswegen war es eine feine Sache, Euch letzten Samstag in den heiligen Hallen zu treffen. 650 Verrückte und noch mehr Keyboards in einem Raum, darauf komme ich immer noch nicht klar.
Jetzt aber "Einsteigen, bitte!" in den Kastenwagen. Auf meinem einzigen Prototype-PCB sitzt, woher auch immer er mal kam, ein 42keebs Frood. Also ein RP2040 der wohl auf dem Raspberry Pi basiert. Hier im Thread fiel die Entscheidung zugunsten eines der modernen Controller ja ziemlich deutlich aus. Für VIAL ebenfalls. ATmega, Pro-Micro, Elite-C oder wie auch immer er heißen mag, scheint in Sachen Speicherplatz ein Endgegner zu sein. Erster Schritt war also, die hex-Firmware umzuwandeln ins uf2-Format.
Wie und was QMK MSYS da kompiliert hat, ist mir immer noch nicht klar, aber copy and pasta war, wenn auch nicht von Anfang an, erfolgreich. Die Befehle, die als Futter für MSYS dienten, kamen dabei von ChatGPT.

Das Plus-Abo hat sich diesen Monat absolut bezahlt gemacht...
Erste Fußfessel für den Compiler war irgendein Problem mit den Pins. Eine der drei Status-LEDs verwendet einen Pin namens B0, den es aber nur auf dem Elite gibt, weshalb der RP2040 das nicht zuordnen kann. GPT hat das irgendwie von B0 umgeleitet auf GP17, das Kompilieren schlug dennoch fehl, woraufhin die KI dann entscheid, die LEDs einfach mal komplett zu deaktivieren. Danach gab es zumindest schon mal keinen USB-Fehler mehr, das Board meldete sich endlich mit seinem richtigen Namen an und tippen war möglich. Jedenfalls mit dem einen einzigen Switch, der seit jeher aufgelötet war! Alle weiteren wurden mit der Pinzette getestet, funktionierten auch.
Aus der festen Tastenbelegung dann eine VIAL-Firmware zu machen, mit der das Board dann auch automatisch und ohne sideload einer json-Datei erkannt wird, war für GPT nur eine Sache von ein paar Minuten.
Anschließend wurde es dafür umso mehr lustig. Es leuchtet keine einzige LED. Da muss doch irgendeine Leiterbahn fehlen oder falsch verbunden sein, war sich die KI sicher. Noch mal und noch mal alle Bilder durchgesehen und mich bei diesem hier...
... gefragt, wo eigentlich der THT-Widerstand aufgelötet ist. Drehen wir mal um. Und stellen fest, dass ich die drei Vorwiderstände einfach nie eingelötet hatte.
challenge Nr. 1 - Finde einen Clipbeutel in der Größe einer Streichholzschachtel, der seit drei Jahren ungenutzt irgendwo rumliegt. Die Werkstatt, wenn auch nur 2m², war komplett verwüstet nach der Suche. Immerhin: challenge nur für mich.
challenge Nr. 2 - Die wäre für alle, die nachher ein PCB haben wollen. Löte SMD-Widerstände ein. Sind ja nur drei. Können wir trotzdem mal kurz darüber reden, was für
ARSCHLÖCHER das sind?! Ein-Cent-Münze for scale:
Die BAV-70 Gleichrichterdioden (
Post #156) waren ja schon sportlich. Aber das hier? In zwanzig Jahren Lötarbeit ist mir das nicht untergekommen. Selbst drag soldering ist noch einfacher, weil man da das Bauteil entweder festhalten oder zumindest mit den Fingerspitzen in Position bringen kann. Hier geht ohne Pinzette, Lupe (oder Kamera), sehr hellem Licht und viel Flussmittel absolut
gar nichts. Und: Ja, wer selten und/oder ungern lötet, darf das als Warnung verstehen. Bevor die Frage (wieder) aufkommt: Auf THT umstellen geht nicht, jedenfalls nicht mit mir. Dann eher noch bestückte PCBs, wenn wir die Zeche denn zahlen wollen.
Aber erst mal weiter im Text. Vorwiderstände drauf, LEDs trotzdem dunkel, alle drei. Nach ich weiß nicht wie vielen, von der KI verordneten Spannungs-, Widerstands- und Durchgangsmessungen sowie war dann irgendwann klar: Ich habe damals die LED verpolt aufgelötet. Nicht bloß eine, nein, alle drei... 🤦♂️
Also D3 / grün entlöten, umdrehen, wieder auflöten, neue Firmware kompilieren, die die LEDs wieder einschaltet - dann D2 / gelb und D1 / rot, here we go again. Die Ampel dann leuchten zu sehen habe ich heftig gefeiert...
Fehlt noch die Schaltung der Ampelfarben:
So sollte es sein. War es aber nicht. D2 und D3 zeigten von Anfang an Layerwechsel an, aber D1 leuchtete ununterbrochen und zu hell Die bekam 4.68V ab, anstelle von 3.3V wie bei D2 und D3. Da kommt wieder der eingangs erwähnte B0 ins Spiel, der beim Elite-Controller durch die Firmware steuerbar ist, beim Frood aber dagegen nicht. Angeblich war auch kein weiterer Pin mehr frei. GPT schlug als Lösung vor, den der orangefarbenen Frood-Power-LED zu benutzen, die mein Controller (Rev. 6) aber gar nicht zu haben scheint. Gegenvorschlag meinerseits, da ich sie eh nicht nutzen will und werde: Einen der encoder zu opfern. Ob die KI sich nun entschieden hat, links oder rechts (oder beide?) brach zu legen, weiß ich gar nicht.
Fakt ist: Mir wurde befohlen, die Leiterbahn zwischen B0 und dem linken Pad von D1 zu durchtrennen (credits to Victorinox) und ein bodge wire zwischen selbigem LED-Pad und D3/SCL (am Frood) anzubringen. Damit werden alle drei LEDs mit 3.3V angesteuert, die Helligkeit ist gleichmäßig und - vor allem - leuchtet rot nur, wenn man sich in L2 befindet.
So weit, so gut. Für mich steht fest: Ich habe mich krass überschätzt - ohne unter die vibe coder zu gehen hätte ich nicht eins aus diesem Haufen an Problemen lösen können!
Jetzt, wo das PCB endlich funktioniert, wollte ich es auch praktisch testen. Also Gummifüße drunter geklebt, Schalter (Kailh BOX Dark Yellow) aufgelötet, vier Mal 2u QMX (die btw auch gänzlich ohne Schmierung akzeptabel sind!) sowie XMI drauf geworfen. Ich weiß, eigentlich ist das Ganze plate-mounted, aber ich will keine plate, mir egal wie, muss ich halt später noch ein mounting system basteln...
Mit meinem üblichen 40%-Layout, wie ich es auch auf der Rect44 nutze, komme ich sofort klar und es ist einfach nur geil. 🤩
last but not least:
to be done
- Könnt ihr auf die encoder verzichten? Oder zumindest auf einen der Beiden? Einen encoder sollte ich noch liegen haben, bei Interesse könnte ich damit testen, ob die Lötpads links oder rechts noch in VIAL adressierbar sind bzw. welche nun halt eben tot sind.
- Die durchtrennte Leiterbahn aus den gerber files entfernen und eine neue Leiterbahn zwischen D3/SCL und D1/links hinzufügen, als Ersatz für das bodge wire - gibt es hier jemanden, der das kann? @KurantRubys möglicherweise?
- Wer noch keinen Controller hat und jetzt bei 42keebs einen Frood bestellen würde, der bekäme einen viel jüngeren und neueren als meiner, nämlich Rev. 9.1 anstelle meines aus Rev. 6 - GPT behauptet, die seien kompatibel, aber dazu würde ich gern eine zweite Meinung einholen. Muss noch mal gründlicher googlen und/oder Pete dazu mailen.
- Testen, ob das case passt - technofrikus ist dran, bin sehr gespannt.

Danke für's Lesen und Sorry für die ewig lange Wartezeit bei dem Projekt! Ich hoffe, es finden sich nach drei Jahren noch ein paar Leute, die trotz des Löt-Wahnsinns Bock drauf haben.
