Arduino/ESP32 firmware for DIY haptic gloves. Officially compatible with LucidVR gloves.

Overview

LucidGloves

lucidgloves- Firmware and 3D Print Files

This repo contains the arduino firmware as well as the STL files for Prototypes 3 through 4 of the LucidVR glove. This is a finger tracking glove that allows you to use your hands in VR. Follow along with Lucas_VRTech's developments on his Tiktok page: https://www.tiktok.com/@lucas_vrtech

Support

Join the LucidVR discord server for assistance: https://discord.gg/lucidvr

Firmware

Open the firmware files located in the firmware/lucidgloves-firmware folder. By default the firmware is configured for an arduino nano using serial. To configure the firmware, change the defines in the lucidgloves-firmware.ino file.

Configuration instructions are here: Configuration Instructions.

Tested boards:

* Arduino Nano
* ESP-WROOM-32

Supported Communication Methods:

* USB Serial
* Bluetooth Serial (On ESP32 boards)
* BLE (Soon, not up yet)

Hardware

STL files for 3D printing are located in the hardware folder. Prototype 4 models are currently experimental

The assembly for each hand is as follows:

For Prototypes 3 and 3.1 -

  • Spool (5x)
  • Tensioner (5x)
  • Cover (5x)
  • Holder (5x)
  • GuideRing(Will need to be resized) OR GuideNode(3.1) (2+ per finger, 1+ for thumb)
  • EndCap (1x per finger, will need to be resized to fit)

For Prototype 4 -

  • HapticSpool (5x)
  • Tensioner_GreenPot (5x) OR Tensioner_WLPot (5x)
  • SpoolCover (5x)
  • RigidMount (2x) (One for each hand, make sure to flip for other hand)
  • WLPotSlideHolder OR WLPotElasticHolder OR GreenPotSlideHolder (5x)
  • Quest2_MountSlider OR Vive3.0_MountSlider (2x)
  • GuideRing (Proto 3) (Will need to be resized) OR GuideNode (Proto 3.1) (2+ per finger, 1+ for thumb)
  • EndCap (Proto 3) (1x per finger, will need to be resized to fit)

Guide for printing parts: Printing guide

Required parts for each hand: Parts Lists
Optional:

  • Joysticks for locomotion
    • will be making a DIY treadmill eventually as well for those who would prefer that
  • Buttons (Most can be replaced with gestures) (One is required for autocalibration)

More information will be available on the LucidVR site very soon.

Driver

This project uses the open source OpenVR driver created by LucidVR and Danwillm: https://github.com/LucidVR/lucidgloves-openvr

