Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1985 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DIY/MOD]Synless Keyboard

n°164144
Synless
Posté le 03-06-2017 à 19:49:34  profilanswer
 

https://image.noelshack.com/fichiers/2017/22/1496508272-synless-lowres-wide.png

 


Bonjour à tous.

 


Voulant plus de place sur mon bureau (je joue avec un très basse sensibilité) j'ai décidé il y a quelques temps de réaliser un clavier custom avec les caractéristiques suivantes :

 
  • De nombreuses touches mécaniques (29 switches Cherry MX, linéaire)
  • Un joystick (de PS-Vita ici)
  • Simple à programmer et sans driver (microcontrôleur compatible Arduino)


L'idée est d’obtenir les avantages d'un produit comme le Logictech G13 sans les inconvénients, et d'apprendre deux ou trois choses au passage.

 

J’espère via ce projet vous inspirer pour les vôtres ;)

 


1. Le PCB

 

Réalisé sous Eagle CAD, en double face. Environ 135x120mm.
Le plus dur ici est de trouver les bonnes pièces et leurs empreintes, et bien-sûr de ne pas faire d'erreur de routage.
Vous avez ici une vue bottom (à gauche) et top (à droite) du PCB.

 

https://image.noelshack.com/minis/2017/22/1496565717-topbot-png.png

 

Ici, chaque touche est câblée sur une entrée du µC. Pas de gestion matricielle ou de ghosting à prévoir.
L'anti-rebond est réalisé en hardware, et simplifie la programmation.

 

2. La carte nue

 

Fabrique par Macrofab. Le PCB est réalisé en chine, réceptionné par Macrofab au Texas où ils installent et soudent les pièces (sauf les switches) avant de me l'envoyer.
Ci dessous la carte avec le joystick déjà monté mais pas encore collé. Plusieurs positions sont possibles, j'attends donc de tester lors de sessions prolongées.

 

https://image.noelshack.com/minis/2017/22/1496509798-1.png
https://image.noelshack.com/minis/2017/22/1496509819-3.png
https://image.noelshack.com/minis/2017/22/1496509823-2.png

 

3. Switches et Keycaps

 


Viens ensuite la mise en place des switches, en configuration droitier.
Pour ceux situé proches de l'auriculaire j'utilise des Cherry MX Red, des MX Black pour le reste.
Puis brasage des switches sur le PCB, et installation des keycaps (PBT sans marquage).
Les switches et keycaps proviennent de Ebay, faute d'autre choix ...

 

https://image.noelshack.com/minis/2017/22/1496510068-4.png
https://image.noelshack.com/minis/2017/22/1496509816-5.png

 

4. Programmation

 

Le µC retenu pour ce projet est un Atmel SAMD21J18A, une variante de l'Arduino M0+.
Via l'IDE Arduino et en utilisant la librairie HID je suis en mesure de lui faire émuler en clavier et une souris au besoin.

 

La configuration matérielle consiste à trouver quelles broches du µC correspondent à quelles touches. Cette partie est figée car dépendante du matériel.

Code :
  1. const uint8_t pinMod[numberOfKeys]
  2. {
  3.   28, 41, 20, 19, 36,  37,  1,
  4.   29, 45, 11, 10, 33,  34,  0,
  5.   9,  47, 51, 21, 24,  32,  35,
  6.       8,  40, 3,  30,  25,
  7.           39, 42, 18
  8. };
 

La configuration des touches est la suivante :

 
Code :
  1. const uint8_t keyMod[numberOfKeys]
  2. {
  3.   KEY_ESC,    '1',  '2',  '3',  '4',  '5',  KEY_BACKSPACE,
  4.   KEY_TAB,    'q',  'w',  'e',  'r',  't',  'y',
  5.   KEY_TAB,    'a',  's',  'd',  'f',  'g',  'h',
  6.   KEY_LEFT_SHIFT,   'x',  'c',  'v',  'b',
  7.           KEY_LEFT_CTRL, KEY_LEFT_ALT, ' '
  8. };
 

Le joystick est associé au fléchés directionnelles, je m'en sers pour me déplacer dans les MMO, et comme roue de ping/call dans les MOBA/FPS par exemple.

 

5. Setup final

 

https://image.noelshack.com/minis/2017/22/1496510072-6.png

 

Et enfin j'ai de la place pour bouger la souris !
Environ 60cm. Même si je peux toujours pas faire un 360°  :D

 


