Tracking data from VRPN through nDisplay gives inconsistent results

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

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.