109 lines
5.7 KiB
Markdown
109 lines
5.7 KiB
Markdown
---
|
|
weight: 300
|
|
title: Bigscreen Beyond
|
|
---
|
|
|
|
# [Bigscreen Beyond Driver](https://steamdb.info/app/2467050/)
|
|
|
|
You can get the "Bigscreen Beyond Driver" app from Steam working via Proton by following these instructions:
|
|
1. use a Proton version >=10 that has access to `PROTON_ENABLE_HIDRAW` env var; `Proton Experimental [bleeding-edge]` works well
|
|
2. set `PROTON_ENABLE_HIDRAW=0x35BD/0x0101 %command%` as your launch arg for the `Bigscreen Beyond Driver` under `Properties`
|
|
3. OPTIONAL: download/copy a SteamVR Windows install somewhere and when the driver is open, set the SteamVR path to where you placed the Windows install of SteamVR
|
|
|
|
The "Bigscreen Beyond Driver" and most of its features should be working fine after doing the above!
|
|
|
|
Note that currently eye camera firmware loading and updates do not work, but HMD firmware updates do work.
|
|
|
|
## Download Windows SteamVR via SteamCMD
|
|
You can easily downlwad the Windows version of SteamVR via SteamCMD. To do this:
|
|
1. [Download SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD#Linux)
|
|
2. Run this command somewhere you can create directories (i.e., your home directory):
|
|
```sh
|
|
mkdir steamvr_win && steamcmd +@ShutdownOnFailedCommand 1 \
|
|
+@sSteamCmdForcePlatformType windows \
|
|
+force_install_dir $(realpath steamvr_win) \
|
|
+login anonymous \
|
|
+app_update 250820 validate \
|
|
+quit
|
|
```
|
|
This will:
|
|
- Create a directory in the current directory named `steamvr_win`
|
|
- Download and validate Windows SteamVR into it.
|
|
|
|
Note: your home directory is accessible under `Z:\home` by default in Proton.
|
|
|
|
## Easier Device Mode Swapping
|
|
|
|
You can also swap modes more easily without using the "Bigscreen Beyond Driver" if your device is set to 75hz mode via `XRT_COMPOSITOR_DESIRED_MODE` for an Enivison profile.
|
|
1. `XRT_COMPOSITOR_DESIRED_MODE=0` is the 75hz mode
|
|
2. `XRT_COMPOSITOR_DESIRED_MODE=1` is the 90hz mode
|
|
|
|
You can verify which modes are which by using a tool like `xrandr` with the HMD plugged in. The top two modes are the relevant ones used here and are listed in order, starting at an index of 0.
|
|
|
|
## Bigscreen Beyond 1/2/2e `udev` Rules
|
|
|
|
You may need these udev rules (ie: in `/etc/udev/rules.d/`) for full functionality.
|
|
|
|
```udev
|
|
# Bigscreen Beyond
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", MODE="0660", TAG+="uaccess"
|
|
# Bigscreen Bigeye
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0202", MODE="0660", TAG+="uaccess"
|
|
# Bigscreen Beyond Audio Strap
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0105", MODE="0660", TAG+="uaccess"
|
|
# Bigscreen Beyond Firmware Mode?
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="4004", MODE="0660", TAG+="uaccess"
|
|
```
|
|
|
|
## Bigscreen Beyond 2e Eyetracking via Baballonia under Linux
|
|
|
|
### Requirements:
|
|
* Windows 10/11 dual-boot availability or separate Windows 10/11 machine
|
|
* Some form of re-streaming the Bigeye camera to bypass broken `v4l`/`uvcvideo` default drivers; `libuvc` is known to work, as does `cameractls` for viewing the cameras as well
|
|
* ie: `go-bsb-cams` modified from `garymcbay/mjpeg` for this purpose by @lillia
|
|
|
|
To have functioning eyetracking while using a Bigscreen Beyond 2e under Linux, you will currently need to supplement the Baballonia portion of the software stack via Proton.
|
|
|
|
The full stack can be pictured as such:
|
|
{{% mermaid %}}
|
|
graph TB
|
|
E[Bigscreen Beyond 2e]-->F
|
|
F[Bigscreen Bigeye]-->A
|
|
E-->M[Monado]
|
|
M-->O[OpenComposite]
|
|
M-->X[XRizer]
|
|
O-->D
|
|
X-->D
|
|
A[go-bsb-cams using libuvc] --> B[Baballonia.Desktop.exe] --> C[VRCFT.Avalonia] --> D[VRChat/etc.]
|
|
subgraph Linux Native
|
|
A
|
|
C
|
|
E
|
|
F
|
|
M
|
|
O
|
|
X
|
|
end
|
|
subgraph Proton/Wine
|
|
B
|
|
D
|
|
end
|
|
{{% /mermaid %}}
|
|
|
|
`go-bsb-cams` can be found here: https://github.com/LilliaElaine/go-bsb-cams
|
|
|
|
`Baballonia` releases can be found here: https://github.com/Project-Babble/Baballonia/releases
|
|
|
|
`VRCFT.Avalonia` releases can be found here: https://github.com/dfgHiatus/VRCFaceTracking.Avalonia/releases
|
|
|
|
You will need to boot into Windows and use `Baballonia.Desktop` there in order to train any and all models as needed so that you can then transfer them over to your Linux filesystem. They are typically stored at `%APPDATA%/Roaming/ProjectBabble/Models` on Windows and can be loaded from wherever you like via the `Babbalonia.Desktop` GUI.
|
|
|
|
Then you can start `Baballonia.Desktop.exe` via `Proton` as a "non-steam game" and tell it to load your pre-trained model, the `Baballonia` setup executable can be run first and then you'll want to point the Steam Library entry to the proper `Baballonia.Desktop.exe` afterwards for future launches.
|
|
|
|
**NOTE:** If you're using an Nvidia GPU you'll need to disable `GPU Acceleration` for it to track the full volume as it seems to be weirdly clamped while `GPU Acceleration` is enabled under `Proton`.
|
|
|
|
`Baballonia.Desktop` can be given the `http://127.0.0.1:8080/stream` endpoints for each camera if you're using `go-bsb-cams` to load the cameras. You'll need to adjust cropping and brightness for the cameras as necessary, but it should allow you to easily select the whole left/right areas automatically for the Bigeye in particular.
|
|
|
|
Ensure `Baballonia.Desktop` is set to provide `Eye` or `Both` tracking to `VRCFT.Avalonia`, alongside the `Native OSC` option if desired, and then launch `VRCFT.Avalonia`. If successful, you should see some small transfers of data, assuming the `VRCFT-Babble` module is loaded in `VRCFT.Avalonia`.
|
|
|
|
Assuming all goes well, you should be able to see OSC data coming in with it enabled after launching VRChat under `Proton`. Avatar parameters should load into `VRCFT.Avalonia` and you should see both send/receive values for data rates at this point alongside live results within VRChat itself. |