Forum bépo

Forum des utilisateurs du bépo

Vous n'êtes pas identifié(e).

#1 20/8/2019 11:36:26

4sStylZ
Membres
Inscription : 23/1/2015
Messages : 110

Build-log : Apple Extended keyboard converti en 60%

Salut à tous,

Je suis toujours sur mon projet de faire un typematrix 2030 avec trackpoint avec chassis probablement imprimé en 3D. Cependant l’étape intermédiaire et surtout susceptible d’apporter un regain de motivation était d’arriver à produire un clavier mécanique totalement fonctionnel avec un firmware custom.

C’est chose faite ! Plutôt que de simplement poster seulement une ou deux photos je vous détaille le procédé de fabrication et les subtilités du firmware. J’éspère que ça vous interessera.

xkOiI5Q.jpg

L’album est ici : https://imgur.com/gallery/hBCB9IV

Je suis parti d’un clavier Apple Extended keyboard II. C’est à dire plus ou moins le saint graal des claviers mécaniques pendant l’air IBM Model M etc.
Le mien a été trouvé pour 20€ sur LBC avec sa souris. Il était tout jaunis car les claviers qui comporte des touches en ABS sont connus pour subir les effets du soleil. Rien à voir avec la cigarette en géneral. Il y était très spongieux, ce sont des interupteurs Alps blancs SKCM.
Il n’existe aucun PCB pour un clavier ISO de ce type. Donc obligé de le souder à la main (de toute manière c’était le but).

L’idée était de construire un clavier TKL 80% ou plus petit mais pas plus petit que 60%. J’ai été pas mal attiré par plusieurs résultats de claviers 60% qu’on peut réaliser à partir d’AEK comme le mien. Il existe aussi des boitiers très peu couteux (20€) qui m’on motivé pour le construire en version 60%.

J’ai désassemblé l’ensemble des switchs dans l’optique de les nettoyer et lubrifier. J’ai enlevé un maximum de poussière, et je me suis rendu compte que cela ne suffisait pas. Je n’ai pas osé acheter de lubrifiant car je ne trouve pas les réferences exactes de viscosités qui sont adaptés au plastique, comme conseillé sur les forum US. Bref le résultat ne me convenait pas une fois néttoyé. J’ai donc démonté les switchs à nouveau pour tendre un peu les ressorts et donc augmenter leur pré-contrainte. Le résultat n’était toujours pas à la hauteur de ce qui se fait de mieux chez les switchs tactiles ALPS.
Ces switchs SKCM ont la particularité quand ils sont tactiles d’être particulièrement modifiables. Notamment on peut les rendre clicky en pliant ou en supprimant des ailettes de métal ou encore les rendre linéaires en enlevant complètement une pièce. J’ai choisi de les linéariser. En effet, cela donne des (très ?) bons switchs linéaires, avec des amortisseurs en gomme placés sur les sliders qui permettent de diminuer le son de la frappe quand on active en bottom-out (la touche enfoncée jusqu’au chassis) mais aussi quand on relache la touche brutalement et que le slider remonte au maximum.

