LilianBeug
(
Message aux admins :
Fred260571 est l’une des personnes dont je parlais plus haut qui s’est engagé sur le projet ToucheLibre.
Vous pouvez lui donner les droits pour les liens, les images et autres. Il a toute ma confiance.
)
QMK ?
Bonne question. C’est en effet une des pistes que nous avons étudié.
Dans le projet ToucheLibre, nous avions une problématique particulière. Nous voulions plus de touche qu’il est basiquement disponible sur un clavier standard. 112 touches au lieu de 105 touches. Et qui plus est, avec des fonctionnalités qui n’existe pas classiquement.
Par exemple, sur le pavé numérique l’ajout de «^» avec un scancode bien différent de la touche morte «^».
Donc on avait plusieurs solutions :
* Vivre avec les possibilités de QMK. Mais la personnalisation de la configuration n’est pas si simple à comprendre et on avait peur d’aboutir à des impossibilités. (4sStylZ, merci pour ta participation à la traduction de QMK et je te souhaite bien du courage.)
* Faire un fork de QMK. Mais le code source de QMK est assez compliqué et pas très bien documenté. (Il faut se palucher un véritable labirynthe de la mort. Car trop peu de choses sont dites sur les entrées/sorties et quel est le role de chaque bout de code…)
* Tout refaire depuis le début. C’est ce que je ferais sans hésiter si j’avais les compétences en programmation. Car il y a rien de mieux pour maîtriser son design et personnalisé comme bon nous semble. C’est généralement ce que font les pro. C’est d’ailleurs ce que j’ai fait sur les parties mécanique et électronique.
* Partir des bibliothèques Arduino. C’est bien quand on débute en C. Ça permet de mettre les mains à la pâte progressivement.
C’est ce que nous avons fait on verra bien jusqu’où ça nous mène. Pour autant, nous ne fermons pas définitivement la porte de QMK. Ça reste au moins une source d’inspiration et au plus un engagement communautaire pour amener des briques qui vont dans le sens de ToucheLibre et peut‑être même pour d’autre projet…
Sur l’électronique, il y avait aussi plusieurs possibilités :
* Le choix du microcontrôleur. Il en existe plein qui peuvent faire le boulot. Nous avons choisi le ATmega32u4, pour plusieurs bonnes raisons. 1/ Il donne un USB de classe HID, rien de mieux pour faire un clavier. 2/ C’est celui de l’arduino micro, et donc on profite de la communauté Arduino. 3/ C’est l’une des références les plus utilisés par QMK, et donc on profite de la communauté QMK et on peut changer en cours de route la stratégie de développement logiciel.
* Ensuite pour augmenter le nombre de touche gérable, il fallait plus de pins GPIO. Là aussi plusieurs possibilités. 1/ Utiliser 2 ATmega32u4 avec deux configurations de scancode différentes et les connecter tous les deux au PC par l’intermédiaire d’un HUB USB. --> {écarté, trop lourd}. 2/ 2 ATmega32u4 mais qui parle entre eux par I²C. L’un étant master et parle au PC, l’autre étant slave et se comporte comme un IO expander. C’est l’une de possibilité offerte par QMK en particulier pour les claviers splités. --> {écarté, trop dépendant de QMK} 3/ Utilisé un vrai IO expander. En particulier le ECE1099, qui un expander penser pour une application clavier, il fait automatiquement le scan de la matrice de touches et donc simplifie grandement le code. Il devient envisageable de piloter avec de simple bibliothèque Arduino. --> {Solution de secours retenu si la suivante ne marche pas. Cette option est en non‑monté sur la carte}. 4/ Faire une matrice analogique de touches. C’est une idée de Fréd et une mise en œuvre électronique de moi. Je sais pas s’il existe un brevé dessus. Mais je pense qu’il y a là une certaine innovation. C’est un mixte entre une mesure analogique et une matrice logique de touche comme classiquement. --> {Solution retenu, elle est sans conteste la moins chers et la plus fun}
Comme le dit Fréd, cette dernière solution permet de multiplier le nombre de touche gérable. Pour que tout le monde comprenne, dans un clavier classique, les touches sont disposées en matrice et piloté logiquement. Il y a par exemple 10 pins configurées en sortie qui envoie séquenciellement une tension sur toutes les colonnes. Puis par exemple, 10 pins configurées en entrée pour lire séquentiellement toutes les lignes. Et ainsi voir si une colonne a été connecté à une ligne par actionnement d’une touche.
Avec notre solution matrice analogique, à chaque nœud ligne/colonne, on n’a plus simplement un interrupteur, mais 2, 3 ou 4 interrupteurs (au delà ça marche pas à moins d’avoir un ADC de compétition) qui donne par combinaison des valeurs de tension différentes sur un ADC placer sur les lignes.
On est parti sur ×2 (2 interrupteurs par nœud) pour des raisons de simplicité et de fiabilité. Mais, on peut faire du ×3. Théoriquement du ×4 est possible mais ça pose des problèmes de fiabilité car les valeurs de tension possibles sont trop rapprochées. Il faut une référence de tension au poil et les perturbations électromagnétiques risque de tout planté.
Par ailleurs, le clavier marchera soit sur USB ou soit sur Bluetooth (développé dans un second temps).
Prochainement, les sources de ToucheLibre seront disponibles sur un espace GitLab dédié au projet.
fred260571
On voulais utiliser un vrai IO expander (le ECE1099), mais on à décidé que passer par une utilisation de l'arduino / QMK nous permettrait de produire un prototype fonctionnel rapidement, et qu'il serait plus simple à ce moment de recruter un pro de l'I2C
Sinon j'ai oublié de mentionné que j'ai implémenté les macros dans mon code : on peut écrire un petit programme qui appuie ou relâche des touches , y insérer des delay ...
Bref le code est un chouia complexe mais je suis en train d'écrire un tuto pour bien l'expliquer
PS : merci pour les liens 🙂
4sStylZ
Beaucoup de choses dites et je peux peut-être répondre à certaines :
Le pro micro de sparkfun et tous les clones pro micro sont en effet peu adaptés à un un grand clavier. Ce qu’il vous faut dans ce cas c’est peut-être un Teensy++ 2.0 ou alors tweaker un pro micro à 25 pins :
http://www.40percent.club/2018/05/black-pro-micro-25-pins.html
Je valide votre choix d’un MCU qui est connu de la communauté.
Pour ce qui est des keycodes. Qmk permet d’insérer tous les keycodes de la normes hid, ainsi que des caractères unicodes ou des macros de textes. Donc en théorie on peut insérer tous les caractères qu’on veut.
LilianBeug
Teensy++ 2.0, pro micro, Arduino micro, c’est du pareil au même. Ils utilisent tous le ATmega32U4.
Dans ToucheLibre, on a fait notre propre carte pour avoir un bon facteur de forme et une bonne intégration dans notre mécanique.
Après, on a exactement les mêmes possibilités que les autres.
Oui, ce que fait QMK est fort intéressant. Et on garde cette idée sous le coude. Mais il va nous falloir un certain temps avant de se l’approprier. QMK n’est pas si simple.
Après, si tu veux nous donner un coup de main tu es le bienvenu.
Notre stratégie actuelle est de commencer par simple puis de grossir au fur et à mesure.
Le clavier a été pensé dès le départ pour être modulaire. Il y a 5 cartes différentes pour faire face aux évolutions technologiques et anticiper les erreurs de design. Avec 5 cartes on n’est pas obligé de refaire une carte complète à chaque fois…
4sStylZ
Expliquez moi par MP comment vous voulez communiquer, idéalement un petit vocal discord serait pas mal je pense pour que je vous explique le système de la matrice et comment l’implémenter dans QMK.
LilianBeug
ToucheLibre, ça marche!!!
Ce message est écrit avec le clavier ToucheLibre.
Quel plaisir de jouer enfin avec mon clavier… Je me sens tel un petit Édison qui communique pour la première fois avec son téléphone (toute proportion gardée et avec toute la modestie qui m’incombe biensûr).
Voici quelques photos de la bête: 😛
LilianBeug
Description de détail :
Fait en noyer, finition à la cire
Switch Cherry ML, équivalent au MX marron avec moins de course
*
petits repères tactiles
bord des touches teintées avec de la cire cuivrée
*
Poignet en cuir
*
Le bouton mystère et les leds indicatrices
*
Surface anti‑dérapante en liège
*
bouton ON/OFF en bois
câble USB tissé par mes soins
*
Ouvrons la boite
*
carte électronique de toute beauté
LilianBeug
Côté sensation, c’est très agréable.
Rien que la sensation du bois, ça n’a rien à voir avec le plastique
La géométrie est vraiment sympa, un confort comme attendu.
Il faut que je me réhabitue pour retrouver ma vitesse d’avant, mais ça devrait aller.
LilianBeug
Il reste encore du boulot côté logiciel, mais c’est très encourageant.
Toutes les touches de base fonctionnent sur Linux et Windob (MacOS pas testé).
Les pilotes de ma disposition Kéa fonctionne sous Linux et Windob.
Reste à programmer les fonctions avancés:
* Touches supplémentaires sur le pavé numérique (spécial pour ToucheLibre), c’est‑à‑dire: (),^€=
* Touche compose et l’accès aux niveaux 5, 6, 7, 8 pour windows (OK sous Linux)
* Pilotage des Leds indicatrices
* Bluetooth
* Macro diverses et variées…
LilianBeug
Ma chatte attend avec impatience la souris…
Bien à vous
Lilian
Mimoza
Travail super impressionnant !
Bravo !
Caracole
Passionnant votre projet ! Bravo !
Ça me botterait vraiment de le fabriquer si les plans droit et gauche étaient inclinés. Je n’aime pas trop la disposition classique parallèle à la table, je trouve que les poignets sont plus confortables lorsque la paume de la main est légèrement orientée vers le centre de la table.
LilianBeug
Merci beaucoup.
OK, je partagerais bientôt les sources de ToucheLibre.
Si, je ne l’ai pas fait plus vite. C’est parce que je sais pour l’avoir vécu plusieurs fois que la créativité collective est une chose fort délicate.
Et, j’ai besoin d’exprimer solitairement ce que j’ai en tête sans devoir batailler avec les idées de trop de gens.
C’est un phénomène assez commun, plus une œuvre est intime moins elle est partageable.
Je souhaitais poser solidement les bases du projet avant de le partager.
Je mettrai les sources sur GitLab prochainement.
Caracole, ça serait avec plaisir si tu souhaites fabriquer un clavier ToucheLibre. En effet, c’est une problématique importe.
Si le logiciel libre est super simple à copier en masse. Le matériel libre, lui, souffre du mur de la fabrication. Parce que ça demande de l’argent pour les matières premières et les outillages. Et aussi pas mal de travail.
Si tu souhaites rejoindre le projet, tu peux me contacter.
Oui, j’avais penser à incliner les côtés gauche et droite. J’ai même voulu faire quelque chose de plus 3D à la façon du Kinesis. Mais c’est trop compliquer. J’y ai donc renoncer. De plus, en faisant des maquettes, je me suis rendu compte qu’en réalité, la main s’incline naturellement d’environ 10° du fait que la chaire au niveau du pouce est plus épaisse que de l’autre côté. Avec ces tests, je n’ai pas réellement ressenti le besoin d’incliner d’avantage.
À l’avenir, je n’exclue pas la possibilité de faire quelques choses plus en relief. Mais pour cela, il faudra mettre en œuvre du fraisage numérique sur des planches de bois but. C’est nettement plus compliqué. Sans parler des conséquences côté circuit imprimé… De plus, le risque avec les planches de bois brut, c’est la déformation. Avec le contre‑plaqué, on est sûr de la stabilité. De plus, avec une forme plane, c’est plus facile de mettre en œuvre la technique du placage de feuille de bois. L’avantage, avec les feuilles de bois, c’est qu’on peut accéder à de très jolie essence à moindre frais.
Tu vois la question de l’inclinaison pour l’un, ou la question de je ne sais quoi pour l’autre, peut conduire à des débats sans fin qui peuvent parfois ruiner un projet. Je n’ai plus la patience pour cela. Et notre temps à tous est limité. L’important est souvent d’avancer, même si c’est pas parfait. Pour autant que la perfection existe.
4sStylZ
Incroyable rendu.
Tu dois absolument le poster sur geekhack.org, le présenter, et je suis sur que tu aurait tes chances au concours « Keyboard of the month » ou « Keyboard of the year ».
Si tu veut je peux te faire le post en Anglais.
LilianBeug
Comment ça marche leur concours ?
Il me semble comprendre que chaque mois quelqu’un gagne. Et qu’à la fin de l’année, les 12 gagnants concourent pour être le gagnant de l’année.
Mais est‑ce qu’il faut s’inscrire volontairement au concours, ou Est‑ce que c’est quelqu’un qui décide de vous nominer ?
L’année dernière, j’avais fait un post (juste pour introduire mon projet), mais, j’avais pas eu masse de retour.…
post_1_geekhack
Zelena
C'est une œuvre d'art… félicitations!
LilianBeug
4sStylZ, j’ai vu que tu m’as nominé pour le
«keyboard of the month» de février.
Merci beaucoup. 🙂 😉 🙂
À tous,
Bon ben. Si vous souhaitez soutenir mon projet vous savez ce qu’il vous reste à faire… 😛
Si j’ai bien compris le vote se tiendra entre le 24 février et le 8 mars.
Hoouuu, il y a de la compèt’ ce mois‑ci, ça va être serrer…
LilianBeug
En fait, je me suis trompé. :/ :rolleyes:
Entre le 24 février et le 8 mars, c’est les nominations.
Et entre le 9 mars et le 15 mars, c’est le vote
…
4sStylZ
Ouais ils sont grave techniques les autres.
LilianBeug
Je présente le clavier et le projet ce lundi 9 mars au FabLab Artilect à Toulouse.
Voir ce lien
Présentation au SuperLundi.
Au plaisir