Other External Controllers

Highlighted
SkitztheCat
Settler

Other External Controllers

So I've been throwing around an idea in my head for a while but I want to use a bluetooth controller for the inputs.  I don't need to track position on the controller at all. I just want to use it as a stand in for controls. Are there any controllers that will hookup wirelessly to the Vive Focus Headset besides the controller which came with it? If not, is there anyway to hookup a different controller which has more inputs? Thanks for the help 

ViveNerd
Settler

Re: Other External Controllers

An interesting idea... since the Focus is an Android device, you should be able to use bluetooth like on any Android phone, but since the direct access to bluetooth is not provided in the UI, you might look into controlling bluetrooth via a plugin such as this one if you are developing on top of Unity. If not, you can find code examples for bluetooth programming in the net. Once you got this solved, you could use a bluetooth controller such as the PS4 controller. Just my 5 cents worth...

Vive Staff

Re: Other External Controllers

@SkitztheCat Good question.

Actually Wave SDK already provide this kind of Plugin SDK for device maker to connect different kind of external devices.

Please take a look on the session of document "Wave PluginKit SDK" for more detail description.

Netvr
Explorer

Re: Other External Controllers

t's very interesting theme. Also I want to know is it possible to connect steamVR controllers to Wave HMD?

I read this document, but could not find the answer for this question.

Vive Staff

Re: Other External Controllers

I haven't tried it. But theoretically from architect design if you implement "Device service" to pass Key events, pose info. etc, then it's possible to connect SteamVR Controller.

In our Labs, we have successfully connect with HTC U12+ as another controller, also our partner connect their propietary 6-Dof controllers via "Device service".

Netvr
Explorer

Re: Other External Controllers

That's really great!

But, the thing I couldn't understand from documentation is how to select concrete device? 

"There may be a lot of HMDs and controllers installed on your device at the same time. You need to select the HMD and controller that will be used by the VIVE Wave™ Settings AP."

What is "Settings AP"?

And what shoud I write in Android manifest instead this

<category android:name="com.htc.intent.category.VRDEV" />

 

Vive Staff

Re: Other External Controllers

  • What is "Settings AP"?
  • Setting AP is in release SDK path: SDK\tools\wavevr_settings-release.apk

Developer can use this tool to select his Controller or HMD DeviceService

 

  • And what shoud I write in Android manifest instead this

<category android:name="com.htc.intent.category.VRDEV" />

 2.0.37/docs/en/PluginkitSdk.html

Please refer SDK release Device sample code:

(1) SDK\samples\SimpleDevice\app\src\main\AndroidManifest.xml

<service

            android:name=".ControllerService"

            android:label="@string/service_controller"

            android:exported="true" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="com.htc.intent.category.VRDEV" />

            </intent-filter>

            <meta-data

                android:name="supportController"

                android:value="true" />

        </service>

 (2) DeviceService sample code.

SDK\samples\SimpleDevice\app\src\main\java\htc\com\vr\sample\simpledevice\

Netvr
Explorer

Re: Other External Controllers

All this things I found in the documentation, but anyway couldn't understand how to do it. Would you please clarify some more questions?

Is it possible to run wavevr_settings-release.apk on a HMD? I did it. But when I ran this service after apk installation, I understood that this service can work only on a phone, because form of this service was only for one eye, not for two and there was no control on the form (on the service) at all. May be I did something wrong?

 

Am I right that string  "<category android:name="com.htc.intent.category.VRDEV" />" mean that we instantiate one device, but ANY device?  Where and what should be to instantiate concrete device (I have several), for example my steamVR controller with concrete serial number or smthg like that?

 

And how many of controllers could be used together at once?

 

thanks in advance

Vive Staff

Re: Other External Controllers

Is it possible to run wavevr_settings-release.apk on a HMD?

[Vive] Using adb command: you have to install setting AP first. Find it in SDK release folder  

wavevr_settings.apk is in 2.0.xx\HVR_SDK\SDK\tools\

adb shell am start com.htc.wavevr.settings/.MainActivity

 

I did it. But when I ran this service after apk installation, I understood that this service can work only on a phone, because form of this service was only for one eye, not for two and there was no control on the form (on the service) at all. May be I did something wrong?

[Vive] after launch the wavevr setting AP. You can install Vysor AP to your PC/NoteBook then link the Miac to your PC/NoteBook.

            You can select the device service in PC side.

 

Am I right that string  "<category android:name="com.htc.intent.category.VRDEV" />" mean that we instantiate one device, but ANY device? 

 

[Vive] We define below categories in our Wave VR.

com.htc.intent.category.VRDEV     indicates Device Service

com.htc.intent.category.VRAPP    indicates VR AP

Define this mean you instantiate a DeviceService and this device Service can contain a HMD or one controller or two controllers

 

Where and what should be to instantiate concrete device (I have several), for example my steamVR controller with concrete serial number or smthg like that?

 [Vive] Not quite sure about this question.  You can call him to see our Device example. SDK\samples\SimpleDevice\app

 

And how many of controllers could be used together?

[Vive]Two controller could be used together. But these two controllers must write in the same Controller DeviceService.

 

Netvr
Explorer

Re: Other External Controllers

Great! Thanks a lot!

Now, I choose the service simple device from sample in configs of WaveVR Settings and I could see in the properties tab several controllers. One of them is Finch3Dof Controller which could be pairing with a HMD by pressing menu button. What should I do next to pair my steamVR controller? Shoud I set properties (name, model, render, manufacturer, firmware, hardware rev) by myself or it sets automatically when it pairs?

Vive Staff

Re: Other External Controllers

Since there is no 2D Android Setting AP on your ROM, please try this command

adb shell am start -a android.intent.action.MAIN -c android.intent.category.LAUNCHER com.android.settings

If this command does not work, try install the Android Setting AP.

You can search from internet how to get Android Setting AP.

Thanks.

Netvr
Explorer

Re: Other External Controllers

This command shows the settings menu on headset. Maybe there should be something else?

Will it help me to pair my controller?

Vive Staff

Re: Other External Controllers

Yes, the controller is pairing under BT protocol so you can connect additional controller just like connect other BT devices.

Thanks.

Netvr
Explorer

Re: Other External Controllers

There is  a problem - I don't know how to do it for other BT devices. Probably I had to start with that.

 

Also, I couldn't see my controller even on phone in the list of visible BT devices.

Vive Staff

Re: Other External Controllers

You may take a reference from below link, and let me know if you meet other problems.

https://android.gadgethacks.com/how-to/android-basics-connect-bluetooth-device-0163780/

Does your controller in pairing mode?