Pour les keycaps, j’ai décidé dans un premier temps de les nettoyer avec de l’alcool Isopropylique à 99,9% (Utilisez des gants si jamais vous utilisez ce produit) D’experience je sais que c’est beaucoup plus rapide qu’avec du savon. Cela sévapore plus rapidement et cela n’abîme pas le plastique. Cependante, le prochain coûp j’achète un bac à ultrason à 20€ car ce passage est très chronophage.
En second traitement j’ai réalisé une restauration de la couleur des keycaps appelée retr0bright sur les forums. Le principe est d’utiliser des produits chimiques couplé à une exposition d’UV (soleil-) pour déjaunir les keycaps. Dans mon choix j’ai pris de la crème de Peroxyde d’Hydrogen à 12% (avec des gants, encore une fois). L’avantage de cette crème est qu’elle est déjà mélangée et pratique pour une application instantannée, sans aditif. Il suffit de disposer les keycaps sur une plaque et les couvrir d’un film plastique évitant l’évaporation du produit et de mettre le tout quelques heures au soleil.
Par la suite j’ai décidé de teindre certaines touches pour rendre le clavier un peu plus original. Voilà le genre de résultat que l’on peut obtenir. Pour ce faire, j’ai utilisé de la teinture iDye Poly Jacquard. On met le tout dans une casserole, on porte à très haute température, on mélange les deux produits tout en remuant. Une fois le produit homogène et sa couleur vibrante on plonge les keycaps à l’aide d’une passoire. Attention, l’ABS peut fondre apparement, donc les matériaux de vos keycaps ont de l’importance (Notamment les barres espaces). Le premier bain de ¼ d’heure m’a donné une teinte qui me convenait et on peut répeter l’opération pour avoir une couleur plus foncé mais aussi un résultat plus uniforme. Une fois la teinte souhaitée obtenue, on passe les touches sous l’eau et on attend que ça sèche. Tout les instruments ont étés sacrifiés, de plus il vaut mieux une passoire en plastique pour ne pas rayer les keycaps. Pour finir j’ai inversé les keycaps qui comportent un marqueur haptique car l’AEK a les maqueurs qui ne sont pas sous les index et cela me perturbait beaucoup.

Pour la plaque qui supporte les switchs, il aurai fallu que je fasse découper une plaque dimensionnée pour le clavier. Mais dans un soucis de réduction de coût et pour éviter toute erreur qui m’aurait sacrément gonflé j’ai préféré découper complètement la plaque du clavier original aux dimensions souhaitées à l’aide d’une scie à métaux et d’une dremel. Ensuite j’ai poncé la plaque au papier de verre, puis je l’ai peinte et vernie. C’était une erreur de le faire avant de la percer car cela a fait sauter le vernis.

Habituellement ce genre de boitier est prévu pour des clavier avec PCB vissés au boitier. Hors il me fallait un moyen de surelever la plaque du clavier pour obtenir une épaisseur suffisante pour les switchs et les futur cables / diodes à la place qu’aurait prise le PCB. J’ai donc designé un petit support que j’ai imprimé en 3D et qui me permet aussi de joindre le boitier à la plaque originale du clavier Apple par quelques vis.

Après avoir positionné correctement la plaque du clavier j’ai procédé aux soudures de la matrice. Il faut une diode par switch, orientée dans le bon sens, et il faut créer une sorte de matrice. Je vous passe les détails, d’autres explique ça mieux que moi. Cette manière de faire fonctionnera avec la plupart des firmware de claviers open source (QMK, TMK et peut être Kiibohd).
5Qj5GSs.jpg

La matrice doit ensuite être relié à un micro-controlleur. Pour le choix de celui-ci, il en existe et voici quelques infos pour vous aider à choisir. Il vaut mieux prendre un micro-controlleur très utilisé par la communauté je vais donc m’attarder seulement sur ceux là : Teensy, le Proton-C de QMK, et les Pro-Micro. Ce qui vas motiver nos choix c’est d’une part le nombre de pinout du micro-controlleur, sa fiabilité, et son architecture. Le pro micro est le plus cheap, il coute une misère, parfois 2€, cependant il ne comporte en géneral que 18 pin utilisables. Donc cela nous limite par exemple à des matrices de 13×5, donc des claviers très petit (il est possible de complexifier la matrice mais c’est une autre histoire). Les teensy sont géniaux, il est presque nécessaire de n’utiliser que les Teensy 2 et 2++ car l’architecture AVR est très facile à utiliser avec QMK à l’opposé des puissants Teensy 3, 3.2 et 3.6. Le proton C a été designé pour les claviers. Il est fabriqué par QMK donc c’est la Royce. Cependant il est récent.
Pour ma part c’est un Teensy 2++ qui fait tourner la bête. Pour la liaison avec le micro controlleur il faut simplement relier les X lignes de mon claviers à X pins et idem pour les colonnes.

Voici le resultat final du cablage :
Su1O8h1.jpg

