J’ai acheté un clavier Kinesis Contoured Advantage. Inutile de le cacher, de tous les claviers que j’ai pu tester, celui-ci avec son design 3D est le plus ergonomique de tous. Les mains bougent peu, les pouces sont utilisés, les touches sont mécaniques. Edit: En voici une photo (Merc Salagir), et le lien vers le site du constructeur.

Le clavier est programmable, dans une certaine limite, mais je ne compte pas utiliser cette fonction Mais le clavier soufre d’un certain nombre de défauts de conceptions : pas de touche « Super / OS », ni de touches multimédias. Il existe des hacks pour rajouter des touches au clavier, ainsi que des hacks permettant de changer de contrôleur, et donc d’avoir accès aux fonctionnalités avancées de QMK (par exemple). Ces hacks visent en partie à corriger le bug des touches coincés que l’on peut rencontrer avec le clavier, l’un de ses défauts.
En fait, son autre réel défaut sera son prix. Mais si au lieu de collectionner les claviers, on en achetait tout de suite un bon, cela peut faire des économies, d’autant plus que le clavier est réparable et que le SAV de Kinesis vends des pièces. Il faudra un petit temps d’adaptation pour retrouver ses anciens réflexes (frappe orthogonale, clavier pas nécessairement splitté comme on le faisait avec un autre clavier, dernière colonne de gauche décalée vers le bas pour des raisons de symétrie).
Ouverture du clavier Kinesis Contoured Advantage 1
Il existe plusieurs versions du clavier (qui a été fabriqué depuis 1992), je me suis dépêché d’acheter la version 1 du clavier Advantage USB (KB500USB-blk) afin d’être sûr de profiter des hacks bien documentés. La première opération consistera donc à ouvrir le clavier pour voir comment il est fait. Cela est facile, quelques vis et le clavier s’ouvre tout seul. Bref, après une ouverture sans difficulté, on accède à ça :

Techniquement, il s’agit d’un clavier PS/2 contenant 1 contrôleur série, 1 mémoire flash I2C pour stocker les macros (avec emplacement pour une deuxième mémoire), et un emplacement pour des DIP-switchs remplacé ici par des résistances. En fait, tout porte à croire que la même carte est utilisée sur le modèle Pro qui possède le double de mémoire et ces fameux DIP-switches. La carte contient également 2 multiplexeurs : cela permet d’avoir 16 lignes sur la matrice des touches avec seulement 4 ports sur le micro-contrôleur (A,B,C,G).
Mais le clavier est censé être USB, n’est-ce pas ? Hé bien, oui, car cette carte est reliée à un convertisseur USB-série qui assure également la fonctionnalité de hub USB 2 ports (ou 3 si on compte le clavier). Attention, car cette carte est connue pour buguer avec des chipsets Intel récents ou d’autres types de contrôleurs USB 3. Ce bug peut quelquefois être contourné avec un hub. Point amusant, cette carte est signé « PI Engineering », un fabricant de claviers orthogonax customisables et customizés, plus connu sous le nom de « x-keys ».

En fait, on devine que la version USB a été conçue avec le convertisseur pour éviter d’avoir à gérer 2 versions différentes du clavier et concevoir rapidemment une version USB (au moment où l’USB se répondait, soit au début des années 2000). Que ce convertisseur existe encore en 2016 est étonnant, d’autant plus qu’il ne gérait même pas la norme USB 2, ce qui au prix du clavier faisait désordre en 2016. La nouvelle version du clavier sortie mi-2016 (Kinesis Contoured Advantage 2) règle ces problèmes d’USB et apporte la possibilité d’accéder aux macros comme à un filesystem.
Le Hack Humble Hacker (2010)
La première modification du contrôleur a été réalisé en 2010 par David Whetstone sur un clavier « Kinesis Professionnal QD » daté du 18 mars 1999. Il s’agit de mettre sur le Kinesis le firmware réalisé pour un des premiers clavier maison que je connaisse, le clavier « Humble Hacker Keyboard ». Cette modification a été réalisée en 2 étapes : d’abord le reverse-engineering de la matrice du clavier.

Puis la réalisation d’une nouvelle carte contrôleur à base de Teensy, sur une carte de prototypage, a grand renforts de fils.

Avec ce contrôleur, on perds le hub USB, l’accès à la mémoire flash, le buzzer, et le connecteur vers les pédales optionnelles. De plus, le clavier anciennement PS/2 a été converti en clavier USB natif (Teensy oblige).
Le firmware et les contrôleurs chrisandreae (2012)
Chrisandreae a conçu un firmware pouvant remplacer le firmware du clavier Kinesis, tout en conservant ses possibilités de reprogrammation, et même plus : il devient possible de remapper les touches via une interface graphique sans reflasher le firmware et de remplacer la souris, et même de faire tourner un programme externe (simple) dans le clavier.

L’accès à la mémoire I2C (utilisée pour stocker la configuration des touches et les macros) et au buzzer est toujours possible ; l’accès aux pédales n’a pas été testé mais la carte reprends la connectique nécessaire. Le hub USB est néanmoins perdu (sur les modèles qui en sont pourvus), puisque le contrôleur est conçu pour reprendre l’ancien câble USB du clavier.
Pour obtenir ce résultat, un nouveau contrôleur viens tout simplement prendre la place de l’ancien contrôleur sur les modèles « récents » (tel que le clavier de David Whetstone, daté de 1999), directement sur le support DIP 40 pins. Cela permet de conserver le clavier réellement intact, il pourra donc revenir sans problème à sa configuration d’origine.

Ou même en remplacement de l’ancienne carte contrôleur sur le (vieux) modèle 110, qui est très différente des modèles plus récents :

