Construire son clavier

Dans mon article « La quête du bon clavier, édition 2021 », j’avais terminé par une présentation du clavier Sofle. J’ai décidé de tenter l’aventure et je vais donc vous faire un compte rendu de l’épopée que j’ai vécue pour construire mon propre clavier !

Commander les pièces

Le PCB

Le Sofle étant Open Source, il fournit le design de son circuit imprimé (ou PCB, pour Printed Circuit Board) afin qu’on puisse le commander, ou le faire soit même si on est vraiment équipé. N’ayant pas de matériel à fabriquer des PCB, j’ai l’ai commandé chez un fabriquant qui est souvent cité sur le sub-reddit ErgoMechBoards : JLPCB. Le Sofle nécessite 3 plaques différentes :

  • le PCB en lui même ;
  • une plaque supérieure, qui va tenir les switches ;
  • une plaque inférieure, qui va protéger le PCB.

La plaque supérieure

La plaque inférieure

La quantité minimale par commande est de 5 plaques par type. Vu que les plaques du Sofle ont été pensées réversibles, 5 de chaque permet donc de faire 2 claviers.

On doit aussi choisir la finition pour les plaques :

  • HASL, le moins cher, contenant du plomb ;
  • HASL, sans plomb, le même procédé, sans plomb (sans blague ?!), un peu plus cher, et nécessitant une température supérieure à la soudure ;
  • ENIG, un procédé moderne qui met de l’or sur les contacts et qui procure le niveau de finition le plus raffiné et qui est bien sûr le plus cher.

Le PCB réversible

La plupart les hobbyists d’ErgoMechBoards prennent le HASL normal, pour tirer les prix vers le bas le plus possible. Mais étant donné que je mange à mon bureau, j’ai préféré être safe et j’ai pris la version HASL sans plomb. Je n’ai pas besoin d’une finition exemplaire, le PCB sera invisible ^^'.

Les composants

Le reste des composants nécessaires ont été commandés sur Aliexpress, une espèce d’Amazon Chinois, avec des prix défiants toute concurrence car au plus près du fabricant, mais nécessitant un temps de livraison assez important (de l’ordre de 3 semaines, même si certains vendeurs ont été plus rapide que ça). Pas de mauvaise surprise après la commande au niveau du prix, la TVA est payée à l’achat et il n’y a pas eu de taxe de douane, sûrement parce que chaque achat à un vendeur est indépendant, ce qui divise le prix total entre les différents paquets.

Le site est un peu bordélique mais on s’en sort pour passer la commande :)

Le truc un peu chiant, c’est que vu le nombre de composants, il vaut mieux vérifier la quantité à la livraison. Et compter des centaines de pièces est loin de ce qu’on peut qualifier de « fun ». Mais bien m’en pris, il manquait des articles dans deux commandes. L’un des vendeurs m’a envoyé la différence (4 cabochons), et l’autre, où il manquait juste une LED — une seule ! — m’a fait un remboursement d’un USD, ce qui est à mon avantage vu le prix unitaire :D.

La soudure

La base

Une diode, avec une pointe de stylo pour l’échelle. Le truc plus gros, c’est un hotswap socket.

Je n’avais pas fait de soudure depuis le collège et j’ai du (re ?) trouver des repères sur comment placer le fer à souder et contrôler la quantité de soudure que j’applique. Les diodes et les hotswap sockets ne sont pas compliqués à souder et je n’ai rencontré aucun bug les concernant. Il faut juste être précis, surtout avec les diodes qui sont minuscules, et mettre assez de soudure pour que les hotswap tiennent bien quand on enfoncera les touches dedans.

Le contrôleur

N’ayant pas de breadboard pour tenir le tout en place, souder les headers en les gardant bien droits et plaqués contre le contrôleur était un peu compliqué. J’ai soudé un seul pin puis vérifié que le header était bien à plat avant de souder les autres, replaçant le header en refondant la soudure au besoin. Une fois les headers bien soudés, il fallait faire la même chose pour les sockets qui allaient accueillir le contrôleur sur le PCB. L’astuce que j’ai appliquée ici fût de monter les sockets sur le contrôleur afin de les tenir bien droits. Là encore, souder un pin, vérifier l’alignement et le fait que ce soit bien plaqué contre le PCB et ajuster au besoin avant de souder le reste.

Les LEDs

En soudant le premier clavier, je suis vite arrivé à la phase où on doit souder les LEDs. Des tout petits carrés qui ont des contacts sur leur dessous.

Contacts qu’il faut souder à ces pad sur le PCB en créant un pont de soudure :

C’est déjà du travail de précision, mais ce n’était pas assez difficile ! Ces LEDs sont extrêmement fragiles et fondent si le fer reste trop longtemps à leur contact !

Et petit autre détail croustillant, le modèle que j’ai eu, le contact marqué comme 1 n’est pas le bon, du coup, ma première LED était montée à l’envers et a fait un joli petit « poc » quand j’ai voulu tester… oui le composant a explosé ^^'.

Ceci est une LED et fait 3mm de côté…

Une fois montée dans le bon sens, la lumière fût ! Mais j’ai péniblement monté 5 LEDs en 2h de soudure, devant recommencer certain points de soudure, en testant à chaque LED soudée car elles sont montées en série et si une est mal mise, la suivante ne fonctionnera pas. Pire, si les sorties d’une LED qui fonctionne sont mal soudées ou ont un court-circuit (un short dans le jargon), la suivante ne fonctionnera pas ! Je me souviens d’une séance où pour 8 LEDs soudées correctement, j’ai du en jeter 6, ne sachant jamais si c’était celle que je venais de souder qui était cramée ou si c’était la précédente, qui pourtant s’allumait, qui avait sa sortie cramée ou mal soudée.

Bref, ce fût tellement l’enfer que j’ai décidé de m’en passer pour mon exemplaire et celui de ma moitié, et je ne l’ai fait que pour un cadeau :).

Premier écueil

C’est en soudant le contrôleur de la partie droite que j’ai commis ma première grosse erreur. J’ai choisi la variante RGB du Sofle, qui s’appuie sur le Sofle V2 en y ajoutant le support des LEDs. Mais il y a eu d’autre modification, notamment au niveau de la fixation du contrôleur, qui est revenu à ce que le Sofle V1 faisait (vous suivez ?). Résultat, j’ai soudé le contrôleur à l’envers ! Les symptômes ne sont pas évidents en plus : le bouton reset semblait faire quelque chose au contrôleur au vu des LED qui s’allumaient dessus mais le flashage du firmware ne se faisait pas, preuve que le contrôleur ne passait pas en mode bootloader.

La barre noire devrait être sur l’autre face du MCU :(

Autre symptôme étrange, le contrôleur ne s’allumait pas si l’écran OLED était branché. Ce qui m’a d’abord amené à penser que j’avais un short quelque part sur les soudures ayant un lien avec l’écran OLED.

J’ai fini par relire le guide de montage de la version RGB et il était écrit que les 2 contrôleurs étaient montés composants vers le bas, comme dans la V1… J’ai testé en retournant le MCU (Main Controller Unit) et en le branchant ainsi dans les sockets du mieux que je pouvais avec les pin dépassants : le clavier s’est mis à fonctionner comme sur des roulettes !

J’ai songé à dessouder les headers, mais en fait, c’est mission impossible : une barre plastique tenue par 12 points de soudure, il faudrait pouvoir faire fondre les 12 points en même temps… Les gens finissent par scier les headers pour dessouder ce qui reste des pins un à un. Je me suis pas pris la tête pour 5£, j’ai commandé un autre Pro Micro pour le remplacer, et vu que j’en avais pour 3 claviers en stock, je pouvais continuer à travailler sur les 2 premiers :).

Second écueil

