add the sensecom documentation

This commit is contained in:
Mamadou Babaei
2024-08-16 16:44:30 +02:00
parent 1a26d4a465
commit 57c34ea44b
22 changed files with 776 additions and 5 deletions
@@ -0,0 +1,13 @@
# SenseCom
SenseCom (short for SenseGlove Communications) is a background program that runs alongside your Unreal Engine application. Its primary function is to discover, and connect to SenseGlove devices on your system, exchanging data with them, much like a "SteamVR for Haptic Gloves." The SenseGlove Unreal Engine Plugin relies on SenseCom to communicate with any SenseGlove hardware.
> [!NOTE]
> SenseCom is required only for communication on Windows or Linux. For
> standalone Android devices, the communication functionality is embedded
> directly into your application.
> [!NOTE]
> For more detailed information and troubleshooting, consult the
> [SenseCom documentation page on SGDocs](https://senseglove.gitlab.io/SenseGloveDocs/sensecom/overview.html),
> please.
@@ -0,0 +1,91 @@
# SenseCom on GNU/Linux
Follow these steps to quickly set up and run SenseCom on GNU/Linux:
1. First, obtain the SenseCom binaries from its [GitHub repository](https://github.com/Adjuvo/SenseCom).
![SenseCom on GNU/Linux - Downloading from GitHub](../sensecom-github-download.png "SenseCom on GNU/Linux - Downloading from GitHub")
2. Extract the SenseCom `.zip` file to a location on your computer.
```sh
$ unzip SenseCom-main.zip -d /some/path/
```
3. Navigate to the `SenseCom_Linux_Latest` folder containing the SenseCom binaries for GNU/Linux:
```sh
$ cd /some/path/SenseCom-main/Linux/SenseCom_Linux_Latest/
```
4. List the files and check the executable permissions for the main SenseCom binary, `SenseCom.x86_64`:
```sh
$ ls -ahl
total 20M
drwxr-xr-x 3 mamadou mamadou 5 Apr 10 11:24 .
drwxr-xr-x 3 mamadou mamadou 5 Apr 10 11:24 ..
drwxr-xr-x 7 mamadou mamadou 34 Apr 10 11:24 SenseCom_Data
-rw-r--r-- 1 mamadou mamadou 15K Apr 10 11:24 SenseCom.x86_64
-rw-r--r-- 1 mamadou mamadou 33M Apr 10 11:24 UnityPlayer.so
```
5. As seen above the `SenseCom.x86_64` binary does not have the executable permission. Run the following command to set the executable permission for all users:
```sh
$ chmod a+x SenseCom.x86_64
```
6. Veirfy the executable permission has been set on `SenseCom.x86_64`:
```sh
$ ls -l SenseCom.x86_64
-rwxr-xr-x 1 mamadou mamadou 14720 Apr 10 11:24 SenseCom.x86_64
```
7. Time to run the SenseCom executable:
```
$ ./SenseCom.x86_64
[UnityMemory] Configuration Parameters - Can be set up in boot.config
"memorysetup-bucket-allocator-granularity=16"
"memorysetup-bucket-allocator-bucket-count=8"
"memorysetup-bucket-allocator-block-size=4194304"
"memorysetup-bucket-allocator-block-count=1"
"memorysetup-main-allocator-block-size=16777216"
"memorysetup-thread-allocator-block-size=16777216"
"memorysetup-gfx-main-allocator-block-size=16777216"
"memorysetup-gfx-thread-allocator-block-size=16777216"
"memorysetup-cache-allocator-block-size=4194304"
"memorysetup-typetree-allocator-block-size=2097152"
"memorysetup-profiler-bucket-allocator-granularity=16"
"memorysetup-profiler-bucket-allocator-bucket-count=8"
"memorysetup-profiler-bucket-allocator-block-size=4194304"
"memorysetup-profiler-bucket-allocator-block-count=1"
"memorysetup-profiler-allocator-block-size=16777216"
"memorysetup-profiler-editor-allocator-block-size=1048576"
"memorysetup-temp-allocator-size-main=4194304"
"memorysetup-job-temp-allocator-block-size=2097152"
"memorysetup-job-temp-allocator-block-size-background=1048576"
"memorysetup-job-temp-allocator-reduction-small-platforms=262144"
"memorysetup-temp-allocator-size-background-worker=32768"
"memorysetup-temp-allocator-size-job-worker=262144"
"memorysetup-temp-allocator-size-preload-manager=262144"
"memorysetup-temp-allocator-size-nav-mesh-worker=65536"
"memorysetup-temp-allocator-size-audio-worker=65536"
"memorysetup-temp-allocator-size-cloud-worker=32768"
"memorysetup-temp-allocator-size-gfx=262144"
Loading in SingleInstance mode
```
8. If you have already paired any glove with your system, SenseCom should recognize and connect to your glove(s) shortly. If not, please follow the instructions on [How to connect to Nova gloves using Blueman Bluetooth Manager](blueman-bluetooth-manager.md) or [How to connect to Nova gloves using Command-line](command-line.md).
![SenseCom on GNU/Linux - A successful SenseCom and Nova Glove connection](successful-senscom-nova-glove-connection.png "SenseCom on GNU/Linux - A successful SenseCom and Nova Glove connection")
> [!NOTE]
> For more detailed information and troubleshooting, consult the
> [SenseCom documentation page on SGDocs](https://senseglove.gitlab.io/SenseGloveDocs/sensecom/overview.html),
> please.
@@ -0,0 +1,87 @@
# Connect to Nova gloves using Blueman Bluetooth Manager
Follow these steps to pair a Nova glove with your PC on GNU/Linux usng the Blueman Bluetooth Manager:
1. Install Blueman Bluetooth Manager on your Linux distribution using the appropriate package manager:
```sh
# Gentoo
$ emerge -atuv net-wireless/blueman
# Arch, Manjaro
$ sudo pacman -S blueman
# CentOS, Fedora, AlmaLinux, Rocky Linux
$ sudo dnf install blueman
# CentOS/RHEL
$ sudo yum install epel-release
$ sudo yum install blueman
# Debian, Ubuntu
$ sudo apt install blueman
# openSUSE
sudo zypper install blueman
# Solus
$ sudo eopkg install blueman
# Void Linux
$ sudo xbps-install -S blueman
```
> [!IMPORTANT]
> To properly set up the Bluetooth stack on your Linux distribution, additional
> steps may be required. For example, on
> [Gentoo](https://wiki.gentoo.org/wiki/Bluetooth) and
> [Arch](https://wiki.archlinux.org/title/Bluetooth) consult each distribution's
> official guide.
2. Ensure any glove you would like to pair with and connect to your system is not paired, or connected to any other device, such as another PC or VR headset.
3. Make sure the glove is turned on.
4. Start the Blueman Bluetooth Manager and verify you have a recent version installed by selecting `Help > About` from the application's menu.
![Connect to Nova gloves using Blueman Bluetooth Manager - Version](blueman-version.png "Connect to Nova gloves using Blueman Bluetooth Manager - Version")
5. If you don't see your glove, click the `Search` button on the toolbar or select `Adapter > Search` from the application's menu to look for new Bluetooth devices.
![Connect to Nova gloves using Blueman Bluetooth Manager - Search button](blueman-search-button.png "Connect to Nova gloves using Blueman Bluetooth Manager - Search button")
> [!IMPORTANT]
> Before starting the search operation, ensure that your PC's Bluetooth
> controller is turned on by verifying its status on the right side of the
> toolbar next to the Bluetooth logo. If disabled, the Search button will be
> grayed out.
![Connect to Nova gloves using Blueman Bluetooth Manager - Verifying the Bluetooth controller status](blueman-verify-bluetooth-controller-status.png "Connect to Nova gloves using Blueman Bluetooth Manager - Verifying the Bluetooth controller status")
6. A progress bar will appear on the application's status bar. If a new device is found, it will be listed in the main device list area.
![Connect to Nova gloves using Blueman Bluetooth Manager - Searching and finding a glove](blueman-searching.png "Connect to Nova gloves using Blueman Bluetooth Manager - Searching and finding a glove")
7. Once the glove is found, click on it to select it.
8. Either right-click on the device, or go to the `Device` menu, then choose `Pair`.
9. Blueman will prompt you to pair the glove with a notification. Click `Confirm` to proceed.
![Connect to Nova gloves using Blueman Bluetooth Manager - Pairing confirmation](blueman-confirm-pairing.png "Connect to Nova gloves using Blueman Bluetooth Manager - Pairing confirmation")
9. After pairing, either right-click on the device again, or go to the `Device` menu, then choose `Trust`.
10. If everything has been successful, the key icon indicates successful pairing, and the checkmark confirms the device is trusted.
![Connect to Nova gloves using Blueman Bluetooth Manager - Paired and trusted](blueman-paired.png "Connect to Nova gloves using Blueman Bluetooth Manager - Paired and trusted")
11. Follow the [SenseCom on GNU/Linux](README.md) instructions and you should be able to successfully connect to the newly paired glove from SenseCom.
## Video Tutorial
There is also a [video tutorial demonstrating how to connect to Nova gloves on GNU/Linux using Blueman Bluetooth Manager](https://youtu.be/f34ofFkx_Ow).
<div style="margin: 0 auto; width: 560px;">
<iframe width="560" height="315" src="https://www.youtube.com/embed/f34ofFkx_Ow" frameborder="0" allowfullscreen></iframe>
</div>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,473 @@
# Connect to Nova gloves using Command-line
Follow these steps to pair a Nova glove to your PC on GNU/Linux usng command-line and Bluez:
1. Some Linux distributions include BlueZ in their default installation. If yours doesn't, install it using the appropriate package manager:
```sh
# Gentoo
$ emerge -atuv net-wireless/bluez
# Arch, Manjaro
$ sudo pacman -S bluez
# CentOS, Fedora, AlmaLinux, Rocky Linux
$ sudo dnf install bluez
# CentOS/RHEL
$ sudo yum install bluez
# Debian, Ubuntu
$ sudo apt install bluez
# openSUSE
sudo zypper install bluez
# Solus
$ sudo eopkg install bluez
# Void Linux
$ sudo xbps-install -S bluez
```
> [!IMPORTANT]
> To properly set up the Bluetooth stack on your Linux distribution, additional
> steps may be required. For example, on
> [Gentoo](https://wiki.gentoo.org/wiki/Bluetooth) and
> [Arch](https://wiki.archlinux.org/title/Bluetooth) consult each distribution's
> official guide.
2. Run the following command to ensure that BlueZ is installed and check your `bluetoothctl` version:
```sh
bluetoothctl version
Version 5.77
```
3. Ensure that the `bluetooth` service is started and running. For example, on Gentoo Linux:
```sh
$ rc-service bluetooth start
```
You might see one of these outputs based on whether it's already running or not:
```sh
* Starting bluetooth ...
# or
* WARNING: bluetooth has already been started
```
4. Ensure any glove you would like to pair with and connect to your system is not paired, or connected to any other device, such as another PC or VR headset.
5. Make sure the glove is turned on.
6. Use `bluetoothctl list` or `bluetoothctl show` command to extract your PC's Bluetooth Controller MAC Address which is useful for later on:
```sh
$ bluetoothctl list
Controller CC:15:31:90:69:87 BlueZ 5.77 [default]
$ bluetoothctl show
Controller CC:15:31:90:69:87 (public)
Manufacturer: 0x0002 (2)
Version: 0x0b (11)
Name: BlueZ 5.77
Alias: BlueZ 5.77
Class: 0x007c010c (8126732)
Powered: yes
PowerState: on
Discoverable: no
DiscoverableTimeout: 0x0000003c (60)
Pairable: no
UUID: Message Notification Se.. (00001133-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: OBEX Object Push (00001105-0000-1000-8000-00805f9b34fb)
UUID: Message Access Server (00001132-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: IrMC Sync (00001104-0000-1000-8000-00805f9b34fb)
UUID: Headset (00001108-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
UUID: Phonebook Access Server (0000112f-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: Device Information (0000180a-0000-1000-8000-00805f9b34fb)
UUID: Generic Access Profile (00001800-0000-1000-8000-00805f9b34fb)
UUID: Handsfree Audio Gateway (0000111f-0000-1000-8000-00805f9b34fb)
UUID: Audio Source (0000110a-0000-1000-8000-00805f9b34fb)
UUID: OBEX File Transfer (00001106-0000-1000-8000-00805f9b34fb)
Modalias: usb:v1D6Bp0246d054D
Discovering: no
Roles: central
Roles: peripheral
Advertising Features:
ActiveInstances: 0x00 (0)
SupportedInstances: 0x0c (12)
SupportedIncludes: tx-power
SupportedIncludes: appearance
SupportedIncludes: local-name
SupportedSecondaryChannels: 1M
SupportedSecondaryChannels: 2M
SupportedCapabilities.MinTxPower: 0xffffffde (-34)
SupportedCapabilities.MaxTxPower: 0x0007 (7)
SupportedCapabilities.MaxAdvLen: 0xfb (251)
SupportedCapabilities.MaxScnRspLen: 0xfb (251)
SupportedFeatures: CanSetTxPower
SupportedFeatures: HardwareOffload
```
7. Ensure the controller is powered on:
```sh
$ bluetoothctl power on
Changing power on succeeded
```
8. Enable the agent to listen for Bluetooth events that require user interaction, such as pairing requests and managing device authorizations:
```sh
$ bluetoothctl agent on
```
9. Set the current agent as the default agent:
```sh
$ bluetoothctl default-agent
No agent is registered
```
10. Set the controller to be discoverable for `180` seconds:
```sh
$ bluetoothctl discoverable on
bluetoothctl discoverable on
hci0 new_settings: powered connectable ssp br/edr le secure-conn wide-band-speech
hci0 new_settings: powered connectable discoverable ssp br/edr le secure-conn wide-band-speech
Changing discoverable on succeeded
```
> [!NOTE]
> To change the default discoverable timeout, you can set it manually using the
> `bluetoothctl discoverable-timeout` command.
```sh
$ bluetoothctl discoverable-timeout 300
Changing discoverable-timeout 300 succeeded
```
11. Then, make the controller pairable as well:
```sh
$ bluetoothctl pairable on
hci0 new_settings: powered connectable discoverable bondable ssp br/edr le secure-conn wide-band-speech
Changing pairable on succeeded
```
12. Begin scanning for devices:
```sh
$ bluetoothctl scan on
SetDiscoveryFilter success
```
13. After a few seconds, list the discovered devices:
bluetoothctl devices
```sh
Device 78:D2:52:42:33:2F 78-D2-52-42-33-2F
Device 94:3C:C6:47:65:72 NOVA-1217-L
Device AC:F1:08:37:9F:93 LG DSN7CY(93)
Device 70:D6:10:9D:73:8F 70-D6-10-9D-73-8F
Device 7F:2C:8C:8D:09:9F 7F-2C-8C-8D-09-9F
Device F9:56:4B:86:1E:13 F9-56-4B-86-1E-13
Device C9:A3:07:41:91:B0 iLamp
Device 4F:9D:F8:20:43:F3 Bedroom
Device CC:B1:1A:2D:A8:A4 [TV] UE40J5500
Device A0:D7:F3:76:14:51 [TV] Samsung AU7100 75 TV
Device 5C:17:CF:1D:35:37 OnePlus 8 Pro
Device E2:F8:03:F6:D8:CB E2-F8-03-F6-D8-CB
Device 38:18:4C:E9:69:7A LE_WH-1000XM3
Device B8:D6:1A:BA:81:32 Nova 2 0667-L
```
> [!NOTE]
> If your device is not listed yet, you can run this command multiple times as
> `bluetoothctl` continues the device discovery in the background.
14. Use the following command to pair with the discoved glove:
```sh
$ bluetoothctl pair GLOVE_MAC_ADDRESS
```
For example:
```sh
$ bluetoothctl pair 94:3C:C6:47:65:72
Attempting to pair with 94:3C:C6:47:65:72
[CHG] Device 94:3C:C6:47:65:72 Connected: yes
[CHG] Device 94:3C:C6:47:65:72 Bonded: yes
[CHG] Device 94:3C:C6:47:65:72 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 94:3C:C6:47:65:72 ServicesResolved: yes
[CHG] Device 94:3C:C6:47:65:72 Paired: yes
Pairing successful
```
> [!NOTE]
> If you encounter the
> `Failed to pair: org.bluez.Error.AuthenticationFailed` error message, it might
> be misleading. Check if there is a line with the glove's MAC address followed by
> `Connected: yes`, which indicates that the connection was actually successful.
```
Attempting to pair with 94:3C:C6:47:65:72
[CHG] Device 94:3C:C6:47:65:72 Connected: yes
Failed to pair: org.bluez.Error.AuthenticationFailed
```
15. Mark the device as trusted by issuing the following command:
```
$ bluetoothctl trust GLOVE_MAC_ADDRESS
```
For example:
```sh
$ bluetoothctl trust 94:3C:C6:47:65:72
[CHG] Device 94:3C:C6:47:65:72 Trusted: yes
Changing 94:3C:C6:47:65:72 trust succeeded
```
16. Attempt to connect to the glove again:
```
$ bluetoothctl connect GLOVE_MAC_ADDRESS
```
For example:
```
$ bluetoothctl connect 94:3C:C6:47:65:72
Attempting to connect to 94:3C:C6:47:65:72
[CHG] Device 38:18:4C:E9:69:7A RSSI: 0xffffffd0 (-48)
[CHG] Device 94:3C:C6:47:65:72 Connected: yes
[CHG] Device 94:3C:C6:47:65:72 UUIDs: 00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 94:3C:C6:47:65:72 ServicesResolved: yes
Failed to connect: org.bluez.Error.NotAvailable br-connection-profile-unavailable
```
> [!NOTE]
> Again, the error message may be misleading. The connection is often successful
> despite the error.
17. If desired, you can extract some information from the glove using:
```sh
$ bluetoothctl info GLOVE_MAC_ADDRESS
```
For example:
```sh
bluetoothctl info 94:3C:C6:47:65:72
Device 94:3C:C6:47:65:72 (public)
Name: NOVA-1217-L
Alias: NOVA-1217-L
Class: 0x00001f00 (7936)
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Serial Port (00001101-0000-1000-8000-00805f9b34fb)
```
18. Create an RFCOMM device:
```sh
$ sudo rfcomm connect /dev/rfcommX GLOVE_MAC_ADDRESS CHANNEL_NUMBER
```
For example:
```sh
$ sudo rfcomm connect /dev/rfcomm0 94:3C:C6:47:65:72 1
Connected /dev/rfcomm0 to 94:3C:C6:47:65:72 on channel 1
Press CTRL-C for hangup
```
> [!NOTE]
> The `rfcomm` command requires root permision, so it must be run with `sudo`.
> [!Tip]
> To determine the channel number, run the following command:
```sh
$ sdptool browse GLOVE_MAC_ADDRESS
```
```sh
$ sdptool browse 94:3C:C6:47:65:72
Browsing 94:3C:C6:47:65:72 ...
Service Name: SPP_SERVER
Service RecHandle: 0x10000
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Profile Descriptor List:
"Serial Port" (0x1101)
Version: 0x010
```
> [!NOTE]
> If you have more than one glove or in general multiple serial Bluetooth
> devices connected to your device connected to your PC, then `/dev/rfcomm0` may
> already be allocated to another device. In that case, increment the number
> until finding a free rfcomm device. You can query the existing rfcomm devices
> using the command: `ls /dev/rfcomm*`.
19. Follow the [SenseCom on GNU/Linux](README.md) instructions and you should be able to successfully connect to the newly paired glove from SenseCom.
20. Once the SenseCom is closed and we are done with the gloves, we can disconnect the gloves using:
```sh
$ bluetoothctl disconnect ${SG_DEVICE}
$ sudo rfcomm release ${SG_RFCOMM}
```
For example:
```sh
$ bluetoothctl disconnect 94:3C:C6:47:65:72
$ sudo rfcomm release /dev/rfcomm0
```
> [!NOTE]
> Again, the `rfcomm` command requires elevated permissions, so it must be run
> with the `sudo` command.
## Scripts to Easily Connect and Disconnect from a Glove
You can automate the above tedious process using scripts for connecting and disconnecting gloves.
`sg-connect.sh`:
```sh
#!/usr/bin/env sh
CTRL_DEVICE="YOUR_BLUETOOTH_CONTROLLER_MAC_ADDRESS"
SG_DEVICE="YOUR_SENSEGLOVE_MAC_ADDRESS"
SG_RFCOMM="/dev/rfcomm0"
bluetoothctl pairable on
bluetoothctl discoverable on
bluetoothctl pair ${SG_DEVICE}
bluetoothctl trust ${SG_DEVICE}
bluetoothctl connect ${SG_DEVICE}
rfcomm connect ${SG_RFCOMM} ${SG_DEVICE} 1 &
```
`sg-disconnect.sh`:
```sh
#!/usr/bin/env sh
SG_DEVICE="YOUR_SENSEGLOVE_MAC_ADDRESS"
SG_RFCOMM="/dev/rfcomm0"
bluetoothctl disconnect ${SG_DEVICE}
rfcomm release ${SG_RFCOMM}
```
### Example Scripts for a Left-Handed Glove
```sh
$ cat sg-connect-left.sh
#!/usr/bin/env sh
CTRL_DEVICE="CC:15:31:90:69:87"
SG_DEVICE="94:3C:C6:47:65:72"
SG_RFCOMM="/dev/rfcomm0"
bluetoothctl pairable on
bluetoothctl discoverable on
bluetoothctl pair ${SG_DEVICE}
bluetoothctl trust ${SG_DEVICE}
bluetoothctl connect ${SG_DEVICE}
rfcomm connect ${SG_RFCOMM} ${SG_DEVICE} 1 &
$ cat sg-disconnect-left.sh
#!/usr/bin/env sh
SG_DEVICE="94:3C:C6:47:65:72"
SG_RFCOMM="/dev/rfcomm0"
bluetoothctl disconnect ${SG_DEVICE}
rfcomm release ${SG_RFCOMM}
# Set the executable permissions for all users:
$ chmod a+x sg-connect-left.sh
$ chmod a+x sg-disconnect-left.sh
# Before running SenseCom:
$ sudo ./sg-connect-left.sh
Password:
Changing pairable on succeeded
hci0 new_settings: powered connectable bondable ssp br/edr le secure-conn wide-band-speech
hci0 new_settings: powered connectable discoverable bondable ssp br/edr le secure-conn wide-band-speech
Changing discoverable on succeeded
Attempting to pair with 94:3C:C6:47:65:72
Failed to pair: org.bluez.Error.AlreadyExists
Changing 94:3C:C6:47:65:72 trust succeeded
Attempting to connect to 94:3C:C6:47:65:72
hci0 94:3C:C6:47:65:72 type BR/EDR connected eir_len 18
[CHG] Device 94:3C:C6:47:65:72 Connected: yes
[CHG] Device 94:3C:C6:47:65:72 ServicesResolved: yes
Failed to connect: org.bluez.Error.NotAvailable br-connection-profile-unavailable
# Run SenseCom in between!
# Once SenseCom is closed:
$ sudo ./sg-disconnect-left.sh
sudo ./sg-disconnect-left.sh
Password:
Attempting to disconnect from 94:3C:C6:47:65:72
hci0 94:3C:C6:47:65:72 type BR/EDR disconnected with reason 2
[CHG] Device 94:3C:C6:47:65:72 ServicesResolved: no
Successful disconnected
Can't release device: No such device
```
## Video Tutorial
There is also a [video tutorial demonstrating how to connect to Nova gloves on GNU/Linux using the command line](https://youtu.be/Swkk_KmXwq8).
<div style="margin: 0 auto; width: 560px;">
<iframe width="560" height="315" src="https://www.youtube.com/embed/Swkk_KmXwq8" frameborder="0" allowfullscreen></iframe>
</div>
Binary file not shown.
@@ -0,0 +1,59 @@
# SenseCom on Microsoft Windows
Follow these steps to quickly set up and run SenseCom on Microsoft Windows:
1. First, obtain the SenseCom binaries from its [GitHub repository](https://github.com/Adjuvo/SenseCom).
![SenseCom on Microsoft Windows - Downloading from GitHub](sensecom-github-download.png "SenseCom on Microsoft Windows - Downloading from GitHub")
2. Extract the SenseCom `.zip` file to a location on your computer after downloading it.
3. Ensure any glove you would like to pair with and connect to your system is not paired, or connected to any other device, such as another PC or VR headset.
4. Make sure the glove is powered on.
5. Access Windows Bluetooth Settings by navigating to `Settings > Devices > Bluetooth & other devices`.
![SenseCom on Microsoft Windows - Bluetooth Settings](microsoft-windows-bluetooth-settings.png "SenseCom on Microsoft Windows - Bluetooth Settings")
6. Click on `Add Bluetooth or other devices`.
7. In the new window click on `Bluetooth`.
![SenseCom on Microsoft Windows - Add a Bluetooth device](microsoft-windows-add-bluetooth-device.png "SenseCom on Microsoft Windows - Add a Bluetooth device")
8. Wait for the glove to be discovered, then click on it.
![SenseCom on Microsoft Windows - Discovering Bluetooth devices](microsoft-windows-add-bluetooth-device-discover.png "SenseCom on Microsoft Windows - Discovering Bluetooth devices")
9. Click `Connect` to connect and pair the glove.
![SenseCom on Microsoft Windows - Connecting to a Bluetooth device](microsoft-windows-add-bluetooth-device-connect.png "SenseCom on Microsoft Windows - Connecting to a Bluetooth device")
10. Once the glove is paired, you're good to go. Click on `Done`.
![SenseCom on Microsoft Windows - A paired Bluetooth device](microsoft-windows-add-bluetooth-device-paired.png "SenseCom on Microsoft Windows - A paired Bluetooth device")
11. Once you are back to Windows Bluetooth settings, verify that the glove is listed as a paired device.
![SenseCom on Microsoft Windows - Bluetooth settings paired devices list](microsoft-windows-bluetooth-settings-paired-devices-list.png "SenseCom on Microsoft Windows - Bluetooth settings paired devices list")
12. After successfully paring your glove, it's time to run SenseCom. Navigate to the folder where you extracted SenseCom and go to to `/path/to/extracted/SenseCom/directory/Win/SenseCom_Win_Latest`.
![SenseCom on Microsoft Windows - Running SenseCom](microsoft-windows-run-sensecom.png "SenseCom on Microsoft Windows - Running SenseCom")
> [!NOTE]
> Inside the `/path/to/extracted/SenseCom/directory/Win/` folder, a SenseCom
> installer is available if you wish to permanently install it on your
> operating system.
13. In a moment, SenseCom should recognize and connect to your glove(s):
![SenseCom on Microsoft Windows - A successful SenseCom and Nova Glove connection](microsoft-windows-successful-senscom-nova-glove-connection.png "SenseCom on Microsoft Windows - A successful SenseCom and Nova Glove connection")
> [!NOTE]
> For more detailed information and troubleshooting, consult the
> [SenseCom documentation page on SGDocs](https://senseglove.gitlab.io/SenseGloveDocs/sensecom/overview.html),
> please.
14. At this stage, SenseCom is ready and you should be able to connect to and communicate with SenseGlove devices from inside your Unreal Engine applications.
Binary file not shown.