add the sensecom documentation
This commit is contained in:
@@ -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).
|
||||
|
||||

|
||||
|
||||
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).
|
||||
|
||||

|
||||
|
||||
> [!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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
> [!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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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.
|
||||
|
||||

|
||||
|
||||
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>
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
Executable
BIN
Binary file not shown.
BIN
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>
|
||||
LFS
Executable
BIN
Binary file not shown.
LFS
Executable
BIN
Binary file not shown.
LFS
Executable
BIN
Binary file not shown.
LFS
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
LFS
Executable
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Handbook/src/getting-started/sensecom/microsoft-windows-successful-senscom-nova-glove-connection.png
LFS
Executable
BIN
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).
|
||||
|
||||

|
||||
|
||||
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`.
|
||||
|
||||

|
||||
|
||||
6. Click on `Add Bluetooth or other devices`.
|
||||
|
||||
7. In the new window click on `Bluetooth`.
|
||||
|
||||

|
||||
|
||||
8. Wait for the glove to be discovered, then click on it.
|
||||
|
||||

|
||||
|
||||
9. Click `Connect` to connect and pair the glove.
|
||||
|
||||

|
||||
|
||||
10. Once the glove is paired, you're good to go. Click on `Done`.
|
||||
|
||||

|
||||
|
||||
11. Once you are back to Windows Bluetooth settings, verify that the glove is listed as a paired device.
|
||||
|
||||

|
||||
|
||||
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`.
|
||||
|
||||

|
||||
|
||||
> [!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):
|
||||
|
||||

|
||||
|
||||
> [!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.
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user