Issues
  • A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    esptool.py v3.0-dev Serial port COM3 Connecting.......................___..........___.....____An error occurred while uploading the sketch _

    A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

    opened by slobershelf 13
  • potentionometer wont work?

    potentionometer wont work?

    hi guys i finished my left glove by using all the thinks lucas has. i wired everything to the esp32 wroom-32 v1 mpdul and when i go to the serial port und move my thumb and pint finger the numbers change but when i move my pinky or middle finger the numbers are all the same :( Pls help me and i wired everthing to the pins and change it in the ide to the pins that i use

    opened by Philliboyxd 11
  • 10 bit analog resolution

    10 bit analog resolution

    Why do we have different analog resolutions on the esp and nano? It would be simpler to just set them both to 10 bits with analogReadResolution(10); in setup

    opened by CTRL-ALT-D3L 6
  • Added Reverb G2 controller mount and a README for controller mount intrusions

    Added Reverb G2 controller mount and a README for controller mount intrusions

    I added and deleted something just to test something.

    I am interested to hear your option on the readme for controller mounting. I was thinking for each mount we could have some basic instructions to make sure they are used properly. The reason I thought this was important is that tracking quality for these gloves really makes a difference

    I have also attached 2 photos of the mount in use!

    image0 IMG_0473 .

    opened by 0611zman 6
  • Assembly Guide Prototype 3

    Assembly Guide Prototype 3

    Do you have a video or a guide to assembly prototype 3? The videos on your channel show one of the older ones, and I printed the parts for the 3.1 and have no idea how to assembly it. Thanks in advance

    opened by Lobotuerk 6
  • Unable to load configuration, please open an issue on GitHub: OpenVR Init Error

    Unable to load configuration, please open an issue on GitHub: OpenVR Init Error

    Hello everyone :) Loading the firmware on the ESP32 worked as planned, but as soon as I started "open gloves" on steam, I got the error message written in the title. Serial and BT connection both result in the same error.

    opened by SB2203 5
  • Inseam on spool too small

    Inseam on spool too small

    I am a dumb person and would like help. The inseam on the spool stl file isn't showing up on the layer view, apparently it is so small my printer can't see it and so it just skips it. You can see how this is an issue. Please advise.

    opened by Rat-Boi-Bop 5
  • Error compiling for board ESP32 Wrover Module.

    Error compiling for board ESP32 Wrover Module.

    when I try to download the program after following the steps it says input[size] = NULL; ^ At global scope: cc1plus.exe: warning: unrecognized command line option '-Wno-frame-address' c:/users/ /appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find crt1-sim.o: No such file or directory c:/users/ /appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-97-gc752ad5-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: cannot find _vectors.o: No such file or directory collect2.exe: error: ld returned 1 exit status exit status 1 Error compiling for board ESP32 Wrover Module.

    opened by slobershelf 4
  • My Hands are not responding to the finger movements in SteamVR home

    My Hands are not responding to the finger movements in SteamVR home

    Hi There,

    So I followed all the steps and installed all the drivers required. I've downloaded the latest Driver 0.4 release and changed the values to 1023 because I am using Nano. Also in the Driver settings I made sure the COM ports are the same as my Arduino.

    The "Serial Monitor" showed big and small numbers meaning it is working as Lucas has showed in the video. After I linked my Oculus Rift S, and launched SteamVR. It showed the Valve Controllers following my Oculus Controllers. When I am at "Steam HOME" My hands appears but they are not responding to the finger movements and also they are showing only 3 fingers and a Thumb!!

    I am not sure what if I am missing something here, Please help :(

    opened by hlaila1 4
  • ESP32s not sending/recieving

    ESP32s not sending/recieving

    I have uploaded the software to both gloves and have connected them to my computer over Bluetooth. The opengloves driver is able to track their position but I have no button inputs, finger tracking or haptic feedback. I am able to perform auto-calibration in the driver but not extend/retract the servos fully, I'm just told the command could not be added to the pipeline.

    The configuration in the opengloves driver is as follows: Both gloves enabled Communication method Bluetooth serial Right name: lucidgloves-right (same for firmware and serial number) Left name: lucidgloves-left (same for firmware and serial number) Driver emulation: lucid glove Encoding protocol: Alpha

    Any fixes?

    opened by JamesPCVR 4
  • Add

    Add "Dynamic Servo Scaling" as Force Feedback Servo Scaling

    This change removes that dead code of dynScaleLimits and adds in static per finger scaling rates.

    The default values are based on approximate sizing of each finger using the middle finger as 1.0 since it is the largest.

    Hardcoding this will work for now and be configurable when flashing the FW, but it would be nice to have a comm packet the driver could send to set these values dynamically based on user configuration from the driver UI.

    opened by JohnRThomas 3
  • Source file release?

    Source file release?

    I'm trying to make some experimental changes to the glove mechanism, but it's complicated by the fact that there's no F3D/Solidpart file release. Could you add those to the hardware repo?

    opened by alxpettit 1
  • Correcting numbers and formatting in README.md

    Correcting numbers and formatting in README.md

    The 3d printed parts list was supposed to be for one hand, and some of the parts were duplicated for a set.
    Corrected some inconsistencies with formatting and grammar.

    opened by TechnicallyOffbeat 1
  • Spool cover and tensioner not connecting

    Spool cover and tensioner not connecting

    I printed the tensioner and spool cover pieces and they are not connecting properly. In the video he was able to put them on without issue. I was able to get them together, but they broke in the process. They were printed with a resin printer. Is that the problem? I tried using a 3D printer but it was having issues.

    opened by AbsoluteXero132 4
Releases(Proto4)
  • Proto4(Aug 7, 2021)

  • Proto3.11(May 10, 2021)

    Contains Prototype 3.11 of the LucidVR gloves, along with an updated firmware v2.01.

    • Added Revision 2 of EasySpool and covers, should be much more durable and easier to print.
    • Fixed joystick support and added support for deadzones in cheaper joysticks
    • Pin configurations are now per-board (Suggested by Jakub Nagy)
    • Added a pullup pin for hot-calibration reset

    EVEN IF YOU ARE BUILDING PROTOTYPE 3, USE THE FIRMWARE FOR THE LATEST PROTOTYPE.

    Source code(tar.gz)
    Source code(zip)
    hardware.zip(859.36 KB)
  • v1(Apr 20, 2021)

ESP32 firmware to read and control EMS and Heatronic compatible equipment such as boilers, thermostats, solar modules, and heat pumps

EMS-ESP is an open-source firmware for the Espressif ESP8266 and ESP32 microcontroller that communicates with EMS (Energy Management System) based equipment from manufacturers like Bosch, Buderus, Nefit, Junkers, Worcester and Sieger.

EMS-ESP 153 Jun 28, 2022
YUIOP60Pi DIY Keyboard Firmware

YUIOP60Pi - DIY keyboard with PGA2040 firmware Requirements PICO SDK (v1.2.0) cmake compiler or so How to build $ make Output: build\yuiop60pi.uf2 Har

MURAOKA Taro 4 Feb 7, 2022
Officially repository Competitive Programming ID

Competitive Programming ID Official repository of Competitive Programming ID (https://t.me/CP_ID) Codewars Stats -------------------------------------

DVL ナンダ 17 May 9, 2022
CVE-2021-24084 Windows Local Privilege Escalation Left officially unpatched since 2020. Hence, its still a zero day

WindowsMDM-LPE-0Day Works best on Windows 11 CVE-2021-24084 Windows Local Privilege Escalation Left officially unpatched since 2020. Hence, its still

Exploit Blizzard 24 May 1, 2022
VR15: a VR FPS game controller that generates haptic feedback with high-pressure air.

VR15: a VR FPS game controller that generates haptic feedback with high-pressure air.

Zhaoyuan Ma 15 May 21, 2022
Haptic input knob with software-defined endstops and virtual detents

SmartKnob SmartKnob is an open-source input device with software-configurable endstops and virtual detents. A brushless gimbal motor is paired with a

Scott Bezek 10.8k Jul 3, 2022
ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

esp32-internet-ota ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

Husarnet 28 Apr 30, 2022
ESP32 S2 C++ host library compatible with arduino, esp-idf.

Info I would like to announce USB host library for esp32 S2 compatible with arduino, esp-idf and PIO (when pio will be updated to most recent esp-idf)

null 15 Jun 2, 2022
Adafruit GFX compatible arduino library for using cat thermal printers with the ESP32

CatGFX This library offers a Adafruit GFX "driver" for ESP32 and the cheap cat (or rabbit?) BLE thermal printers like this one: For usage information

Claus Näveke 2 May 19, 2022
Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

ESP32 BLE Keyboard library This library allows you to make the ESP32 act as a Bluetooth Keyboard and control what it does. You might also be intereste

null 1.2k Jul 5, 2022
ESP32 based DIY word clock project

Wordclock ESP32 based DIY wordclock project TL;DR: check out this ✨ demo video ✨ Another take on the classic DIY word clock. This one requires a laser

null 35 Feb 14, 2022
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

ESP32-Skid-Steer Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on

null 5 Feb 4, 2022
An OpenVR Driver for VR Gloves

lucidgloves - LucidVR X Fngrs Developed by: Danwillm Lucas_VRTech What is this? This repository contains the OpenVR(SteamVR) driver for a DIY VR Hapti

null 369 Jun 27, 2022
null 239 Jul 6, 2022
Flashrom/serprog compatible firmware for the Raspberry Pi Pico

pico-serprog This is a very basic flashrom/serprog compatible SPI flash reader/writer for the Raspberry Pi Pico. It does not require a custom version

stacksmashing 23 May 24, 2022
Firmware for ExpressLRS compatible backpacks

What is a "TX Backpack"? Some of the ExpressLRS TX modules include an additional ESP8285 chip, which lets us communicate wirelessly with other ESP8285

ExpressLRS 38 Jun 21, 2022
This is the Arduino® compatible port of the AIfES machine learning framework, developed and maintained by Fraunhofer Institute for Microelectronic Circuits and Systems.

AIfES for Arduino® AIfES (Artificial Intelligence for Embedded Systems) is a platform-independent and standalone AI software framework optimized for e

null 129 Jun 27, 2022
Arduino-compatible development platform whose primary function is a clock

MakeTime Arduino-compatible development platform whose primary function is a clock Description MakeTime is a clock that uses a ring of 24 RGB LEDs to

null 3 Oct 11, 2021
A simple example for 'Arduino' compatible boards to interface with I2C to the MPU-6050, a 6-axis micro-electromechanical IC

Arduino-MPU-6050 A simple example for 'Arduino' compatible boards to interface with I2C to the MPU-6050, a 6-axis micro-electromechanical IC ==About==

Ivan 1 Oct 19, 2021