• Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
RetroPie forum home
  • Recent
  • Tags
  • Popular
  • Home
  • Docs
  • Register
  • Login
Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

20 pin xin mo wiring diagram set up

Scheduled Pinned Locked Moved Help and Support
controller
32 Posts 9 Posters 21.2k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S
    subz
    last edited by 1 Oct 2016, 07:43

    Hello, I am having trouble setting up my usb joystick encoder.

    Raspberry pi 3
    retropie 4
    name THT 2P arcade controller
    Id 16c0:75e1

    The encoder has 20 pins not sure if its xin mo or a clone
    The joystick I have is an illuminated one and has two connectors A and B
    I think the difference is portrait or landscape mounting.

    The encoder and joystick/buttons work ok when plugged into pc

    I can only get one of each axis on the stick to work Axis 1+ Axis 0+

    I have done the usbhid.quirks=16c0:0x75e1:0x40
    The encoder is showing up as 2 players.

    If anyone has a pin diagram for the 20 pin version or any advice
    on set up it will be apprieciated.

    I am just starting with commandline so take it easy
    Cheers

    1 Reply Last reply Reply Quote 0
    • R
      robthedude81
      last edited by 19 Oct 2016, 13:31

      Hi

      Did you get this sorted? I have exactly the same issues

      Thanks

      1 Reply Last reply Reply Quote 0
      • L
        Luca1
        last edited by 19 Oct 2016, 21:10

        Hi, I have the 20 button setup and this works perfect. I am on a Raspberry Pi 2. Check the pics of their actual button layout as you will need to copy this for best results:
        https://gameroomsolutions.com/raspberry-pi-3-retropie-setup-easy-guide/

        R 2 Replies Last reply 19 Oct 2016, 21:22 Reply Quote 0
        • R
          robthedude81 @Luca1
          last edited by 19 Oct 2016, 21:22

          @Luca1 Hi

          I am copying this

          http://www.fabuloustshirt.com/arcade/notice/2playerUSBtojammaadaptemanual.pdf

          But when i go to setup the controllers i get axis 1+ and axis 0+ but cant get the - axis' working, it totally ignores the other 2

          I just dont get it.. Every pin works but these 2.. I ahve 3 of these 40 pin ones now and all of them exctly the same. Different joystick, even the buttons do not work when connected to those pins

          1 Reply Last reply Reply Quote 0
          • R
            robthedude81 @Luca1
            last edited by 19 Oct 2016, 21:49

            @Luca1 This works in windows ive just checked

            L 1 Reply Last reply 19 Oct 2016, 22:35 Reply Quote 0
            • L
              Luca1 @robthedude81
              last edited by Luca1 19 Oct 2016, 22:35

              @robthedude81 I'm not sure then, probably a bit out of my range. I'm using this diagram though. Note, button 11 on player 1 side is actually button 9

              alt text

              1 Reply Last reply Reply Quote 0
              • S
                subz
                last edited by subz 21 Oct 2016, 18:15

                Hello and thanks for reading and replying to this thread.
                ok I am no expert so dont burn me for being a bit sketchyish on the details.

                I have solved/ workround this problem for raspberry pi 3/ rtetropie 4
                It works ok on pi2 I think you have to flash some updates
                but it breaks pi3, havent done it just what ive read.

                Two of the direction pins give signals that are out of range on pi3
                works fine on windows with joy to key.

                Heres the workround use the two directions that work (axis 1+/axis 0+)
                and hijack button input pins for the other two directions
                that still leaves 8 buttons an 2 buttons (start and select)
                for each player.

                Have had mine set up like this for a while and is working ok with retropie 4
                the configure input screen dosnt care if its an axis or a button press.
                Just input your controls as normal.

                One other thing I have found out is if you have a (I had) Xbox 360 wired
                to get into menus and set up my arcade control panel configure inputs for control panel
                then do a pi restart and take out the xbox controller.
                The retroarch config reqires no editing.

                For the P1 & P2 sides of the board Pin 2 and 4 are dead. Just forget them.
                Is working now!!

                Hope it helps

                R G 2 Replies Last reply 23 Oct 2016, 21:20 Reply Quote 1
                • R
                  robthedude81 @subz
                  last edited by 23 Oct 2016, 21:20

                  @subz thank you .

                  I will have a go at this tomorrow.

                  1 Reply Last reply Reply Quote 0
                  • S
                    stuntstein
                    last edited by stuntstein 11 Aug 2016, 17:56 8 Nov 2016, 16:46

                    I bought a Xin Mo the other day for my RPi3/Retro4 and I have the same problem, axis -0/-1 doesn't work on both players.
                    Now this is only on the RPi. I tried the Xin Mo on my Windows and here the inputs are fine, just like Subz said.
                    Is there method to calibrate the input on the raspberry?

                    1 Reply Last reply Reply Quote 0
                    • G
                      Greg @subz
                      last edited by 23 Feb 2017, 20:24

                      @subz Hello i too have problem. I have 3H arcade 2Players controller. up and left not working. One think i can manage is to have 2 players configured. You need to insert at the end quirks line in /boot/cmdline.txt file. :

                      usbhid.quirks=0x16c0:0x05e0:0x040

                      This entry enable 2 players in retropie.
                      But unfortunatelly left and up is not working at all.
                      In recalbox and windows everything works ok

                      I cannot test it right now. Can someone test if changing pins can help ? Is P1 & P2 sides of the board Pin 2 and 4 are not working at all. ?
                      Any help ?

                      1 Reply Last reply Reply Quote 0
                      • S
                        stuntstein
                        last edited by 23 Feb 2017, 21:43

                        Could you check the USB vendor and product id?
                        I have made a fix for the product with id 0x75e1:
                        https://retropie.org.uk/forum/topic/7832/fix-up-left-joystick-direction-for-tht-2p-arcade-controller-with-device-id-0x75e1

                        G 1 Reply Last reply 23 Feb 2017, 22:09 Reply Quote 0
                        • G
                          Greg @stuntstein
                          last edited by 23 Feb 2017, 22:09

                          @stuntstein Hi. I checked the product and vendor id and I used it to change cmdline.txt with usbhid.quirks=0x16c0:0x05e0:0x040. The values are :
                          0x16c0:0x05e0. Very simmilar to tht where it was 0x16c0:0x05e1.
                          The controller is visible as 3H Arcade 2Players. If you need more info just let me know.
                          Thanks for help.

                          1 Reply Last reply Reply Quote 0
                          • S
                            stuntstein
                            last edited by 23 Feb 2017, 23:03

                            oh another Xin Mo clone :-(

                            You can take my patch and add the new product ID and build the kernel. Then I'm confident that your usb controller will work.

                            In drivers/hid/hid-core.c
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE) },
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_THT_2P_ARCADE) },
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_3H_2P_ARCADE) },

                            In drivers/hid/hid-ids.h

                            #define USB_VENDOR_ID_XIN_MO 0x16c0
                            #define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1
                            #define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1
                            #define USB_DEVICE_ID_3H_2P_ARCADE 0x05e0

                            and finally in drivers/hid/hid-xinmo.c
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE) },
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_THT_2P_ARCADE) },
                            { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_3H_2P_ARCADE) },

                            G 1 Reply Last reply 24 Feb 2017, 08:59 Reply Quote 0
                            • G
                              Greg @stuntstein
                              last edited by 24 Feb 2017, 08:59

                              @stuntstein
                              Hi

                              When I apply the patch to the kernel it gives me the following error:

                              fatal: corrupt patch at line 14.

                              This is my edited patch :

                              diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
                              index 9369602..2458687 100644
                              --- a/drivers/hid/hid-core.c
                              +++ b/drivers/hid/hid-core.c
                              @@ -2052,6 +2052,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
                              { HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_SIRIUS_BATTERY_FREE_TABLET) },
                              { HID_USB_DEVICE(USB_VENDOR_ID_X_TENSIONS, USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE) },
                              { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE) },

                              • { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_THT_2P_ARCADE) },
                              • { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_3H_2P_ARCADE) },
                                { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) },
                                { HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) },
                                { HID_USB_DEVICE(USB_VENDOR_ID_ZYDACRON, USB_DEVICE_ID_ZYDACRON_REMOTE_CONTROL) },
                                diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
                                index e370306..5e98504 100644
                                --- a/drivers/hid/hid-ids.h
                                +++ b/drivers/hid/hid-ids.h
                                @@ -1014,6 +1014,7 @@

                              #define USB_VENDOR_ID_XIN_MO 0x16c0
                              #define USB_DEVICE_ID_XIN_MO_DUAL_ARCADE 0x05e1
                              +#define USB_DEVICE_ID_THT_2P_ARCADE 0x75e1
                              +#define USB_DEVICE_ID_3H_2P_ARCADE 0x05e0

                              #define USB_VENDOR_ID_XIROKU 0x1477
                              #define USB_DEVICE_ID_XIROKU_SPX 0x1006
                              diff --git a/drivers/hid/hid-xinmo.c b/drivers/hid/hid-xinmo.c
                              index 7df5227..9ad7731 100644
                              --- a/drivers/hid/hid-xinmo.c
                              +++ b/drivers/hid/hid-xinmo.c
                              @@ -46,6 +46,7 @@ static int xinmo_event(struct hid_device *hdev, struct hid_field *field,

                              static const struct hid_device_id xinmo_devices[] = {
                              { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE) },

                              • { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_THT_2P_ARCADE) },
                              • { HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_3H_2P_ARCADE) },
                                { }
                                };

                              What is the problem ?

                              Thank you very much for your work.

                              Best Regards

                              G 1 Reply Last reply 24 Feb 2017, 09:58 Reply Quote 0
                              • GraboidG
                                Graboid
                                last edited by 24 Feb 2017, 09:52

                                I wired mine up as per below, works fine with the usb quirks fix

                                0_1487929914958_Xin-Mo-2-player-layout-wired.jpg

                                Built Space Invaders Themed Bartop - Check it out here:- https://retropie.org.uk/forum/topic/5593/space-invaders-themed-bartop-arcade-uk-completed

                                S 1 Reply Last reply 24 Feb 2017, 16:50 Reply Quote 0
                                • G
                                  Greg @Greg
                                  last edited by 24 Feb 2017, 09:58

                                  For now I edited source files manually and added new lines.
                                  Krenel is now compiling, waiting it to end.

                                  My usb controller is 40 pin.

                                  S 1 Reply Last reply 24 Feb 2017, 16:44 Reply Quote 0
                                  • S
                                    stuntstein @Greg
                                    last edited by 24 Feb 2017, 16:44

                                    @Greg Not sure why the patch didn't work. It is difficult to tell if some typo error from the above print because the forum reformat the text.
                                    Anyway, I hope that your kernel compiled successfully and your controller now fully working.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      stuntstein @Graboid
                                      last edited by 24 Feb 2017, 16:50

                                      @Graboid The original Xin Mo controller works fine because the fix for joystick up&left is already included in the linux kernel.
                                      The Xin Mo and the clones have same Vendor ID 0x16c0.
                                      The original Xin Mo has Product ID 0x05e1.
                                      Mine and Subz clone has PID 0x75e1.
                                      Gregs clone has PID 0x05e0.

                                      I submitted a patch to Linux Kernel to fix PID 0x75e1. We might need another patch to permanently fix 0x05e0.

                                      G 1 Reply Last reply 24 Feb 2017, 16:53 Reply Quote 0
                                      • G
                                        Greg @stuntstein
                                        last edited by 24 Feb 2017, 16:53

                                        @stuntstein I still trying to compile the krenel but at the end it cannot create img. file, During compiling I have errors about xinmo.
                                        Now i`m trying third time. Fresh install retropie with rpi3.

                                        G 1 Reply Last reply 24 Feb 2017, 16:57 Reply Quote 0
                                        • G
                                          Greg @Greg
                                          last edited by 24 Feb 2017, 16:57

                                          Problem with the patch is that there are different lines in source files which it modifies. I had to manually add new lines in 3 files (commented in the patch).

                                          G 1 Reply Last reply 24 Feb 2017, 17:06 Reply Quote 0
                                          • First post
                                            Last post

                                          Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                          Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.

                                            This community forum collects and processes your personal information.
                                            consent.not_received