Durant ce projet j'ai pu mettre en pratique mes connaissances en électronique et en informatique pour améliorer mon expérience de jeu.
Aujourd'hui ce clavier fonctionne comme attendu et même mieux (puisque le joystick est très confortable, une bonne surprise), et ce projet une réussite.

 


J'invite tous les intéressés à me faire par de leurs commentaires et à me poser leurs questions, je me ferai un plaisir d'y répondre.

 


A bientôt ;)

 


TODO :
- Typo
- Cherry MX Silent en 5 pins


Message édité par Synless le 08-06-2017 à 21:15:42
mood
Publicité
Posté le 03-06-2017 à 19:49:34  profilanswer
 

n°164154
versa
(tile)
Posté le 03-06-2017 à 21:29:14  profilanswer
 

Excellent projet, je veux le même ! [:wark0]
 
 
Récemment je regardais si y'avait pas un mini-clavier programmable sympa, pas pour le jeu, mais pour avoir les principaux raccourcis claviers à porté de main pour certaines applications graphiques (idéal pour le mettre juste à coté de la tablette graphique).
 
J'ai vu des trucs dans ce genre là :
 
http://www.maxkeyboard.com/max-fal [...] mbled.html
Sympa, mais 8 touches, trop limité.
 
Ou alors des numpads programmables (ou des numpads normaux que je reprogrammerais en software coté OS)
 
J'avais aussi regardé du coté des keypads gaming, mais je voulais un truc sobre et simple, et pas trop encombrant.
 
 
Ton truc se rapproche méchamment de mon mini-clavier idéal  :love:
J'aimerais bien avoir les compétences pour en faire autant.  :(  
 
 
Ça t'est revenu à combien au total ?
 
Très beau boulot en tout cas [:giz]

n°164161
Synless
Posté le 03-06-2017 à 22:23:46  profilanswer
 

versa a écrit :

Excellent projet, je veux le même ! [:wark0]

 


Récemment je regardais si y'avait pas un mini-clavier programmable sympa, pas pour le jeu, mais pour avoir les principaux raccourcis claviers à porté de main pour certaines applications graphiques (idéal pour le mettre juste à coté de la tablette graphique).

 

J'ai vu des trucs dans ce genre là :

 

http://www.maxkeyboard.com/max-fal [...] mbled.html
Sympa, mais 8 touches, trop limité.

 

Ou alors des numpads programmables (ou des numpads normaux que je reprogrammerais en software coté OS)

 

J'avais aussi regardé du coté des keypads gaming, mais je voulais un truc sobre et simple, et pas trop encombrant.

 


Ton truc se rapproche méchamment de mon mini-clavier idéal  :love:
J'aimerais bien avoir les compétences pour en faire autant.  :(

 


Ça t'est revenu à combien au total ?

 

Très beau boulot en tout cas [:giz]


Salut versa, merci ^^

 


J'avoue ne pas avoir trop regardé ce qui se fait en ce moment.  D'une part car je pense qu'il n'y a pas grand-chose dans cette niche de périphériques, d'autres part parce que j'avais envie d'un truc bien perso, des boutons et un joystick sympa (for the lulz) et puis aussi pour l’expérience.
 

 

Ouai le mieux ça reste encore de faire sa propre marchandise et de la programmer au besoin !
Là c'est compact, très léger, et l'ergonomie n'a rien à envié aux produits sur le marché.
Plusieurs heures de raid sur WoW, pas de soucis, plusieurs heures sur Overwatch, pareil. J'avais jusqu'à présent un prototype un peu moins joli et c'est la même histoire.
Par curiosité il faudrait quoi pour que tu le considère comme idéal ? :)
 
J'aimerai encore plus sobre, par exemple PCB noir mais choisir la couleur coûte un bras donc c'est random (rouge 90% du temps).
 

 

