-
Notifications
You must be signed in to change notification settings - Fork 98
Control Mapper plugin
The control mapper plugin is designed to be an alternative to various "Joy to joy" solutions already available, but primarily focused on wheels hot swapping with the "keep it simple" philosophy, it allows to aggregate multiple wheels buttons / controllers to a single one allowing easy in game controller/wheel hot swapping.
- Many simple use cases :
- Wheel hot swapping : no matter if you have two or ten wheels, diy or commercial , wheel swapping dream is often broken by in game mappings to be done again
- Sequential shifter vs paddles ? you can have both ready to go.
- Controllers limits ? ATS/ETS2 limits you to 4 controllers : one handbrake, one split shifter, one shifter, one wheel ... No room available anymore for your button box or any fancy controller you might still have.
- Some key features
- "role name" based mapping, because most wheels have many buttons nowadays who can remember what does "button 1" or "button 42" ? It allows to quickly add a new wheel based on names instead of numbers.
- Multiple virtual controller options available to fit as best as possible your existing setup :
- Vjoy : as it is THE known software only solution for such cases, but it went so popular that it's maybe already busy for another software, and adding multiple Vjoy controllers is not always handled fluently by all games.
- Arduino Pro micro / leonardo bridge: just plug one of those arduino boards and after a two clicks flash process, benefit of a driver less and conflict less virtual controller.
- A simple web interface accessible from your phone allows to do all your in game bindings avoiding tinkering with HIDHide and similar softwares to avoid double inputs.
- SimHub internal actions bindings will use "roles" in priority allowing to bind actions independently of the actual device.
- Up to 6 output axis
- To keep it robust it's not planned to support FFB in any way. when it comes to FFB the simplest the better ;)
- XInput devices (XBOX one controller etc ...) won't work properly : it's a limitation of windows not sending inputs to background applications.
- Currently unique wheels when plugged through a base (thrustmaster ...) are not detected as separate devices, except for Simucube and Fanatec which are handled since SimHub 8.3.0.
- Go in SimHub settings/plugins and enable the Control Mapper plugin :
- Go back to games to apply the changes
You can choose either VJoy or an Arduino bridge (ATMEGA32U4 based : Arduino Leonardo or Arduino pro micro)
PROS :
- The free software only solution.
- A long term solution which does not have anything to prove today.
CONS :
- Might conflict with existing apps (IRffb, Joystick Gremlin ...)
- Multiple VJoy controllers are not always gracefully handled by games
- VJoy broke a couple of times in the past after some windows updates.
- Some software interferes with the installer and prevents it to work correctly and install the virtual controllers.
HOW TO :
- Install VJOY : (download is available here https://github.com/jshafer817/vJoy see releases on the right column) :
- Open the "configure Vjoy" app
- Activate a Vjoy controller with 128 buttons
- In the control mapper plugin choose "VJoy" and set the target joystick :
There you are you are ready for remapping !
PROS :
- A specifically tailored solution avoiding conflicts with VJOY
- It's a standard HID device not requiring any specific drivers and not risking to be broken after a window update.
- It uses a dedicated PID/VID which won't conflict with your existing arduino based devices.
CONS :
- It's an hardware solution requiring a to throw a few bucks into an Arduino.
- it never comes with a case. You need to build a little case to protect it (bare electronic + metal of your rig => blue smoke ;) ) : 3D print, electric scotch, anything will be good as long as it is electrically protected.
I highly suggest to dig aliexpress for an USB-C updated version, Micro USB version is well known for usb port getting teared out.
HOW TO :
- Get an "Arduino Pro Micro" or an "Arduino Leonardo"
- Plug it to your computer
- Unplug any other arduinos you might have to avoid flashing the wrong device
- In the control mapper plugin choose "Bridge" and click on the flash button :
- Select your Arduino serial port, read the warning once again, check that your agree and click on "Flash" :
- Flashing process will take a few seconds
- Click Ok, the device will now connect :
There you are you are ready for remapping !
- Click on "assign roles" and review all the actions you want to be available, games will bind your controller based on button numbers, don't "move" a role (change the button number) after having it assigned in game :
- Add a controller
- Click on Map controller :
- You can now review all the actions and associate a button from the controller, when you are done, click on OK :
You can map a FN button on each controller, this button will be used to be able to double any input by pressing this button :
- Map the "FN" button, this button won't be usable directly
- On a role press the "FN" button you choose and another to map a secondary action :
Most games won't bind buttons correctly when two devices are sending the inputs at the same time, it requires a little trickery to get past the input binding step ;)
- Take your phone, make sure it is on the same network as your computer and flash the QR code available in SimHub :
It will open a simple page with a button per role, simply click on it to trigger the virtual controller and avoid the "double inputs" conflicts :
It's now time to have fun !
NB : If the page don't show on your phone you can refer to the web access troubleshooting guide available here : https://github.com/SHWotever/SimHub/wiki/Troubleshoot-Dashstudio-Web-access
Starting from SimHub 8.3.4 a new stream deck plugin is available allowing to trigger the virtual inputs.
- Start simhub
- Start stream deck
- In the control mapper screen, click on install plugin
- In the stream deck application you can now add the "Trigger control mapper role" action and select the role you want to trigger :