Accueil > Electronique > Récepteur homemade pour manettes sans fils xbox 360

Récepteur homemade pour manettes sans fils xbox 360

12/05/2013 24876 Vues Commenter Allez aux commentaires

Si Microsoft a eu la bonté de permettre aux possesseurs de xbox360 d'utiliser leurs manettes filaires sur leur PC, en fournissant les drivers adéquats, il n'en est pas de même pour les manettes sans fils. En effet, celles-ci utilisent un protocole propriétaire, et nécessitent des récepteurs adaptés. Si il est possible d'en obtenir, moyennant quelques dizaines d'euros, dans des pays où la qualité des produits fabriqués (hem) n'est plus à démontrer, cette option ne sera pas discutée ici, puisque je vous propose de détailler la fabrication d'un récepteur USB, à partir d'un module RF récupéré sur une des nombreuses xbox 360 HS.

Un des modules RF dont les xbox360 sont équipées.

La pièce qui nous intéresse, appelée Ring Of Led, ou Module RF (RF signifiant Radio Fréquence, les communications avec les manettes s'effectuant par ondes radio), comporte le bouton et le voyant marche/arrêt, les 4 voyants correspondants aux joueurs connectés, ainsi que la fonction qui nous intéresse, l'émetteur/récepteur RF permettant la communication avec les manettes. Oui, j'ai bien dit émetteur/récepteur, car la communication est bidirectionnelle : les manettes émettent l'état des boutons, mais reçoivent certaines commandes, telles que l'activation des vibreurs, ou le passage en mode stand-by. Cette pièce est située en façade de la console, à l'extérieur de la cage de Faraday formé par le châssis métallique de la console, qui risquerait fort d’empêcher toute communication RF.

 

Connexion du module à l'ordinateur

Le module RF communique habituellement avec la carte mère de la console par le biais du connecteur 9 broches suivants :

Le connecteur du module RF, coté carte mère de la console.

Tous les connecteurs de la xbox360 et leur pinout ont été répertoriés par Speedy22 dans le document suivant : Xbox360HC14.pdf

En étudiant le pinout de ce connecteur, il s'avère que les broches 1 à 4 correspondent en tout point à une liaison USB, à un détail près : si l'USB fournit une alimentation en 5v, le module requiert une alimentation avec une tension proche de 3.3v. La solution la plus simple pour générer cette tension, à partir des 5v disponibles sur l'USB, est d'insérer 2 diodes entre la tension fournie par l'USB, et la broche d'alimentation de notre module. Chaque diode ajoutant une chute de tension d'environ 0.8v ( ce sont des 1N4007 ), on obtient une tension de 3.4v, dont notre module RF s’accommode parfaitement. En résumé, il suffit du montage suivant pour connecter notre module à un ordinateur :

Ajout d'une prise USB sur le module RF.

Cela peut sembler simpliste, mais ce montage fonctionne parfaitement. J'ai utilisé des diodes 1N4007 (très largement surdimensionnées pour cette utilisation, mais je n'avais que ça de dispo) . N'importe quelle autre diode capable de supporter 200mA ( c'est le courant max consommé par le module, toutes LEDs allumées ) fera l'affaire, tant que sa chute de tension (Vf dans les datasheets ) est proche de 0.7/0.8v.

Le côté matériel est maintenant fini, passons au software :

 

Installation des drivers pour Windows 7

