L'adaptateur USB à faire soi-même
Cette page explique comment fabriquer un adaptateur DIY USB.
Un tutoriel plus simple est aussi disponible : Adaptateur USB à faire soi même, pour les nuls.
Attention: vous êtes seul responsable du matériel que vous achetez, et de ce que vous en faites.
Contents
Matériel requis
Adaptateur USB - série TTL
Assurez-vous qu'il peut fonctionner à 500kbps et qu'il tolère 5V.
puce | CP2102 | FT232R | PL2303HX | CH340 | FT230X |
tolère 5V | oui | (1) | (1) | (1) | oui |
500 kbps | oui | oui | (2) | non | oui |
compatible | oui | (1) | (1)(2) | non | oui |
(1) dépend de la carte
(2) seulement sous GNU/Linux
Exemples:
- MicroFTX (10$ fdpout)
- convertisseurs CP2102 sur ebay (quelques $ fdpin)
- FT232R convertisseurs FT232R sur ebay (environ 15$ fdpin)
- convertisseur CP2102 chez sparkfun (22$ fdpout)
- convertisseur FT232R chez sparkfun (15$ fdpout)
- Certains matériels comme l'arduino embarquent un convertisseur USB - série (retirer la puce AVR pour l'utiliser)
- Une deuxième carte de développement USB peut être programmée comme un convertisseur USB - série.
Carte de développement USB
Une carte de développement AVR USB fonctionnant à 5V avec une puce parmi les suivantes : at90usb82, at90usb162, at90usb646, at90usb647, at90usb1286, at90usb1287, atmega16u2, atmega32u2, atmega16u4, atmega32u4.
Exemples :
- Teensy 2.0 (atmega32u4, 16$ fdpout) (pour éviter les soudures, prendre un Teensy avec "header pins") (les cartes Teensy 3.x et LC ne sont pas compatibles car elles ont des puces différentes)
- Cartes compatibles Arduino avec puce atmega32u4
- Arduino Leonardo - distributeurs - (clones chinois à 11$ sur ebay)
- Cartes atmega32u4 sur ebay (environ 4$). Soudure requise.
- Cartes utilisées pour le psgroove (vérifier la puce).
Assemblage recommandé
- convertisseur CP2102 sur ebay (faible coût, mais délai de livraison parfois long)
- carte Teensy 2.0 (prix correct, bonne qualité, et livraison rapide).
Câblage
Il faut simplement connecter les pins suivants :
USB dev board | USB to UART board |
GND | GND |
RX | TX / TXO / TXD |
TX | RX / RXI / RXD |
Attention : certains adaptateurs sont mal étiquetés et ont les pins RX et TX inversés.
Avec un Teensy 2.0 ou un Arduino Leonardo :
Teensy 2.0 | USB to UART board | |
GND | GND | GND |
0 (RX1) | D2 | TX / TXO / TXD |
1 (TX1) | D3 | RX / RXI / RXD |
Si vous utilisez le convertisseur USB série d'un arduino, Rx et Tx sont inversés, cad Rx = TX▶ et Tx = RX◀
L'exemple ci-dessous montre comment connecter un convertisseur (mal étiqueté) CP2102 (à gauche) à un Teensy 2.0 (à droite) :
Il est possible de souder des fils ou bien d'utiliser des "jumper wires" (fils de connexion qui sont généralement fournis avec les convertisseurs USB - série) dans le cas où la carte AVR USB a des connecteurs ("header pins").
Exemples:
- Bumble-b et FT232RL connectés sur une breadboard :
- Teensy++ et CP2102 connectés sur une breadboard :
- Teensy 2.0 et CP2102 soudés :
Chargement du firmware
- EMUJOYSTICKPS3 : émulation d'un joystick HID, avec axes sur 16 bits, pour PS3
- EMUPS3 : émulation d'une Dualshock 3, pour PS3
- EMU360 : émulation d'une manette de Xbox 360, pour Xbox 360
- EMUPS4 : émulation d'une manette Hori Pad FPS Plus, pour PS4 (avec support du touchpad)
- EMUXONE : émulation d'une manette de Xbox One, pour Xbox One
- EMUG29PS4 : émulation d'un volant de jeu Logitech G29, pour PS4, avec support du retour de force
- EMUG27PS3 : émulation d'un volant de jeu Logitech G27, pour PS3, avec support du retour de force
- EMUGTFPS2: émulation d'un volant Logitech GT Force emulation, pour PS2, avec support du retour de force
- EMUDFPS2: émulation d'un volant Logitech Driving Force emulation, pour PS2, avec support du retour de force
- EMUDFPPS2: émulation d'un volant Logitech Driving Force Pro emulation, pour PS2, avec support du retour de force
- EMUG27PC : émulation d'un volant de jeu Logitech G27, pour PC, avec support du retour de force
Cartes Teensy
Les cartes Teensy peuvent être reprogrammées facilement en utilisant le Teensy Loader.
C'est probablement l'outil le plus simple à utiliser, mais il n'est compatible qu'avec les cartes Teensy officielles.
Cartes atmega32u4 compatibles Arduino
Avec l'outil Arduino Builder
- Télécharger les drivers Arduino Leonardo et sauvez les dans le même répertoire:
- Cliquer droit sur le fichier arduino.inf et cliquer sur Installer.
- S'assurer que le convertisseur USB série (par exemple CP2102) est connecté et alimenté, et que le câblage avec la carte atmega32u4 est correct.
- S'assurer que la carte atmega32u4 est connectée et alimentée.
- Télécharger l'outil Arduino Builder et extraire l'archive (en utilisant 7zip).
- Exécuter ArduinoBuilder.exe.
- Cliquer sur "Load Sketch / HEX", et sélectionner le firmware atmega32u4.hex à charger.
- Cliquer sur "Board Type" et sélectionner "Arduino Leonardo".
- Cliquer sur le port COM qui correspond au port COM "Silicon Labs CP210x ... (COMX)" dans le gestionnaire de périphériques (ou autre en fonction de votre convertisseur USB série). Ceci est une astuce pour que l'outil Arduino Builder recherche un nouveau port COM.
- Le message suivant devrait apparaître : "Forcing reset using 1200bps open/close on COMX...".
- Débrancher et rebrancher rapidement la carte atmega32u4, ou connecter RST à GND deux fois.
- La carte atmega32u4 devrait exécuter le bootloader. L'outil Arduino builder devrait trouver un port COM Arduino Leonardo et charger le firmware.
En cas de succès un message "Uploading completed!" est affiché.
Avec Avrdude
- Télécharger les drivers Arduino Leonardo et sauvez les dans le même répertoire:
- Cliquer droit sur le fichier arduino.inf et cliquer sur Installer.
- S'assurer que le convertisseur USB série (par exemple CP2102) est connecté et alimenté, et que le câblage avec la carte atmega32u4 est correct.
- S'assurer que la carte atmega32u4 est connectée et alimentée.
- Télécharger l'outil Arduino Builder et extraire l'archive (en utilisant 7zip).
- Appuyer sur maj et cliquer droit dans le répertoire bin, et cliquer sur "Ouvrir une fenêtre de commandes ici".
- Taper la commande suivante mais ne pas appuyer sur entrée:
avrdude -p atmega32u4 -c avr109 -P COM7 -D -U flash:w:<path to atmega32u4.hex>:i
- Remplacer "<path to atmega32u4.hex>" dans la ligne de commande par l'emplacement du firmware à charger (par exemple: C:\Users\VotreNom\Downloads\firmwares-5.0\EMUPS4\atmega32u4.hex).
- Déplacer le curseur juste après COM7.
- Ouvrir le gestionnaire de périphériques, et dérouler l'élément COM ports.
- Débrancher et rebrancher rapidement la carte atmega32u4, ou connecter RST à GND deux fois.
- La carte atmega32u4 devrait exécuter le bootloader. Dès que le port COM Arduino Leonardo apparaît dans le gestionnaire de périphériques, changer le numéro du port COM dans la fenêtre de commandes, et appuyer sur entrée.
- Le bootloader est exécuté brièvement. Plusieurs essais peuvent être nécessaires pour charger correctement le firmware!
Sous GNU/Linux, la commande avrdude est :
avrdude -p atmega32u4 -c avr109 -P /dev/ttyACM0 -D -U flash:w:atmega32u4.hex:i
(ajuster le port et le fichier)
Autres outils
Plusieurs autres outils peuvent être utilisés pour charger le fichier .hex :
- outils Flip d'Atmel (non compatible avec les cartes Teensy officielles et les cartes atmega32u4 compatibles Arduino)
- outil en ligne de commande dfu-programmer (non compatible avec les cartes Teensy officielles et les cartes atmega32u4 compatibles Arduino)
exemple de ligne de commande pour dfu-programmer :
sudo dfu-programmer at90usb162 erase sudo dfu-programmer at90usb162 flash at90usb162.hex sudo dfu-programmer at90usb162 reset
Serial port settings
On Windows the driver for FTDI chips (e.g. FT232R, FT230X, FT231X...) provides a "Latency Timer" setting than should be set to 1ms for optimal performance.
The procedure is detailed on the FTDI website: link.
Tutoriel suivant
Dès lors que votre adaptateur est prêt vous pouvez lire les instructions de la page Démarrage rapide.