Release EDRefCard - makes a printable reference card of your controller bindings

Hello there !
I just received my VKB Gunfighter MK.II with Kosmosima Space Combat Grip Premium-R in replacement of my old T.16000 and this is a really nice joystick.
I really would like to have an edrefcard map for this one, so here are the specifications that can be useful.

Four versions of the grip
  • Kosmosima SCG-L
  • Kosmosima SCG-R
  • Kosmosima SCG Premium-L
  • Kosmosima SCG Premium-R
Premium versions
This version is bundled with extra switches and can be customised like a standard version (see below).
  • A1 switch : Pushing on the #20 button switch the behavior from POV-switch to analog ministick.
  • B2 : The trigger can be pushed or pulled (27 or 26)
  • Fire : The trigger can be softly pushed or hardly pushed (1 or 1+2)

Standard versions
I didn’t find any map of this device but here are the differences from the premium version :
  • No B2 trigger
  • A1 is a Hat switch with center push
  • C1 is a push button
These joysticks are highly customizable with a software that push the setup into the device.
I can submit other informations (like my .bind file) and try to make some good photos if needed.
 
Last edited:
I'm having the same issue, with the same setup: CH Fighterstick, Pro Throttle, Pro Pedals. Also running on Oculus Rift and purchased through their store if that makes a difference. Ref code: jgdldp

Looks like the code has missed the USB identifier for the stick and assigned it to the Throttle.

If you look in your binds file 068EC010 that’s the stick, 068EC011 is the throttle. The ID for Pedals is 068E0501 and doesn’t appear in my Binds file as I’ve consolidated the controls using Control Manager, think in this case it gets picked up as a Stick R axis.

In any event, it’s a misread in the Page Code as mine looks the same as yours when printed despite it having worked OK previously.
 
Quick hint for Virpil/VPC owners: While EDRefCard does support the combination of the WarBRD base and the Constellation Delta grip, it will only detect them from your bindings file if they show up as device 03EB2044 (for right hand) or device 03EB2042 (for left hand). Unfortunately, these device IDs are simply the USB VID and PID values concatenated together. The problem is that these values are not only configurable in the VPC software, but also seem to change each time you use the VPC profile wizard. My (used) WarBRD+Constellation Delta showed up as device 03EB2049, and I always received an "you have an unknown device" error message from ED Ref Card.

It is possible but somewhat complicated to fix things without having to rebind everything:
  1. If Elite is running, quit to desktop.
  2. Launch the VPC configuration software, select your stick, use "load VPC device"
  3. go to the profile page, write down your old VID and PID values in the USB text area
  4. change the VID and PID values to 03EB and 2044 for a right hand stick, and 03EB and 2044 for a left hand stick
  5. use "save VPC device" and close the VPC software
  6. open your Custom.3.0.binds file in a regular text edit (Windows Notepad works just fine)
  7. Search for your old VID value. This will part of a Binding/Primary/Secondary Device="VVVVPPP" statement
  8. Now do a global search and replace of the VVVVPPPP value in your file by 03EB2044 (for right hand) or 03EB2042 (for left hand).
  9. Save and exit. Create a backup copy of your Custom.3.0.binds file that is NOT named <something>.binds.
  10. Launch the game and test. The bindings are read before the main menu appears. If you made a mistake, an error log file will show up in the bindings directory detailing which device was not found. In that case, exit to dekstop again, restore your bindings from the backup, and fix the device entries mentioned in the logfile.
  11. You can now create a reference card
 
Quick hint for Virpil/VPC owners: While EDRefCard does support the combination of the WarBRD base and the Constellation Delta grip, it will only detect them from your bindings file if they show up as device 03EB2044 (for right hand) or device 03EB2042 (for left hand). Unfortunately, these device IDs are simply the USB VID and PID values concatenated together. The problem is that these values are not only configurable in the VPC software, but also seem to change each time you use the VPC profile wizard.
...
Thanks for that, Cometborne. I'm not sure how much I can do to mitigate this in the source code if the device IDs are entirely user-configurable. To be honest, that sounds like a protocol violation on VPC's part. Device IDs are supposed to be stable and reliable.
 
And another thanks for an invaluable tool! I went looking for a blank template to make my own sheet and eventually found my way here. Best google find in ages! 😁

There is already a basic option like that it it’s not really production ready, e.g.: https://edrefcard.info/scripts/bindings.py?blocks=SaitekX52
It would need to be polished up a bit.
I notice that you don't have a name for the wheel under your forefinger on the throttle. That might explain why my ref card (pxnxfm) doesn't show my Prev and Next Fire Group bindings. ED sees them as + Mouse Z-Axis (scroll up/towards you) and - Mouse Z-Axis (scroll down/away) respectively if that helps, rather than a whole analogue axis.

I haven't been able to get ED to recognise the mouse thumbstick thing at all, as either a digital or analogue input. I presume it can't see the difference between the thumbstick and a mouse. I guess it'd start working if I turned on the mouse flight controls but why would I do that when I have a perfectly servicable joystick in my right hand? 😛