Les drivers sont disponibles sur le site de microsoft (sans blague. Je suppose qu'ils doivent également produire un récepteur USB, à partir du même hardware) :

https://www.microsoft.com/accessories/en-us/products/gaming/xbox-360-wireless-controller-for-windows/jr9-00011

Une fois l’exécutable téléchargé et installé, lorsqu'on connecte notre module, windows ne trouve pas automatiquement les drivers du récepteur. Il faut les lui spécifier manuellement à partir du gestionnaire de périphériques ( le récepteur doit y apparaître sous le nom "périphérique inconnu"). Un clic droit dessus, mettre à jour le pilote, rechercher un pilote sur mon ordinateur, choisir parmi une liste...., Afficher tous les périphériques, Disque fourni. On lui indique maintenant le fichier suivant :

C:\Program Files\Microsoft Xbox 360 Accessories\Xusb21.inf

Une liste des pilotes contenus dans le fichier devrait maintenant d'afficher. On sélectionne Xbox 360 Wireless Receiver for Windows avant de cliquer sur "suivant". Une fenêtre nous signale alors que L'installation de ce pilote n'est pas recommandée car windows n'a pas pu vérifier la compatibilité .....". Cliquez sur oui, on ne va quand même pas laisser windows faire la loi, et le tour est joué 😉 !

 

Edit 06/2016 : Installation des drivers pour Windows 10

Sous Windows 10, la procédure d'installation diffère : il faut utiliser les drivers déjà fournis avec l'OS :

Dans le gestionnaire de périphérique, localiser le "périphérique  inconnu" qui correspond au récepteur.

Faire un clic droit dessus, mettre à jour le pilote, rechercher un pilote sur mon ordinateur, choisir parmi une liste..., sélectionner comme type de périphérique : Périphériques Xbox 360, puis, Récepteur Xbox 360 sans fil pour Windows. Valider le choix, et c'est bon !

Il est facile de vérifier que le pilote fonctionne correctement, il suffit d'allumer une manette, et si elle est associée avec le récepteur ( et que le pilote fonctionne ), le numéro de la manette (un des 4 segments autour du bouton) devrait s'allumer.

Drivers pour linux

Hé oui, sur ce coup, le pingouin n'est pas à la traine, puisque le projet xboxdrv permet aussi bien d'utiliser les manettes filaires, que sans fils, toute en offrant beaucoup plus de flexibilité que son homologue windozien, avec notamment la possibilité de piloter l'état des leds de chaque manette.

Associé au mode BigPicture de la plateforme Steam, ce projet permet de transformer une machine linux en console de jeux, loin d'avoir quoi que ce soit à envier aux consoles "officielles".

L'ensemble des informations nécessaires à l'installation et à l'utilisation du paquet étant disponible sur le site du projet, je ne m’appesantirai par sur le sujet.

 

Associations de nouvelles manettes

Le principal problème restant est l'association de nouvelles manettes avec le module. En effet, sur la xbox 360, le bouton d'association est placé sur la carte mère de la console, et non sur le module RF. Une fois le module RF séparé de la console, l'association des manettes devient un véritable casse-tête ( non je n’exagère pas, lisez la suite 😉 ). La première solution, universelle, consisterait à replacer le module dans une console fonctionnelle, à faire l'association de la manette et du module grâce à la console, et de rebrancher ensuite le module sur son PC. ( ne dites pas que je ne vous avais pas prévenu, hein ^^ ). Avec le drivers microsoft ( je n'ai pas testé sous linux, mais on peut parier que quelque chose a été prévu pour ça), une solution consiste à brancher la manette au PC avec le câble play&charge qui permet de recharger la batterie de la manette. Lorsque le driver du récepteur détecte qu'une manette est branchée à l'ordinateur avec le câble play&charge, il lance automatiquement le mode association, aussi bien sur le module que sur la manette.

 

Améliorations : commander le module RF avec un microcontrôleur

Pour simplifier la procédure d'association de nouvelles manettes, et pour avoir la possibilité d'éteindre les manettes sans devoir en retirer les piles, je me suis penché sur la possibilité d'interfacer le module RF avec un microcontrôleur, autrement que par USB, car ce serait long et peu pratique. En revenant sur le pinout du connecteur du module RF (ci dessous), on peut apercevoir 2 broches qui semblent correspondre à une liaison série. Mieux, après recherche, il apparait que des internautes ont déjà travaillés sur cette liaison, au point d'avoir décodé le protocole utilisé, l'ensemble de leur travail étant disponible dans l'archive suivante : Xbox 360 RF Module 1.1.zip

En possession de ces informations, j'ai alors codé un petit programme, destiné au microcontrôleurs PIC16F628A, assurant les rôles suivants :

  • Animation de démarrage du module, et clignotement de la led centrale, jusqu'au moment où le module est prêt à recevoir des commandes.
  • Gestion d'un bouton poussoir avec anti-rebonds. ( cf cet article)
  • Appui court : activation / désactivation du mode association, et affichage de l'animation correspondante sur les leds.
  • Appui long ( 2s ) : extinction de toutes les manettes connectées ( l'envoi de la commande d'extinction est confirmé par le clignotement rapide des 4 leds )

Le fichier C du programme ainsi que le .hex compilé pour le microcontrôleur PIC16F628A sont disponibles dans l'archive suivante : Xbox360RFModuleInterface.zip.

Ce programme a été écrit pour le compilateur XC8 de Microchip.

Le schéma de câblage typique du PIC serait comme tel (bien entendu, on suppose que le module RF est déjà alimenté en 3.3v, grâce au schéma précédent) :

Schéma câblage bouton module.

Schéma permettant l'utilisation du bouton poussoir du module RF.

Avec ce câblage, c'est le bouton poussoir du module RF qui est utilisé. Si on souhaite avoir un bouton déporté, il suffit de le placer entre la broche 6 du PIC (signal vert sur le schéma) et la masse. L'absence de résistance de tirage sur la broche MCLR est normale, le PIC est configurer pour relier cette broche en interne.

EDIT : Attention si vous utilisez un programmateur "in-circuit" : à cause de la faible tension d'alimentation du PIC (3.3V), il faut le programmer hors circuit, la programmation in-circuit échouant (erreur PK2Error0027: Failed verify sur un pickKit2). Merci à MicroToad pour l'info !

Ma réalisation

Basé sur cette étude, je vous propose quelques photos du récepteur que j'ai réalisé. Il a été intégré dans un boitier de disque dur externe 2.5", et les différents voyants du module RF ont été déportés en façade grâce à de la fibre optique :

Vue interne de dessous

Vue interne de dessus

Résultat final

Le gros fils rouge rigide n'est là que pour empêcher les soudures sous le module RF d'entrer en contact avec l'aluminium du boitier, sans quoi ça marcherait beaucoup moins bien !

Cette réalisation étant mon prototype d'expérimentation, le schéma de câblage n'est pas aussi optimisé que celui décrit au paragraphe précédent.

La vidéo suivante illustre le rendu des voyants en façade lors de l'animation de démarrage :

Conclusion

Mon récepteur fonctionne à merveille sous windows, comme sous linux (je n'ai testé que la partie réception, pas le résultat in-game), et offre une portée impressionnante (une bonne dizaine de mètres dans un bâtiment à structure métallique), ainsi qu'une excellente réactivité, le tout pour un coût dérisoire (surtout si on possède déjà les manettes, voire la console HS). Il est facilement intégrable dans des boitiers de dimensions réduites (disques dur 2.5", hub usb, etc... ) et très simple d'utilisation. Bref que demander de plus ?

Si vous avez des questions, remarques, ou même des photos de votre réalisation ... surtout n'hésitez pas ! 😉

EDIT 12/06/2013 : mise à jour du programme pour fonctionner avec le nouveau compilateur XC8 de microchip ( version gratuite dispo sur leur site ), refonte légère de l'article.


Articles similaires



  1. damda58
    20/05/2013 à 19:41 | #1

    Bonjour,

    Tout d’abord très bonne article bravo!
    Je suis très intéressé par la possibilité de mettre un µc pour géré la synchro plus facilement,
    j’aurai voulu savoir quel référence de µc tu avais mis, j’en ai pas en stock c’est pour savoir lequel acheter qui irai le mieux.

    Merci d’avance

  2. pilatomic
    20/05/2013 à 20:02 | #2

    L’µC que j’ai utilisé est un PIC16F628A, produit par Microchip. C’est un microcontrôleur très répandu, de nombreux projets l’utilisent, par conséquent j’en avais déjà quelques un d’avance.
    Si tu cherche également un programmateur, regarde sur ebay, on en trouve de très bon pour une dizaine d’euros, en provenance de chine (^^) .
    J’ai édité mon article pour faire apparaître cet oubli.

  3. damda58
    21/05/2013 à 18:09 | #3

    Ok Merci bien pour les renseignements !
    j’espere pouvoir y arriver !

  4. pilatomic
    21/05/2013 à 19:08 | #4

    N’hésite pas à demander si tu as besoin de précisions, et tiens moi au courant de l’avancement de ton projet =).

  5. damda58
    26/05/2013 à 23:48 | #5

    J’ai reçut le micro contrôleur par contre je ne vois pas très bien qui brancher où pour utiliser le bouton power comme bouton de sync. Et je vois sur les photos que tu à plusieurs résistance aussi ?? tu n’aurai pas un petit schéma sous la main par hasard ? =)

  6. damda58
    27/05/2013 à 17:21 | #6

    Pour le moment j’ai ça comme schéma est-il juste ?

    http://ns17230.c-dedie.net/test/uploads/xbox.png

  7. pilatomic
    27/05/2013 à 21:58 | #7

    J’ai rajouté le schéma de câblage pour l’utilisation du bouton du module. Sur ton schéma, il manque les résistances de tirage au Vdd, et l’ajout d’un petit condensateur sur l’alimentation du PIC lui ferait le plus grand bien ;). En effet, le PIC est un composants utilisant la technologie CMOS, qui à la particularité de créer des appels de courant ( certes minimes ) lors de l’activation / désactivation de chaque transistor. Il est coutume d’ajouter un petit condensateur pour rendre la tension d’alim moins parasitée, et stocker un peu d’énergie prête à ressortir lors des appels de courant.

  8. damda58
    13/06/2013 à 18:08 | #8

    Merci pour le cablage j’ai enfin reçut le matériel =) mais ducoup je crois qu’il manque des fichier pour recompiler le main.c en haut on peut voir un #include ??

  9. pilatomic
    14/06/2013 à 10:43 | #9

    Le #include était simplement nécessaire pour le compilateur que j’utilisais (hitech). Aujourd’hui je te conseillerais de compiler avec le compilateur XC8 de microchip (dispo gratuitement sur leur site). Il y a 2 ou 3 modif à faire au code.

  10. pilatomic
    15/06/2013 à 23:04 | #10

    Ayant reconstruit un récepteur ce soir, j’ai mis à jour l’article, et le code du programme. Il se compile désormais avec XC8, et permet d’utiliser le bouton du module RF sans modifications.

  11. joebar
    30/06/2013 à 11:04 | #11

    Bonjour, tout d abord bravo pour le travail,
    Je souhaiterai juste savoir est ce que les vibrations fonctionnent?
    Et si possible quel est la commande qui active la vibration?
    Cordialement,

  12. pilatomic
    30/06/2013 à 14:40 | #12

    Oui les vibrations fonctionnent, pour autant qu’elles soient prévues dans le jeu. (J’ai vérifié à l’instant sur Borderlands 2, et ça marche parfaitement)

  13. Onillon
    22/07/2013 à 12:32 | #13

    Pouaaa …
    que j’aime ce genre d’article !

    passionné et ça ce sent !
    je vais test ca la semaine prochaine on vera bien 🙂
    Ps : j’ai même appris un truc avec le coup de bouton anti rebond

    réellement passionnant !

  14. Dagou94
    22/07/2013 à 14:52 | #14

    …. bon le pote n’a plus de quoi injecter le programme dans le micro-controleur 🙁

    je n’en aurais probablement jamais de nouveau besoin X)
    ne ferai tu pas la programmation de puce par courrier contre pourboire 🙂 ?

    sinon n’étant pas une star de l’électronique, je préféré avoir confirmation, cela va t’il (visiblement oui il est listé)?
    http://www.ebay.fr/itm/USB-PIC-Automatic-Programmer-Developper-Microcontroleur-Programmateur-K150-ICSP-/370814449977?pt=FR_YO_MaisonJardin_Bricolage_ElectroniqueComposants&hash=item5656437939

    sur tes photos je vois bien le condo, les 2 diodes pour tombé a 3.3V mais je compte compte 4 résistances ?
    tu ne parle que de 3, la 4eme va elle vers le bouton power ?

    pendant que j’étais en train de lire ton post je réfléchissais a un boitier, l’idée du disque dur externe est excellente !

    Cordialement

  15. pilatomic
    22/07/2013 à 17:52 | #15

    Concernant la 4ème résistance, elle ne sert à rien ^^. A l’origine, elle devait permettre le tirage au Vcc de la patte MCLR du PIC, mais il est possible de configurer le PIC pour s’en passer. Comme le circuit était mon prototype d’expérimentation, je l’avais mise quand même. De même, le câblage du bouton diffère légèrement du schéma final.

    Pour le programmateur, c’est quasiment le même que le mien 😉
    Je peux t’envoyer un PIC programmé, au prix du PIC + les frais de ports + pas grand chose, en revanche je m’absente à partir de demain jusqu’à samedi.

    Heureux que mon travail soit apprécié =)

  16. Dagou94
    22/07/2013 à 21:38 | #16

    aaa ça me rassure de voir que j’ai compris les schémas et les photos 🙂

    et avec plaisir pour l’envoi !
    ps : ce n’ai pas urgent urgent, j’ai une filaire pour l’instant 🙂

    mon adresse mail pour le contact pour la suite
    ##########

  17. 13/02/2014 à 13:36 | #17

    bonjour !

    superbe montage !!
    mais une question me taraude … le vcc que tu utilise pour alimenter le pic est celui du module (3.3V) ou celui de l’usb (5V)?

  18. pilatomic
    13/02/2014 à 16:51 | #18

    Merci.
    Le VCC c’est celui du module, donc 3.3V. De cette façon, la communication entre le PIC et le Module se fait avec des signaux 3.3V, le module ne supporterait probablement pas des signaux 5V. Cette tension d’alimentation ne pose aucun problème au PIC, puisque la documentation garantit son fonctionnement jusqu’a 3V pour une fréquence inférieure à 10Mhz ( ici le PIC fonctionne sur l’oscillateur interne, soit 4Mhz)

  19. 13/02/2014 à 20:32 | #19

    Merci de ta réponse !!!

    Je m’en doutais mais j’avais besoin de confirmation !
    Car j’ai réalisé le montage , et j’ai rencontré de nombreux problème lors de sa programmation / reprogrammation avec un Pickit2 car la tension de 3.3V pose problème … (PK2Error0027: Failed verify …) , le pic a besoin d’une tension supérieure afin d’être programmé. Je continue mes investigations sur cette magnifique carte RF !

  20. pilatomic
    13/02/2014 à 22:26 | #20

    Ah oui, je ne programme pas mes PICs in-circuit, donc je n’avais pas songé à ça.
    Je vais le préciser dans l’article !

  21. ludo
    13/03/2014 à 11:59 | #21

    Bonjour,
    Merci pour ce tuto précis !
    J’aurai une question, n’ayant pas de connaissances particulières…
    si j’achète un joystick xbox360 filaire, et que je veut le convertir en « sans fil », est il possible de relier ce module dont vous parlez, de la l’enficher au bout de câble de mon joystick, et de pouvoir jouer sans être branché sur la console ?
    Bien sur il faudrait alimenter la module avec des piles mais est ce possible ?

    Merci encore 😉

  22. pilatomic
    13/03/2014 à 13:47 | #22

    Bonjour ludo,
    il n’est en fait pas possible de convertir une manette filaire en sans-fil, l’électronique des manettes étant radicalement différente.

    De même, ce module ne peut fonctionner que relié à un PC (où à la xbox), et pas à une manette, notamment car c’est un périphérique USB, pas un appareil hôte.

    Sur la norme USB, l’appareil hôte étant le « maître » de la communication, c’est lui qui décide qui interroge les périphériques, alors que les périphériques doivent se plier à sa volonté.

    Il n’y a que de rares appareils qui savent faire les deux (les smartphones, par exemple), mais l’interface USB de ces appareils a été spécifiquement conçue pour pouvoir fonctionner de cette manière, ce qui n’est pas le cas de la plupart des périphériques USB.

    De ce fait, même avec de très bonne connaissances sur le sujet, adapter une manette filaire en sans-fils couterait bien plus cher que la manette sans-fils neuve.

  23. ludo
    13/03/2014 à 14:16 | #23

    Merci pour cette réponse détaillée!
    En fait le Joystick serait « home-made ».
    Bon ben il ne me reste plus qu’a repiquer le circuit imprimé d’une manette Xbox360 sans fil; de virer le système actuel(filaire); et de souder mes boutons et stick sur le circuit imprimé de la manette sans fil (arf … lol).
    Sinon il doit être possible de faire un « pont » entre les deux système? Est ce qu’a serait possible de détourner le signal a partir des points de soudure du câble USB et de faire partir ça sur le circuit imprimé de la manette sans fil, juste avant que ca rentre dans l’émetteur sans fil ?
    J’ai regardé quelques photos des carte filaire/sans fil des manettes XBOX360 pour comparer et identifier le module émetteur sans fil (que je crois avoir trouvé) mais je ne voit de points pouvant correspondre pour faire transiter le signal d’une carte a l’autre.

    J’espère ne pas avoir été trop brouillons.

    en tout cas merci ^^

  24. pilatomic
    13/03/2014 à 14:58 | #24

    Si c’est un joystick home-made, je comprends mieux pourquoi tu veux partir d’un système existant.
    Le problème c’est qu’il me semble que les circuits intégrés entre les manettes filaire et sans-fils ne sont pas du tout les mêmes : la manette sans-fils n’est pas juste une manette filaire avec un module en plus, son électronique est construite totalement différemment.

    A mon avis, le plus simple est vraiment de ressouder tes boutons sur le circuit d’une manette sans-fils.

  25. ludo
    13/03/2014 à 15:07 | #25

    oki, merci !

    Bon ben va falloir y aller alors 🙂 .

    Merci encore pour les réponses et le partage 😉 !

  26. 04/04/2014 à 17:49 | #26

    Bonjour !
    Il s’agit d’un très bon article qui m’intéresse car je souhaite l’interfacer avec un engin télécommandé via un RaspberryPi.

    Cependant la limite à une dizaine de mètre va être bloquant pour ma part.
    Existe-t-il un moyen de pouvoir augmenter cette distance pour une utilisation d’une centaine de mètre en extérieur ?

  27. pilatomic
    04/04/2014 à 19:21 | #27

    Bonjour,
    il doit être possible d’augmenter significativement la portée en remplaçant les antennes des manettes et du récepteur par des modèles plus puissants. Comme la communication se fait à la même fréquence que le wifi (2.4Ghz), des antennes prévues pour du Wifi peuvent être utilisées.
    Je ne peux en revanche pas chiffrer l’augmentation, mes connaissances en radiofréquences sont plutôt limitées.

  28. 06/04/2014 à 19:24 | #28

    Merci beaucoup pour ta réponse.
    A force de recherche, je viens de tomber sur un hack de la manette de la PS3 qui permet d’envoyer les signaux directement depuis un module XBee:
    Rev. A: http://www.proofofprinciple.nl/index.php/ps3-rc
    Rev. B: http://www.proofofprinciple.nl/index.php/ps3-rc-2

    Je me fais peut-être des films (ou trop ambitieux) mais peut-être qu’il est possible de faire de même sur avec la manette de la XBox.
    Cela me plairait beaucoup d’autant plus que la manette de la XBox est agréable à manier et les gâchettes permettent de bien doser des accélérations notamment.

  29. pilatomic
    07/04/2014 à 18:37 | #29

    Oui augmenter la portée est bien sur possible en changeant toute l’électronique, mais ça demande vraiment beaucoup de boulot, puisqu’il faut tout refaire. Avant de me lancer dans un tel projet, je testerais le remplacement des antennes, qui pourrait donner de très bon résultats.

  30. 07/04/2014 à 21:12 | #30

    Merci de me conseiller.

    En effet, il est peut-être nécessaire de changer tout l’électronique et qu’il n’est pas forcément possible de se linker directement sur le circuit imprimé.
    Je suis un débutant en la matière mais tout ça m’intéresse beaucoup.
    Cependant, je ne sais pas s’il est possible de changer aisément les antennes notamment avec toutes les micro-soudures que ce type de circuit imprimé contient.

    Et manifestement internet est avare de ce type hack sur la manette XBox 360.

  31. Asdrien
    18/05/2015 à 00:06 | #31

    Pour les personnes qui cherchent un moyen d’augmenter la porté de leurs émetteur/récepteur, il existe plusieurs tutos sur la fabrication d’une antenne wifi donc toujours pour les 2.4Ghz du module. Il s’agit des « antennes Ricoré ». Par contre, les dimensions et la qualité de la soudure sont à respecter pour garantir un fonctionnement optimum.

  32. Dave
    05/08/2015 à 01:22 | #32

    les plant sont trop petit help

  33. Pila
    05/08/2015 à 02:01 | #33

    Bonsoir Dave,

    Merci de formuler ton problème clairement si tu souhaites que je t’apporte mon aide.

    Cordialement

  34. Paul-Antoine
    05/08/2015 à 21:39 | #34

    Bonjour j’ai récupéré une vielle xboite et j’aimerais effectuer ton tuto seul hic je n’ai pas de diodes :/ par contre j’ai des D.E.L. mais bien évidemment pas de références si ce n’est la couleur (rouge bleu vert ou blanc) ça peut passer en dépannage ou pas? Sinon je pensais utiliser mon arduino pour fournir le 3.3v y a t’il un risque?

  35. Pila
    05/08/2015 à 22:24 | #35

    Bonsoir Paul-Autoine,

    Utiliser des DELs à la place risque de ne pas fonctionner, elles présentent une chute de tension bien différente de celles des diodes habituelles.

    Tu peux utiliser le 3.3V de ton Arduino tant que tu n’allume pas les LEDs du récepteurs, les arduinos ne peuvent fournir qu’un courant de 50mA en 3.3V.

    L’idéal pour un montage à long terme serait quand même que tu trouves des diodes, il y a probablement un magasin de compoasnts électronique à proximité de chez toi qui peut te fournir ça, sinon eBay fait aussi l’affaire, on y trouve des composants à très bas prix 😉

  36. Paul-Antoine
    07/08/2015 à 01:03 | #36

    J’ai passé ma journée dessus mais j’ai enfin un truc potable 🙂 finalement j’ai acheté les deux diodes dans un magasin ça fonctionne niquel. Par contre j’ai galéré pour la partie envois des commandes le vendeur n’avait pas de PIC du coup j’ai utilisé mon Arduino et je galère sur un non sens technique j’aimerais savoir si tu peux m’éclairer :
    j’ai choppé sur le net un code source qui devrais fonctionner : http://www.instructables.com/id/Diy-Xbox-wireless-controller-adapter-for-Pc/step2/Code/

    seulement mon code bloque ici : while (prev == digitalRead(clock_pin)){} //detects upward edge of clock
    prev = digitalRead(clock_pin);
    la raison : l’entrée clock est en permanence à 0.
    en faisant plusieurs test je me suis rendu compte que pour une raison obscure si je branche clock sur le pin 2 (réservé au bouton sync) et que je laisse le bouton sync débranché mon arduino détecte correctement les changements. toute autre configuration ne fonctionne pas (l’arduino ne voit pas les entrées)

  37. Pila
    07/08/2015 à 12:18 | #37

    Essaye de mettre une résistance de l’ordre de 10-100kOhms entre ton pin de clock et le +3.3V.
    Il me semble que le pin Clock du module à est collecteur ouvert, ce qui signifie qu’il peut forcer le signal à 0V, mais pas le ramener à une tension positive. La résistance s’occupe de ça.

    Tiens moi au courant si c’est bien ça

  38. Paul-Antoine
    08/08/2015 à 22:12 | #38

    Nop avec une résistance 100kOhms l’entrée reste bloquée en permanence à 1. Mais bon pas gave en bidouillant le programme j’ai réussi a synchroniser une manette du coup j’ai débranché l’arduino et j’attendrais le mois prochain pour une solution plus définitive avec un boitier et un PIC 🙂 pour l’instant je peux utiliser ma manette sur PC et c’est l’essentiel merci beaucoup pour ton tuto et tes conseils.

  39. sebbz
    16/08/2015 à 13:00 | #39

    Hello,

    Je viens de faire le montage, je n’ai pas encore pris le temps de tester avec un jeu.
    J’ai une petite question: est il possible de recuperer l’etat de la ou des manette(s) connectée(s) pour faire s’allumer la (les) diode(s) correspondante sur le module ?

    merci

  40. Pila
    16/08/2015 à 14:16 | #40

    Salut sebbz,

    A ma connaissance, ce n’est pas possible, en tout cas pas simplement.
    Je n’ai pas trouvé de commande permettant de récupérer le nombre de manettes connectées via la liaison série entre le PIC et le module.
    La seule solution que je vois serait d’utiliser un PIC capable de gérer une liaison USB, et d’écrire un pilote qui lui transmettrait le nombre de LEDs à allumer, c’est vraiment beaucoup de boulot.

    Cordialement

  41. sebbz
    16/08/2015 à 15:25 | #41

    Merci pour la réponse, ce n’était qu’une remarque pour éventuellement compléter la programmation du pic.

    autre remarque: peut etre completer l’extinction des manettes par une extinction du module (ou alors via un bouton poussoir supplementaire qui servirait a une extinction complete manettes/module).

    merci d’avoir posté cet article 🙂

  42. Pila
    16/08/2015 à 16:18 | #42

    Il y a une commande je crois pour l’extinction du module, mais dans mon cas le module reste branché, comme ça il suffit d’allumer la manette pour qu’elle soit opérationnelle 🙂

    Si tu en a besoin, tu peux rajouter cette fonction en éditant mon code 😉

    Je suis content que l’article te plaises, la documentation c’est pas la partie la plus marrante d’un projet ^^

  43. sebbz
    16/08/2015 à 18:37 | #43

    heu, si j’avais la moindre idée de comment faire…
    cramer le hex sur le pic, je gere.
    mais c -> asm -> hex … euh …

    c’est quoi la manip ?

  44. Pila
    16/08/2015 à 19:15 | #44

    Tout se fait avec l’éditeur MPLAB X de Microchip, dispo gratuitement sur leur site. Il te faudra aussi le compilo XC8 pour le PIC.

    Voilà les liens :
    http://www.microchip.com/pagehandler/en-us/family/mplabx
    http://www.microchip.com/pagehandler/en-us/devtools/mplabxc/home.html

    Sous MPLAB X, il faut créer un nouveau projet pour PIC16F628A, et importer ensuite mon fichier C.
    Lorsque tu compile, il te génère un fichier .hex (bien caché parmis tout plein d’autres fichiers, utilise la recherche pour le trouver 😉 )

    Si t’as des difficultés, n’hésite pas à demander

  45. sebbz
    19/08/2015 à 16:09 | #45

    Mon mplab etait trop vieux (6.6, version d’il y a quelquechose comme 3 ans) et sans xc8, ca risquait pas de fonctionner sans les librairies qui vont bien, merci

    bref, ajouter « l’extinction du module » ne donne pas le resultat que j’en attendait, en fait cela ne fait que couper la radio. l’interet est pour le moins minime.

  46. Pila
    19/08/2015 à 16:14 | #46

    Salut sebbz,
    content que tu es pu compiler.

    Oui, je crois qu’aucune des commandes ne permet de piloter la partie USB du module, donc ça restreint beaucoup les possibilité malheureusement :-/

  47. easypic3
    08/12/2015 à 13:01 | #47

    bonjour.

    si je programme le 16f628a avec une carte easypic 3, quelle est la config des fusibles à appliquer dans le pic (il semble ne pas vouloir l’importer du fichier hex) ?

  48. Pila
    08/12/2015 à 19:32 | #48

    Bonjour,

    dans mon code les bits de config sont paramétrés comme cela :
    FOSC = INTOSCIO
    WDTE = OFF
    PWRTE = ON
    MCLRE = OFF
    BOREN = OFF
    LVP = OFF
    CPD = OFF
    CP = OFF

  49. Burps
    17/05/2016 à 09:24 | #49

    Salut,

    Je me demandais si il n’étais pas possible de piloter la synchronisation direct via une application sur le PC pour ne pas utiliser de PIC?

  50. Pila
    17/05/2016 à 12:27 | #50

    Salut,

    En dehors de l’astuce avec le câble Play & Charge, je n’ai rien trouvé, ni logiciel, ni même documentation détaillant le fonctionnement du driver.

    Cependant le fait que cette astuce fonctionne montre que c’est techniquement possible.

  51. drepou
    12/07/2017 à 17:31 | #51

    salut merci pour le tuto j’ai un souci avec le driver sous win10 j’ai pas le nom que tu site
    j’ai que ca :

    Xbox controller
    Xbox controller DFU
    Xbox Elite Controller
    Xbox gaming Device.

    j’ai pas fait le microcontroleur mais juste un regul 3,3 piqué sur la xbox j’ai bien 3,3v sur la board mais je n’ai aucune led qui est allumé sur le module mais il est bien visible dans le gestionnaire de periph peux tu m’aider ? merci

  52. drepou
    12/07/2017 à 17:37 | #52

    @drepou

    drepou :
    salut merci pour le tuto j’ai un souci avec le driver sous win10 j’ai pas le nom que tu site
    j’ai que ca :
    Xbox controller
    Xbox controller DFU
    Xbox Elite Controller
    Xbox gaming Device.
    j’ai pas fait le microcontroleur mais juste un regul 3,3 piqué sur la xbox j’ai bien 3,3v sur la board mais je n’ai aucune led qui est allumé sur le module mais il est bien visible dans le gestionnaire de periph peux tu m’aider ? merci

    j’ai trouvé en fait c’est bon y’a deux lignes différente dans la liste du debut je confirme la syncro marche avec le kit de rechargement filaire et sans microcontroler

  53. Pila
    12/07/2017 à 17:59 | #53

    Salut,

    En effet, je n’ai pas de WIN10, mais la première liste que tu donnes semble plutôt destinée aux manettes de Xbox One 😉

  54. EDOUARD
    30/12/2018 à 14:10 | #54

    Hello !! c’est super bien expliqué j’adore, un receveur coûte pas cher mais ‘atteindras jamais la valeur du travail accompli . J’ai utilisé des diodes trouvées dans une vieille alim de pc (1n4148) avec une chute de tension de 1v chacune, ça fonctionne qd même apparement !

  1. Pas encore de trackbacks