Modding - transformer un clavier en programmable

J’ai enfin acheté un clavier mécanique ! Le CM storm quick fire XT - cherry MX brown, qwerty US.

  switch-brown Les interrupteurs mécaniques cherry MX brown, classique mais efficace

  Je n’ai pas choisi ce modèle par hasard. Il fait partie de ceux qui ont une puce contrôleur détachable (sur la majorité des modèles elle est soudée). Cela signifie qu’on peut facilement l’enlever et la remplacer par un autre contrôleur, qui sera programmable ! J’ai donc dans la foulée commandé un “custom controller” répondant au doux nom de ghost squid (le poulpe fantôme, beaucoup trop stylé)!

  CM_QFXT J’ai tout reçu ! Prêt à me lancer !

Mais d’où viens ce contrôleur spécial ? Et bien il a été conçu par un suédois connu sous le pseudonyme bpyphany. Vous trouverez tout les contrôleurs disponibles et les modèles de claviers associés sur son site

Cette vidéo montre l’installation d’un custom contrôleur (frosty flake) sur un quickfire-rapid de manière assez détaillée (et résume presque tout ce que je vais dire ici).

Je vais décrire tout le process, photos à l’appui.

 

Installation du contrôleur

Voici la bête:

  squid_unboxing Séquence unboxing

Tout d’abord il faut dire la puce que j’ai commandé à bpyphany est arrivée super vite (2 jours après mon paiement). Le gars est super réactif et à gentiment répondu à toutes mes questions (et il y en avait un paquet). Donc fiabilité maximale de ce coté la. Le contrôleur arrive bien protégé dans du papier bulle et un sachet anti-statique.

  ghost_squid_chip Les entrailles du ghost squid

Lorsqu’on retourne le circuit imprimé on peut apercevoir au centre (juste en dessous du mail imprimé) l’interrupteur reed pour activer le bootloader. J’y reviendrai plus tard.

  screw_and_ergo_position Ronds rouges : position des vis, flèches bleues : position des griffes d’accroche

C’est le moment de faire joyeusement sauter la garantie (petit autocollant pointé de mon doigt accusateur). Car oui, il y a quand même un mauvais coté, comme vous ouvrez le clavier vous annuler la garantie. Mais bon, c’est pareil avec tout les objets électronique qu’on démonte hein ! Vérifiez donc bien que tout fonctionne sur votre clavier avant de vous lancer dans l’opération (tester éventuellement quelque jours si vous n’êtes pas trop pressé).

  card_open_case Ouverture de la coque

Une fois dévissé c’est le moment d’ouvrir la coque. Il y a 4 griffes en haut et en bas qui maintienne les deux partie sur le QF-XT. Prenez une de vos ancienne carte d’étudiant et glissez la dans l’interstice.

  42 card Autant prendre une carte d’étudiant approprié ^^

Il ne faut pas hésiter à forcer un peu.

  case_open

Une fois que vous avez retiré la partie haute il ne reste plus qu’a retirer directement le contrôleur en place.

  pull_off

  Juste pour le fun, photos des deux contrôleurs

Il pourra être remis en place au cas ou il y a un problème avec votre nouveau contrôleur, ou si vous décider de restaurer le clavier en mode d’origine. Donc conservez le dans un coin.

  La grande classe (même si après il est planqué sous la coque)

Et voila ! Le ghost squid est aux commandes. Il est probable qu’un firmware soit déjà chargé et que le clavier fonctionne directement dès le premier branchement. Si ce n’est pas le cas ne paniquez pas (pas encore en tout cas). Ne refermez pas votre boîtier avant d’avoir réussi a charger votre propre firmware (c’est quand même le but de l’opération). D’ailleurs voyons comment créer sa propre disposition

 

Créer et exporter son layout avec EasyAVR to USB

easyAVR de metalliqaz est certainement le moyen le plus facile pour créer son firmware avec une interface graphique. Si vous êtes un peu plus programmeur vous vous pencherez certainement sur d’autres solutions comme tmk. Pour infos j’ai posé quelques questions a bpyphany au sujet outils pour créer le firmware. Voici ses réponses : Easy AVR - easiness to make layers/macros/funstuff, nkro, media and mouse keys tmk - easiness to hack in very cool ways, nkro, media and mouse keys

Vous pourrez trouver plus d’infos sur eAVR sur le thread geekhack dédié.

Je vais décrire ici comment j’ai procédé. Si vous êtes sous windows, télécharger la dernière version du soft sur la page wiki deskthority.

Dézippez le dossier, lancez l’exe. Vous obtenez ceci :

  easyAVR first launch

