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: