-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enclosure for Tundra Tracker's IO Expansion board #4
Comments
Hello! A member of it already made the tundra's haptics work with the pancake bridge software. (With the same ERM vibration motor I recommended for the pancake) Unfortunately I'm unable to design an enclosure for them as I don't own any. But I can help you with that if you'd like to join our cause :) And about Linux support... I made sure the software is as multi-platform as it can be :3 |
Ah, awesome! I imagine the enclosure will be a bit different using the haptics motor Tundra unexpectedly included with my IO board (it looks like the Switch Joycon form factor they suggest in the description, maybe it's now standard?), but that's something we can work out. I have been pretty busy, so it will be some time until I can contribute measurements/testing/etc. But I'll at least join the guild, and I appreciate the Linux consideration - I know it's niche to VR with Tux, but there are dozens of us :P (I got your poke over on that IRC server, too - no worries, I got the email notification. Though I appreciate your enthusiasm and effort to navigate a platform so few people use nowadays 😅 ) |
I'm still exploring this, but I figured I should share where I am so far…
#!/bin/bash
# Fetch repository with GitHub source code download, or…
# git clone "https://github.com/Z4urce/VRC-Haptic-Pancake.git"
# cd "VRC-Haptic-Pancake"
# Build and activate a Python virtual environment to keep your system clean
if [ ! -d "ignored-from-repo-venv" ]; then
python3 -m venv ignored-from-repo-venv
fi
source ignored-from-repo-venv/bin/activate
# Install/update dependencies into the venv
pip3 install -r BridgeApp/requirements.txt
# Run app
python3 BridgeApp/main.py
# NOTE₁: You need to be inside the Python venv for this to work. Redo the
# "source […]" command if you're running this a second time, or just save this as
# a "run-linux.sh" command in the root of the repository.
# NOTE₂: the app might segfault without tracing enabled for some reason
# You might need to run it like so - this slows it down:
#
# python3 -m trace --count --coverdir=/dev/null BridgeApp/main.py |
Documenting this publicly for those following here, not on the Discord guild: Nearly everything works on Linux, just using the Unfortunately, Tundra Trackers seem to implement Valve's deprecated The problem might be as described on the Steam Community forums:
Dropping the intensity multiplier to (It didn't blink red when I previously put the Using I'll keep looking into this as I have time to investigate. Maybe the |
Doing some very rough experimentation, it seems like the Tundra Tracker stops responding for a short period of time if it's given too many I do not recommend implementing the following in VR Haptic Pancake yet, this is merely something kind of functional that I got with ~15 minutes of poking things: Tweak to --- BridgeApp/app_runner.py
+++ BridgeApp/app_runner.py
@@ -1,3 +1,3 @@
- self.interval_ms = 50 # millis
+ self.interval_ms = 5.1 # millis
self.interval_s = self.interval_ms / 1000 # seconds EDIT 2024-3-9: Changed 5 millis to 5.1 millis, to reduce the likelihood of timing inaccuracy calling And the {
"version": 1,
"server_type": 0,
"server_ip": "127.0.0.1",
"server_port": 9001,
"pattern_config_list": [{
"pattern": "Linear",
"str_min": 0,
"str_max": 80,
"speed": 4
}, {
"pattern": "Linear",
"str_min": 40,
"str_max": 80,
"speed": 16
}],
"tracker_config_dict": {
"LHR-[device-serial-number]": {
"enabled": true,
"address": "/avatar/parameters/HapticsTouchWaist",
"multiplier_override": 9.0,
"pattern_override": "None",
"battery_threshold": 20
}
},
"tracker_to_osc": {}
} EDIT 2024-3-9: Tentatively switched to This ensures that def __pulse(self, index, pulse_length: int = 200):
if self.is_alive():
self.vr.triggerHapticPulse(index, 0, pulse_length)
# HACK: test spacing out pulses
#pulse_max_amount = 3999
pulse_max_amount = 5000
#sleep_min_delay = pulse_max_amount / 1000000
#sleep_min_delay = 5000 / 1000000
if pulse_length > pulse_max_amount:
print("PULSE LENGTH > " + str(pulse_max_amount) + ": " + str(pulse_length))
#while pulse_length > 3999:
# self.vr.triggerHapticPulse(index, 0, pulse_max_amount)
# pulse_length -= pulse_max_amount
# time.sleep(sleep_min_delay)
#if pulse_length > 0:
# self.vr.triggerHapticPulse(index, 0, pulse_length)
# time.sleep(sleep_min_delay) I got the "Identify" command to meaningfully work by uncommenting the lines to repeatedly call |
In brief
Details
While it's possible to wire up the haptic actuator on the side and tape it somewhere, it'd be nice to integrate this with the Tundra Tracker enclosure directly. At the time of my order, Tundra Labs shipped the right haptics actuator with the IO Expansion Board, I'd just need to solder it on.
Looking around, I've not found any existing shared 3D printable enclosures that could hold the haptics actuator.
I noticed your hidden
Ongoing Research
wiki page mentions this is under consideration. If there's anything I can do to help that research, let me know. I'm handy with electronics, though I lack a 3D printer (I can use services such as Craftcloud if needed).This project seems to not be too Windows-centric, either, so I'd be happy to try to help with getting it working on Linux as part of this.
The text was updated successfully, but these errors were encountered: