Conception et réalisation d’un clavier mécanique ergonomique

Je travaille chez LesFurets.com, et comme vous pourrez le constater par ailleurs, nous sommes spécialement sensibilisés à l’utilisation des meilleurs claviers du marché. Sauf que pour le prix, le bidouilleur que je suis sent de suite l’opportunité de faire autrement et de s’amuser dans le processus de création. Me voici donc lancé sur un nouveau défi : concevoir et réaliser un clavier mécanique fonctionnel, durable, pour un prix dans la moyenne du marché (entre 100 et 250€) et dans un délai acceptable (moins de 3 mois).
Eléments de conception
Switches
Pour un premier clavier mécanique, j’ai choisi de partir des switches les plus répandus, à la fois pour des raison d’approvisionnement (ils sont faciles à trouver en Europe), et de coût. J’ai pris des Cherry MX Blue, dont la réputation n’est plus à faire en matière de switches « clicky ».
Layout physique
Concernant le layout physique, j’ai beaucoup hésité entre plusieurs possibilités. Je voulais un clavier vraiment adapté à un usage quotidien. Il devait être transportable, permettre de taper sans mouvement des poignets, dans une position détendue, et en utilisant tous les doigts, y compris les pouces trop souvent négligés dans les claviers classiques. Je me suis beaucoup inspiré de claviers comme le Planck pour l’aspect transportable et l’Atreus et le Truly Ergonomic pour l’aspect placement des pouces. Le clavier est construit autour de trois blocs : un premier au centre sert à séparer les deux mains et comporte quatre rangées de trois touches, un second de part et d’autre du bloc central comprend une touche par doigt sauf les pouces sur quatre lignes, et un dernier en bas comporte trois touches par pouce.
Les décalages de colonnes sont mesurés sur mes mains, et on remarque que les petits doigts sont en rotation, ce mouvement me semblant plus naturel.
Assemblage
Une fois ces aspects traités, deux modes de construction s’offrent au bidouilleur : le circuit imprimé ou la soudure point à point. Après un essai infructueux de CI (heureusement sur un échantillon à 6 touches pour limiter le coût) je me suis orienté vers la soudure point à point, qui présente comme contrainte de devoir réaliser une plaque support (backplate en anglais) soit très précisément, soit avec beaucoup de colle chaude.
Pour un résultat convainquant, j’ai choisi la précision, ce qui ne laisse que deux choix : faire fraiser une plaque de tôle de 1.5mm par un spécialiste, soit découper très précisément un matériau résistant. J’ai choisis de découper du PMMA 1.5mm au laser, pour des raisons économiques, mais aussi pour le fun de brûler des choses au laser.
Micro-contrôleur
Avant de passer à la conception du boitier, il faut choisir un micro-contrôleur : de ses dimensions dépend le design de la boite du clavier. J’ai choisi un PJRC Teensy 2.0++. Bien que ce ne soit pas ni le moins cher ni le plus récent, c’est un contrôleur puissant, et comme il est souvent utilisé par des constructeurs de claviers, il est supporté par la plupart des micro-logiciels open source ou gratuits du marché.
Boitier
En dernier peut intervenir la conception du boitier : il doit être solide, durable (et notamment résister au sel de la sueur et au gras des doigts), éventuellement léger et compact (selon mes besoins, mais d’autres préfèrent lourd pour la stabilité et vaste pour poser les poignets) J’ai choisi un boitier composite en bois (léger et peu coûteux) et Plexiglas (esthétique et résistant au contraintes du contact permanent de la peau), découpé laser pour la précision et la finition, assemblé par vis pour la simplicité et le look industriel.
Touches
Comme tout clavier mécanique digne de ce nom, il pourra recevoir des keycaps compatibles avec les switches. J’ai opté pour des touches DSA (sans distinction de taille selon la rangée), sans lettrage pour garder une flexibilité totale dans le placement des touches, et avec deux touches « deep dish » pour trouver la rangée des index sans regarder le clavier (même si en fait à l’usage, la position très particulière des touches des petits doigts suffit à trouver).
Autres considérations
Les choses que j’ai préféré ignorer :
- L’éclairage : C’est joli mais cher et inutile sur un clavier conçu pour taper en aveugle
- Les diodes de statut (caps-lock et verrouillage numérique) : Je n’ai pas encore affiné le micro-logiciel, ce qui ne permet pas au stade de la conception de décider combien en ajouter (le contrôleur peut de toute façon en supporter une grande quantité)
- Le bluetooth : Il est assez simple de l’ajouter, mais je n’aime pas dépendre de batteries. Ce n’est ni fiable, ni léger, ni écologique.
Construction
Les fournisseurs
Le principal souci lorsqu’on construit un clavier soi-même reste la gestion des coûts. Il faut trouver des fournisseurs qui ont les composants en stock, pour un prix acceptable, en gardant un œil sur les frais de port et éventuellement de douane.
Électronique
J’ai choisi de commencer avec les switches. Ils étaient en stock chez Mouser. Ils avaient également des diodes pour limiter l’effet de touches fantôme, et le micro-contrôleur. Par chance, avec ces composants en quantités suffisantes, les frais de ports sont offerts. Astuce : commander un peu trop de petits composants peut réduire les coûts drastiquement (52 diodes sont plus chères que 100), surtout si on brule accidentellement un switch et qu’il faut en commander une unité à 89 centimes avec 25 euros de frais de port.
Plastiques
Pour les plastiques en découpe laser, les différentes options se valent. Attention aux unités de prix (souvent en euros par mètre carré), aux frais de port, et aux frais de découpe (souvent au forfait par trait de coupe)
Un point sur lequel j’ai quelques regrets, c’est d’avoir commandé des plaques aux dimensions exactes des pièces. Il est important de prendre un peu de marge (environ 1cm sur chaque dimension) pour pouvoir recouper le tour du clavier : La finition sera bien meilleure et le placement du laser approximatif bien plus simple que la grande précision requise sur des pièces coupées aux dimensions exactes.
Câblage
De mon côté j’ai opté pour du recyclage de câbles de breadboard. Si vous avez des difficultés à trouver du câble, une bonne solution est de trouver un câble Ethernet ou même RJ11 (téléphone) et de l’ouvrir. Les fils à l’intérieur sont de qualité suffisante pour le montage d’un clavier.
Autres éléments
Le reste peut se trouver en magasin de bricolage : il faudra notamment du contreplaqué de qualité en 5mm d’épaisseur et des vis M3.
Construction du backplate
Si on choisis comme moi une construction sans PCB, la seule pièce qui tienne les touches est le backplate. La spécification des switches Cherry MX est très claire sur ce point : l’épaisseur doit être de 1.5mm avec une tolérance de 0.1mm, et la découpe un carré de 14mm de côté avec une tolérance de 0.05mm.
Toutefois, une découpeuse laser présente un défaut majeur en la matière : le diamètre du rayon laser est variable selon le matériau, et les paramètres de coupe. Il faut donc une astuce. J’ai d’abord réalisé un premier plan avec dix touches de tailles variant de 13.5mm à 14mm par pas de 0.05mm. J’ai ensuite découpé une première rangée de touches une par une pour trouver l’ensemble de paramètres donnant le résultat le plus net. Ensuite j’ai utilisé ces paramètres pour découper une série a taille variable. Sur cette série, j’ai essayé les switches pour identifier quelle est la bonne dimension pour ce matériau et ce jeu de paramètres. Dans mon cas, la découpe idéale est de 13.6mm, soit un rayon de coupe de 0.2mm (on parle de kerf dans le monde de la découpe laser). Par chance, le rayon toléré par la spécification est de 0.3mm. On reste dans les clous (dans le cas contraire, il faudrait élargir les angles du carré pour en tenir compte. Regardez attentivement le plan, vous verrez une forme d’oreille dans les angles, le dessin étant initialement conçu pour une fraiseuse avec un outil de 1mm, ce qui laisse de la marge pour les malheureux avec un kerf entre 0.3mm et 1mm).
Comme le PMMA est un matériau assez flexible, il faut renforcer le backplate avec une seconde couche bien plus épaisse. J’ai choisi un PMMA 4mm, mais un beau contreplaqué suffirait. Pour cette couche, il faut découper plus grand que les touches du backplate mais plus petit que le siège des switches, en l’occurence 15.6mm.
Dans le backplate, on prévoit une réserve pour le micro-contrôleur, et le câble USB.
Assemblage électronique
Attention : il faut bien superposer les deux parties du backplate avant de commencer la soudure, les deux sont indissociables.
On commence par placer les switches dans leurs emplacements. Le sens importe peu, mais il vaut mieux les placer tous dans le même sens pour faciliter le câblage.
Ensuite, on peut passer à la soudure des lignes de diodes. Dans mon cas, les positifs des diodes sont reliés entre eux (partie avec la bande noire), mais d’autres designs existent (le mien se base sur le guide d’assemblage d’un Atreus « hand wired ») Chaque ligne est reliée à un pin du micro-contrôleur.
Attention : il faut très peu de marge sur la longueur des fils, sans quoi tout n’entre pas dans le boitier.
Enfin, on soude point à point les colonnes, en soignant l’isolation avec les lignes. Un impédance-mètre peut se révéler utile. Chaque colonne est reliée à un pin du micro-contrôleur.
Quelques astuces :
- Prendre son temps : Le clavier durera des années. Une soudure, entre deux et trois secondes. Une erreur de soudure, entre quelques minutes, et quelques heures pour analyser et dé-souder.
- Procéder par itérations : Si on s’y prend dans l’ordre, on peut parfaitement construire un clavier à une seule touche en soudant partiellement la première ligne et la première colonne. On se rend alors vite compte des erreurs grossières (j’ai inversé la polarité de ma première diode en mélangeant deux designs inverses, par exemple…)
- Éviter le port D sur le PJRC Teensy 2.0++ : un de ses pins est relié à sa diode, ce qui peut causer des conflits inattendus.
Mise en place du firmware
Avant de pouvoir fermer définitivement le boitier, il faut mettre en place le firmware, parce que cette opération nécessite d’avoir accès au bouton reset. Vous trouverez le code source nécessaire sur mon github : S.I.K Firmware
Prérequis
Pour pouvoir reprogrammer un micro-contrôleur Teensy, vous avez besoin de l’outillage fourni par le constructeur PJRC là. Sur un Mac avec la suite Homebrew, il suffit d’installer la formule teensy_loader_cli : brew install teensy_loader_cli
. Sinon suivre les instructions du fabricant. Astuce : pour être sûr que l’ensemble fonctionne sans doutes sur le firmware, tester la suite d’outils en faisant un tutoriel basique avec le contrôleur, par exemple en faisant clignoter la LED à différentes fréquences.
Pour obtenir le code source, il vous faudra une installation Git fonctionnelle.
Installation
Pour récupérer le code source :
git clone https://github.com/mathieubolla/sik_keyboard.git
Pour le compiler et l’installer : appuyer sur le bouton « reset » du contrôleur puis :
cd sik_keyboard
./build.sh
Si tout se passe bien, la commande devrait se terminer par :
Creating load file for Flash: sik.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature sik.elf sik.hex
teensy_loader_cli -mmcu=at90usb1286 -w -v sik.hex
Teensy Loader, Command Line, Version 2.0
Read "sik.hex": 9184 bytes, 7.1% usage
Waiting for Teensy device...
(hint: press the reset button)
Found HalfKay Bootloader
Read "sik.hex": 9184 bytes, 7.1% usage
Programming....................................
Booting
Fin de l’assemblage physique
Une fois l’assemblage électronique terminé, on peut fermer le boitier : il suffit de placer le spacer en contre-plaqué, le fond en PMMA, et visser. Attention : tant que le firmware n’est pas installé, il faut garder accès au bouton reset sous le contrôleur. Une fois installé, une combinaison de touches suffit pour le réinitialiser.
Discussion