Custom made locomotion system through hardware modification of gamepads and vr controllers using arduino and sensors

https://streamable.com/j08y6

Going backward in the below video , but I have fixed it just reverting how the motors are mounted.

Still working on fine tuning the walk for smooth walk and sensitivity.

Still work in progress, including its implementation on vr controllers (like mounting it on an old oculus rift controller or on a valve index).

Thinking and trying to implement another solution for vr controllers (using still this system) , that would not require disassembling the vr controller or the gamepad controller.

I have been not giving up on this. I am stubborn and I am still after achieving what I have been wishing to achieve,despite anything and anyone

5 Likes

Look up EDTracker and IRTracker. might give you more Ideas :sunglasses:

2 Likes

Marco for those who donā€™t know is quite the VR entrepeneur enthusiast.

He has backed quite a few vr projects.

6 Likes

Thinking about it, what about some thing like one of these. 6 axis MPU

2 Likes

Thanks! That is for headtracking, correct?

For headtracking I have been using cinemizer headtracking that i made ble

https://community.openmr.ai/uploads/default/original/2X/0/027e9e06a11a84f04e586251795f1743e8f56d9e.jpeg

That is for add headtracking / head movemets for games that are not vr games but regular games that I can play in a vr headset like the quest , on a floating lcd in the headset, fixing the lcd position to the center, but still being able to rotate the head 360 to move in game the camera/view 360

How would you think i could use EDTracker and IRTracker and also the 6 axis MPU . Could you please share your ideas ?

Thank you so much!

2 Likes

I must say that talking to you regularly about vr and gaming and custom made solutions for vr and gaming, is a pleasure and inspiring and of incredible help for also this project and any other idea. Thank you for your time, the time you dedicate talking to me and for your ideas. It is a great have you :slight_smile:

6 Likes

I feel the same and am honored you include in brainstorming on this project. You certainly have a strong dedication to see this through. :beers::sunglasses::+1::sparkles:

5 Likes

The first Flight Controller was made using the Nintendo Wii Controller, and is base off of that, there must be some thing you could do with this :slight_smile:

1 Like

Thank you so much!
It is great been able to talk to you about any idea to explore together :slight_smile:

2 Likes

2 Likes

I have created a github page for the project. Please bare with me because I have no clue how to use github. Any advice and help is very welcome

4 Likes

Testing the shoes

5 Likes

Very impressive looking. :beers::sunglasses::+1::sparkles::trophy:

1 Like

Hey Marco, I recently came across an ArduinoXinput library while setting up my own modified controller(GTA exercise bike). I was having issues getting GTA(and other games/apps) to recognize using keyboards/direct input(tried x360ce) and this solves most of that as the Arduino shows up in windows as an X360 controller.

Iā€™m not sure if this would be compatible with the USB2BT, but if so it could remove the need for servos for the Xinput games.

2 Likes

Hi !

But how would we then be able to control the joystick with the accelerometers and pressure sensors?

I guess we need some sort of arduino coding to be able to directly control the joystick of the arduino gamepad with pressure sensors and accelerometers.

Would you please be bale to share with me the circuit layout of the controller you made ? Do u use arduino uno?

Also, the ArduinoXinput lybrary would be good for regular games that use a gamepad but not for vr.

The idea of the method I am using is that we could control any controller that has joystick and use joystick for locomotion in vr. Not many, but few I think would have potentiometers in the vr controller.

Also, the next step is to attach the setup I made , to the ā€œarduino dueā€ that is connected to a vive tracker and makes a custom vive vr controller with joystick in place of thumbpad.

Part of what you are suggesting is also what i wanted to do next with this vive custom controller , controlling also direcrly the joystick, wothout using the potentiometers. That requires me to ask though who is helping me with the arduino conding ,to make a code that controls the arduino jiystick directly with the accelerometers and not going through the potentiometers

https://www.reddit.com/r/Vive/comments/afqg7z/got_tired_of_waiting_for_knuckles_so_i_made_my/?utm_medium=android_app&utm_source=share

Also, would the library and method you are suggesting work for xbox and ps games? The method i am suggesting can be applied to the xbox or to the ps controllers.

I have made my arduino custom controller based on the above circuit and library but i have ordered the arduino joystick for completimg the circuit . The one i have is broken so i was not able to test the joystick yet :frowning:

2 Likes

Yes, the accelerometer would be mapped to the Y-axis for movement, Iā€™m thinking this would just send a Y axis value instead of controlling the servo.

I am using the GamepadPins sample code as a starting point and I made a modular box with a Pro Micro clone, so thereā€™s no real layout.

Yeah, unfortunately I have mostly given up on that aspect, every emulated workaround Iā€™ve looked into is broken by something being updated. I was just about to launch GTA, and an update broke script hook, so now my setup is partially ā€˜brokenā€™

I thought there was an update to the trackers that disabled the USB host that allowed custom controllers. I see you got a code working though?

No, this is strictly for emulating an X360 controller on windows, but you mentioned:

ā€œThinking and trying to implement another solution for vr controllers (using still this system) , that would not require disassembling the vr controller or the gamepad controller.ā€
I first started my controller by using an X360 controller and modifying parts from Xbox One mini wheel, so I see the benefits/drawbacks of doing this mechanically.

3 Likes

I am getting help for the arduino coding. Are you good enough with arduino ? i am not :frowning: , so I would need help for that to work while instead what I have now needs just some fine tuning, but already works the way it is

But how are the different buttons connected to the arduino? Is there a circuit/skematic for it ?

This is why I was thinking to just hack the controller 's hardware / the joystick , so that no update can break anything . The idea I have posted works only based on arduino coding and requires hacking/hardware hook a vr controller (or any controller) that has a joystick with a potentiometer inside.
Then the issue would remain, how about those games that do not use joystick but thumbpad? But that is a different problem lol . Problems never end!

Some of the buttons seems working but I have no idea if or what is broken compared ot before. Do you know in details what is wrong with it ? I mean, how the guns that work on vive trackers still work ? the ppguns based on vive 1.0 ? Do they still work ? I thought the 2.0 vive trackers are lacking something compared to the vive trackers 1.0. No idea for sure though :frowning:

I am sick and tired that everything breaks with updates :frowning: or that things are not cross platform compatible, this is why I was thinking let me use their hardware and hack it for my benefit. It is a pain to solder and hock thing in and they look ugly, but they supposedly would work forever , when they work

!

!

The 2 mehtods that would supposedly avoid dissasembly a controller, were

  1. use the vive tracker custom controller and control its joystick directly. But you now mentioned that something might be broken with it so it might not work :frowning:

  2. print a 3d mount for these

https://github.com/marcob2178/Arduino-Based-Game-Locomotion/blob/master/20191025_102644.jpg

https://github.com/marcob2178/Arduino-Based-Game-Locomotion/blob/master/20191027_2254g15.jpg

that would move the joystick from the outside without need to wire anything to the potentiometers.

1 Like

No, I have gotten better though, I had actually requested the ino code in the reddit thread you linked earlier. My ā€˜codingā€™ in arduino involves taking an example code and modifying the pin callouts :laughing:

The sample code ā€˜pushesā€™ the button when the pin is grounded: D2 to Ground=B Button for example. Hereā€™s the tutorial that led me to the Github.

I am a big fan of this method for a couple reasons: as you said a software update wonā€™t break it, and Iā€™m not good with the coding side so a mechanical solution is easier.

That is where a code to control the voltage output(+5v/-5v) soldered to the PCB on the controller would work for that situation.

Itā€™s been a while since Iā€™ve looked into this. I was using a Samd board which others were having issues with, and at that time I didnā€™t even know I needed to get board packages/libraries/set port/etc. I think an update caused some issues with the v1 trackers(had to select ā€˜held in handā€™), but the v2 donā€™t allow this IIRC.:thinking:
You clearly have something working(or is this just grounding a pin?), itā€™s just a matter of figuring out the analog input coding.

3 Likes

Thank you, this helps a lot :slightly_smiling_face:

Could you please tell me again what is the problem you are having with it? What is the situation this arduino based controller does not work and why do you think that happens?

Yep :slight_smile:
We are on the same boat my friend

I am not sure I understand. How does a thumbpad works ? I need your help please to understand that part

I do not understand what is the problem they are facing from that issue they have opened on github .
I can see my vive tracker as an hand and I can click the buttons connected to d0 and d2 and a0 and I have the vive tracker performing actions in steamvr.

Nothing happens instaed when clicking the buttons I have connected to d3 and d4. Maybe the pins/functions associated to the pins have changed ? Is there any way to test al the pins, I mean figure out what pin should do what and how to use that pin to send signal to the vive tracker?

Do you mean for the vive tracker custom controller?

If yes, I just copied the circuit done for that riffle/gun and I see that some buttons works, some others I am not sure they work and the joystick I need to test it as soon as I get the joystick. I have to let you know about that idea of the use of the vive tracker 1.0 for he custom controller. Hopefully this week I get he joystick and I can solder the board

I have also got a used (like brand new though) ppgun

https://www.beswinvr.com/product/pp-gun-vr/

I have paid much less for it.

It has a joystick on the side. I did not have the time to test this gun yet, but the idea would be the same as what I am testing with the custom vive tracker controller. If that ppgun works, I do not see why the arduino vive tracker custom controller would not work. They would work the same way.

2 Likes

No, the Xinput Arduino is working fine, I was having problems with a Direct Input Arduino and emulating xinput with x360ce. This shows up in ā€˜Game Controllersā€™ as Xbox 360 for Windows as if it were an X360 wired controller.

Put simply, by using potentiometers to control voltage, this goes into it more.

After re-digging this rabbit hole, I found that ā€˜yes, the usb microcontroller support is disabledā€™, Iā€™m thinking about contacting the site owner about the ino code.

2 Likes