Is this Scenario Achievable?

I was wondering if this specific scenario works with/through the HID Remapper, relating to mixed/merged inputs. In the example of a non fighting game on PS5, could the remapper and a Brooks Wingman FG2 be used so that a controller and keyboard are both connected to the PS5 and interpreted as one controller/input device? (The keyboards inputs would be interpreted as the controllers inputs)

Does the following make sense to achieve this, The Wingman FGC 2 plugged into the ps5, the HID remapper plugged into the Wingman, and both the controller and keyboard plugged into a USB Hub that is plugged into the Remapper?

If that doesn’t make sense is there any way to achieve that with the Remapper? I would only need the controllers face buttons and triggers to be mapped to the keyboard, and I would be able to switch back to the ps5 interpreting the keyboard as an actual keyboard for typing purposes by switching connectivity modes (Ex: 2.4 ghz to wired).

Thanks so Much!

Yes, this will work.

Just keep in mind you won’t get vibration on the controller and there’s currently no way to send touchpad inputs, except for the touchpad click.

1 Like

I understand, thank you so much I’m going to try to test the setup and hopefully it works! If i have any other questions is it okay to contact you/reach out?

Just post here so that others may potentially benefit.

1 Like

So I tried it, and I got hit with “Too Many USB Devices Connected”. It seems on my end atleast that having the wingman connected to the ps5, the HID connected to the wingman, USB hub connected to the HID and the keyboard isn’t possible unless part of my equipment is low quality (maybe the cables or the USB Hub?)

Do you have any suggestions to work around this? I’m really bummed out and hopeful that maybe I just did something wrong.

Ok so after an insane amount of trouble shooting and playing around with different cables, sequences, USB hubs, and ports I think I’m right on the edge of success.

I sort of solved the issue from before by using one of the rear USB ports on the console, and to prevent the system from giving me an error I used a (from closest to ps5 to furthermost), USB hub, Wingman FGC2, cable, HID converter, USB Hub, and then cable into keyboard.

The issue i’m now running into is that I cant seem to connect the controller into the USB Hub that feeds into the HID Remapper and have both the keyboard and controller be used to make inputs but for them to be treated as one input device. I remember reading that the HID can take numerous different types of input devices at the same time and feed/convert them into one ouput, so I’m not sure why the Controller isn’t even being detected and fed power???

Also, would it be possible for the controller and the keyboard to both share all the mappings of a gamepad and not have the total mappings split? Meaning that the controller can provide all the possible gamepad outputs for gameplay while the keyboard can still output controller outputs that the controller has full access to when needed; or is it that the total number of outputs has to be split between the two?

You can have multiple mappings with the same output, buttons on the controller can generate the same inputs as keys on the keyboard (indeed multiple different keys can generate the same input if you want and one key can generate multiple inputs as well, just make create additional mappings).

As for why the controller doesn’t work, if it’s a DualSense then I noticed that it’s somehow sensitive to the length of USB cables between it and the source. I don’t know if it’s about some voltage drop or what, but the same configuration either works or not, depending on if I have a hub between the PC and HID Remapper. I would start with eliminating the first hub (between the console and HID Remapper) and possibly looking for shorter cables overall.

1 Like

I did a bit of fiddling with the wires and the order of the data hubs, and it seems to be working!

But there is a second issue, even though the mapper recognizes both the controller and the keyboard and they function, the controllers right stick doesn’t seem to be working and instead my character starts looking straight up to the sky and top leftish (I think) which seems to be a problem from the keyboards end. When its only the controller plugged in it works perfectly and functions exactly as a normal controller but with the keyboard the analog sticks and their interpretation becomes wonky.

Any idea on why that is and how I could fix it? My keyboard is a 75% and I don’t have a numpad if that matters.

Again Thank you so much!

Do you have any mappings set up for the keyboard that would affect the right stick? Just plugging it in shouldn’t affect it I think. Can you post your entire config as a JSON file?

1 Like

I don’t think I have any mappings that should effect the right stick, I pretty much have been operating from your preset keyboard to ps4 arcade controller example since the overlap with I what I need is like 90%.

I should be a bit more specific with what’s happening and what outcome I want just to be explicit in case I’m assuming something about the nature of the interaction. I’d like to use the controller for actual gameplay, while the keyboard is also connected and recognized as the controller via the remapper. I also plan to use the keyboard to type via a Hotswap connection feature for typing in PS5 system chat menus as an actual read keyboard which has been working. The issue is that the second I change the keyboard from typing mode (2.4 dongle into ps5) to wired mode (into the USB hub that feeds into the HID with the controller) and the keyboard starting being read as the ps5 controller/ps4 arcade stick, both controller analog sticks stop functioning/sending input while every other button still functions on the controller as does on the keyboard.