En parlant de prix, je pourrais donner des chiffres bruts mais c'est biaisé puisque ce que je montre là est un condensé de plusieurs dizaines d'heures de travail.
Les cartes sont réalisé en "one shot", importé des US (frais de port UPS puis frais de douane :( ). Je dois aussi commander 30 switches 5 broches et un keyset complet.
Donc ça revient cher, et le délai de réalisation est important. Le seul moyen pour que ca soit plus attractif c'est de faire commander en lots mais on y est pas encore.
 
Si vous avez des idées d'amélioration aussi je suis preneur.
Je pense mettre un switch de sélection de profils dans une future version, une fois d'autres projets terminés.

 


Message édité par Synless le 04-06-2017 à 07:51:27
n°164162
SnowBear
Posté le 03-06-2017 à 22:30:19  profilanswer
 

Sympa ce projet !

n°164163
versa
(tile)
Posté le 03-06-2017 à 22:36:12  profilanswer
 

"Profession : Apprenti Ingénieur"
 
Dépêche-toi de finir ton apprentissage, de créer ta boite et de sortir un truc comme ça sur le marché (fake pourri vite fait sous photoshop) :
 
http://reho.st/preview/self/ddf7f8a4bf0bcea3935e9d63f2bffeb3834111c4.jpg
 
Une sorte de 30% [:abdegilmobstuv]  
 
(Le seul que je connaisse qui s'en rapproche est celui là, bien trop gros et de qualité douteuse : http://gembird.nl/Repository/4217/ [...] eb1710.jpg )


Message édité par versa le 03-06-2017 à 22:37:10
n°164194
kojiro sas​aki
ジューシーからあげナンバーワン♪
Posté le 04-06-2017 à 10:44:59  profilanswer
 

Ou alors tu prends un numpad programmable c'est plus ergonomique.


---------------
J'aime l'odeur du café au petit matin.
n°164197
versa
(tile)
Posté le 04-06-2017 à 11:11:09  profilanswer
 

J'y ai pensé, mais j'aimerais bien retrouver la disposition et la taille des touches ctrl/alt/shift de gauche que j'utilise tout le temps dans les logiciels 3d.

n°164207
Synless
Posté le 04-06-2017 à 12:05:49  profilanswer
 

versa a écrit :

J'y ai pensé, mais j'aimerais bien retrouver la disposition et la taille des touches ctrl/alt/shift de gauche que j'utilise tout le temps dans les logiciels 3d.

 

https://image.noelshack.com/minis/2017/22/1496570704-commeca.png (Montage Photoshop en carton)

 

Un peu comme ca ? :)


Message édité par Synless le 04-06-2017 à 12:06:08
n°164210
versa
(tile)
Posté le 04-06-2017 à 12:34:49  profilanswer
 

Tout à fait  :)  
 
 
Quand on utilise les ctrl/alt/shift en même temps, la position des doigts naturelle est celle-ci :
 
http://reho.st/self/71362beb220918e1fdd35abe6a9e1a866988b99f.png
 
Avec la touche shift plus longue pour avoir le petit doigt un peu décalé à gauche par rapport à l'annulaire.
 
Mais ça marcherait aussi avec le tien en utilisant ces touches là par exemple :
 
http://reho.st/thumb/self/3d4c95492f9d4e4f45de7a6b6c2723968a6a4290.jpg
 

n°165653
Synless
Posté le 20-06-2017 à 22:02:50  profilanswer
 

Plop !

 

Petite mise à jour : Je viens de finir le logiciel de configuration (pour ne plus avoir à reprogrammer à chaque fois)

 

