Le Teensy 4.1 comme périphérique d'entrée DMA
Le montage Teensy 4.1 complet : souder les pastilles hôte, flasher avec le Teensy Loader, l'ordre de câblage, la commande en série ou en réseau, les fréquences de rapport, le travail sur le descripteur et les pannes courantes.
Réponse courte
Soudez un connecteur 5 broches sur les pastilles hôte du Teensy 4.1 à 600 MHz, puis flashez un firmware de passthrough avec le Teensy Loader. Branchez la souris sur le port hôte et le port device sur le PC de jeu, puis pilotez la carte en série.
Sur cette page12
- Ce qu'est le Teensy 4.1
- Pourquoi choisir un Teensy plutôt qu'un appareil tout prêt ?
- Comment souder le port USB hôte
- Quels logiciels installer et où se trouvent les fichiers
- Comment flasher le firmware et tester le port hôte
- Dans quel ordre brancher les câbles
- Choisir la liaison de commande et configurer le cheat
- Une fréquence de rapport plus élevée aide-t-elle ?
- Comment changer le descripteur USB
- Pannes courantes du Teensy et leurs correctifs
- Questions fréquentes sur le Teensy
- Sources
Ce qu'est le Teensy 4.1
Le Teensy 4.1 est une carte microcontrôleur généraliste de PJRC qui n'a jamais été conçue pour ce travail. C'est pour cela qu'elle est bon marché, et c'est aussi pour cela qu'elle devient le plus capable de ces périphériques d'entrée une fois le travail fait.
- Microcontrôleur
- NXP i.MX RT1062, ARM Cortex-M7 avec unité de calcul flottant matérielle
- Horloge
- 600 MHz d'origine, sélectionnable dans l'IDE. Ne l'overclockez pas pour cet usage
- Flash
- Environ 8 Mo (7936 Ko), bien plus que n'en demande un firmware de passthrough
- RAM
- 1024 Ko au total, dont 512 Ko étroitement couplés au cœur
- Port device
- La prise micro-USB. USB 2.0 haut débit, 480 Mbit/s. C'est le bout qui fait face au PC de jeu
- Port hôte
- Cinq pastilles traversantes sur la carte, non équipées d'usine. Fonctionne à 480, 12 ou 1,5 Mbit/s selon ce que vous branchez. C'est le bout où va votre souris
- 5 V du port hôte
- Commuté par la puce à travers un interrupteur à limitation de courant. Les pastilles ne délivrent aucune tension tant que le firmware n'a pas appelé la fonction begin de la bibliothèque hôte
- Liaisons série matérielles
- Huit UART, si vous voulez une liaison série qui ne passe pas par le port device USB
- Ethernet
- Capable de 10/100, mais le magjack est un kit séparé à souder. Pas nécessaire pour un montage en série
- Programmation
- Le Teensy Loader, piloté automatiquement par l'IDE Arduino une fois Teensyduino installé. Un bouton Program physique force le bootloader
Pourquoi choisir un Teensy plutôt qu'un appareil tout prêt ?
Il y a trois raisons, classées selon la fréquence à laquelle chacune est la vraie raison. D'abord, vous compilez le firmware vous-même : vous décidez donc du descripteur USB que voit le PC de jeu et de la cadence d'envoi des rapports, ce qu'aucun appareil tout prêt ne vous laisse faire. Ensuite, les contrôleurs hôte et device sont totalement indépendants : le passthrough ne se dispute donc pas la bande passante avec l'injection. Enfin, c'est bon marché. Le prix à payer, c'est que vous devenez le fabricant : quand la carte se comporte mal, il n'y a aucun canal de support, seulement votre propre câblage et votre propre code.
Attention
Comment souder le port USB hôte
C'est la seule soudure obligatoire, et elle décide si le reste du montage fonctionne. Les pastilles hôte sont cinq trous métallisés, non équipés d'usine, qui portent le 5 V hôte, la paire D- et D+ et la masse. Suivez la sérigraphie et la fiche de brochage officielle pour l'ordre, sans deviner ni faire confiance à un schéma trouvé sur un forum.
- Repérez les cinq pastilles hôte sur votre carte et confirmez leur ordre sur la fiche de brochage PJRC du Teensy 4.1
- Insérez un connecteur mâle 5 broches dans les trous, ou préparez le câble USB hôte assorti que PJRC vend pour les Teensy 3.6 et 4.1
- Soudez avec une panne fine et un alliage à basse température : ce sont de petites pastilles sur une carte dense, et une panne large les pontera
- Inspectez chaque soudure sous une bonne lumière. Une soudure terne, granuleuse ou en boule est une soudure froide, et c'est la première cause d'un port hôte qui n'énumère rien
- Avant de mettre quoi que ce soit sous tension, testez la continuité au multimètre pour vérifier qu'il n'y a pas de pont entre D- et D+
- Si vous utilisez des fils nus plutôt que le câble, gardez la paire D- et D+ courte et de longueurs égales : c'est une paire différentielle qui transporte jusqu'à 480 Mbit/s
- Ne reliez pas le 5 V hôte à une alimentation externe sans raison sérieuse : la carte commute elle-même cette ligne et la limitation de courant de l'interrupteur n'est pas là par hasard
Quels logiciels installer et où se trouvent les fichiers
Il vous faut l'IDE Arduino plus Teensyduino, le complément de PJRC. Teensyduino embarque la bibliothèque hôte et le Teensy Loader : rien d'autre n'est à installer.
# After installing Teensyduino, set these three in the Arduino IDE:
Tools > Board > Teensy 4.1
Tools > USB Type > Serial + Keyboard + Mouse + Joystick
Tools > CPU Speed > 600 MHz
# The host-side library ships with Teensyduino. Prove the hardware with its own example:
File > Examples > USBHost_t36 > Mouse
# USB identity is defined in the core, not in your sketch:
<arduino>/hardware/teensy/avr/cores/teensy4/usb_desc.h
<arduino>/hardware/teensy/avr/cores/teensy4/usb_names.hAttention
Comment flasher le firmware et tester le port hôte
Flashez d'abord l'exemple souris d'origine d'USBHost_t36. Il affiche dans le moniteur série chaque mouvement et chaque clic de la souris branchée : votre soudure est donc validée en une trentaine de secondes. Avant de tester, gardez en tête que la ligne 5 V des pastilles hôte est commutée par la puce et non câblée en dur. Si la carte porte un firmware qui ne démarre jamais la bibliothèque hôte, une souris branchée sur le port hôte ne s'allumera même pas. Un port hôte qui a l'air mort sur une telle carte ne vous apprend rien. Flashez d'abord, testez ensuite, et seulement après flashez le firmware qu'attend votre cheat.
- Reliez le port device micro-USB du Teensy au PC sur lequel vous compilez
- Ouvrez l'exemple Mouse d'USBHost_t36, réglez Board et USB Type comme indiqué dans les paramètres de la chaîne d'outils, et cliquez sur Upload
- Teensyduino passe l'image compilée au Teensy Loader, qui redémarre la carte et écrit l'image. Sur une carte d'origine, cela se fait tout seul
- Si l'envoi se bloque, appuyez une fois sur le bouton Program du Teensy. Cela force le bootloader, et le Loader trouvera alors la carte
- Branchez une souris filaire sur le port hôte fraîchement soudé et ouvrez le moniteur série
- Bougez la souris. Si les mouvements et les clics apparaissent, le port hôte fonctionne et la partie matérielle du montage est terminée
- Compilez et flashez maintenant le firmware de passthrough que documente votre cheat, en gardant les mêmes réglages Board et USB Type
- Coupez et rétablissez l'alimentation de la carte après le flash final plutôt que de vous fier à une réinitialisation logicielle
Dans quel ordre brancher les câbles
Si vous vous trompez d'ordre, vous pouvez facilement passer une heure à déboguer un câble. Le port device fait face au PC de jeu parce que c'est ce bout-là qui prétend être une souris, tandis que le port hôte fait face à votre main.
- Branchez la souris physique, ou le dongle de votre souris sans fil, sur le port USB hôte soudé du Teensy
- Reliez le port device micro-USB du Teensy directement à un port USB arrière du PC DE JEU, sans hub et sans passer par la façade avant
- Ajoutez la liaison de commande depuis le SECOND PC. Elle ne peut pas partager le port device, parce que l'interface série USB de ce port énumère sur le PC de jeu, là où le câble est branché
- Utilisez plutôt l'un des huit UART matériels pour la liaison de commande. Placez un adaptateur USB-série du côté du second PC pour que les deux machines ne partagent jamais un câble
- Démarrez le PC de jeu et vérifiez que Windows affiche un périphérique souris et que votre main déplace le curseur
- Seulement ensuite, lancez le logiciel sur le second PC et ouvrez la liaison
Conseil
Choisir la liaison de commande et configurer le cheat
Un type USB composite vous donne une interface souris et une interface série sur le même câble. Cette interface série apparaît sur le PC de jeu, là où le port device est branché, et le second PC ne peut donc pas l'ouvrir. Cela veut dire aussi que la machine sur laquelle vous trichez porte un périphérique série issu du même gadget composite que votre souris, les deux interfaces sous un seul descripteur. Prenez donc la liaison de commande sur un UART matériel, et placez un simple adaptateur USB-série du côté du second PC. Le PC de jeu ne voit alors qu'un appareil qui n'est rien d'autre qu'une souris, ce qui vous donne un montage plus propre pour un câble et une pièce de plus. Quelle que soit la liaison, c'est le firmware qui définit le protocole et le cheat doit s'y conformer. Dans le menu d'entrée du cheat, vous réglez trois choses : le type d'appareil, le port COM et le débit. Le type d'appareil est souvent listé comme Teensy ou comme périphérique série générique. Le port COM est celui qu'a attribué le second PC, et le débit est celui avec lequel le firmware a été compilé. Les trois doivent concorder. Un débit qui ne correspond pas ne produit aucune erreur claire, parce que la connexion s'ouvre puis ne fait rien, ce qui ressemble exactement à un appareil mort. Vérifiez donc le numéro de port dans le gestionnaire de périphériques et forcez-le sous 10 si le cheat ne lit qu'un seul chiffre, et notez le débit au moment du flash au lieu de le deviner plus tard.
Une fréquence de rapport plus élevée aide-t-elle ?
Le port device est en USB haut débit : le descripteur peut donc demander des intervalles plus courts que le plancher de 1 ms qui limite une souris full speed. En pratique, cela veut dire des rapports sous la milliseconde, et c'est la raison pour laquelle cette carte plaît, mais c'est aussi là que l'enthousiasme dépasse l'utilité. Une fréquence de rapport très supérieure à ce que consomme la boucle d'entrée du jeu ne vous apporte aucun gain mesurable. Un flux de rapports parfaitement régulier à une cadence inhabituelle est lui aussi un motif, et les motifs sont précisément ce que cherche l'analyse comportementale. Réglez une fréquence qu'une vraie souris de cette catégorie utiliserait de façon plausible. Aucun test honnête ne montre qu'un chiffre plus élevé est plus sûr, et quiconque vous en cite un en millisecondes l'invente.
Conseil
Comment changer le descripteur USB
Comme vous compilez le firmware, vous maîtrisez le vendor ID, le product ID, les chaînes de fabricant et de produit, le numéro de série et le HID report descriptor. Laissé tel quel, un Teensy présente l'identité de PJRC, c'est-à-dire celle d'une carte de développement sur une machine qui n'a aucune raison d'en avoir une. Les chaînes et les identifiants vivent dans les fichiers usb_desc.h et usb_names.h du cœur, pas dans votre sketch. Le cœur 4.x propose une approche plus propre : définir les descripteurs de chaînes dans un petit fichier C séparé, placé dans le dossier de votre sketch. Une fois les vendor et product ID changés, Teensyduino ne peut plus trouver et redémarrer la carte automatiquement : chaque envoi suivant demande donc un appui sur le bouton Program. C'est le comportement attendu, pas une carte brickée. Lisez le guide sur les descripteurs avant de changer quoi que ce soit, parce que copier mal l'identité d'une vraie souris est pire que de tout laisser d'origine.
Pannes courantes du Teensy et leurs correctifs
Travaillez de haut en bas. Les quatre premières lignes couvrent l'essentiel de ce qui casse sur un premier montage, et trois de ces quatre viennent de la soudure.
| Symptôme | Cause probable | Solution |
|---|---|---|
| La souris branchée sur le port hôte ne fait rien, aucune LED ne s'allume dessus | Soit une soudure froide sur les pastilles hôte, soit un firmware qui ne démarre jamais la bibliothèque hôte et laisse donc la ligne 5 V éteinte | Flashez d'abord l'exemple Mouse d'USBHost_t36. Si la souris ne donne toujours aucun signe de vie, refondez les cinq pastilles et vérifiez la continuité |
| Le port hôte énumère par intermittence, ou seuls les appareils lents fonctionnent | La paire D- et D+ est trop longue ou de longueurs inégales, ou il reste des résidus de soudure entre les pastilles | Raccourcissez la paire et égalisez les longueurs, ou passez au vrai câble USB hôte. Nettoyez les pastilles à l'alcool isopropylique et inspectez-les sous une bonne lumière |
| Le PC de jeu n'affiche aucun périphérique souris | USB Type dans l'IDE n'inclut pas Mouse, et le port device ne présente donc jamais d'interface souris HID | Réglez Tools > USB Type sur une option contenant Mouse, recompilez, reflashez, puis coupez et rétablissez l'alimentation de la carte |
| L'envoi échoue ou reste bloqué sur Waiting for Teensy device | Le firmware en cours ne répond pas à la demande de redémarrage, ou vous avez changé les vendor et product ID | Appuyez une fois sur le bouton Program de la carte. Après un changement de VID ou de PID, il faut le faire à chaque envoi |
| Le curseur bouge depuis le cheat mais votre propre souris ne fait rien | Le passthrough ne tourne pas : le côté hôte est mort alors que le côté device fonctionne | Testez le port hôte avec l'exemple Mouse, parce que la cause est presque toujours la soudure |
| Votre souris fonctionne mais le cheat n'arrive pas à ouvrir la liaison | Mauvais port COM, ou un débit qui ne correspond pas au firmware compilé | Trouvez le port dans le gestionnaire de périphériques, réglez-le sous 10, et mettez le débit à la valeur avec laquelle le firmware a été construit |
| Le mouvement est grossier ou en escalier au lieu d'être fluide | Le descripteur de rapport utilise des champs de mouvement sur 8 bits, donc les grands écarts sont tronqués et envoyés en plusieurs étapes | Utilisez un firmware dont le descripteur déclare des axes relatifs sur 16 bits, et laissez le cheat découper les grands mouvements au lieu de confier cela au descripteur |
| La carte chauffe et le périphérique hôte décroche en charge | L'appareil branché tire plus de courant que ne l'autorise la limite de la ligne hôte | Utilisez une souris filaire simple plutôt qu'une souris bardée de RGB ou un hub alimenté, et ne branchez jamais un hub rempli d'appareils sur le port hôte |
Questions fréquentes sur le Teensy
Puis-je utiliser un Teensy 4.0 à la place d'un 4.1 ?
Pas confortablement. Le 4.0 expose les signaux hôte sur deux pastilles de surface plutôt que sur cinq trous métallisés avec gestion de l'alimentation : il faut donc câbler D- et D+ à la main et fournir le 5 V vous-même. C'est faisable, mais tous les guides et tous les firmwares supposent le 4.1.
Ai-je besoin du câble USB hôte officiel PJRC ?
Non, mais c'est l'option correcte la plus simple, parce qu'il s'enfiche sur le connecteur 5 broches et respecte la paire différentielle sans effort supplémentaire. Un câblage à la main fonctionne aussi si la paire est courte et de longueurs égales.
Un Teensy est-il moins détectable qu'un KMBox ?
Pas automatiquement. Ce que le Teensy vous donne, c'est le contrôle : vous décidez du descripteur, des chaînes de caractères et de la fréquence de rapport, et vous pouvez donc présenter une identité plausible plutôt qu'une identité d'origine. Laissé sur ses réglages par défaut, il présente l'identité d'une carte de développement, ce qui est pire qu'un appareil conçu pour ce travail : ce contrôle n'est donc un avantage que si vous vous en servez.
Le Teensy peut-il faire tourner le cheat lui-même ?
Non, parce qu'il n'a aucun moyen de lire la mémoire du PC de jeu. Il déplace le curseur quand on le lui demande, tandis que la carte DMA et le second PC décident où.
Le dongle d'une souris sans fil fonctionne-t-il sur le port hôte ?
En général oui, parce que l'hôte traite le dongle comme un périphérique HID USB. Certains dongles présentent des interfaces supplémentaires ou un protocole de configuration propriétaire que le firmware de passthrough ignore : les remappages de boutons embarqués et certaines fonctions logicielles peuvent alors cesser de marcher.
Dois-je souder le kit magjack Ethernet ?
Seulement si vous voulez une liaison de commande en IP plutôt qu'en série. Quand le second PC est posé à côté du PC de jeu, le série est plus simple et vous épargne une soudure.
Que se passe-t-il si je flashe le mauvais firmware ?
Rien de définitif. Le bootloader vit sur une puce séparée, et le bouton Program ramène toujours la carte dans un état où le Teensy Loader peut écrire une nouvelle image. Cela rend un Teensy très difficile à bricker par un flashage.
Sources
Rien dans notre liste de sources vérifiées ne couvre le Teensy lui-même : les caractéristiques de la carte, la soudure, le flashage et le tableau des pannes viennent de nos essais sur table.
- 01Microsoft Learn, USB device descriptors
les champs vendor id, product id, chaînes de caractères et numéro de série que vous définissez quand vous compilez votre propre descripteur
learn.microsoft.com
À lire ensuite
- KMBox Net, KMBox B+, MAKCU, Teensy ou Arduino : quel périphérique d'entrée acheter
- Descripteurs USB, VID/PID et ce que veut dire cloner un descripteur
- Toute la chaîne du signal, de votre main jusqu'au jeu
- Le curseur ne bouge pas : comment réparer la couche d'entrée
- Installer le MAKCU et le MAKCM, du début à la fin
Toujours bloqué ? Ouvrir un ticket sur Discord
Tous les guides