So that’s one issue, the second is that as previously mentioned the right stick when the keyboard enters controller mode auto decenters and flies to the top right. I have no clue why that is especially since I’ve been using the preset. The WASD keys to control movement still work for the left stick and it remains centered even though I cant alter it through the controller analog stick, while the right stick gets thrust into the corner and can’t be moved by any keyboard keys or the controller right stick. I’ve tried changing the hexcodes in the examples expressions to be 1,2,3 and 4 in the standard number row and while that does allow me to send the right stick all the way to the left and top and to the center, it’s still wonky.

I’m not sure if I fundamentally misunderstand whether what I’m looking for is even possible. Can the keyboard be interpreted as the controller while the actual controllers analog sticks are fully functional? Would this be possible if the keyboard isn’t sending stick data at all? Or is it a limitation of digital to analog conversion? Is it because the emulation type is ps4 arcade stick which doesn’t treat the right stick in games normally and I should change it? Even if the keyboard loses the ability to send stick inputs but can send all other inputs while the controllers analog sticks are always functional that would be wonderful outcome for my uses.

The JSON file is also attached, very vanilla-looking compared to the preset example. I’ve been working with this for hours determined so I’m hopeful it’ll work.

Thank you again for the incredible work your doing and the gracious help you provide!

hid-remapper-config (10).json (10.1 KB)

Yes, this is possible.

I need to look into it, because it’s not behaving quite the way I expected it to, but you can definitely make it work by adding explicit mappings for the sticks like so:

Note that the hub port is set on these mappings, you will need to set it to the hub port matching the one you have your controller plugged into (you can check in the Monitor tab).

(“Left stick X/Y” may show up as “Cursor X/Y” on the input side, they are the same thing.)

Also you can map keyboard keys to analog stick positions without using expressions, like this:

Note the scaling parameter is set to 0/255.

This isn’t quite equivalent to the expressions (the expressions result in a circular motion), but maybe it doesn’t matter for your use case.

1 Like

I managed to make it work last night after watching your hour long guide, which was incredibly helpful! Thank you for the help and reaffirming what I managed to apply.

With this I can use the controller fully and use the keyboard as the controller fully with the left stick being on the WASD keys which is so so awesome!!!

I wanted to ask, would it be possible to add to this current setup and make it possible for a mouse to mimic the right analog stick? I studied the example you have in the web config and tried applying it to the current setup but couldn’t get it to work/implement it right. I was thinking maybe its a limitation that hits when you have 3 different devices trying to operate in this function but maybe I’m just not capable of implementing it myself right now with my current understanding of the logic.

If it is possible that would be super super cool and I’m really hoping it is as another level/upgrade of this project!!! HID remapper is so cool and all my free time is now spent playing around and tinkering with it…

Thank you so much!!!

Yes, you should be able to add a mouse to your setup and use it for the right stick.

You would have to modify the expressions from the “mouse to analog stick” example to not use the same registers as your existing expressions and also add a “2 port” at the beginning (or whichever hub port you plug your mouse into) to only fetch inputs from the mouse (otherwise they will clash with the stick inputs from the controller because they use the same hex codes).

1 Like

I think I listened to your instructions, but it still bugs out. I attached the JSON file as well. I put the mouse expressions in expressions 7 and 8, and changed the port to “2 port” as well but regardless theirs some level of interference that I just cant figure out.
MouseDoesntWork.json (10.7 KB)

I know this is a bit confusing, but you have to add “2 port” (or whatever port your mouse is plugged into) at the beginning of the actual expression for it to fetch the input state from that port.

The port that you set on the mapping has a different meaning (it makes it so that the mapping is not applied at all if nothing is plugged into that port).

This is because expressions are evaluated once, regardless of how they’re used in the mappings (and each expression can theoretically fetch inputs from multiple different ports).

1 Like

By the way, you should be able to use the Assist Controller function on the PS5 to have your DualSense connected directly to the console and use it together with the keyboard as one controller.

That way you could use it wirelessly and keep the vibration, touchpad and LED functions on the DualSense.

(Also you wouldn’t need a hub.)

1 Like

That makes a lot of sense, and it fixed the issue for 1 of the mouse axis! But for some reason Expression 7 for the mouse axis wont work/function at all, which is really strange. It looks good to me with no overlap at all, but instead of functioning properly like Expression 8 for joystick translation, it doesn’t move at all and remains centered.

Here’s the JSON in case I’m overlooking something egregiously obvious, and Thank you So much again!!!

MouseAxisWontWork.json (10.7 KB)

You just have a typo, 0x00100300 should be 0x00010030.

I cant believe I missed that, it works now!!!

Thank you so much for working on such a cool project and being so responsive and providing help. This is such a cool device I can’t wait to keep playing around with it!!!

Also, is there any existing reference for a detailed guide on Expressions? I know you mentioned they operate on Postfix Notation and its akin to psuedoprogramming with the syntax, but I still feel lost looking at it majority of the time. If there isn’t, would you be open to making one?

Again thank you an indescribable amount!!!

Here’s the documentation we have at the moment:

https://github.com/jfedor2/hid-remapper/blob/master/EXPRESSIONS.md