DS4 MotionController tracking prevents 2x Move

I am trying to build a simple level in PSVR which makes use of two Playstation Move MotionControllers. In order to do so I need to turn off tracking of the DS4 tracking.

Due to limitations of the platform, only 2 MotionControllers can be active at any time.

To work that around, I am looking for a mechanism to enable and disable them at runtime. Currently, if 3 controllers are registered on the PS4 (no matter they’re on or off), only DS4 and the Left PSMove work. The right PSMove always fail to register with the following error, even if the DS4 is powered off:

[2017.05.31-16.21.46:357][  2]LogPS4Tracker:Warning: Trying to create a tracker for 2 (HMD,Pad,Move,Gun), but we already have 2 controller trackers and the maximum is 2.  Failing.
[2017.05.31-16.21.46:358][  2]LogPS4Tracker:Warning: Failed to activate tracker 3 when creating it.  Disabling tracking for this device.

Behaviour does not change if:

  • I physically turn off any of the controllers
  • I instantiate fewer UMotionControllerComponents (1, 2, 3 makes no difference)

I would like to do this in C++, but I have also tried with the default VR Template to no avail.

PS4 SDK version: 4.50x.
UE4 version: 4.16.1 built from source

I had a look at the source code and so far not seen any mechanism to prevent a device from registering if it is found on the system, independent from the MotionController.

Am I doing anything wrong?

Pretty sure you can’t get into this on the public answer hub due to partner NDAs. You’re better off asking this in the PS4 sub forum.

My bad. I thought it was handled by tags.

Is it possible to get this post deleted?

From release notes of 4.16:

PSVR controller tracking limit management system.

PSVR can track the HMD and two controllers, but many more devices can be connected. With this system you can manage which controllers are tracked to stay under the limit.

I only need to find out how to set it up.

Also posted the question from the wrong account. Eurgh!

Functionality is in

UMotionTrackedDeviceFunctionLibrary

#include “Runtime/HeadMountedDisplay/Public/MotionTrackedDeviceFunctionLibrary.h”