Cet article est le premier d’une série concernant l’élaboration de mon nouveau joujou. J’y aborderai la réflexion, l’élaboration et tout le toutim à propos de mon projet clavièreux.

A y est \o/ ! Mon clavier fonctionne. Ceci est le premier texte non ircien écrit avec MON clavier. Et quand je dit MON clavier, je parle de celui que j’ai construit avec mes petites mimines ! Celui que j’ai rêvé et pensé durant quelques mois. C’est le bout du voyage (ou bien une des premières étapes si ça se trouve). Et du coup voilà le journal de bord.

##Truc de hipster ton clavier ! Mais carrément ! Étudier le fonctionnement de l’outil que l’on utilise le plus toute la journée. Réflêchir aux défauts et améliorations que l’on peut y apporter. Optimiser ! Technologiquement les claviers sont archaïques et mal pensés. Le placement des touches est optimisé pour les machines à écrire, mêmes les claviers tactiles de nos chers smartphones et tablettes. C’est une abération totale. Ils sont tout le temps négligés par les utilisateurs mais aussi les constructeurs. Jusqu’à il y a peu, on ne trouvait plus que des claviers bas de gamme sans mécanismes mécaniques (au profit de dome en gomme à la qualité pitoyable, aux sensations désagréables et à la robustesse plus qu’àléatoire). Les claviers des années 80 était autrement plus solide et au confort de frappe bien meilleur que les actuels. Mais les gamers ont été flairés par les marketeux et les constructeurs de périphériques ont su qu’il y avait de la maille à se faire. Et là résurgence des claviers mécaniques dans les périphériques haut de gamme. Celà dit ce matos est souvert assez jacky et jamais ergonomique. Il existe des tas de claviers ergonomiques avec des approches différentes mais c’est souvent hors de prix et il y a toujours des ptits détails qui me chagrinent. Depuis quelques années maintenant j’ai un Typematrix 2030 sur lequel je tappe en bépo. Oui c’est un peu hipster. En attendant je tappe bien mieux en ayant réappris à écrire. Je ne regarde plus du tout le clavier et je bouge bien moins les bras (combiné à l’utilisation de logiciel privilégiant l’utilisation du clavier). À long terme, je pense éviter ou du moins réduire les TMS que l’on retrouve assez courrament chez les personnes tapant de longues heures au clavier.

Je pensait avoir atteint le stade ultime du fétichiste du clavier mais c’était sans compter les Internets ! J’ai découvert que j’avait à peine atteint le stade de l’intéressé. J’ai découvert qu’il éxiste une belle communauté d’adorateurs de claviers présentant des modèles exotiques tels que le datahand, les chording keyboards, les ptits ducky, le poker, les kinesis, le truly ergonomic… bref pas mal de trucs à étudier/éplucher. Mais il y a encore un stade plus avancé. Celui des Radins. Enfin radins… celui où tu connais suffisamment l’offre existante et où tu rêves du clavier ultime à force d’en voir pleins. Le stade du YAKAFOKON ! Quand tu trouves pas la perle, faut le faire. Et par chance il existe là aussi une belle communauté de DIY de clavier. Pas mal de récit de construction, de boutique proposant des pièces/accessoires des forums où ça cause retour d’expériences et firmware opensource. Bref on ne se sent pas seul dans la nature. Donc j’ai craqué et j’ai décidé de me lancer et de faire mon propre clavier. Un clavier adapté au bépo, de taille réduite car j’aime les ptits claviers (c’est mignon, n’est-il pas ?), des touches au feeling au poil (des cherry mx brown !). Je voulait un truc pas trop moche et pas trop haut pour pas se casser le poignet. Bref le cahier des charges se construis assez vite.

Première étape : Le layout

