Bonjour les #Ergonautes ! On a reçu notre batch proto du #Quacken. Il est très beau, mais on a pris la décision d’en refaire un autre avant de lancer la production du #XMasBatch, ce qui risque de causer ~15 jours de retard sur nos livraisons.

Les bonnes nouvelles d’abord : on a validé quelques corrections mineures depuis la version présentée au Capitole du Libre.

  • La nouvelle position des ports USB et TRRS fonctionne beaucoup mieux ! On va ajuster encore un peu celle du TRRS pour faciliter le passage au split.
  • Le nouveau contour du PCB est très réussi ! Là encore, on va procéder à des corrections mineures (réduction de la hauteur, déplacement de la mémoire flash…).
  • On a profité de ce proto pour tester une légère augmentation du stagger sur l’annulaire et c’est top : on tape encore plus à plat, la différence est infime mais les petites mains vont apprécier.

La déception, par contre, concerne la liaison TRRS quand le clavier est splitté. On est les premiers à proposer un monobloc splittable (semble-t-il ?), et on a fait des erreurs de conception. Plus de détails (trop de détails) dans le toot suivant (n’hésitez pas à l’ignorer).

Le #QuackenFlex est conçu autour d’un bus I²C, pour relier les deux moitiés du clavier et permettre la connexion de dispositifs de pointage (touchpads, trackpoints…). C’est un standard électronique robuste, mais il a un défaut : il est conçu pour fonctionner sur des pistes de PCB, pas sur des fils. C’est malgré tout courant de le faire, il y a même des standards de connecteurs filaires pour ça (Stemma, Qwiic…), mais avec un connecteur TRRS audio comme c’est l’usage pour les claviers splittés, la qualité de signal est insuffisante. C’est possible (le Ferris le fait), mais pas suffisamment fiable pour une production en série, à nos yeux. (Plus de détails dans les ALT des copies d’écran.)

Une solution simple consisterait à utiliser un autre connecteur, plus adapté aux 400 kbds de bande passante de l’I²C. On en a envisagé plusieurs, mais aucun ne nous a convaincus.

  • Le RJ11 ou RJ45 ferait le job (c’est ce que fait Keyboardio), mais c’est trop encombrant pour nos cartes.
  • L’USB serait suffisamment compact, mais créerait de la confusion et ajouterait un effet ressort incompatible avec la légèreté du Quacken.
  • Les connecteurs plats type JST-PH (= Stemma) ou WR-MCP3 fonctionnent bien, mais ne permettent que 30 à 50 cycles de connexion/déconnexion, à comparer aux 1 000 à 10 000 des TRRS, USB et RJ11/45.

On a donc décidé de retourner à la planche à dessin (#KiCad FTW) pour améliorer la transmission I²C, en jouant sur deux tableaux :

  • la réduction du bruit (parasites et diaphonie), grâce à des améliorations de routage qui nous ont été recommandées par un pro de l’électronique analogique ;
  • le redressement des signaux, grâce à un composant actif (probablement le LTC4311) qui fiabilisera radicalement la connexion, même en passant par un câble TRRS très long.

On aurait pu masquer le problème en diminuant la vitesse de transmission. On ne l’a pas fait, un peu pour ne pas compliquer la config ZMK, mais surtout parce qu’on préfère résoudre complètement le problème.

Hello @ergonautes, vous utilisez quoi comme oscilloscope ?
@0xgael On ne jure que par #PicoScope ! Ça n’est pas de l’open-hardware mais leur logiciel fonctionne nativement sous Linux, le rapport qualité/prix est imbattable, et il y a une API C très bien foutue pour l’utiliser depuis une app maison. En plus, leur équipe tech est au top, disponible et compétente. On recommande vivement !
https://www.picotech.com/oscilloscope/2000/picoscope-2000-overview
PicoScope 2000 Series USB oscilloscopes up to 100 MHz and 1 GS/s

A range of portable USB oscilloscopes that don't compromise on features. Up to 100 MHz bandwidth and 1 GS/s with 2 or 4 channels, a signal generator and optional MSO.