Configuring the Driver - LucidVR/opengloves-driver GitHub Wiki

Configuring the driver is a necessary requirement to getting the glove to work with your expected behavior. If using the Steam version of the driver, editing the configuration file is no longer necessary as there is a UI for the settings. The same settings still apply. As of driver v0.4, the UI now changes the settings in steamvr.vrsettings instead of default.vrsettings.

Without the UI, you will need to change the configuration file located in opengloves/resources/settings/default.vrsettings.

Below is what the structure of the configuration should look like:

{
	"driver_openglove":
	{
		"left_enabled": true,
		"right_enabled": true,
		"communication_protocol": 0,
		"device_driver": 1,
		"encoding_protocol": 1
	},

	//device_driver = 0
	"device_lucidgloves":
	{
		"left_serial_number": "lucidgloves-left",
		"right_serial_number": "lucidgloves-right"
	},

	//device_driver = 1
	"device_knuckles":
	{
		"left_serial_number": "LHR-E217CD00",
		"right_serial_number": "LHR-E217CD01"
	},

	"pose_settings":
	{
		"right_x_offset_position": -0.1,
		"right_y_offset_position": -0.08,
		"right_z_offset_position": -0.03,

		"right_x_offset_degrees": 0.0,
		"right_y_offset_degrees": 0.0,
		"right_z_offset_degrees": 0.0,

		"left_x_offset_position": 0.1,
		"left_y_offset_position": -0.08,
		"left_z_offset_position": -0.03,

		"left_x_offset_degrees": 0.0,
		"left_y_offset_degrees": 0.0,
		"left_z_offset_degrees": 0.0,

		"pose_time_offset": -0.01,

		"controller_override": false,
		"controller_override_left": 3,
		"controller_override_right": 4
	},

	//communication_protocol = 0
	"communication_serial":
	{
		"left_port": "\\\\.\\COM4",
		"right_port": "\\\\.\\COM5",
		"baud_rate": 115200
	},

	//communication_protocol = 1
	"communication_btserial": 
	{
		"left_name": "lucidgloves-left",
		"right_name": "lucidgloves-right"
	},

	//encoding_protocol = 0
	"encoding_legacy":
	{
		"max_analog_value": 1023
	},

	//encoding_protocol = 1
	"encoding_alpha":
	{
		"max_analog_value": 1023
	}
}

Notably:

  • When using USB serial communication, you will almost certainly need to edit left_port and right_port in the configuration (under communication_serial)
  • Likewise, when using BT serial communication, you may want to edit left_name and right_name in the configuration (under communication_btserial)
  • You can manually configure the offsets of the glove from the controller it is tracking (under pose_settings). Note: It is recommended to use a physical calibration button or the settings UI's auto-calibrate button instead, as these support more automatic alignment.
  • When using either encoding scheme, ensure the max_analog_value matches your board. For example, it is usually 1023 for Arduino, and 4095 ESP32.
  • You can choose whether to emulate knuckle controllers, or use the lucidglove controllers (knuckle emulation is default, and preferred by most games)

Tracking Overrides

This process may be necersarry if the controller discovery does not pick up the controllers that you want it to for use with tracking.

  • First install the driver and launch SteamVR. You'll notice there are two new controllers which are greyed out (or tracking to different controllers)
  • In the configuration, set controller_override to true.
    • To find the ids for the controllers, count upwards from 0 (including the headset) in the devices list in the SteamVR app.
      explanation
    • Set controller_override_left and controller_override_right to the ids. (For example, they might be 5 & 6 as shown in the image above, but they can vary).
  • Saving and restarting SteamVR should colour the controllers and the gloves should now be tracking with the controllers.