Le layout c’est l’agencement des touches, vous connaissez probablement l’azerty et le qwerty. Vous avez peut-être déjà entendu parlé du bépo. Pour les malheureux qui découvrent seulement maintenant il s’agit d’un agencement pensé pour écrire du français en abandonnant l’héritage obsolète de l’azerty. Saviez-vous que l’azerty est disposé comme tel afin de ralentir la frappe pour éviter que les branches métalliques des machines à écrire s’entremêlent. C’est dire si c’est pertinent de le transposer sur les claviers d’ordinateurs (pire encore sur les appareils tactiles). Bref, le bépo fait fi de ça et se base sur une étude statistiques des lettres les plus fréquemment utilisées en français. Mon clavier précédent utilisait cette disposition et me convenait presque. Je suis donc repartit de l’agencement bépo du typematrix 2030 tout en retouchant quelques détails. Mais au delà de la disposition bépo, j’ai aussi choisi de sacrifier de nombreuses touches. J’ai dégagé les touches F1, FX… j’ai viré les touches multimédia, les touches systèmes (pause, hibernation, printscreen, calculette,…). Une fois ce ménage fait je me retrouve avec 65 touches. Un clavier traditionnel en possède environ 105. J’ai largement pompé l’idée de typematrix de mettre les touches backspace, delete, enter… au milieu des lettres. Pile entre les deux mains. J’ai sacrifié la sacro sainte barre espace. Quand vous faites une espace (oui j’utilise cette tournure juste pour me la péter et montrer que je sais qu’en typographie c’est féminin) on a pas vraiment besoin d’une touche énorme si l’on ne bouge pas les mains. Pour gagner un peu de place j’ai aussi sacrifié les touches home/end/pageUp/pageDwn mais bon elles servent peu et la plupart des logiciels que j’utilisent ont une autre touche produisant le même résultat. Bon j’obtient une matrice de 13 colonnes sur 5 rangées. Toutes les touches sont carré et bien rangées de manière orthogonales. La quinconce de nos chers claviers est également une relique datant des machines à écrire. Ça n’a plus lieu d’être et en plus çà simplifiera le boulot par la suite.

Seconde étape : Commander le matos

Ça peut paraître bête mais n’étant pas un hacker de renom, j’ai quasiment jamais soudé, j’ai presque pas de matos de bricolage et j’ai jamais conçu d’objets toussa… Bref pleins de trucs à apprendre \o/ Bon bon je sais qu’il va me falloir pleins de touches, surement des composants électroniques, un belle plaque en alu (bha ouai c’est beau et frais) et bha heuu c’est tout ? Ça a l’air simple. Donc je me renseigne plus précisément je farfouine. Bref des diodes pas chères ça se trouve par centaine sur ebay à des prix défiant toute concurrence. Cool. Pour les touches, il existe wasd keyboard qui est une boutique étasunienne qui propose de tout. Pour les switchs, je savait que je voulait du cherry mx brown parceque c’est très solide. Ça fait un léger bruit très charmant, le touché est léger avec une légère tension au début. Par contre ces bébettes ça revient cher. Par chance sur un forum de fana de clavier il y a ptit gars bien sympa qui propose des tarifs miraculeux si l’on est prêt à attendre un peu et si l’on a un minimum confiance envers le gonze. Hop c’est commandé. Maintenant il me faut les caps. C’est le dessus des touches. Le plastic que vous actionnez du bout de vos gracieux petits doigts. Et là surprise ! On oublie vite le petit détail qui tue. Le bépo c’est gentil mais c’est exotique même dans la communauté DIY du clavier. Bref trouver des touches kivonbien. Ça sera impossible ou bien TRÈS cher. Wasd keyboard propose tout ce qu’il faut. C’est pas trop cher si vous êtes prêt à sacrifier le marquage. Par contre attention. Chaque rangée de lettre à un profil différent. Qui plus est il faut deux touches avec de petits ergo sur la homerow (l’emplacement de base où les doigts doivent se pauser le plus souvent possible). Du coup faut bien compter et rien oublier. Par contre on peut se faire plaisir niveau coloris et ça c’est bien marrant. On peut même pousser plus loin en choisissant des textures de touches malheuresement c’est très vite prohibitif (ça sera pour une upgrade plus tard ^__^ ). Bon il manque un peu d’étain pour les soudures. Facile et pas cher sur ebay. Bon maintenant passons au contrôleur. C’est la bébette qui permettra à votre clavier d’être compris par l’ordinateur et aussi d’inteprêter les touches. Bref la pièce maîtresse. Il en existe tout pleins plus ou moins généraliste. En bon noob, j’ai suivi les tutos et me suis donc orienté vers le Teensy2. C’est tout pitit. C’est pas cher. Ça fait ce que je veux et c’est proche de l’arduino donc potentiellement pas mal extensible. Par contre j’ai fait la connerie d’en prendre qu’un. J’ai commandé ces ptits trucs chez watterott une boite allemande qui livre vite. Me manque plus que la plaque d’alu. Dur de trouver de l’aluminium usinable en petite quantité. Au final j’ai trouvé mon bonheur chez Leroy Merlin pour une onzaine d’euros. Voilà plus qu’à attendre les livreurs.

