Hello everyone.

The Mixed Reality Forums here are no longer being used or maintained.

There are a few other places we would like to direct you to for support, both from Microsoft and from the community.

The first way we want to connect with you is our mixed reality developer program, which you can sign up for at https://aka.ms/IWantMR.

For technical questions, please use Stack Overflow, and tag your questions using either hololens or windows-mixed-reality.

If you want to join in discussions, please do so in the HoloDevelopers Slack, which you can join by going to https://aka.ms/holodevelopers, or in our Microsoft Tech Communities forums at https://techcommunity.microsoft.com/t5/mixed-reality/ct-p/MicrosoftMixedReality.

And always feel free to hit us up on Twitter @MxdRealityDev.

Anybody got a gamepad connected to Hololens yet?

"Gamepad support via raw HID" is all I have heard so far, with no details beside. I've tried unsuccessfully to pair a couple of different older pads with a device, I'll try to pick up a Win10 compliant model tomorrow if I can find one. My goal is to use this in a Unity app - anyone else have any info to share?

Best Answer

«1

Answers

  • @headcasegames,
    If the gamepad supports Bluetooth, then you should be able to pair it to the HoloLens. This document explains the limitations and steps for pairing a Bluetooth device.

  • yeah, I tried to get the Hololens to see a few different bluetooth controllers (Xbox 360, Xbox One, a third-party PC controller). It could "see" all but the Xbox One controllers in the Bluetooth list, but wouldn't pair with any of them. The Xbox One controller it wouldn't even see.. I think there is gonna be quite a bit more to it than simply "showing up with a controller" but I refuse to believe that it's gotta be a big ordeal in the longer run..

  • Neither the Xbox 360 nor the Xbox One controllers are Bluetooth, so it is not expected for them to work.

    Two questions:
    1) Can you share the make and model of the third party PC controller?
    2) What makes you think it sees the 360 controller?

  • this was the 3rd part controller https://steelseries.com/gaming-controllers/stratus-xl-for-windows-and-android
    I noticed something popping up on the bluetooth screen when I powered on the 360 controller, but in hindsight it must have been some neighbor's device just showing up in the range.
    On a reddit post, someone said the following:
    "It would need to be a Bluetooth controller that supports HID mode. The latest Moga controllers support this mode, and I have one so I could test it. But you'd have to write something in unity to handle it. I don't know if you could just use Mogas SDK because it must be compatible with UWP."

    Anyway in the meantime I've discovered a very filthy workaround. I got an Xbox One controller, an adapter to plug it into my Win10 PC, and I bound it with JoyToKey (http://joytokey.net/en/). Then with the UWP companion App running on my PC, I was able to send keystrokes via the controller in the "keyboard mode" after writing a script in Unity to accept the keystrokes from the controller.

    Yeah it was nasty, and took some futzing - and it means that I need to be within range of my PC - but it worked from across the room, and fairly well! It will have to do in the meantime until I can get a solution where a controller will natively work with the device rather then beaming all sorts of stuff back and forth like a maniac.

  • The PlayStation DualShock controller supports Bluetooth, has anyone tried that?

  • So is it correct that the steel series StratusXL (linked in the previous post) doesn't work? Not using HID? Has anyone had success with any controller and recommend one to use that works? This should be simpler and the idea of using a controller to "drive" holographic "things" around should be pretty obvious and apply to a wide range of applications not just games. Are there any plans for wider support of these devices or is Microsoft providing one alongside the clicker (like Samsung having a controller to go with the GearVR).

  • steelseries, I couldn't get it to pair.

  • edited June 2016

    I've been able to successfully pair multiple controllers via Bluetooth to my HoloLens, but none of them "work" once paired.

    Interestingly, the OUYA controller (don't laugh) I paired has a basic trackpad in the center (similar to a PS4 controller), and it actually reads as a regular trackpad and works for mouse input on my HoloLens. Of course, the buttons/sticks don't do anything, but an interesting result, nonetheless.

    These are the controllers I've paired:
    -PS4 controller
    -OUYA controller
    -ASUS Gamepad (generic Bluetooth controller, shipped with Nexus Player)

  • Here's interesting bit of news. The new Xbox One controller supports Bluetooth. Are you thinking what I'm thinking?

    http://www.winbeta.org/news/e3-2016-xbox-one-s-controller-adds-bluetooth-support

  • Oooo, nice.

  • I paired the Matricom G-Pad. I haven't been able to get an application aside from the pairing app to actually 'see' it.

    ===
    This post provided as-is with no warranties and confers no rights. Using information provided is done at own risk.

    (Daddy, what does 'now formatting drive C:' mean?)

  • LlnnLlnn
    edited June 2016

    I could connect and get an input in game of a gamepad HID using the Universal Windows Platform(Windows.Devices.HumanInterfaceDevice), but I had to manage the buffer stream.

  • Huh. It looks like it may be a Unity runtime thing, then. Which actually makes sense; they probably just haven't implemented the gamepad Input system for this platform yet.

    Would you be able to post a brief tutorial or a rough outline on your workflow (or even just some relevant links)? I'd love to hack something together myself, but I'm relatively new to Universal Windows Platform.

  • These links were really helpful:
    https://msdn.microsoft.com/en-us/library/windows/apps/bg182882.aspx#four
    https://msdn.microsoft.com/en-us/library/windows/apps/dn263091.aspx

    Basic you need to find the vendorId , productId , usagePage , usageId of your gamepad, these itens can be found in the developer documentation of your device, but if you are unlucky like me and your device do not have a developer documentation, you need to discover it, Try one of this options:
    1:https://support.shippingeasy.com/hc/en-us/articles/203086919-How-to-Find-the-Vendor-ID-VID-and-Product-ID-PID-for-my-USB-scale-Applet-Integration-
    2:http://digital.ni.com/public.nsf/allkb/335A90747734097886257070006415B9
    3:http://superuser.com/questions/977450/usb-vendor-and-product-id

    After that your need to add in your manifest, inside Capabilities, a DeviceCapability with your information. In my case that I was using the Samsung Gamepad GP20:

         <DeviceCapability Name="humaninterfacedevice">
                   <Device Id="vidpid:04E8 A000">
                     <Function Type="usage:0001 *"/>
                   </Device>
                 </DeviceCapability>
    

    Now you can follow the code example on the first link and complete the function EnumerateHidDevices, and you will connect to a device. Now you can create a function that will be called every time that the gamepad send something:

        private void OnInputReportEvent(HidDevice sender, HidInputReportReceivedEventArgs e){
                        this.UpdateData(((HidInputReport)e.Report).Data);
        }
    

    and add in the EnumerateHidDevices function after you get the device:

    TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs> input = new TypedEventHandler<HidDevice, HidInputReportReceivedEventArgs>(this.OnInputReportEvent);
    device.InputReportReceived += input;
    

    On the Function OnInputReportEvent, ((HidInputReport)e.Report).Data will be a Windows.Storage.Streams.IBuffer, that I am sending to my function UpdateData to parse the bits...

    My final code:
    https://github.com/llnns/Hololens-Tests/blob/master/test.cs

    Remember that you can create a UWP project on your VisualStudio to testthis easily, if it works there it will work on Hololens.

    Also, when you transfer your code to unity use #if WINDOWS_UWP in the code because unity does not have the UWP libraries and will complain, then this code will only be compiled when you are building and deploying to a UWP environment(Hololens included).

    So, if anyone has any suggestion I will appreciate, It was my first time using UWP and HID devices.

  • Wonderful. This is perfect. Thanks so much for doing the legwork on this! I'll be sure to report back any of my own findings as I implement it in my projects.

  • BrekelBrekel ✭✭

    You can also stream data from several XBox controllers from a PC over WiFi.
    Check this forum post: forums.hololens.com/discussion/1374/toolset-for-using-xbox-controllers-with-hololens#latest

  • Nice! I'm still invested in developing an implementation without needing to use my PC as a go-between, but this, with its multiple controller support, will actually allow for asynchronous gameplay possibilities.

  • Alright so I got my hands on a brand-new Xbox One S controller tonight. Hololens saw it and paired with it easily (gave it a little controller icon as well). As expected, it didn't simply "plug n play" with my working Unity scene. I tried the tip from the scanner page above to try and find the VID/PID but it doesn't look like it has them?
    Outside of Unity C# I am super-noob with coding, but very determined to keep investigating this thing. I'll mess with it some more after work tomorrow night.
    If anyone has any further suggestions please share..
    @Llnn @NobleRobot I might hit you guys up for some aid if you don't mind?

  • @headcasegames Have you tried the Xbox app and game streaming? If you have an Xbox. That should work with the new Xbox One S Bluetooth controller. Just as a control.

  • edited August 2016
    I don't have an Xbox one & I'm not concerned to be able to control that device thru the Hololens at this point. What I am interested in, is building a Unity executable that runs directly on Hololens and being able to send input to it directly from the Bluetooth gamepad.
  • Gamepad support for the Xbox Wireless Controller S sounds like it is now official.

    It looks like you need to install a controller update.

    Windows Holographic User Group Redmond

    WinHUGR.org - - - - - - - - - - - - - - - - - - @WinHUGR
    WinHUGR YouTube Channel -- live streamed meetings

  • my xbox s controller came in the mail this morning. As soon as I can get my HoloLens updated and try it out. I will report back.

  • Got my S controller today. It partially pairs with the HoloLens. I say partially because the HoloLens says it's paired but the controller never stops flashing like it does when I pair it with a Windows 10 machine. HoloLens apps don't seem to see it either.

    I tried updating the HoloLens to 14393. That did not fix it. I also tried updating the controller with the XBOX Accessories app but it says the firmware is already up to date.

    Our Holographic world is here

    RoadToHolo.com      WikiHolo.net      @jbienz
    I work in Developer Experiences at Microsoft. My posts are based on my own experience and don't represent Microsoft or HoloLens.

  • Glad to see I am not the only one working on this! Let's keep this thread updated as we search for a solution.
    I also got the steadily blinking light - haven't tried a device update on the controller yet. I'll put my HDid findings etc in here this evening.
    Also I have a unity package I can upload if anyone would like a controller test scene to work with.

  • Wait a minute, it WORKS!

    https://youtu.be/EKCKm1PZizw

    Two things:

    1. Your HoloLens must be updated to 14393
    2. Your S controller must be updated as linked above

    IMPORTANT: I could NOT get the update to work by connecting the controller to my PC via USB. It just told me there were no updates. I was finally able to get the update applied by pairing the controller with my XBOX One.

    Yes, the frame rate is terrible but that's the sample "Bunny Advance" ROM that comes with VBA10.

    Our Holographic world is here

    RoadToHolo.com      WikiHolo.net      @jbienz
    I work in Developer Experiences at Microsoft. My posts are based on my own experience and don't represent Microsoft or HoloLens.

  • Unfortunately based on this thread from the unity forums we still need to wait for one change to come through the pipeline to get them to work with Unity. I am going to try anyways... we will see

    http://forum.unity3d.com/threads/has-anyone-gotten-a-controller-to-work-on-hololens-unity-yet.414122/

  • Ok, I finally found some other people that can't upgrade the controller via the accessories app. Is this a push for me to finally buy the Xbox One S, MS? ;-) Push out the update please!

  • edited August 2016

    I did the Hololens software update and the Controller update as well (on an Xbox One, it doesn't yet work doing it through PC). Since then the controller is recognized, it not only pairs but also says it is connected & the light no longer flashes on the controller (it stays on). I was able to get it to play Crossy Road which I downloaded from UWP App Store just fine. But alas, still no love in Unity.. I put
    DeviceCapability Name="humanInterfaceDevice" /
    into the Unity manifest and it didn't help/hurt anything (activated bluetooth as well for good measure) so at this point I am going to suspect it's going to require an update on their end..?

  • edited August 2016

    Seems like we're going to have to wait for a Unity update for this to be a plug-and-play solution (a Unity staff member acknowledged the issue in a forum post last week). In the meantime, though, with the Anniversary Update it looks like we can bypass Unity and use UWP's gaming input API in our VS solutions.

    https://msdn.microsoft.com/library/windows/apps/windows.gaming.input

    I've always hated Unity's input manager anyway, so... ;-)

    I don't have time to monkey with it this week (to my growing frustration), but my understanding is that this API is not exclusive to XInput devices, meaning we can probably get our PS4 and other BT controllers working, too, even before Unity delivers its solution.

Sign In or Register to comment.