Jump to content

Vive Tracker Haptic pin feedback (Multiple issue please help)


Cresset Tech

Recommended Posts

I also ran into this issue, with the 2018 Vive Tracker, and I think I've figured it out.

My code that used to work fine with the old Vive Tracker no longer produced vibration with the new tracker.

 

When calling SteamVR_Action_Vibration.Execute, you can specify the duration, frequency, and amplitude as parameters. Here's an example of my Unity code:

 

SteamVR_Action_Vibration[] actions = SteamVR_Input.actionsVibration;actions[0].Execute(0, pulseLengthSec, freq, amp, SteamVR_Input_Sources.LeftHand);

With the old tracker, the tracker's output pogo pin would remain on constantly for some duration (oddly, the duration was not actually equal to pulseLengthSec. Setting higher frequencies and lower amplitudes reduced the duration of the time the pin was on, but this isn't really important. The point is that the pin remained solidly on when vibrating).

 

With the new tracker, the pogo pin's output behavior is completely different. Now, instead of remaining on constantly for the vibration duration, it outputs a series of pulses at the specified frequency. The pulses repeat for the specified duration. Amplitude doesn't seem to have any effect.

 

Your multimeter is showing a lower voltage with the new tracker because the pin is no longer constantly on. It switches on and off at the frequency you specify, so your multimeter shows a sort of "average" voltage over time.

 

I believe the result of this change is that we will no longer be able to directly drive a traditional vibration motor (i.e., eccentric rotating mass) directly from the output pogo pin. Instead, the pin should be able to drive a vibrating linear actuator (e.g. this), which requires this type of oscillating signal.

 

This is a nice feature to have, because now software can control the vibration frequency. However, this change will probably break most existing tracker accessories :smileyfrustrated:

 

Here is an oscilloscope capture of the output signal of the new (2018) Vive Tracker showing sequential calls to SteamVR_Action_Vibration.Execute, each lasting 200ms with this list of frequencies: 1hz, 10, 100, 1000, 10000. You an see the frequency of the output pulses increase:

 

Link to comment
Share on other sites

As a quick fix to get your eccentric rotating mass motor working you can try setting the frequency somewhat high (like 1kHZ). This makes the wave fast enough that it is effectively a DC voltage to the motor. The duty cycle is only 50% though, so you'll be driving the motor at half power.

Link to comment
Share on other sites

  • 2 months later...

 is it possible that this behaviour was reverted in later updates? I was using the Haptic pin in the manner that you describe, but now it is only sending a single pulse and I am unable to use my haptic device...

 

Link to comment
Share on other sites

  • 1 year later...

Are there any updates on this topic?

I also run the SteamVR_Action_Vibration.Execute() function and But I couldn't get any signal from the pin of the tracker 2018. I checked with an oscilloscope and it was always 0V.

The tracker is assigned to the handheld device and is updated with the latest firmware.
The SDK is Unity SteamVR Plugin 2.5.0 (sdk 1.8.19).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...