Wednesday, August 23, 2017

Dev update #33 - CPU optimizations and NOLO tweaks

We're deploying few tweaks and fixes. They are already available in Gear VR beta channel and should be available for all other Android devices later today.

Latest beta versions are:
  • Gear VR: VRidge for Gear VR 1.5.0
  • Android: VRidge 1.5.3 
This is mobile side update only. You don't need to update desktop clients.


---

Tracking update rate fixed

In version 1.4 we introduced a new networking protocol but the implementation wasn't optimized too well. It resulted in many tracking frame drops every second (up to 20). If you are used to 60+ FPS gaming it probably felt terrible because the tracking update rate was hovering around 40 updates per second.

CPU optimizations

We're also changing synchronization model to put lower load on CPU. It should greatly reduce heat generation and battery drain compared to v1.4. On average, your CPU load should be reduced by ~50% compared to v1.4. In case of Pixel XL or Galaxy S6, VRidge CPU load should now stay below 20-30% (measured with Android Studio + ADB).

NOLO wireless changes

  • We're following an advice from NOLO and we're changing default tracking mode so the phone sensors are used for rotational tracking. You can still switch to NOLO IMU in mobile app settings but generally we found that phone sensors have lower tracking latency.
  • We weren't aware that NOLO hardware has recenter built-in at the firmware level. See calibration paragraph below for details.
  • We're removing nolo flip-around hotkey. It might come back in the future if many people request but currently it was causing too many problems with mixed tracking mode.

NOLO wireless calibration

  1. Put your headset on, turn on controllers and spin them around for 10-15 seconds. It can take up to 10-15 seconds for the magnetometer to become stable. It will be probably in wrong rotation when it stops drifting.
  2. Double tap system (bottom) button on both controllers. Re-center is per controller so you can recenter them individually. VRidge will also register this hotkey as "recenter" so it won't go out of sync.
  3. [Optional] Press system button on any of your NOLO controllers and go to settings in SteamVR VR dashboard. Hit "reset position in there" to make sure you are at the center of playing field.

If you feel that your height is wrong or controllers are out of sync with your head rotation, run SteamVR room setup by right-clicking on SteamVR floating window and selecting "room setup" in there. You may need to run room setup again if your relative position to the base station changes.

NOLO wireless + VRidge for Gear VR 2017

Galaxy phones plugged into Gear VR 2017 can host both Gear VR and NOLO devices which enables fully wireless experience in this scenario.
  1. Install VRidge for Gear VR 1.5 Beta (if you have installation problems, please see this article).
  2. Plug in your NOLO into Gear VR with Micro USB - USB-C cable. You need to have it connected before you start VRidge.
  3. Start VRidge for Gear VR app so it's on "Please insert your phone into Gear VR" screen.
  4. Insert your phone into Gear VR.
  5. [Just once if you select "always use this app"] You will be asked which app do you want to use with NOLO. Select VRidge for Gear VR by looking at it in VR and tapping your GVR touch pad. You can select "always use this app" to skip this step in the future. You can always reset this "always use this app" by long pressing VRidge icon to access Android app info and then clearing defaults in "set as default" subscreen. If your VRidge (Cardboard) is always launching first without an option to select GVR edition, you might need to clear its defaults in the same way.
  6. Start SteamVR as usual in desktop app.

Things that are missing

We want to finish NOLO integration by implementing following things:
  1. Vibrations.
  2. Top-down tracking mode, or at least trying to do it with mobile SDK.
  3. Throwing things. Currently controllers don't provide their acceleration / velocity in mobile SDK so throwing motion doesn't work properly in some games.
We need to work with NOLO devs to code 3&4 properly so we don't know which of these will come first. They are quite busy with their driver too so it sometimes takes a bit to get all the answers and changes we need. We can sort of do 3&4 on our own but we don't want to release it as a temporary hack without future-proofing it by working with NOLO devs directly. We want to be sure that our hacks are not broken by some future firmware update

In the meantime we're still working on a lot of things that are not related to NOLO, we should have more news in upcoming weeks.

Construct VR shutting down

Yesterday Construct VR announced that it's shutting down its platform. We are looking at other solutions to host VRidge for GearVR app but we don't have replacement ready yet.

