Git Product home page Git Product logo

trueopenvr-drivers's People

Contributors

r57zone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

trueopenvr-drivers's Issues

Mouse emulation

This is just an Idea. Since Moonlight Game Streaming APK can emulate mouse movement with head rotations etc it can be useful to use is for VR?

How do you make a driver?

I want to make a driver like keyboard.dll but have no clue how I tried researching by myself and realized I had no clue what I was doing. So if anyone out there knows please help

Another PSMove centering issue

Anyway.. I think theres another problem
Yes, both controllers will head forward when you press the centering button,
But, after some time the axes would become incorrect and I just realize my roll axis becomes yaw.

After I opened the psmoveconfigtool I notice the psmove controller is still drifted, while in steamvr it is correctly headed towards forward which makes the orientation confused and become uncorrect.

Source Code for Disable.dll driver file

Hello, I was hoping to get the Source code files for the Disable.dll driver file, but I cannot find that file even in the Source code zip provided in the Release section. It would be very helpful if you could provide that file.

Thanks.

Add support for WMR tracking?

I'd like to develop controllers for steamvr that are compatible with my WMR headset without buying any external trackers. If you could add support for the inside out tracking system, that'd be great.

SteamVR Freaks out if using 2 Phones at once

First I tried using only one Phone and it worked fine
but as soon as I pressed "On" on the second one both started flickering
This is using the Packages from the Releases page from TrueOpenVR SteamVR Driver and of the Releases page from TrueOpenVR Core since I am not very good at compiling things

Video showing the issue below:

2022-09-24.17-01-28.mp4

Two IMU not working

hi. i have two Arduino uno and mpu6050. i set the port in ArduinoControllers.ini ( PORT 3 and PORT 17 ).
just port 3 working and port 17 not working. i check port 17 when game is running , it's not busy but port 3 is busy.
i set the one controller ( ShoulderYaw and ShoulderPitch has values ) with port 3, it works .
but port 17 not working even in one controller.
i test port 17 in arduino serial port.it works but not working in steamvr.

Could you support glove controllers?

I have made glove controllers using flex sensors and buttons + joystick mounted on a glove. Would it be possible to add support for these with full finger tracking in vr? If not I am planning to try and learn C and the documentation to try and make my own driver but this will take months to a year for someone that is a complete beginner like me.

EDIT:
It is using an arduino.

Failing to build AndroidControllers

There are no build instrctions so I just tried using MSYS2 MingW GCC but it does not work even after having the required libraries
what do I do?

Нужны Комментарии, Много комментариев.

Не знаю как другим людям, но кажется что не хватает комментариев коде драйверов, особенно (для меня) в драйвере под Ардуино. Есть ли возможность их добавить? Не все функции понятны. Так же интересно как происходит "Общение" контроллера с вашей программой.

Implement SetControllerData - Arduino controller

Is there any plan on implementing SetControllerData function for Arduino controller (ie control a motor or whatever using drivers) ?

If not planned, any guidelines on how to do so ? I would love making a PR for this feature !

ps move controller position issue in steamvr

hello I have a problem with the position of the controllers in steramvr. I use Psmove service for x y z tracking (ping pong ball with led, not original playstation controller) and phone with your for yaw pitch roll controlling app.
everything works fine only the controller is far behind me. is it possible to change the position so that it was ahead of me?

already tried pressing "Grip" + "System" for reseting and nothing happens

Regards

Arduino Uno Wifi Rev 2 not working

I am trying to use a pair of Arduino Uno Wifi rev 2's, which each have LSM6DS3 IMUs.
But the problem is it isn't working. When I go into Steam VR, I see the controllers but rotating them doesn't do anything.
When I run GetData or GetData2, I just get a random position and 0 for pitch, roll, and yaw for both controllers.
I tested just printing the pitch, roll and yaw values to serial and they work.
Here's my code:

#include <Arduino.h>
// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include <Arduino_LSM6DS3.h>
#include "MadgwickAHRS.h"

// initialize a Madgwick filter:
Madgwick filter;

#define INTERRUPT_PIN 2  // use pin 2 on Arduino Uno & most boards
#define LED_PIN 13 // (Arduino is 13, Teensy is 11, Teensy++ is 6)
bool blinkState = false;

//Controller TrueOpenVR

#define GRIP_BTN  0x0001
#define THUMB_BTN 0x0002
#define A_BTN   0x0004
#define B_BTN   0x0008
#define MENU_BTN  0x0010
#define SYS_BTN   0x0020

//Digital pins number / íîìåðà öèôðîâûõ ïèíîâ
const byte TriggerBtnPin = 3;
const byte GripBtnPin = 4;
const byte ThumbStickBtnPin = 5;
const byte MenuBtnPin = 6;
const byte SystemBtnPin = 7;

//Button for emulating stick movement
const byte UpStickPin = 7;
const byte LeftStickPin = 8;
const byte RightStickPin = 9;
const byte DownStickPin = 10;

float ctrl[12];


// ================================================================
// ===                      INITIAL SETUP                       ===
// ================================================================