Troisième étape : Agiter ses ptits doigts

Bon le moment à la fois redouté et attendu. Les travaux manuels. Direction le fablab local. Discutage, réflêchissage, reality-checkage. Verdict ? Bha le monde pratique diffère un peu du monde réel. 1mm dans le logiciel de dessin où on peut zoomer/dézoomer à volonté ne ressemble pas vraiment à un millimètre en vrai. Le mini prototype de 4 touches pourra en attester. Bon j’exagère à peine mais dans les logiciels de dessins on a vite tendance à perdre de vue l’échelle de ce que l’on bidouille. Voir la découpeuse laser sortir un bout de clavier d’une plaque de medium à un petit côté magie la première fois. J’ai pu me rendre compte qu’on ne peut pas forcément faire tout ce qu’on veux aussi facilement que ce qu’on pense. Toutes les découpeuses lasers ne peuvent pas découper tous les matériaux. Certaines matières se plient plus ou moins au cahier des charges. Et surtout si l’on utilise une découpe à base de fraiseuse, on doit absolument prendre en compte la forme de l’outil. Bha ouai c’est tout bête mais comment faire un carré parfait avec un outil rond qui tourne ? Là où le laser fait des découpes miraculeuses, là fraise ne peut pas travailler les angles de la même façon. Et puis une fois tout ces petits trous bien percés et agencés, je me suis rendu compte que les outils avait des marges de fonctionnement différentes de ce que je m’attendait. J’ai dû m’armé d’une jolie petite lime et ajuster une cinquantaine de carré. C’est en forgeant qu’on devient forgeron. Après deux bonnes aprems d’essais et compagnie, j’ai enfin ma jolie plaque d’alu avec toutes ses ptites touches enfichées \o/.

L’étape suivante est la réalisation du pcb. Non je déconne. Le pcb c’est bien trop pro pour un projet diy suivant la méthode de la Rache. Du coup, c’est handwiring de haute volée. Le handwiring c’est la soudure “dans le vide”, à la main, des différents composants. Direction ce coup-ci le hackerspace local. On va se dérouiller du fer à souder. Il y a donc 65 diodes à souder à l’arrière des touches. Il faut faire une matrice : il faut relier les lignes de touches ainsi que les colonnes avec une diode entre chacune. Ce faisant, le contrôlleur pourra distinguer chacune des touches sans craindre le terrible NKRO (le bip immonde que produit votre ordinateur quand vous lui pressez trop de touches à la fois). Gare au court-circuit ! Un peu d’isolant par-ci par-là pour pas que les colonnes et les lignes ne se touchent. Il ne reste plus qu’à relier tout ce petit monde au Teensy (le contrôlleur) en essayant de pas déborder et de le cramer (ouai c’est balot). Si vous êtes consciencieux, vous vérifierez qu’il n’y a pas de court-circuite et que bien entendu tout est bien soudé avec un multimètre (la Rache n’approuve pas cette attention).

Quatrième étape : Après le Hard, le Soft !

