Controleur fait maison - log 2 et tuto

Clavier mécanique fait maison, partie deux - layout complex

· 4 minutes de lecture

Après avoir galéré à déboguer un élément qui n'en avait pas besoin, je pense enfin pouvoir dire que j'ai acquis de bonnes bases en création de claviers mécaniques fait maison, y compris avec des layouts complexes.

Avant de rentrer dans le détail, je me suis amusé à confectionner des boites et supports custom avec la découpeuse laser de la Labomédia. Quant au matériel et au logiciel, ils restent les mêmes que ceux mentionnés dans le précédent post.

1- Établissez votre disposition (schéma de touches)

Layout de 4*3 touches
Keyboard Layout Editor

éditeur de layout

Une fois un petit croquis réalisé, vous pouvez utiliser cet outil pour générer un schéma du clavier souhaité. Une fois terminé, rendez-vous dans la section Raw Data pour y copier le texte (json).

2- Découpe laser du support du clavier

Plate & Case Builder - swillkb

Outils pour générer un svg pour une découpe laser/CNC

Rendez-vous sur ce site, collez-y votre json du site précédent. Vous êtes libre de modifier les différentes options ici, comme les types de switchs. Une fois vos réglages effectués, cliquez sur Draw My Cad plus bas. Le système générera un fichier téléchargeable, prêt à être découpé.

3- Soudure

Une fois vos switchs installés dans votre support, vous pourrez commencer la soudure. Personellement, j'aime l'aspect fait maison. Je vous invite à consulter ce site pour découvrir une multitude de techniques de soudure différentes.

Hand-Wiring Guide | QMK Firmware
Documentation for QMK Firmware

Guide pour souder un clavier mécanique à la main

Layout à découper et soudure de 4*3 toouches

N'étant pas un expert en électronique, je vais essayer de vous donner une petite explication du schéma. L'idée est de créer une grille de colonnes et de lignes afin de mettre les touches en série. Grâce aux diodes, et donc à une réduction de tension, le micro-contrôleur sera capable de détecter quelle touche a été pressée tout en limitant le nombre de gpio utilisés. Par exemple, une grille de 5*5 n'utilise que 10 GPIO au lieu de 25. Vous allez donc avoir besoins d'un nombre identique de diodes (1N4148 dans mon cas) que de touches souhaitées.

Une fois vos soudures effectuées et le tout relié à votre micro-contrôleur comme indiqué dans le schéma précédent, il vous reste à modifier le code du logiciel KMK, avec une subtilité qui m'a fait perdre quelques heures : la disposition des touches dans le json des outils en ligne ne correspond pas à celle attendu dans le code du controlleur.

print("Starting")

import board

from kmk.kmk_keyboard import KMKKeyboard
from kmk.keys import KC
from kmk.scanners import DiodeOrientation

keyboard = KMKKeyboard()

keyboard.col_pins = (board.GP4,board.GP5,board.GP6,board.GP7,)
keyboard.row_pins = (board.GP1,board.GP2,board.GP3,)
keyboard.diode_orientation = DiodeOrientation.COL2ROW

keyboard.keymap = [
    [
      KC.A,KC.B,KC.C,KC.D,
      KC.E,KC.F,KC.G,KC.H,
      KC.I,KC.J,KC.K,KC.L,
    ]
]

if __name__ == '__main__':
    keyboard.go()

exmple de code correspondant au schéma précédent

Normalement, tout est en ordre. Votre clavier devrait fonctionner parfaitement. N'hésitez pas à vérifier la communication sérielle avec l'éditeur Mu, par exemple, pour vous assurer que tout va bien.

Il reste une dernière problématique que je n'ai pas encore résolue : comment faire pour que les switchs restent bien en place lorsque je retire les keycaps (le support en plastique) ? J'ai l'impression que la plupart du temps, elles ne peuvent pas être retirées car elles sont soudées au PCB, ce qui n'est pas le cas ici puisque tout a été soudé à la main.

Mis à part cela, le résultat est parfaitement satisfaisant.

La bise, Tchouss !

o(*^@^*)o