Construire un clavier mécanique pour le fun
Par Narann le samedi, 27 mai 2017, 22:24 - Mes coups de coeur - Lien permanent
Cela faisait un moment que je voulais construire un truc. En fait, quand je ne code pas, j’ai toujours envie de faire des trucs. En fait, quand je fais des trucs j’ai toujours envie de faire d’autres trucs. Je ne voyais rien qui puisse me motiver à aller jusqu’au bout. Puis l’idée d’un projet qui mélangeait électronique et bois passa : Un clavier mécanique fait maison. « Haha » me dis-je, « Faut vraiment rien avoir à faire de sa vie pour se lancer dans un truc aussi con ».
Je partais donc là-dessus avec entrain. :dentcasse:
L’inception
Ce qui me donne envie de commencer un projet est souvent le fruit d’une maturation qui peut parfois commencer des années plus tôt.
Ici, suite à une augmentation du syndrome de canal carpien j’ai commencé à m’intéresser à l’ergonomie autour des claviers. J’ai découvert (et enfin compris) que les claviers chiclet (clavier plat d’Apple et d’ordinateurs portables) sont très mauvais pour le poignet, car ils stoppent le mouvement du doigt sur la touche très (trop) tôt et usent le muscle. Je suis rapidement tombé sur les claviers Ergodox puis mécaniques en général, les différents types d’interrupteurs et j’ai profité d’une offre intéressante sur le site Massdrop (un site pour riche voulant devenir pauvre) pour m’en offrir un.
Mais ce qui me fascinait c’était les gars qui construisaient leur clavier eux-mêmes… Il faut savoir que les kits à faire soi-même sont assez chers. Et c’est ainsi que je tombe sur le clavier Atreus dont je le me suis laissé aller à la lecture des différents journaux de construction disponible sur le dépôt. Celui-ci fut d’ailleurs ma référence principale.
Le résultât
Et sans plus attendre, la bête :
OK, j’avoue, ce n’est pas si impressionnant que ça. Mais c’est du bois qui brille et qui sent le bois tu vois… :sauteJoie:
Pour être honnête, je me suis foiré sur pas mal de points (ponçage et surtout traitement). Un bon prétexte pour en refaire un, un jour. :grenadelauncher:
L’Atreus
L’Atreus est un clavier dit 40 % (utilisant 40 % du nombre de touches classiques) crée par Phil Hagelberg qui était fan de son clavier Ergodox mais voulait une version plus petite pour pouvoir s’en servir dans les cafés où il avait l’habitude d’aller. Le bonhomme a donc créé son clavier (design, conception et tout le tintouin), proposé un kit à l’achat et a mis l’ensemble en ligne pour que chacun puisse faire le sien (franchement, c’est la classe :bravo: ).
C’est donc un clavier portable open source assez simple à monter et bidouiller qui est resté dans ma tête longtemps et que j’ai décidé de commencer comme un projet à long terme, sans trop savoir dans quoi je me lançais.
Prix
Je commence directement par le prix, sans trop de contexte, j’expliquerais après. :seSentCon:
J’ai compris assez vite que, comparé à ce qu’on pourrait imaginer, les coûts allaient être importants. Les claviers mécaniques sont souvent chers. Ceux à faire soi-même n’y échappe pas, surtout au démarrage, quand on n’a pas le matériel. Il faut savoir que pour tout ce qui est électronique, ebay.com (avec la case Free Shipping coché) est votre ami. :siffle:
Voici ce que j’ai payé :
Description | Site | Prix |
---|---|---|
Découpe laser du boîtier | sculpteo.fr | 41.03 € |
120 Interrupteurs Gateron marrons | massdrop.com | $32.99 |
Teensy 2.0 | ebay.com | $14.00 |
100 Diodes 1N4148 | ebay.com | $1.00 |
100 fils de soudure en étain double tête | ebay.com | $2.30 |
61 touches en plastique PBT noir | ebay.com | $18.00 |
10 vis et leur écrou | Castorama | 4.00 € |
Pistolet à colle | Castorama | 10.00 € |
Soit un total d’environs 116 €.
Notez que c’est une estimation grossière (pour les interrupteurs j’ai pris un paquet de 120 alors que seul 42 étaient nécessaires), mais ça vous donne une idée.
Viennent ensuite les frais annexes :
Description | Site | Prix |
---|---|---|
Fer à souder | amazon.fr | 20.00 € |
Fil d’étain | amazon.fr | 5.00 € |
Pince électronique | Castorama | 2.00 € |
Multimètre (franchement ça aide) | Castorama | 10.00 € |
1L d’acétone | Castorama | 8.00 € |
500 ml d’huile de lin | Castorama | 8.00 € |
Pot de cire | Castorama | 15.00 € |
Convertisseur Micro-USB vers Mini-USB | ebay.com | $1.00 |
Câble Mini-USB vers USB (3 mètres) | ebay.com | $6.55 |
Je possédais déjà un certain nombre de ces objets (fer à souder, fil, multimètre).
Vous comprenez que ça revient cher. Si votre but est de faire des économies ce n’est pas la bonne voie. :nannan:
Découpe du boîtier via Sculpteo
Sur le dépôt officiel du projet il existe une version prête à être envoyé à un service de coupe laser à la demande : Pokono.
Le service n’est pas très cher mais étant placé aux États-Unis, les frais de port atteignaient, de mémoire, 50 $ pour, toujours de mémoire, 27 $ de coupe…
J’ai donc cherché un service similaire pour la France sans trop y croire et je suis tombé sur Scultpeo qui est beaucoup plus acceptable (même s’il force à utiliser l’envoie express, assez cher, ce qui est franchement dommage). Le site est plutôt bien fait et permet d’expérimenter les prix des matériaux assez facilement. J’ai donc modifié le fichier svg de Pokono pour Sculpteo.
Je suis parti sur un matériau en contre-plaqué (Plywood), qui permet de garder les rainures originales du bois, en peuplier (poplar):
J’ai retrouvé la facture finale (mais leurs tarifs ont un peu changés depuis):
Coût de fabrication | 22,53 € |
Envois express | 11,66 € |
Total HT | 34,19 € |
TVA | 6,84 € |
Total | 41,03 € |
Il n’y a pas d’autres choix que l’envoie express et c’est franchement dommage vu le prix… Mais bon…
Comme c’est de la découpe laser, le profile de la partie coupe est toute noire, il faut donc poncer. Je l’ai fait à la main puis je me suis dit que c’était un bon prétexte pour acheter un Dremel en promotion…
Traitement du bois
Allons-y tout de go : J’ai raté le traitement de mon bois (Avouez que c’est con sachant que c’était le principal intérêt du projet… :septic: )
J’ai d’abord poncé les bords de chacune des pièces pour retirer la brulure de la coupe laser (jusqu’ici ça va) puis j’ai voulu poncer la surface des pièces ce qui a eu pour effet de casser un certain nombre de fibres du bois.
Puis vient le traitement à l’huile de lin. Je suis parti sur un mélange térébenthine/huile de lin (la térébenthine servant à diluer l’huile de lin en vu de la faire pénétrer dans le bois) en augmentant le pourcentage d’huile de lin sur trois couches (70/30, 50/50, 30/70).
Pour ma première couche, je décide d’utiliser du brou de noix pour foncer le bois et accentuer les rainures. Premier fail, sans vraiment comprendre pourquoi, le brou de noix ne s’est pas dilué dans le mélange ce qui formait des petites gouttes sombres plutôt qu’un aplat uniforme.
Bon, ce n’est pas si grave me dis-je… :ideenoire:
J’ai ensuite fini avec une dernière couche 100 % huile de lin. Et bien il ne fallait mieux pas… Cette couche fit des gruaux (que vous pouvez constater dans les photos qui suivent). Je pense qu’une petite dilution 10/90 n’aurait pas fait de mal. :nervous:
C’est à ce moment-là que je décide d’acheter de la cire à bois pour sauver les meubles ( :jdicajdirien: ). Il faut bien avouer que l’efficacité de la cire n’a d’égale que la longueur de la liste des produits chimiques qui la compose…
Les interrupteurs
Je ne vais pas faire un énième guide des différents interrupteurs de clavier mécanique, il en existe des dizaines pour peu qu’on sache se servir de Google.
Comme je vous disais précédemment, j’avais déjà en ma possession un Keycool Hero 84 blanc (acheté sur Massdrop) avec des interrupteurs Kaihua Kailh bleu. J’ai fait une partie de Ballerina et tout Croc-Blanc dessus. Ils sont super mais un peu bruyant. J’ai eu l’occasion de tester des interrupteurs de la marque Gateron bleu et marron. Franchement ils sont vraiment géniaux. Du-coup je me suis fixé sur le Gateron marron. Puis une offre intéressante passa sur Massdrop et j’en pris un pack (120 pour n’en utiliser que 42 (coïncidence, je ne crois pas :pasClasse: ), le prix plus haut est donc un peu biaisé)…
J’ai “soudé” les interrupteurs au pistolet à colle. C’est assez efficace, bien que les trous de la planche maintiennent déjà bien les interrupteurs :
Les soudures
C’est mon moment préféré. Je faisais ça le soir après une journée de boulot en écoutant de la musique.
Vous l’aurez compris, on construit une matrice en soudant les LED horizontalement les unes aux autres. Il faut bien faire attention à la polarité des différents composants. Pour ça, la lecture du guide d’assemblage en amont est fondamentale et on y revient souvent, d’où l’intérêt de l’avoir à côté.
Puis vient la partie verticale, un peu plus complexe. L’idée est de dénuder les fils à l’endroit ou ils vont être en contact (et uniquement là pour éviter les faux contacts).
Puis on connecte chaque ligne de la matrice au microcontrôleur :
Notez que j’ai utilisé des couleurs différentes suivant qu’on soude la ligne horizontale ou verticale.
Le Teensy 2.0 est un peu vicieux, car les numéros des broches ne se suivent pas. Jugez par vous-même :
Il faut donc faire attention si on ne souhaite pas se payer une ressoudure intégrale. :baffed:
Une autre astuce consiste à utiliser des fils mâles/femelle pour éviter les bêtises et simplifier le montage. Sur un premier montage je trouve l’idée très intéressante. Et forcement, je n’ai découvert ça qu’à la fin de l’étape de soudure.
Les touches
Je voulais un profil SP SA (que je trouve super classe et vintage) mais la seule entreprise en fabriquant encore se situe aux États-Unis, est constamment en rupture de stock et les frais de port sont délirants. J’ai donc dû me rabattre sur un ensemble de touche sur ebay.com. J’ai simplement inversé la dernière rangée (celle du haut) avec la rangée du bas pour que les touches soient orientées vers mes pouces… Au final je suis assez content du résultat.
Le microcontrôleur
Les différents journaux de construction que j’avais lu m’avaient donnés envie de faire les soudures moi-même, sans circuit imprimé. J’optais donc pour le microcontrôleur Teensy 2.0, une petite planche de développement USB pas cher, compatible Arduino embarquant une puce ATmega32U4.
Le firmware
C’est souvent là qu’on panique. Je n’ai pas échappé à la règle. Je ne suis pas un habitué du développement sur microcontrôleur. J’ai donc fait quelques erreurs qui m’ont amené à dessouder et ressouder un certain nombre de choses alors que j’avais simplement compile avec les mauvaises options… Au lieu de ne rien faire quand j’appuyais sur les touches, le clavier renvoyait des lettres de manière bizarre (mais toujours logique).
La dernière chose bizarre que j’avais était que les touches Ctrl et Alt étaient inversées. Que voilà un bon prétexte pour aller modifier le code de l’agencement des touches. :gniarkgniark:
Au passage, le code du firmware de l’Atreus s’appuie sur le firmware TMK (un firmware très connu après des bidouilleurs de clavier).
Montage final
Comme vous allez le voir, je n’ai pas trouvé de vis pile poil adapte à la hauteur du boîtier :
Si j’avais cherché un peu, j’aurais vu que qu’ebay regorge de ce type de vis (cherchez « m2 flat head » pour vous en convaincre). Qu’a cela ne tienne, il suffit donc de scier les bouts de vis avec une scie à métaux !
Après un combat sans pitié contre les probabilités, je conservais mes doigts et pouvais enfin fermer mon clavier :
Enfin, on branche son clavier pour commencer à écrire ses premières phrases et se familiariser avec l’agencement des touches. Puis, comme tout projet DIY, on le pose dans un coin pour ne plus jamais y toucher. :trollface:
Peut mieux faire ?
À peine…
En fouillant dans le depot, je suis tombé sur un script OpenSCAD :
De que quoi ? :bete:
Ctrl+T, openscad<enter>, OpenSCAD :
OpenSCAD is not an interactive modeller. Instead it is something like a 3D-compiler that reads in a script file that describes the object and renders the 3D model from this script file. This gives you (the designer) full control over the modelling process and enables you to easily change any step in the modelling process or make designs that are defined by configurable parameters.
:reflechi:
it is something like a 3D-compiler
:idee:
Un truc de TD en manque de sensation ! Génial !
J’installe OpenSCAD, j’ouvre le script et :
On dirait un truc fait pour moi ! :laClasse:
Mais regardons ce script de plus près :
// -*- mode: c -*-
/* All distances are in mm. */
/* set output quality */
$fn = 50;
/* Distance between key centers. */
column_spacing = 19;
row_spacing = column_spacing;
/* This number should exceed row_spacing and column_spacing. The
default gives a 1mm = (20mm - 19mm) gap between keycaps and cuts in
the top plate.*/
key_hole_size = 20;
/* rotation angle; the angle between the halves is twice this
number */
angle = 10;
/* The radius of screw holes. Holes will be slightly bigger due
to the cut width. */
screw_hole_radius = 1.5;
/* Each screw hole is a hole in a "washer". How big these "washers"
should be depends on the material used: this parameter and the
`switch_hole_size` determine the spacer wall thickness. */
washer_radius = 4 * screw_hole_radius;
/* This constant allows tweaking the location of the screw holes near
the USB cable. Only useful with small `angle` values. Try the value
of 10 with angle=0. */
back_screw_hole_offset = 0;
/* Distance between halves. */
hand_separation = 0;
/* The approximate size of switch holes. Used to determine how
thick walls can be, i.e. how much room around each switch hole to
leave. See spacer(). */
switch_hole_size = 14;
/* Sets whether the case should use notched holes. As far as I can
tell these notches are not all that useful... */
use_notched_holes = true;
/* Number of rows and columns in the matrix. You need to update
staggering_offsets if you change n_cols. */
n_rows = 4;
n_cols = 5;
Mhhh… On dirait un script avec des variables globales pour générer la structure du clavier… Si j’essayais de modifier deux trois variables, comme ça, juste pour voir… Après tout c’est vrai que l’Atreus n’a pas beaucoup de touches, une rangée supplémentaire de chaque côté ne ferait pas de mal… Et puis l’alignement des touches est un peu fort, sans parler de l’épaisseur… Qu’est ce qui se passe si je…
Quelques heures plus tard…
Il semble que les interrupteurs restants vont finalement trouver une utilité. :siffle:
À bientôt !
:marioCours:
Commentaires
Très intéressant ce post. Moi je trouve que les mec qui fabrique leurs propres claviers c'est un peu comme les Jedi qui fabrique leurs sabre laser (c'est une étape quoi ;) )
Au cas ou ça t'intéresse, j'avais été très content de découvrir qu'on pouvait aussi rendre certains clavier mécanique du commerce programmable grâce à un mec qui fabrique des puces remplacement sans soudures pour certains modèles précis (des 60% pour la plupart). J'ai fait un tuto de mon modding perso ici : http://blog.samuelbernou.fr/?p=170
Sinon comme je suis trop naze en électronique mais que j'aime bien l'ergonomie et le bois aussi j'ai achetè direct le Keyboardio (le premier sur ce post : http://blog.samuelbernou.fr/?p=158).
Continue de tenir au courant de ton actus keyboarding, comme tu peux le voir ça intéresse des gens ^^
Haha, sympa l’analogie au sabre des Jedis. :D
Je viens de faire un tour sur ton blog et il est vraiment chouette, je vois que tu es un vrai passionné, c’est cool !
Du-coup je peux rentrer dans les détails. :D
Pour la partie électronique, c’est assez simple et toujours le même principe. Si tu as compris une fois, ça marche pareil pour tous les claviers.
En fait, l’Atreus (celui de cette page) est super (comparé a un 60 % “ordinaire”) mais je voulais essayer d’en faire un bépo. Le QWERTY c’est top pour le code, mais j’en ai assez de ne pas pouvoir taper les accents.
Le problème est le manque de touche de base. Le bépo est pensé pour du 62 touches minimum (là ou l’Atreus n’en propose que 42). J’ai essayé de voir comment faire passer le bépo sur 42 touches mais rien ne me semblait vraiment pratique (un comble pour du bépo). Du-coup j’ai joué un peu avec OpenSCAD et je suis en train de me faire un Atreus62 qui prends la forme de l’Atreus, avec plus de touches et un agencement plus classique. J’ai déjà appliqué trois couches de brou de noix et la seconde couche d’huile de lin et je me tâte pour la finition matte ou satiné. :D
Il est en train de sécher dehors. :D
Au passage, Sculptéo ne permet pas de proposer publiquement ses projets en découpe laser (mais ils le font pour l’impression 3D, c’est dommage), mais si tu souhaites que je t’envoie le SVG que j’ai utilise, n’hésite pas.
En fait, je vais essayer d’éditer ce billet pour proposer le fichier en téléchargement quand j’aurais le temps.
Et sinon j’ai découvert le site lasergist qui propose de la découpe laser sur métal qui me semble abordable. Ça laisse rêveur. :D
C'est super !
Je viens tout juste de découvrir ce clavier et c'est cool de voir un guide en français, d'autant plus que tu montres bien comment tu as procédé en DIY complet !
J'ai vu qu'il y avait une version bleutooth qui a été faite (https://github.com/cy384/atreus_blu...), mais malheureusement c'est pour un 42 touches. Est-ce que tu pourrais partager le fichier du modèle 3D 62 touches ? Ça m'intéresse pas mal surtout si je peux avoir une taille de clavier acceptable que je puisse trimbaler partout.
Sinon personnellement j'ai un TypeMatrix (est-ce que c'est considéré comme un clavier chiclet ?), j'aimerais que tu en dises un peu plus, ou avoir une source que tu recommanderais sur les clavier mécaniques vs. les claviers chiclet.
Merci, encore pour ce super tutoriel !
Ça aurait été pas mal de chanfreiner les passages et de tarauder les vis à hauteur pour avoir un clavier plane et cacher les vis
salut,
sympa, bravo, merci pour le partage
ps : " les claviers chiclet sont très mauvais pour le poignet, car ils stoppent le mouvement du doigt sur la touche très (trop) tôt et usent le muscle"
pas sûr, j'ai fait pas mal de guitare, et c'est le contraire, les mouvements amples sont plus fatigants et usants, et pour une utilisation très répétée, il vaut mieux une action douce (en force) et économe (en amplitude) si on veut éviter des problèmes semblables à ceux du canal carpien...
et d'ailleurs les claviers ergonomique sont souvent chiclet, pour ce que j'en ai vu (le BEPO fr chez ldlc l'est, par exemple, et c'est un peu des spécialistes de l'ergonomie, quand-même)
bonne continuation :)
Intéressant, je suppose que ça dépend des gens et des pratiques.
Au passage, je parle d’expérience personnelle, étant codeur j’ai toujours codé avec des claviers à membrane. J’ai switché sur un clavier chiclet Apple wireless à la lecture d’un article de coding horror (je crois que c’était celui-là). J’ai instantanément eu mal aux poignets après quelques heures. Et ça devenait de pire en pire au fil des jours, quelle que soit la position. Les douleurs ont immédiatement disparu quand je suis revenu à un clavier mécanique (doté de commutateurs type MX, où même à membrane, ce n’est pas le sujet).
Il en était de même pour quelques collègues. L’un d’eux a toujours eux des claviers chiclets et a acheté un clavier (de dactylo, MX switch bleu) rien que pour écrire un long rapport tant il avait mal et la douleur est parti quasi instantanément.
Je reconnais que la sensation d’écriture est plus fluide avec un chiclet, potentiellement plus rapide, même.
Je ne suis pas un expert, en revanche, pour en avoir fait l’expérience moi-même suite à la promesse d’une meilleure ergonomie, je suis très dubitatif sur l’intérêt des chiclets en ce sens. Je suppose que c’est à chacun de se faire un avis.
ah, ce serait donc plutôt la membrane (ou quoique ce soit qui fait office d'amortisseur/ressort) qui économise les tendons?
intéressant, et ça semble crédible, il faudrait inventer le chiclet à membrane, du coup? :)
comme ça on a tous les avantages
Possible, encore une fois, je ne suis pas expert en ergonomie.
Les claviers chiclets sont plats, ce qui bloque instantanément le doigts, et je suppose, les tendons.