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.

Layout physique

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.

Clavier final 1

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.

Découpe laser

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.

Soudure 1

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.

Soudure 2

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.

Soudure 3

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 . 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.

Clavier final 2