Bon si toutes les étapes précédentes se sont bien déroulés, il ne vous faut plus qu’un outil et non des moindres : l’Ordinateur. Profitez des derniers instants à utiliser votre clavier actuel car d’un instant à l’autre votre nouveau clavier risque de tomber en marche ! Bon bon bon. Trouvons un firmware… Guy Teub en propose un pas mal du tout : tmk. Opensource, pleins de features intéressantes, pleins d’exemples de personnalisation, une bonne doc et parfaitement compatible avec le teensy. Un truc pour compiler … … hmmm pas envie de dégueulasser ma bone gentoo. Go go chrooto-debian ! L’IDE arduino avec le plugin teensy. Et gcc avec support avr. Au final l’IDE arduino ne sert pas mais bon pas bien grave. Il contient le petit soft tout mignonet pour uploader son binaire dans le controleur. Après suivage de tuto, semi arrachage de cheveux et lecture de doc (sisi jvous jure !), à deux doigts d’abandonner pour la soirée, ça y est ! Le firmware a réussi à se faire compiler sans cracher pleins d’erreurs étranges ! Bon bien entendu c’est loin d’être fonctionnel mais ça y est le teensy parle HID (le protocole des périphs utilisateurs), et peut même afficher des caractères étranges. Une bonne dose de paufinage et quinze minutes après le saint graal : le clavier écrit en bépo. Hop on pousse l’ancien clavier hors de portée, on tente d’écrire une phrase, deux, trois et paf un article interminable sur le site. Le tout entremêlé de procrastination sur IRC. Bref il marche déjà suffisamment bien. Et je sais pas si c’est le fait de plancher dessus depuis quelques temps mais j’arrive déjà à écrire pas trop mal ! Bon la touche Fn marche pas, la touche coller non plus mais c’est déjà innatendu en fait. En moins de quatre heures le firmware est en place et l’ancien clavier ne sert plus qu’à décorer. Je peux utiliser le nouveau pour trifouiller le firmware. Après farfouinage dans les différents fichiers source en C, je trouve l’option à décommenter pour les touches Fn. Voilà le dernier truc qui me manquait.

Ce qui est cool avec un firmware trifouillable c’est que l’on bouge les touches à sa guise. En une semaine j’ai déjà déplacé une dizaine de touches. C’est d’une simplicité enfantine une fois que c’est assimilé, ça se fait en deux minutes montre en main.

Conclusion technique

Techniquement parlant c’est plus simple que prévu. En gros en dehors de la phase de planification. C’était torché en 4 aprems et une bonne soirée. Maîtriser un logiciel de dessin est pas indispensable. J’ai commencé en m’entêtant sur FreeCAD (parceque vu qu’il y a Free c’est surement bien), mais j’ai déchanté à cause des bugs, des problèmes de performances. Je me suis retrouvé au fablab à bosser sur SketchUp qui est moins Free mais qui fonctionne très bien est intuitif et qui exporte dans le bon format toussa toussa.

Pour la partie usinage, j’ai été pas mal épaulé au LabSUD. N’ayant jamais fait ce genre de truc je m’en suis globalement bien tiré avec un résultat pile comme je l’envisageait. Il a juste fallu jouer un peu de la lime mais une bonne demie heure à limer ça ne fait pas de mal.

La partie soudure a été un peu longue mais à deux c’est assez fun et à trois autour d’un apéro dans le jardin c’est encore plus drôle (hein unréal). C’est un peu galère si on a pas de matos bien adapté, particulièrement pour souder sur le controlleur et qu’on est en plus un peu tremblottant et peu soigneux.

La partie firmware est effrayante. Je suis pas du tout codeur. Surtout en C. Mais au final je suis parti d’un truc opensource assez populaire et vraiment excellent techniquement. Il a quelques features bien sympatoche comme par exemple la magic key qui permet de passer en mode debug sur le clavier et obtenir des infos sympatoches. Il permet également de faire des macros (typiquement pour les touches copier/coller). Il possède aussi un système de tapkey : lorsque vous maintenez enfoncé une touche, le résultat obtenu sera différent que si vous appuyez brièvement sur celle-ci. Dans mon cas, la touche Fn2 (parceque ouai vous pouvez avoir plusieurs touches Fn) produit la touche échap. C’est un gain d’une touche ce qui est appréciable car je vise un clavier “minimaliste”. La killer feature du firmware est le système de layer. Vous pouvez définir plusieurs keymaps différents qui se supperposent et passer de l’un à l’autre via les touches Fn. C’est assez génial ! Bref c’est génial et super flexible.

Conclusion

C’est loin d’être dur. C’est fun. C’est un peu cher comme clavier mais comme passe-temps utile c’est trèèèèès rentable. Pleins de gens prêts à filer des coups de mains. Et puis c’est le seul moyen d’avoir le clavier ultime. Le seul moyen d’avoir le clavier qui ne plaît qu’à vous et qui fait ce que vous voulez comme voulez. Bref c’est le pied !

J’ai envie d’en faire un autre ! Pour l’instant j’ai pas trop de point à améliorer en dehors de l’esthétique et encore.

Pour les curieux voilà des photos. Si vous voulez des conseils, des infos, des coups de mimines n’hésitez pas ;-)