VL.Devices.GearVR 1.2.2

dotnet add package VL.Devices.GearVR --version 1.2.2
                    
NuGet\Install-Package VL.Devices.GearVR -Version 1.2.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="VL.Devices.GearVR" Version="1.2.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="VL.Devices.GearVR" Version="1.2.2" />
                    
Directory.Packages.props
<PackageReference Include="VL.Devices.GearVR" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add VL.Devices.GearVR --version 1.2.2
                    
#r "nuget: VL.Devices.GearVR, 1.2.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package VL.Devices.GearVR@1.2.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=VL.Devices.GearVR&version=1.2.2
                    
Install as a Cake Addin
#tool nuget:?package=VL.Devices.GearVR&version=1.2.2
                    
Install as a Cake Tool

VL.Devices.GearVR

Windows Bluetooth LE nodes for Samsung Gear VR / ET-YO324 controllers in vvvv gamma 7.4 or later. One package manages up to eight paired controllers.

Install

  1. Pair every controller in Windows Settings > Bluetooth & devices first. Do not connect it as a mouse or gamepad application.

  2. In a command prompt opened in Gamma's package folder (for example, C:\NugetOverride\7.4), install the public package from NuGet.org:

    nuget install VL.Devices.GearVR -Version 1.2.2 -Source https://api.nuget.org/v3/index.json
    

    Restart Gamma after the installation.

  3. Add GearVR Controller. Its initial search completes before the Bluetooth Controller input is created, so the first paired controller is selected automatically rather than NULL. The dropdown displays full Windows Bluetooth names, such as Gear VR Controller(5951). Active Controller shows the actual choice. Set Rescan to true for one frame to refresh the dropdown, or select another controller manually.

  4. Connect its Controller output to Clicks, Movement, and/or Touchpad.

Nodes

Node What it provides
GearVR Controller Slot selection, rescan, controller handle, full immutable Info, and battery percentage. Info.Raw Report is the original 60-byte BLE frame.
Clicks Current held state for Trigger, Home, Back, Touchpad click, Volume Up and Volume Down.
Movement Raw sensor counts; scaled acceleration (m/s²), angular velocity (rad/s), magnetic field (µT); auto-calibrated gyro velocity, gravity-removed acceleration, and a 6-axis (gyro + gravity) orientation.
Touchpad Raw and normalised coordinates, delta, touch/click state, and the latest recognised Tap, Double Tap, Long Press, eight-way swipe or circle gesture.
Sensor Recorder Writes every incoming BLE report and all decoded sensor/control fields to CSV for diagnostics.
Sensor Player Replays a Sensor Recorder CSV without Bluetooth hardware. Its Controller output connects to Clicks, Movement, Touchpad, and Sensor Recorder exactly like a live controller.

Movement calibrates automatically after one second of stillness; Calibrate restarts that process. Orientation uses gravity to keep pitch and roll stable and has relative yaw. Use Reset Orientation for a new yaw zero. The magnetometer is exposed but not used for heading correction until it has location-specific hard/soft-iron calibration.

Offline playback

Add Sensor Player, set File Path to a CSV written by Sensor Recorder, and connect its Controller output where a live controller would be used. Set Play to start, use Speed for 0–16× realtime, Loop to repeat, or pulse Restart to return to the first sample. Recorded device timestamps preserve IMU integration timing in Movement even when playback speed differs from realtime.

Help patches

Installed help patches are available in the package's help folder: Overview, Preview in Stride, and Record and Playback. The folder also contains their model and CSV playback assets.

Controller selection

The Bluetooth Controller enum is dynamic: it has one entry per discovered, paired controller and displays its full Windows Bluetooth name, for example Gear VR Controller(5951). Rescan after adding, removing, or waking a controller. The selection is bound to the device's Bluetooth ID, not its list position. Info.Connection State, Info.Name, and Info.Error make connection failures visible in the patch.

Protocol basis

The BLE service UUID and report layout follow independent open-source reverse engineering by rdady and uutzinger. This package is an original C# Gamma implementation.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.2 76 9/12/2026
1.2.1 83 9/12/2026 1.2.1 is deprecated.