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.

@ergonautes Question con, pour l'I2C vous avez twisté les paires ? Cf https://docs.px4.io/v1.14/en/assembly/cable_wiring.html#i2c-cables

Ça permet d'améliorer vachement la connexion, à la Coupe de France de Robotique on arrive à chercher des longueurs jusqu'à ~50cm comme ça, dans du câble pas spécialement blindé.
Cable Wiring Basics | PX4 User Guide (v1.14)

PX4 is the Professional Autopilot. Developed by world-class developers from industry and academia, and supported by an active world wide community, it powers all kinds of vehicles from racing and cargo drones through to ground vehicles and submersibles.

@ergonautes Hmm, question probablement un peu conne, je suppose que vous avez pas spécialement la main sur comment est foutu le câble TRRS x)
@Eldeberen La question n’est pas conne, en tout cas on se l’est posée ! Mais oui, si on garde le connecteur TRRS c’est pour rester compatible avec les câbles du commerce.