Agathe
Au gré de discussions entre collègues, je me suis lancé dans la modélisation d'un boîtier en 3D pour un clavier custom avec une forme ergonomique : le Agathe de taille 65%, c'est-à-dire sans pavé numérique.
Voici les caractéristiques :
- Firmware écrit avec QMK
- Circuit électronique sur mesure
- Boîtier imprimé en 3D
- Connecteur magnétique USB-C
- Rétro-éclairage à LED
L'ensemble des ressources de cette page est disponible sur mon GitLab.
Vue du dessus :
Vue du dessous :
Électronique
@louckousse a dessiné sous Kicad le circuit électronique, aussi appelé PCB, et nous l'avons fait fabriquer chez JLCPCB. Les sources sont disponibles sur ce dépôt.
Ce clavier est basé sur un Atmega 32u4, avec un connecteur USB-C et un rétro-éclairage à LEDs placé sur l'envers du clavier.
La disposition des touches sépare bien la partie droite de la gauche avec des angles différents. De plus, il y a deux touches espace, et le nombre total de touches est réduit par rapport à un TKL, notamment avec la suppression du bloc de 6 touches : Page Up, Page Down, Insert…
Le câblage électronique est basé sur une matrice ligne/colonne avec des diodes. Les LEDs sont connectées en I2C.
Le lecteur attentif remarquera deux “détails” sur le PCB : une tête de Christian Clavier en bas à gauche, un clin d'œil de la communauté francophone de claviers mécaniques Et il est écrit “bisous” sur la face inférieure, une private joke de @louckousse
Interrupteur de sélection de layer
J'ai ajouté un petit interrupteur proche du connecteur USB-C afin de pouvoir basculer la position des touches entre Mac et Linux : la position des touches alt et control sont notamment inversées.
Ajout de trous de fixation
Il manquait des trous pour fixer la plaque au boîtier : trois, d'un diamètre de 3 mm, peuvent être percés à l'emplacement entouré par un cercle jaune sur le schéma ci-dessous. Il faut utiliser des vis M3 x 16 pour assembler la plaque, le PCB et le dessous imprimés en 3D.
Boîtier imprimé en 3D
J'ai dessiné le boîtier en 3D avec Fusion 360. Comme la surface d'impression de mon imprimante 3D n'est pas très grande, j'ai découpé le modèle en plusieurs pièces. Je me suis également assuré que les plans de coupe entre la plaque du dessus et du dessous ne sont pas alignés afin de préserver la solidité de l'ensemble.
J'ai imprimé la partie supérieure avec deux filaments de couleurs différentes, accentuant visuellement la séparation droite/gauche. De plus, ces couleurs sont “bling”, c'est-à-dire avec des paillettes, ce qui permet de moins remarquer les éventuels défauts d'impression.
Le dessous est en forme de nid d'abeille afin de permettre d'admirer le PCB. Je l'ai également imprimé en PLA translucide pour que le rétro-éclairage soit visible.
Disposition des touches
QMK est le firmware que j'utilise sur mes claviers. Il est disponible pour plusieurs types de microcontrôleurs et offre de nombreuses fonctionnalités que nous n'avons pas sur un clavier traditionnel :
- Layers : activation d'une nouvelle disposition de touches suite à un appui long sur une autre ;
- Tap dance : une pression sur une touche envoie les 3 caractères d'un smiley :
:-)
, deux pressions :;-)
, trois pressions ::muscle:
… - Leader key : l'appui sur une touche spécifique puis une autre perment de faire des combos personnalisés comme envoyer
Merci d'avance et bonne journée
, phrase que j'utilise beaucoup dans mes mails ; - Gestion de LEDs RGB sous le clavier pour faire joli ou afficher une couleur lorsqu'un combo est inconnu ;
- Prise en charge des boutons rotatif pour ajuster le volume sonore, par exemple. En appuyant sur shift, la luminosité de l'écran est ajustée ;
- détection de l'OS afin d'ajuster la disposition des touches mac ou linux ;
- Et bien d'autres…
Pour faire un mapping complet, il faut écrire un tableau associant une switch et l'envoi d'un code USB spécifique à l'ordinateur. Il est possible d'aller plus loin en surchargeant des fonctions pour implémenter des comportements personnalisés : par exemple, j'ai remplacé Alt + Tab pour basculer d'une fenètre à l'autre par Ctrl + T. Cela permet de limiter les déplacements des doigts ou de la main sur le clavier.
Le clavier contient alors tous les raccourcis et n'est pas dépendant de l'ordinateur ni d'un logiciel particulier .
Le code de ma disposition est disponible ici.
Colemak mod DH
J'ai changé la disposition des touches de base pour passer d'Azerty à colemak mod-dh : les lettres les plus fréquentes sont disposées sur la ligne du milieu du clavier afin que les doigts se déplacent le moins possible. Cela permet de réduire la tension sur les mains.
L'image ci-dessous illustre les changements de disposition des touches : toutes les lettres ont changé de place mais leur position est plus ergonomique.
Je n'ai pas choisi la disposition Bépo car elle requiert des keycaps spécifiques introuvables ou hors de prix. De plus, les personnes autour de moi utilisaient Colemak et m'ont incité à tester cette disposition. Le travail d'apprentissage étant tellement important, il n'est pas envisageable de tester plusieurs dispositions.
J'opte également pour des reposes poignets afin que mes mains “volent” au dessus du clavier. C'est le début du “touch typing” : pratique consistant à ne pas regarder le clavier, à bien utiliser tous les doigts de chaque main et à ne pas taper des touches destinées à la main gauche avec la main droite.
Ce changement de disposition nécessite de réapprendre à taper et d'accepter, pendant plusieurs mois, de taper très doucement. J'ai mis 2 ans à m'adapter et à retrouver pratiquement une vitesse de frappe équivalente à celle sur un Azerty. Le code reste encore compliqué à taper, notamment à cause de la ligne des chiffres et symboles qui est complètement revue.
La première mise en œuvre de la disposition Colemak mod-DH a été réalisée sur mon clavier Agathe. J'ai d'abord écrit des gammes sur le site https://www.colemak.academy/ pour apprendre la position des lettres par cœur, puis petit à petit, j'ai commencé à taper des mots, puis des phrases. Pendant plusieurs mois, j'avais deux claviers : un Azerty normal et cet Agathe. Je consacrais entre 10 et 30 minutes par jour à m'entraîner. Puis un matin, je me suis rendu compte que j'avais oublié de changer de clavier et que j'avais commencé la journée avec l'Agathe : c'est alors que j'ai compris que l'utilisation du Colemak était sur la bonne voie !
Clavier ansi
Fonctionnalités QMK
QMK est le firmware que j'utilise sur mes claviers. Il est disponible pour plusieurs types de microcontrôleurs et offre de nombreuses fonctionnalités que nous n'avons pas sur un clavier traditionnel :
- Layers : activation d'une nouvelle disposition de touches suite à un appui long sur une autre ;
- Tap dance : une pression sur une touche envoie les 3 caractères d'un smiley :
:-)
, deux pressions :;-)
, trois pressions ::muscle:
… - Leader key : l'appui sur une touche spécifique puis une autre perment de faire des combos personnalisés comme envoyer
Merci d'avance et bonne journée
, phrase que j'utilise beaucoup dans mes mails ; - Gestion de LEDs RGB sous le clavier pour faire joli ou afficher une couleur lorsqu'un combo est inconnu ;
- Prise en charge des boutons rotatif pour ajuster le volume sonore, par exemple. En appuyant sur shift, la luminosité de l'écran est ajustée ;
- détection de l'OS afin d'ajuster la disposition des touches mac ou linux ;
- Et bien d'autres…
Pour faire un mapping complet, il faut écrire un tableau associant une switch et l'envoi d'un code USB spécifique à l'ordinateur. Il est possible d'aller plus loin en surchargeant des fonctions pour implémenter des comportements personnalisés : par exemple, j'ai remplacé Alt + Tab pour basculer d'une fenètre à l'autre par Ctrl + T. Cela permet de limiter les déplacements des doigts ou de la main sur le clavier.
Le clavier contient alors tous les raccourcis et n'est pas dépendant de l'ordinateur ni d'un logiciel particulier .
Colemak mod DH
J'ai changé la disposition des touches de base pour passer d'Azerty à colemak mod-dh : les lettres les plus fréquentes sont disposées sur la ligne du milieu du clavier afin que les doigts se déplacent le moins possible. Cela permet de réduire la tension sur les mains.
L'image ci-dessous illustre les changements de disposition des touches : toutes les lettres ont changé de place mais leur position est plus ergonomique.
Je n'ai pas choisi la disposition Bépo car elle requiert des keycaps spécifiques introuvables ou hors de prix. De plus, les personnes autour de moi utilisaient Colemak et m'ont incité à tester cette disposition. Le travail d'apprentissage étant tellement important, il n'est pas envisageable de tester plusieurs dispositions.
J'opte également pour des reposes poignets afin que mes mains “volent” au dessus du clavier. C'est le début du “touch typing” : pratique consistant à ne pas regarder le clavier, à bien utiliser tous les doigts de chaque main et à ne pas taper des touches destinées à la main gauche avec la main droite.
Ce changement de disposition nécessite de réapprendre à taper et d'accepter, pendant plusieurs mois, de taper très doucement. J'ai mis 2 ans à m'adapter et à retrouver pratiquement une vitesse de frappe équivalente à celle sur un Azerty. Le code reste encore compliqué à taper, notamment à cause de la ligne des chiffres et symboles qui est complètement revue.
La première mise en œuvre de la disposition Colemak mod-DH a été réalisée sur mon clavier Agathe. J'ai d'abord écrit des gammes sur le site https://www.colemak.academy/ pour apprendre la position des lettres par cœur, puis petit à petit, j'ai commencé à taper des mots, puis des phrases. Pendant plusieurs mois, j'avais deux claviers : un Azerty normal et cet Agathe. Je consacrais entre 10 et 30 minutes par jour à m'entraîner. Puis un matin, je me suis rendu compte que j'avais oublié de changer de clavier et que j'avais commencé la journée avec l'Agathe : c'est alors que j'ai compris que l'utilisation du Colemak était sur la bonne voie !
Clavier Agathe
J'ai adapté la disposition Colemak mod-DH en utilisant la colonne centrale sur laquelle j'ai mis les lettres accentuées les plus fréquentes tel que é, è, à, ç. Cet arrangement m'a pris du temps à prendre en main et n'est pas très optimal car seul l'index de la main droite peut appuyer sur ces touches. De plus, il n'y a pas d'équilibrage entre la main droite et gauche de ces caractères.
J'ai ensuite testé progressivement les fonctionnalités de QMK, en commençant par les layers : suite à un appui maintenu sur une touche, différents caractères sont disponibles, comme lorsque alt-gr est utilisé. Sauf que désormais, c'est moi qui choisis la disposition de ces touches secondaires. J'ai créé deux layers en plus de la disposition de base afin d'avoir les caractères spéciaux et accentués, ainsi qu'un réglage des effets lumineux du rétroéclairage des LEDs sous le clavier :
Clavier split
Fort de mon expérience sur mon clavier Agathe, j'ai adapté la disposition COLEMAK mod DH adaptée aux langues anglophones afin d'ajouter un accès direct aux caractères accentués les plus utilisés, comme é ou à. Je les ai placés à la place de y et w. Ces derniers ont été décalés là où il restait de la place.
L'intéret des claviers splits est le nombre de touches à chaque pouce : 5 pour les Dactyl. En mappant les touches les plus fréquentes sur ces 2 doigts, cela permet de réduire les contorsions de la main pour faire un Ctrl + C, par exemple. Sur la main droite, j'ai notamment mis les touches Entrée, Space / shift et [, et sur la gauche Backspace, Space / shift et ]. Ces changements de disposition ont été durs à apprendre, néanmoins, j'apprécie beaucoup de pouvoir taper backspace et entrée sans déplacer les mains.
J'ai plusieurs layers permettant d'activer des caractères utilisés en code plus facile : lorsque j'appuie sur ? et sur F, cela me donne $
. Ainsi, pour écrire ${}
, le pouce de la main droite est sur le ? et je “roule” avec le majeur et index de la main gauche pour appuyer successivement sur F, P et B.
De la même manière, les touches de navigation sont placées sur N, E, I et U. Pour les activer, le pouce droit appuie sur la touche Nav.
Voici ma disposition actuelle :
Remarques : les couleurs correspondent aux couleurs des keycaps que j'utilise ; elles n'ont pas de signification particulière.
Mais pourquoi les codes de touches Azerty ?
Ce clavier est destiné à être utilisé en remplacement d'un clavier Azerty sur des ordinateurs français sans aucune modification du côté du système d'exploitation.
J'utilise un MacBook avec un clavier Azerty intégré. MacOS ne permet pas d'avoir une disposition de touches différentes par clavier connecté, il faut aller dans Préférences Système
> Clavier
> Méthodes de saisie
et ajouter Français - PC
. A chaque changement de clavier, il faut refaire cette manipulation… Dommage que macOS ne puisse pas gérer une disposition par clavier.
Ainsi, ce clavier se comporte comme n'importe quel clavier Azerty Mac afin de ne nécessiter aucun changement côté OS.
Mais pourquoi les codes de touches Azerty ⁉️
Ce clavier est destiné à être utilisé en remplacement d'un clavier Azerty sur des ordinateurs français sans aucune modification du côté du système d'exploitation.
J'utilise un MacBook avec un clavier Azerty intégré. MacOS ne permet pas d'avoir une disposition de touches différentes par clavier connecté, il faut aller dans Préférences Système
> Clavier
> Méthodes de saisie
et ajouter Français - PC
. A chaque changement de clavier, il faut refaire cette manipulation… Dommage que macOS ne puisse pas gérer une disposition par clavier.
Ainsi, ce clavier se comporte comme n'importe quel clavier Azerty Mac afin de ne nécessiter aucun changement côté OS.
BOM
Voici la liste des composants nécessaires pour fabriquer le clavier :
- 1 * PCB
- 1 * Connecteur USB-C à souder
- 75 * Cherry MX switches
- 75 * Keycaps
- 62 * 1 U
- 3 * 1.25 U
- 3 * 1.5 U
- 2 * 1.75 U
- 2 * 2 U
- 2 * 2.25 U
- 1 * 2.75 U
- 5 * Stabs 2 U
Optionnel :
- Jusqu'à 3 encodeurs
- Dip switch
- 3 * Vis M3 x 16
Impression 3D :
- 1 * Dessous gauche
- 1 * Dessous milieu
- 1 * Dessous droit
- 1 * Plaque gauche
- 1 * Plaque droite
- 3 * Cache d'encodeur rotatif (optionnel)