Vous pensez bien que pour le premier projet électronique de ma vie, je n’allais pas m’en sortir avec un seul soucis ! Le premier clavier terminé, avec les touches installées (sans leur cabochons d’abord), je procède, fébrile, aux premiers tests de frappe de chacune des touches. Une à une, j’appuie sur les touches en guettant leur effet dans Notepad. Et là, encore une pointe de désespoir : la 4ème colonne entière qui ne réponds pas :(.

Pour m’en sortir, j’ai commencé par passer au crible chacune des soudures de diodes et de sockets de la colonne mais rien à signaler. Je commençais à soupçonner une diode morte, mais comment savoir laquelle ? J’ai alors sorti le multimètre sans trop savoir ce que je devais mesurer. J’ai mesurer les resistances à chaque diodes en comparant à celles qui fonctionnaient sans trouver de différence. Du coup, exit la diode défectueuse.

Je suis alors passé en voltmètre et me suis aperçu que les sockets qui ne fonctionnaient pas présentaient 0V de potentiel, contrairement aux autres touches fonctionnelles qui avaient une valeur. J’ai réinspecté leur soudure sans rien y voir de louche. J’ai alors eu une illumination : si je lis 0V, c’est que ce n’est pas alimenté, et l’alimentation viens du MCU. Mon regards se porta alors sur le Pro-Micro et je pu voir que certain points de soudure étaient… perfectibles dirons nous :p. J’ai repassé chacun des pins au crible en refaisant certains d’entre eux en y ajoutant de la soudure, et tada ! Le clavier était enfin entièrement fonctionnel !

Troisième écueil

Comment ça un troisième problème ? Ne viens-je pas de dire que le clavier était entièrement opérationnel ? Eh bien presque, le seul soucis qui me restait à ce stade, c’était le potar de gauche qui enregistrait trop de signaux pour un cran de rotation. Étant donné que j’y ai collé la fonction de Alt-Tab, pour chaque cran du potar, on bougeait de 2 fenêtres dans le Alt-Tab. Pas très pratique… Étant donné que le potar de droite se comportait très bien, j’ai conclu que le potar de gauche était défectueux. Retour à la table de soudure, et démontage du clavier (en me plantant un switch sous la peau au passage, ne me demandez pas comment j’ai fait mon compte T_T). Découpage à la pince des contacts du potar, et dessoudage des 5 pins collés au PCB : près d’une demi-heure de galère.

Je place un autre potar (sont vendus par 10) et avant de le souder, je remarque que vu qu’il reste de la soudure dans les trous, les contacts ont l’air de se faire. Je test et je vois le même problème… Idem avec 3 autres exemplaires du sachet. Ah, ce n’était peut être pas hardware finalement ? Toute cette galère pour rien ? T_T

Une question plus tard sur Reddit, j’apprends l’existence d’un réglage de résolution d’encodeur dans le firmware… et en effet, ça règle mon problème. La leçon est apprise : toujours demander, surtout si du dessoudage est envisagé !

Une fois tous ces soucis surmontés, le clavier était officiellement fini !

En se passant des LEDs, j’ai pu souder ensuite le clavier de ma chérie en 2 soirées, soit entre 4 et 5h de travail, et avec aucun soucis rencontré ce coup-ci !

Homing keys

Un truc qui est super pratique quand on pratique la frappe à l’aveugle, c’est les homing keys, ces touches avec une petite marque en relief qui sont sur les touches F et J d’un clavier azerty. Elles permettent de retrouver la position de repos sur le clavier. C’est à partir de cette position que la mémoire musculaire se construit. Il est donc indispensable de les avoir pour mon usage, surtout avec des keycaps vierges. Malheureusement, les cabochons sans marquage avec un repère ont l’air d’être relativement rares. Je n’en ai pas trouvé sur Aliexpress, et la seule boutique en fournissant est aux USA, avec tous les problèmes de frais de port que j’ai déjà évoqué dans mon article précédent.

Heureusement, les gens sont plein de créativité et un membre du sub-reddit a fait des trous dans les keycaps qui sont sur les touches de repos, et y a enfoncé une bille d’acier qui sert dans les roulements à billes. Et c’est exactement la solution que j’ai adopté :

La difficulté dans cette phase a été de trouver le bon foret : j’ai acheté un kit de perceuse à main qui est fournis avec 48 mèches. J’ai des billes d’acier de 2mm et le guide que j’ai trouvé dit qu’il faut faire un trou de 1,9mm. Sauf que la taille des forets n’est pas du tout indiqué dessus ! Et en plus, ils sont livrés dans un petit sachet en vrac, pas tout bien rangés dans une boîte avec leur taille. Du coup, j’y suis allé un peu au pif en comparant les mèches à une bille. Coup de bol ou bon instinct, j’y suis arrivé du premier coup ! Bon, le guide parle de faire un trou assez profond pour accueillir et bloquer la bille en place, mais pour y arriver, j’ai du percer la touche de part en part. Ça fonctionne, c’est tout ce qui compte !

Le feeling est juste parfait et on retrouve facilement sa position de repos.

Ressenti

J’ai pu commencer à utiliser le clavier et le ressenti mécanique est en effet très agréable. Ce retour lors de la frappe est très satisfaisant, j’avais oublié ce que c’était, vu que le dernier mécanique que j’ai touché date des mes années estudiantines.

Évidemment, il m’a fallu appréhender l’emplacement des touches espace, backspace et comment accéder aux flèches de navigation, entre autre. Mais vu que je retrouve globalement la disposition bépo, j’ai été productif tout de suite avec au boulot.

En terme de force d’activation, je n’ai pas l’impression de devoir appuyer plus fort que pour le TypeMatrix, donc je ne devrais pas me choper des crampes de main pour ça !

En ce qui concerne l’ergonomie, le côté splitté permet effectivement de trouver une position où les poignets sont latéralement au repos. Le clavier n’ayant pas de boitier, ça limite la hauteur générale des touches. Elles sont bien plus hautes bien sûr, 2,5cm contre 1,8cm pour le TypeMatrix (en mesurant à l’arrache, hein), mais je ne ressens pas de tension supplémentaire sur mes poignets pour le moment. Faudrait peut être que je test avec des repose-poignets pour voir si ça améliore le confort.

Pour donner une idée de la différence de hauteur (désolé pour la poussière, on a 2 chats :p)

Au niveau du bruit, je suis plutôt content. C’est plus bruyant que le TypeMatrix, c’est certain, peut être parce que le son est un peu plus aigüe ? Difficile à dire sans véritable mesure. Mais je ne dérange pas ma moitié et elle ne me dérange pas quand elle frappe sur le sien. Du coup, ces switches Boba U4 étaient plutôt un bon choix ! À voir si ça gène sur le lieu de travail quand elle y retournera ou quand je serais en déplacement au siège.

Ajoutons que madame est aussi très contente du feeling de la frappe, je penses qu’on peut dire que l’opération est un succès !

Conclusion

Voilà pour le journal de construction de ce clavier custom  !

Le résultat !

Niveau facture, avec l’outillage à acheter aussi (je n’avais pas de fer à souder, ni de perceuse d’orfèvre), on monte à grosso modo 130£ par clavier. Ce qui est moins cher que le TypeMatrix vu les frais de ports, du coup on y gagne de ce point de vue.

Est-ce que le jeu en vaut la chandelle ? Je répondrais par une phrase que j’ai lue sur un article de CNET que je traduirais par : « Si les Jedi construisent leurs propre sabre laser, celui qui manie un clavier ne devrait-il pas avoir une arme tout aussi personnalisée ? ».

Plus sérieusement, à part les LEDs, la soudure n’est pas difficile pour un sou. Je n’aime pas trop ça, mais ça se fait bien et c’est une compétence utile à acquérir. Je sais notamment réparer mon clavier si jamais une pièce venait à rendre l’âme, ce qui rend le tout plus durable.

Il y aura sûrement un autre article détaillant le firmware et où je donnerai un retour sur l’ergonomie après un peu de recul, mais je pense pouvoir d’ores et déjà affirmer que oui, ça valait le coup !