void setup() {
    if (!IMU.begin()) {
      Serial.println("Failed to initialize IMU!");
      while (1);
    }

    // initialize serial communication
    // (115200 chosen because it is required for Teapot Demo output, but it's
    // really up to you depending on your project)
    Serial.begin(115200);
    filter.begin(104.00);

    //Setup pins
    pinMode(TriggerBtnPin, INPUT_PULLUP);
    pinMode(GripBtnPin, INPUT_PULLUP);
    pinMode(ThumbStickBtnPin, INPUT_PULLUP);
    pinMode(SystemBtnPin, INPUT_PULLUP);
    pinMode(MenuBtnPin, INPUT_PULLUP);

    //Button for emulating stick movement
    //Êíîïêè äëÿ ýìóëÿöèè äâèæåíèÿ ñòèêîâ
    pinMode(UpStickPin, INPUT_PULLUP);
    pinMode(LeftStickPin, INPUT_PULLUP);
    pinMode(RightStickPin, INPUT_PULLUP);
    pinMode(DownStickPin, INPUT_PULLUP);

    // NOTE: 8MHz or slower host processors, like the Teensy @ 3.3V or Arduino
    // Pro Mini running at 3.3V, cannot handle this baud rate reliably due to
    // the baud timing being too misaligned with processor ticks. You must use
    // 38400 or slower in these cases, or use some kind of external separate
    // crystal solution for the UART timer.
    while (!Serial);
    // initialize device
    //Serial.println(F("Initializing I2C devices..."));
    pinMode(INTERRUPT_PIN, INPUT);
    // configure LED for output
    pinMode(LED_PIN, OUTPUT);
}



// ================================================================
// ===                    MAIN PROGRAM LOOP                     ===
// ================================================================

float xg, yg, zg;
float xa, ya, za;
float pitch, roll, yaw;

void loop() {
  if (IMU.gyroscopeAvailable() && IMU.accelerationAvailable()) {
    IMU.readGyroscope(xg, yg, zg);
    IMU.readAcceleration(xa, ya, za);
    // update the filter, which computes orientation:
    filter.updateIMU(xg, yg, zg, xa, ya, za);

    // print the heading, pitch and roll
    roll = filter.getRoll();
    pitch = filter.getPitch();
    yaw = filter.getYaw();
  }


  //Set pos for testing
  ctrl[0] = 0; ////x -0.1
  ctrl[1] = 0;  //y -0.3
  ctrl[2] = 0; //y -0.1
  //If X,Y,Z positions are zeros, then the position is calculated based on IMUs
  //Åñëè X,Y,Z ïîçèöèè ïî íóëÿì çíà÷èò ïîçèöèÿ ðàññ÷èòûâàåòñÿ íà îñíîâå IMUs
  
  ctrl[3] = yaw + 180.0;
  ctrl[4] = roll + 180.0;
  ctrl[5] = pitch + 180.0;

  //Serial.print(yaw);
  //Serial.print("\t");
  //Serial.print(pitch);
  //Serial.print("\t");
  //Serial.println(roll);

  //Position shoulder
  ctrl[6] = 0;
  ctrl[7] = 0;

  //Buttons
  ctrl[8] = 0; //Buttons
  ctrl[9] = 0; //Trigger
  ctrl[10] = 0; //ThumbX
  ctrl[11] = 0; //ThumbY

  //Checking press buttons 

  int CtrlButtons = 0;
  if (digitalRead(GripBtnPin) == LOW)
    CtrlButtons |= GRIP_BTN;

  if (digitalRead(ThumbStickBtnPin) == LOW)
    CtrlButtons |= THUMB_BTN; 

  if (digitalRead(MenuBtnPin) == LOW)
    CtrlButtons |= MENU_BTN;

  if (digitalRead(SystemBtnPin) == LOW)
    CtrlButtons |= SYS_BTN;

  //Buttons
    ctrl[8] = CtrlButtons;

  //Trigger
  if (digitalRead(TriggerBtnPin) == LOW)
    ctrl[9] = 1;

  //Stick emulation
  if (digitalRead(UpStickPin) == LOW)
    ctrl[11] = 1; //Up

  if (digitalRead(LeftStickPin) == LOW)
    ctrl[10] = -1; //Left

  if (digitalRead(RightStickPin) == LOW)
    ctrl[10] = 1; //Right

  if (digitalRead(DownStickPin) == LOW)
    ctrl[11] = -1; //Down

  //Output binary
  if (Serial.availableForWrite() > 0) {
    Serial.write((byte*)&ctrl, sizeof(ctrl));
  }

  //blinkState = !blinkState;
  //digitalWrite(LED_PIN, blinkState);
}

And my ArduinoController.ini: (the arduinos on on COM ports 7 and 8

[Main]
ShoulderYaw=10
ShoulderPitch=25
ScalePos=0.005
ScalePosZ=0.010
OffsetPosZ=0.1

[Controller1]
ComPort=7

[Controller2]
ComPort=8

DirectMode support

It will be nice to have direct mode supported as it will reduce latency up to 20ms.
(ты говоришь по русски? ))

Controller buttons not working, and even not detected by some VR Apps.

I'm using the latest iteration of TrueOpenVR , and I am using the provided SplitterAdvance.dll with the configurations in the ini files as:

  • Both HMD and all the controller driver options (Position, Rotation, Buttons) to Keyboard.dll

I am able to see all the buttons working in the GetData.exe sample program

test_app

But when trying to use it in SteamVR, these buttons do not respond or work. Rest all the keys for orientation and position control work perfectly fine. Even if I change the drivers to something else (like ArduinoController.dll), the problem still persists.

Inside of SteamVR under the Test Controller setting it shows just a question mark.

test_controller

I'm on a Windows 10 Machine

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.