I have done some more experimenting with the gamepad and I now have a better understanding of what is happening.
HardwareTester/GamepadTester recognizes everything on this particular controller, all the buttons and the sticks. The chrome Home button in the center changes how the sticks operate. When it is pressed, a red LED toggles on/off. With Home off, the sticks are digital (on/off) and their assignments are a bit strange, with lots of duplicates. For example:
Stick 1
Left/Right: Axis 0 -1/+1
Up/Down Axis 1 -1/+1
Left Pad: (identical to Stick 1)
Left/Right: Axis 0 -1/+1
Up/Down Axis 1 -1/+1
Stick 2
Left/Right: Button3, Button1
Up/Down : Button0, Button2
Colored Buttons: (identical to Stick 2)
Left/Right: Button3, Button1
Up/Down : Button0, Button2
With Home On, the sticks are analog and respond to varying degrees of movement. Home on seems to be the best option. Here is how the sticks are recognized with Home on.
Stick1:
Left/Right: Axis 0 -/+
Up/Down: Axis 1 -/+
Left Pad: (strange)
Left/Right: Axis 9 .7/-.4
Up/Down: Axis 9 -1/.14
Stick2:
Left/Right: Axis 2 -/+
Up/Down Axis 5 -/+
As you might imagine, Stick 2 Up/Down being recognized as Axis 5 is likely a problem. This probably explains why gSender doesn’t see it. It sees Left/Right but not Up/Down. I’m assuming gSender is expecting it to be on Axis 3. Unfortunately it doesn’t appear that there is a way to tell gSender to look for Axis 5 on Stick 2. I don’t think there is any way to remap the stick internally.
The Left Pad assignments are a bit strange as well.
As an experiment, I tried this controller with UGS 2.1.6. While it recognizes Stick 1 Up/Down, Left/Right it doesn’t see Stick 2 Up/Down either. However, jogging with the controller on the X and Y axes works perfectly, so I don’t think there is anything defective with this particular controller.
In order for this to work, it seems that there should be a way to edit the built in profiles or to create an entirely new custom profile. The way it works now, gSender forces a profile based on how it identifies your controller. Since gSender recognizes this controller and has a profile for it, it would be very interesting to know if the actual controller I have here is different from the “Vendor: 0079 Product: 0006” controller that the developers used to make the profile. Also, it would be interesting to know how the officially tested YCCTeam Xbox Controller is identified by gSender. While it looks EXACTLY like what I have, I wonder if the internal logic is the same.
Maybe this was made clear somewhere else, but I discovered that if you assign a Lockout button, you need to hold that button down while jogging. It isn’t an on/off toggle.
Another option would be to put this controller in the Home off mode where Stick 2 would be treated like buttons and not a stick. However, the problem here is that no Jogging Category shortcuts can be assigned. The choice of shortcuts that can be assigned is extremely limited. This seems like an easy fix.
With the obvious issues identified, the one remaining mystery is the erratic jogging performance on X and Y. As I mentioned above, sometimes it works sometimes it doesn’t. It will either move extremely slow in a random direction for a random distance or I have to set the Movement Override very high, around 600%. Since my computer keyboard shortcuts generally work well, I wonder if the controller can be made to mimic the keyboard.
That is what I have learned to this point. I hope this is helpful to someone.