http://image.noelshack.com/minis/2017/25/2/1497988776-soft.png
(C# .net)

 

Par contre maintenant il faut que j'arrive à trouver un moyen fiable de stocker la config sur la flash du µC. Pour le moment je perds la nouvelle configuration à chaque reboot et ça repart de la configuration programmée.

 

Message cité 1 fois
Message édité par Synless le 20-06-2017 à 22:15:09
mood
Publicité
Posté le 20-06-2017 à 22:02:50  profilanswer
 

n°165663
SnowBear
Posté le 21-06-2017 à 08:49:29  profilanswer
 

Pourquoi ne pas avoir utilisé un  ATmega16U4 voir un Teensy avec TMK/QMK ?

n°165805
Synless
Posté le 22-06-2017 à 09:36:35  profilanswer
 

SnowBear a écrit :

Pourquoi ne pas avoir utilisé un  ATmega16U4 voir un Teensy avec TMK/QMK ?


Pour le Teensy :
Je ne souhaite pas être dépendant des arrivages de Teensy premièrement. Deuxièmement car je ne maîtrise pas le design de la carte, ni du µC.
Ce n'est pas réplicable ni "ouvert". Je reste donc aussi loin que possible des solution propriétaires et fermées comme les cartes Teensy.
 
Pour le 16U4 :
Pas assez d'I/O. J'ai besoin de 30 I/O numériques et 2 (bientôt 6) analogiques. Jouer avec des matrices n'est pas envisageable. J'ai aussi regardé un peu le code de claviers comme celui de kiibohd, c'est perturbant ...
Avec un grand nombre d'I/O je peux aussi rajouter des actionneurs et capteur dans un futur design et ne pas être limité.  
 
Je peux aussi réaliser à peu près n'importe quoi, pas juste un clavier. Imaginons que je souhaite émuler une souris, un joystick, écrire sur le port série, utiliser des délais, faire des macros,  rajouter un petit buzzer, une mémoire flash pour la gestion de different profils etc ... et bien je peux le faire. Je ne suis pas limité par un µC et son firmware destinés à être un clavier. Dans une première version j'avais même ajouté un MAX3421e pour avoir un USB-Host.
 
Au final ce n'est peut-être pas la solution la plus optimale, mais c'est facilement programmable et pour moi c'est ce qui compte le plus. Je suis pas à 2$ sur le prix du µC.

n°165809
SnowBear
Posté le 22-06-2017 à 09:42:24  profilanswer
 

30 I/0 ?! Je suis surpris mais soit :D .
 
Avec QMK (et TMK aussi) tu peux tout à fait :
- émuler une souris (j'ai pas poussé le truc par contre)
- intégrer un trackpoint IBM (ça marche très bien)
- faire des macros
- rajouter un buzzer (suffit de regarder le Plank/Preonic)
- sauvegarder de manière persistante le profil que tu veux
- etc  
 
C'est pour ça que je suis surpris par ton choix (mais je n'ai peut être pas le même recul que toi sur ton projet  ^^ )

n°165819
rat de com​bat
attention rongeur méchant!
Posté le 22-06-2017 à 11:17:54  profilanswer
 

Synless a écrit :

Par contre maintenant il faut que j'arrive à trouver un moyen fiable de stocker la config sur la flash du µC. Pour le moment je perds la nouvelle configuration à chaque reboot et ça repart de la configuration programmée.

Une EEPROM I2C 24xxx?

n°165828
Synless
Posté le 22-06-2017 à 13:54:04  profilanswer
 

SnowBear a écrit :

30 I/0 ?! Je suis surpris mais soit :D .

 

Avec QMK (et TMK aussi) tu peux tout à fait :
- émuler une souris (j'ai pas poussé le truc par contre)
- intégrer un trackpoint IBM (ça marche très bien)
- faire des macros
- rajouter un buzzer (suffit de regarder le Plank/Preonic)
- sauvegarder de manière persistante le profil que tu veux
- etc

 

C'est pour ça que je suis surpris par ton choix (mais je n'ai peut être pas le même recul que toi sur ton projet  ^^ )


Même si c'est possible, je ne sais pas comment faire. Ca ne me semble pas facile. Du coup j'ai choisis un µC compatible Arduino.

 

Le nombre d'I/O c'est normal. Ici, un switch = une input, car je n'ai pas utilisé une configuration matricielle. J'aurais pu faire 11 I/O sinon.

 
rat de combat a écrit :

Une EEPROM I2C 24xxx?

 

J’espère pouvoir utiliser la flash du SAMD21 mais c'est pas gagné. Ca serait dommage de rajouter des composants.

 

Message cité 1 fois
Message édité par Synless le 22-06-2017 à 13:57:53
n°165846
SnowBear
Posté le 22-06-2017 à 14:57:47  profilanswer
 

Synless a écrit :


Même si c'est possible, je ne sais pas comment faire. Ca ne me semble pas facile. Du coup j'ai choisis un µC compatible Arduino.
 
Le nombre d'I/O c'est normal. Ici, un switch = une input, car je n'ai pas utilisé une configuration matricielle. J'aurais pu faire 11 I/O sinon.
 


 
 
D'ac !
 
Et par pure curiosité pourquoi ne pas avoir utilisé une matrice ?

n°167011
Synless
Posté le 07-07-2017 à 20:37:07  profilanswer
 

SnowBear a écrit :

 


D'ac !

 

Et par pure curiosité pourquoi ne pas avoir utilisé une matrice ?

 


Plop ! Pardon pour le retard.

 

Pour la simplicité de la chose, et pour pouvoir faire l'anti-rebond en hardware.

 

_____________

 

Petit update pour le coup, je suis arrivé à écrire la config' sur la mémoire interne du microcontrôleur et à la lire après un reboot !
J'ai également ajouté le support pour des switches ALPS, et plus de touches !

 

https://image.noelshack.com/fichiers/2017/27/5/1499452674-kb.jpg

 


J'ai également commandé une nouvelle carte de test pour des Cherry MX / ALPS analogiques (sisi je me moque pas de vous !) :pt1cable:  
Je vais donc simuler un joystick via une pression plus ou moins forte sur un switch. Cette partie va sans doute me faire changer beaucoup de chose, notamment de microcontrôleur  :(

 

A+


Message édité par Synless le 08-07-2017 à 00:47:10
n°167015
eeeinstein
Électricien au CERN
Posté le 07-07-2017 à 22:12:01  profilanswer
 

ce projet  [:daouar]  [:daouar]  [:daouar]
.
.
.
 [:winpoks]  [:tammuz]


Message édité par eeeinstein le 07-07-2017 à 22:12:16
n°203697
Synless
Posté le 19-04-2018 à 22:38:23  profilanswer
 

Guess how's back ?   :sol:
 
https://image.noelshack.com/minis/2018/24/4/1528994966-0fkkatg.png
https://image.noelshack.com/minis/2018/24/4/1528995015-img-20180419-221308.png
 
Pardon pour la qualité des photos, l'HDR a fumé la moquette !
 
Les nouveautés :
- Grosse réduction de la taille du PCB (↘$$$)
- Configuration matricielle
- Deux touches en plus pour avoir Ctrl bien placée
- Monté sur des sockets Cherry MX de chez Kailh pour le hot-swap ! Avec des switchs "PCB mount" et des keycaps DSA c'est nickel
- USB-C, finit de tourner les connecteur micro-USB !
 
Ne pouvant trouver de Cherry MX Silent Black en PCB mount (5 pins) je vais mixer des "Red, PCB mount" avec des "Silent Black, plate mount" pour avoir le meilleur des deux mondes. À savoir que les switchs "plate mount" ne sont pas assez solidaire de la carte, c'est rapidement désagréable.
 
Ayant détruit un beau Joystick OEM de PSVita j'ai retiré tous les switchs pour les photo et j'ai plus le morale de les remonter avant l'arrivé des nouveau joysticks.
 
L'éxperience 'switchs analogiques' est aussi tombée à l'eau, le fail du mois, alors je ne vais pas m'étendre dessus.
Maintenant que je suis plus étudiant mais salarié j'ai moins de temps à mettre dans mes projets, mais j'y pense toujours !


Message édité par Synless le 14-06-2018 à 18:50:34
n°211165
Synless
Posté le 14-06-2018 à 18:42:45  profilanswer
 

Depuis que j'ai offert une imprimante 3D à mon père j'ai des facilités d'accès au prototypage de pièces :sol:
 
Voici donc la version quasi finale de ce projet, toute de PLA vêtue :
 
                https://image.noelshack.com/minis/2018/24/4/1528993193-20180614-130644.png
https://image.noelshack.com/minis/2018/24/4/1528993185-20180614-130758.png https://image.noelshack.com/minis/2018/24/4/1528993184-20180614-130706.png
https://image.noelshack.com/minis/2018/24/4/1528993187-20180614-131221.png https://image.noelshack.com/minis/2018/24/4/1528993186-20180614-150736.png
 
Système d'ajout/retrait de touche facile, montage "sandwich" avec vis à têtes fraisées et écrou insérés avec la technique "du fer à souder"  :D  
Le feeling ajouté par du PLA remplissage 25% est sympa, et ca fait plus propre. Je peux transporter ce clavier dans un sac sans problème.
 
Vu que je viens de trouver des chinois pour des PCB abordable, je vais tenter un batch de 5 claviers (PCB noir, ABS noir) courant automne


Aller à :
Ajouter une réponse
 

Sujets relatifs
Macintosh Classic MOD (ALL-IN-ONE)[MOD] Mettre un Raspberry Pi 3 dans une SNES
Défi : Chenillard/Roulette pour Mod PCMod d'une console Lumière + build d'un ordi pilote & d'un médiaserver
[DIYINHK] Mod Pompe DDC | Photo Montage[MOD?] Comment connecter une carte PCI Express sur un port mini PCIe ?
Gestion 6 Fan pour futur MODMod Clavier Circuit à LED
[MOD]Led sur pin usb carte mere 
Plus de sujets relatifs à : [DIY/MOD]Synless Keyboard


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR