Tracking data from VRPN through nDisplay gives inconsistent results

Our setup

We’re working on a VP setup using Unreal Engine in our studio. We have a single machine running an nDisplay instance with the following [input] line:

[input] id="ViveCTRL"  type="tracker" addr="openvr/controller/LHR-47314A5B@localhost:3884"  loc="X=0.0,Y=0.0,Z=0.0" rot="P=0,Y=0,R=0" front=X right=Y up=Z

Our tracker is an HTV Vive Controller with 4 base stations. We have a VRPN server running, with version 7.33 and the tracker device is being correctly tracked as tested with vrpn_print_devices.exe.

We retrieve the position/orientation data from unreal as follows (with binding set in BeginPlay on same name/channel on “special 1”:

The problem

The moment we retrieve the tracking data in UE from VRPN (unmodified) we get wildly inconsistent results. It’s usually along the lines of 2 axes being combined e.g. moving left-right results in the X and Y values being updated as one. Weirdly enough however, it seemed to work a day before so there was a time it once worked but every test we now run doesn’t give us the results we’re looking for.

Notes

  • We got the VRPN version and binary from this resource: E2: Setup - Virtual Production Toolkit V1 - nDisplay/Vive - YouTube
  • It looks like the Y/Z axis seem to duplicate the X-axis. Whenever we update our [input] axis “front=Y”, right=“Y”, up=“Y” to one single axis it seems the output X axis always returns the correct value. As if the Y/Z axes aren’t properly transmitted.
  • We haven’t been able to see how we can change the VRPN config for vive trackers; no documentations specifies which module to use for this approach.

We found this issue on stackoverflow which exactly describes our problem. The suggested answer could be relevant info here as well.

This post on SO has the exact same issue it appears: unreal engine4 - Using nDisplay with Vive Trackers in UE4 - Stack Overflow