As a suggestion, would it be possible to have the filter layer checkboxes available amongst the links etc on the bottom of the ref card page? That way rather than having different urls/profiles for the same bindings with different filters (eg I've got pxnxfm for all filters on and efdzvm for a limited set), you've got one url and the user can turn what they want on or off (and press the re-generate button to refresh the images) but default to all on. Perhaps have it add an argument to the url to specify which filters are on so people can bookmark their preferred set? Or which filters are off might be easier so that the base url with no argument has all filters on as the default. A bit masked value would be logical eg pxnxfm&f=528 to turn off only Multicrew and Holo-Me filters (ie 1000010000 in binary - or maybe convert to base 36 and use pxnxfm&f=eo). Just a thought that may reduce the number of stored profiles in the long run.

Incidentally, is there any way to delete or rename profiles? You may notice that both my profiles are named the same. I was hoping the later one might override the first if they had the same name but that obviously didn't work.
 
Thanks for that, Cometborne. I'm not sure how much I can do to mitigate this in the source code if the device IDs are entirely user-configurable. To be honest, that sounds like a protocol violation on VPC's part. Device IDs are supposed to be stable and reliable.
The problem is that this kind of gear is highly customizable. You can have the same USB device (or "controller"/"base" in the vendor's language) and attach various grips with different numbers of buttons, axis, wheels, etc. Even with the same combination of controller and grip, you can reconfigure the firmware of the base to make things behave differently. For example, the constellation delta grip has an analog stick by default. Since I do not have a use for an analogue stick, so I redefined things in the firmware to make it another "5-way" hat, turning a "22 button" device into a "26 button" device. The VKB stick I am awaiting will be even worse because there you can physically replace some of the modules. It will still show up with the same USB VID/PID/name, though.

The only idea I have right now is to add a step when E:D gives a numeric ID for the device rather than one of the well-detected names. In that case, the user should give extra input (via a drop-down?) and identify what kind of controller/grip combination "03EB2044" is.
 
And another thanks for an invaluable tool! I went looking for a blank template to make my own sheet and eventually found my way here. Best google find in ages! 😁
Your're welcome!

I notice that you don't have a name for the wheel under your forefinger on the throttle. That might explain why my ref card (pxnxfm) doesn't show my Prev and Next Fire Group bindings. ED sees them as + Mouse Z-Axis (scroll up/towards you) and - Mouse Z-Axis (scroll down/away) respectively if that helps, rather than a whole analogue axis.
Aha, that would explain why my predecessor jgm left it blank on https://edrefcard.info/device/SaitekX56. Since it's exposed as the mouse wheel rather than an axis on the throttle, I'm a bit out of options unless I display it as a generic mouse. Yuck.

I haven't been able to get ED to recognise the mouse thumbstick thing at all, as either a digital or analogue input. I presume it can't see the difference between the thumbstick and a mouse. I guess it'd start working if I turned on the mouse flight controls but why would I do that when I have a perfectly servicable joystick in my right hand? 😛
Again, this is Saitek's fault for pretending that certain controls on their throttle are in fact mouse controls. Yuck again. That's a horrible implementation; I wasn't aware.

As a suggestion, would it be possible to have the filter layer checkboxes available amongst the links etc on the bottom of the ref card page? That way rather than having different urls/profiles for the same bindings with different filters
Unfortunatelty that conflicts with the current code architechture and particularly the image caching, so no, sorry. I have thought about it but to be honest I've come to like bookmarking different URLs for the same binding filtered and/or colored different ways. It's not like URLs are in limited supply, so I'm OK with it.

Incidentally, is there any way to delete or rename profiles? You may notice that both my profiles are named the same. I was hoping the later one might override the first if they had the same name but that obviously didn't work.
I, as site owner, can delete profiles from the command line, but exposing that functionality to users would require deploying some kind of authentication method and dealing with all the associated privacy and GDPR issues. I'm reluctant to take that step for what is intended to be a simple ref card generator. I do recognise that the list does rapidly get cluttered up though. Thoughts welcomed on that.
 
[snip]
The VKB stick I am awaiting will be even worse because there you can physically replace some of the modules. It will still show up with the same USB VID/PID/name, though.

The only idea I have right now is to add a step when ED gives a numeric ID for the device rather than one of the well-detected names. In that case, the user should give extra input (via a drop-down?) and identify what kind of controller/grip combination "03EB2044" is.
To be honest I'm going to have to take a hard line and say that solving this is not worth my time. If a manufactuer is using the same USB VID/PID/name for multiple physical device combos then that is a clear violation of spec, and out of scope for EDRefCard, I'm afraid. Nor am I about to write extra UI to work around it; for one thing it would totally break the existing code architecture and I don't have time for that.

If someone else wants to provide an alternative, by all means.
 
Last edited:
Hey Vert,

also from me thanks a ton for your invaluable work on EDRefCard tool!

I am asked by the tool to report an unknown controller, code

ukodvl

I am just trying to incorporate a Thrustmaster T150 Pro into my setup. It's a racing wheel with T3PA pedal set. The wheel does not seem to be recognized as an axis (I thought I could use it for the SRV), the buttons are but hence useless, and the pedals are recognized, and as they already are there, below my desk....

I have just replaced my t.flight hotas X throttle, just the throttle, with a Thrustmaster T16k Stick. The throttle of the T16k is very basic, so I thought I use the pedals for accelerating / decelerating, let's see how it works out. I don't think many people are using this configuration. If you still want to incorporate it, what data can I deliver to help? (Sorry haven't read all the thread).

The T16k is the left stick; I also have set it to "left stick" with the slider on the bottom of the base. That seems to mirror the buttons between left and right side on the base, the order of the buttons, top row from left to right is 11 - 12 -13 -- 7 - 6 - 5, and the lower row is 16 - 15 - 14 -- 8 - 9 - 10, this gets mixed up in the sheet that is generated. Can I somewhere switch to "left stick" for the T16k?

Cheers,

M.
 
Last edited:
Top Bottom