Au niveau du code du firmware, j’ai dû ajouter mon propre clavier et code la keymap correspondante. Voici le dossier de mon clavier si le code vous interesse
Pour que ce ne soit pas incompréhensible pour les néophytes du code, voici une explication succinte de ce qu’on trouve :
- Le fichier rules.mk sert à régler les paramètres de compilations, c’est là qu’on règle le type de puce du microcontrolleur selon si on a un Teensy et compagnie.
- Le fichier config.h définie les paramètres logiciels de mon clavier, le fait que j’utilise certains raccourcis spéciaux et fonctionnalités avancées de QMK.
- Le fichier keymaps/default/keymap.c définie l’emplacement des touches de mon clavier que je vais envoyer à l’OS. Ce sont les codes de la norme keyboard_HID et on retrouve donc les codes relatifs à un clavier qwerty, les modificateurs ctrl etc. Il y a aussi un second layer qui me permet de faire certaines actions avancées.
- Le fichier aek64.h est là ou j’ai défini la correspondance entre ma keymap (l’emplacement des signaux que je vais envoyer à l’OS) avec le layout physique de ma matrice soudée. Dans mon cas cest très simple, les deux sont presque identiques car ma matrice est simple. La seule chose à prévoir est de spécifier les «trous» ou il n’existe aucune touche, par exemple autour de la barre espace.

Le layout est hyper personalisé.
En premier lieu c’est un clavier Apple qui a les touches APP (La touche Pomme / Windows) à la place de la touche ALT. Mon firmware les inverse pour rester sur un layout habituel.
En effet, un clavier 60% à vocation d’être compact et d’éviter de déplacer trop les mains mais il faut pallier au fait qu’il manque pleins de touches : Pas de flèches directionnelles, pas de pavé numérique, pas de ligne des touches de fonctions F1 etc, pas de touche éspace ni Suppr.
Pour pallier à tout ça j’ai un second layer qui me permet les choses suivantes :
- J’y accède par la touche caps lock ou la touche pomme droite.
- J’ai les touches de fonctions sur les touches de la ligne du haut.
- J’ai les flèches directionnelles ainsi que Home / End sous la main droite (IJKL en Azerty).
- J’ai des touches médias sur la droite pour gérer le volume sonore.
- J’ai des touches cut / copy / paste accessible à une position presque identique à la disposition Azerty.
- Ma touche en haut à gauche sert à la fois à afficher le carctère # quand j’utilise shift ou Windows et Escape le reste du temps.
- Mes touches Shift et ctrl gauche servent pour Home / End quand je les presse une seule fois sans les utiliser comme modificateur.
- Mes touches Shift et ctrl droite servent à pageup et pagedown de la même manière.
- Je peux envoyer certains carctères unicodes comme le fait le typematrix.

Bref le résultat : 
- Je suis content.
- Je veux en faire d’autre, je cherche d’ailleurs des claviers Apple Alps wink
- Le clavier semble solide, il pèse son poids et rien ne se casse la gueule.
- Les switchs linéaires sont top.
- Le layout est fonctionnel mais franchement le temps d’adaptation est grand. Notamment pour faire des choses comme Ctrl+shift+end qui demande en plus d’activer la touche du second layer. Pour moi ce layout est un échec en ce point : 4 touches pour une action c’est trop, cependant tout le monde n’utilise pas ce genre de raccourci. Globalemenrt coder avec dur, alors que j’arrive à coder sur pas mal de clavier pourri (Mon Lenovo Thinkpad ou même celui de mon notebook asus). Sur ce point je doit encore m’améliorer. Je pense repartir d’une feuille blanche sur le second layer et dégager les touches médias pour remettre des home / end et les flèches à gauche en mirroir.
- Je maitrise QMK un peu prêt et je vais pouvoir faire mon ThinkMatrix. Par contre je ne sais pas si j’attend d’avoir une plus grande imprimante pour faire le chassis en une seule pièce ou si je persiste à essayer d’assembler les pièces (Le test précedent a donné un résultat lamentable)

____

Edit : 

Il y a beaucoup de buils similaires qui m’ont inspirés :

imgur.com/a/QwmFy
https://imgur.com/gallery/N0n8I
https://imgur.com/a/2VLtc
http://xahlee.info/kbd/heavy_metal_keyboard.html

Dernière modification par 4sStylZ (16/10/2019 14:08:32)

Hors ligne

Pied de page des forums