We're very surprised to see this announcement. Construct VR team and platform was a pleasure to work with and we're really sad that their journey ends here. We wish them luck in their future endeavours. Your contribution to VR world will be remembered!

13 comments:

  1. Good to see such quick work on improvements in the beta. can't wait till the official version 2.0 comes out.

    ReplyDelete
  2. Replies
    1. Should be if you're using the beta 1.5.0 on your PC along with 1.5.x on your mobile device. On the desktop app, if you go to settings > VRidge > Other settings, the check mark for audio streaming should be there. If that's checked and its still not working you might have another issue and might want to contact support. I'm using 1.5.3 on a OnePlus One and the audio has been working for me.

      Delete
  3. Thanks for your reply, just waiting for 5ghz router and then gonna try it out..

    ReplyDelete
  4. I wonder why NoloVR + GearVR 2016 Edition isn't supported although it has USB passthrough. At first I thought I was doing something wrong. The phone mentions that the Nolo device is plugged into the GearVR, but it doesn't work. After seeing that others have the same problem (daleytech on youtube) I gave up trying it. But I still hope this could be fixed on the software side. If it's a hardware related problem, Lyrobotix shouldn't have offered the GVR2016 edition in their kickstarter campaign.

    ReplyDelete
    Replies
    1. Hi!! I cn confirm that NoloVR + GearVR2016 works fine.
      This is how:
      1- Uninstall the vridge std, usb anywhere, and vridge for gearvr (and reset all data).
      2- Reinstall only the vridge for gearvr beta.
      3- Plug in the nolo to the gearvr.
      4- Started the vridge app and plug the phone to the gearvr. Then the screen must show up the message asking access to the nolo. Of give all permision needed.
      5- Start to play fully untethered!!!

      Delete
    2. Thanks a lot. I was about to give up, but your reply motivated me to try it again. So I reset my phone and did everything u advised. At first I had the same problem again: VRidge told me that a USB device is plugged in, but it didn't show the "use as default" option, so it wasn't working. After that I plugged the head tracker directly into the phone and this time (due to the reset of the phone) it asked me if I want to use the device with Vridge GearVR as default. After plugging the Nolo back to the GearVR it finally worked like a charm.

      Unfortunately it caused a new problem: When Nolo is plugged in, the "phone gets too hot" message appears faster than before. It's strange, that I can use my phone (Galaxy Note 4) in any regular cardboard at full brightness for hours without any issues. But in GearVR (without backplate) it gets too hot after 20-30minutes of gameplay at half brightness.
      I guess the GearVR software is really "careful" with older phones and sets some unrealistic max temperatures to sell more of their new phones. I'm quite sure, that the whole GearVR thing worked better before updating to Android 6.0 and newer Occulus versions. But maybe it's just my phone getting old.

      Should I...:
      1. ... root my phone to undervolt and underclock the CPU/GPU part? Which of those causes more heat and what are the minimum clocks needed to encode the Stream at ~20MBit/s at 2K res? Could I change the max temperature settings of the GearVR by rooting my phone?
      2. ... renew the thermal paste of the phone (got some thermal grizzly kryonaut left)
      3. ... buy a fan for the GearVR. This thing is already a heavyweight - might not be a good idea to attach more weight to it. Standing in front of a big fan would be an alternative (but after the ceiling update gets released this option won't work when I turn around)
      4. ... buy a new phone (no money :_( and before I waste 500-1000$ for a new Samsung phone just to use it as a DIY VR solution I'd rather buy an Occulus Rift, Vive or Pimax).

      Did I miss something? Any suggestions are welcome. =)

      Delete
  5. Is everybody having the random phantom button presses?? I am having constant screenshots being taken, literally every couple of seconds and also the steam menus keep popping up.. this makes paying untethered unplayable. I'm using the normal beta versions as opposed to the gear vr ones.

    ReplyDelete
    Replies
    1. All the time. Last time I tried to use nolo it was nothing but constant screen shots. I thought I was pressing something by accident, until I put down the controllers and it still kept happening.

      Delete
    2. Can i ask what phone you have? As I'm using a redmi note 3 pro and someone else with the same phone is having the same problem..

      Delete
    3. Well i guess its probably just something to do with the driver and hopefully riftcat will be able sort it... Fingers crossed!!

      Delete