Ces cartes sont basées sur un contrôleur Atmega 32A, le contrôleur doit être programmé à l’aide d’un programmateur externe (certains ne coûtent pas plus chers qu’un teensy), sa soudure implique des soudures CMS, et il y a très peu d’instructions pour refaire la carte (pas même un « Bill of Material » autre que vaguement sur un forum), et il n’y a aucun sité dédié (juste des annonces sur geekhack). Ceci à du refroidir quelques unes des personnes intéressées par ce firmware, malgré un travail d’excellente qualité avec des fonctionnalités introuvables sur d’autres firmwares.
Il est également possible de faire tourner ce firmware sur l’ergodox, en rajoutant une mémoire I2C sur celui-ci, et lui permettre de prendre les fonctionnalités du Kinesis, l’ergonomie en moins.

Ce firmware ne gère néanmoins pas les touches multimedias, et les commits se font rares dans les dermiers mois.
Le contrôleur Stapelberg (2013)
En se basant sur les travaux de David Whetstone, Michael Stapelberg a conçu sous Eagle une carte pouvant remplacer le contrôleur de David Whetstone en utilisant cette fois-ci un Teensy++ 2.0. Au passage, Michael Stapelberg s’est rendu compte que les connecteurs pour les puits de touches alphabétiques étaient différents sur son clavier. Sa carte utilise donc un connecteur Cvilux CF01131V000, compatible avec le connecteur Molex 39-53-2135.

Cette carte apporte un design assez simple et élégant, mais on perds (comme avec la carte Humble Hacker) l’accès à la mémoire flash, le buzzer, et le connecteur vers les pédales. Cependant, il ne doit pas être impossible de les rajouter, il reste plein de ports inutilisés sur le Teeny++. On perds également le hub USB 1.1.
Cette carte n’est pas vendue, mais il est possible de faire réaliser plusieurs modèles pour quelques dizaines d’euros sur les sites usuels : Oshpark, DirtyPCBs, Bilex-LP…
A l’origine, Michael Stapelberg utilisait une version adaptée du firmware humble hacker, mais ce clavier est désormais supporté par QMK.
Le « Kinesis Advantage TMK Hack » (2015)
Tout cela est bien beau, mais s’il est possible de remplacer le contrôleur en venant se greffer avec un PCB directement sur le support à la place de l’ancien contrôleur (Chris Andreae), c’est qu’on doit aussi pouvoir greffer directement un Teensy là dessus… Un hack peut-être pas aussi propre que les 2 précédants, mais plus accessible.
C’est le hack proposé par Warren Janssens sur le site hackaday : https://hackaday.io/project/4320-kinesis-advantage-tmk-hack

Il suffit donc d’un Teensy 2.0, d’un support de circuit intégré 40 pins, d’un peu de fil et de soudure… Puis il faudra trouver une solution pour le câble, on proposera de reprendre le câble du Kinesis, mais qu’importe, du moment que le Teensy sera branché en USB.
Ce hack nécessitera évidemment un firmware adapté, et d’ailleurs il visait justement à faire tourner TMK sur le Kinesis. Ainsi Warren Janssens proposera son fork de TMK adapté à ce contrôleur. Ce fork n’est pas synchronisé avec la branche officielle de TMK, mais a été porté sur QMK par alvinstep, et fait partie de la release officielle de QMK (qui par ailleurs contient la documentation complète du hack).
Enfin, il existe un patch pour faire tourner le firmware de chrisandreae (et un pull request sur github) sur ce hack physique. La mémoire I2C et le buzzer sont branchés ; il reste encore quelques pattes de libres sur le teensy pour envisager de rajouter les pédales. Cette solution, comme les autres, ne reprends pas le hub USB.
Remettre un hub sur le Kinesis
Les 4 hacks présentés ici ne s’embarassent pas de garder le hub, et pour cause : dépassé (USB 1.1), buggué, activant le contrôleur USB de l’ancien clavier, on n’a pas nécessairement envie de s’encombrer quand il est possible d’acheter des hubs USB 2.0 pour quelques euros sur ebay (ou ailleurs).
Et d’ailleurs, si on pouvait trouver un hub physiquement compatible avec le boitier ? J’ai reperé plusieurs candidats à cet effet :
Une pieuvre 4 ports

Une pieuvre 7 ports

Avec les hubs pieuvres, l’intégration est facile : il suffit de glisser à travers les ports USB / le câble origine les ports du hub, tout en gardant une prise USB femelle à l’intérieur du clavier. Même pas besoin de souder en reprenant le court câble USB fourni avec le Teensy. Pour gagner de la place, on devra démonter le boitier (il se déclipse facilement avec un couteau sur ces 2 hubs que je me suis procuré en Chine via Ebay). Au passage, l’électronique sur un hub moderne est vraiment minimaliste : cela se limite à un seul circuit intégré dans certains cas.
Cela marche assez facilement avec le hub 4 ports, un peu plus difficilement avec la version 7 ports. Le hub n’est en outre pas alimenté, donc pour il ne faudra pas espérer y connecter des périphériques consommateurs d’électricité (ou vouloir recharger son téléphone).
Le hub « swivel »

Comme les pieuvres, ce hub est facilement démontable. On pourra alors désouder sur le PCB le port du milieu et souder à la place un câble pour le relier au teensy, et faire passer le port mâle via le trou du câble d’origine, et les ports USB à la place du câble d’origine. Un peu de « pistocolle »(pistolet à colle chaude) devrait faire tenir l’ensemble en place . Puis on utilisera un câble rallonge USB pour relier le câble au PC (ou à un autre hub). Cela permet de garder le clavier propre, sans « pieuvre » avec des câbles sortants sous le clavier, et même, un câble détachable de la longueur souhaitée.