Nouvelle disposition…   new

Choisir son modèle de clavier dans la popup. Le champ du bas “All keys” permet de choisir entre ISO et ANSI (si vous ne savez pas quelle est la différence je vous invite à lire cet article ;) )

  ghost-layout

Ensuite, 3 solutions pour changer les touches : cliquer sur une touche visuelle puis appuyer sur la touche désiré sur le clavier actuellement branché (il vaut mieux avoir un autre clavier fonctionnel à coté pour ça et pour débugger pendant le flash), chercher dans le menu déroulant ou afficher le key-picker via le menu View.

  ANSI

Le default constitue la couche de base. Il est plus simple de dupliquer celui-ci sur les layers de fonctions (plutôt que de tout refaire) avec le copier/coller.

  copy_paste

 

Le boot mode

Attention ici c’est important : Basculer en boot mode vous permet de mettre le clavier en attente de réception du firmware (flashable quoi !). Le reed switch (le petit tube transparent sur la puce) vous permet de lancer le bootloader en passant un aimant au dessus du contrôleur pendant un bref instant. Pour sortir du boot mode, débrancher/rebrancher le clavier.

Penser donc à placer le scancode “boot mode” sur une touche quelque part dans vos layout. C’est ce qui vous permettra de passer votre clavier en mode flashable sans avoir besoin de le faire au niveau hardware avec le reed switch.

  boot_mode

Ici mon raccourci Boot mode remplace échap dans le layer de fonction 2, donc mon combo est Fn2+Esc (il faut bien penser a mettre la touche Fn2 quelque part sur le layer defaut sans quoi vous ne pourrez pas accéder au layer 2 et donc pas a votre boot mode).

Dernier point : si un firmware était déjà chargé sur la puce il est possible qu’un raccourci pour passer en boot mode existe déjà. Tenter d’appuyer simultanément sur les deux shift (c’est ce qu’utilise bpyphany, ça a marché pour moi). S’il ne se passe rien vous êtes bon pour y aller avec l’aimant

Une fois le layout prêt on le sauve (.dat) pour éventuellement le retoucher plus tard et on compile firmware (.hex), le tout via le menu File.

Ensuite on passe au logiciel permettant de charger le fichier hex dans la puce.

 

Le coup de FLIP

Si vous êtes sur windows télécharger FLIP sur le site d’atmel (il y a un bouton buy sur la page mais c’est bel et bien gratuit) J’ai pris la version “FLIP 3.4.7 for Windows (Java Runtime Environement included)” Si vous êtes sur d’autres OS il vous faudra dfu-programmer

Passez votre clavier en boot mode puis lancez le programme (ici FLIP).

  puce

On clique sur l’icône de petite puce et on choisi le type utilisé, ici une ATmega32u2, comme spécifié par bpyphany sur son site.

Ensuite il faut cliquer sur l’icône de cable USB pour établir la connexion

  USB

Alors c’est la que c’est un peu nul… Vous aurez très probablement ce message d’erreur “AtLibUsbDfu.dll not found” lorsque vous essaierez d’ouvrir la connexion USB.

C’est qu’il manque un driver pour FLIP (qui est en fait contenu dans le dossier ou il à été installé). Cette vidéo indique comment régler le problème.

Une fois l’histoire du driver réglé et que le port USB est ouvert c’est le climax.

  open_usb

Le moment est venu pour la petite sueur avec l’étape ultime : le moment du flash…

 

Le flash du firmware

On charge le firmware compilé.

  load_hex

On efface consciencieusement la mémoire (le bootloader ne sera pas affecté)

  FLIP_connected_erase

Puis on clique sur l’icône de transfert et on retiens son souffle pendant le final flash (bon en vrai il n’y a pas de raison que ça foire, mais les moment de flash ça fait toujours ce petit effet)

  FLIP_flash

Une fois l’opération terminée, débrancher et rebrancher votre clavier. Sil fonctionne c’est réussi ! Sinon retenter le flash puis adressez vous directement a bpyphany ou postez vos souci sur le thread geekhack (moi je suis un noob dans le domaine.)

 

Le résultat

Il ne vous reste plus qu’à refermer le boîtier et profiter, tester, changer vos dispositions, vos macros (vous pouvez en stocker jusqu’à 14 avec eAVR) et reflasher. Je l’ai déjà fait 3 fois sans souci.

Voici un mon layout de fonction actuel (accès via la touche caps lock).

  fn_layer Aperçu de mon layer de fonction. Notez le contrôle de la souris sur wasd

  Et hop ! un clavier programmable à pas cher ! #joie