‘HYBRID’ VR Data Gloves for Meta Quest + Vive Puck

by rachelfreire in Circuits > Wearables

1740 Views, 24 Favorites, 0 Comments

‘HYBRID’ VR Data Gloves for Meta Quest + Vive Puck

hybrid_mk2_circuit illustration.jpg
touching molecules.jpg
mudra-gloves-narupa-vr.gif
hybrid-vr-gloves-pinch.JPG

These HYBRID VR data gloves use a simple ‘pinch’ motion for interacting in VR. They are designed to explore more subtle and tactile interactions, to replace controllers when ‘touching’ the virtual world. The fingertips use conductive eTextiles which are bonded with adhesive film so there is no sewing or rough edges.

They can be used with Meta Quest [using TinyPico] and Valve index/HTC Vive [using Vive Puck].

The gloves are designed for DIY, and the hardware can be switched easily between the two systems. 


They build on an earlier Mudra glove design [Instructable] which used only the Vive system, requiring external lighthouses. By adding TinyPico, they can now be integrated with Quest via bluetooth and become more free range!

For Quest, they add an unambiguous electric contact, rather than relying on camera detection in hand tracking. This means the gloves still work when your hands go out of range of the headset cameras, avoiding glitches. Also, people reported simply enjoying wearing gloves in VR!

The gloves detect ‘pinch’ between index finger/thumb and middle finger/thumb when the conductive fabric circuit makes an electrical connection. There is also a button mounted on the index finger to add functionality e.g. toggle, reset or menu access.


This tutorial documents: 

  1. updated version of the Vive Puck textile from the MUDRA gloves design
  2. the addition of TinyPico for Quest/hybrid hand tracking
  3. adding a button on the index finger for extra functionality
  4. how [and why] to wire a double circuit
  5. updating fabric colour - to optimise visibility for hand tracking
  6. 'pinch' gloves prototype [for Quest only] and demo code


If you only want gloves for Quest, have a read, then start at step 9 [+ read this 'pinch gloves' blog post

CODE and setup instructions to make a Quest demo here on GITHUB

If you made MUDRA gloves, these gloves are designed so you can upgrade them


Other glove related instructables and resources:

  1. FLICKR extra work-in-progress construction photos
  2. FLICKR pinch glove prototyping photos [TinyPico/Quest only]
  3. TUTORIAL 3D Printed Vive Connector for Mudra VR Gloves
  4. TUTORIAL another eTextile glove [the one this design was based on]
  5. FLICKR albums by rachelfreirestudio [at least four are other data gloves]
  6. ALL THE GLOVES - a chronology of Glovolution, and related data glove case studies on www.rachelfreire.com
  7. theIRL.org - these gloves were designed for the Intangible Realities Lab. See their other projects and glove page

Supplies

MATERIALS

Fabric:

  1. four-way stretch fabric [e.g Lycra] I like Carvico Vita, which is 100% recycled
  2. 3mm neoprene or a similar cushioned fabric. I use Yulex Foam, a natural rubber alternative
  3. non-stretch coutil, cotton drill or canvas to reinforce the cuff [like this one]
  4. Stretch bonding film/glue. I use Bemis Sewfree. Small pieces sold here 
  5. 5cm wide velcro
  6. 5cm wide elastic [OR 5cm wide stretch velcro loop elastic]
  7. mara 70 thread or any strong/topstitch thread
  8. plastic to reinforce the Vive Puck mount [e.g. a durable plastic wallet, such as this]

Etextiles:

  1. stretch conductive fabric. I use Statex P130b four-way silver stretch knit [small pieces here]
  2. conductive thread This one can be used for hand sewing, as well as in a sewing machine

Electronics:

  1. TinyPico microcontroller 
  2. 30AWG silicone hookup wire. Small quantities on Adafruit: [2 metres] [50ft]
  3. 3d printed bracket [between Puck and glove] thingiverse [+ file attached below]
  4. four pogo pins [to connect the Vive Puck]
  5. lipo battery [to power TinyPico]


TOOLS

  1. fabric scissors + paper scissors
  2. domestic iron or mini iron [I am obsessed with the Prym mini steam iron for etextiles]
  3. small piece of silk or ironing cloth [super important - to protect fabrics when bonding]
  4. sewing machine, or you can hand sew! 
  5. hand sewing needle
  6. pins
  7. scalpel or craft knife
  8. wire strippers
  9. round head pliers [to make etextile sewing loops with hookup wire]
  10. glue gun
  11. hole punch
  12. multimeter
  13. soldering iron

Electronics Overview

FD8T2OVLNIWLPZF.jpg
layout parts.jpg
IMG_1142.JPG
vive tracker side back.png
vive tracker schematic.png
tinyPico.png
  1. The TinyPico microcontroller uses the ESP32 platform. It has WiFi and Bluetooth connectivity. The gloves use the Bluetooth for Quest.


  1. The Vive Puck attaches via pogo pins and the 3D printed bracket [file attached below]. There is a detailed intructable here. This glove adds an extra pin for the button, which is shown in step 7.


  1. The glove circuit is a combination of hard electronics [wires] and soft etextiles [conductive fabric] and the tutorial shows you how to build this


  1. The glove textile is now grey so that it can be seen better by the Quest hedset cameras.


  1. The design has a double circuit. The two circuits are separate so the glove is more modular and hackable. It keeps the electronics simpler, and a simple piece of tape avoids shorts when swapping between platforms. It means that you do not need to make a complex custom PCB to connect the Puck and TinyPico electrically.


  1. A button on the index finger is connected to both the Pico and Puck. [NB This is included in the glove design, but does not have a designated TinyPico pin in this documentation]. A button/switch and can be recognised in VR as a game controller.


  1. There is demo code but it is for the Quest only. Firmware and other setup instructions are here on GITHUB. If you only want gloves for Quest, jump to Step 9 [+ check out this 'pinch gloves' blog post, made for Quest2] 

Prepare Pattern

hybrid glove.jpg
IMG_0991.JPG
IMG_0992.JPG

The first image is the compiled design, showing how all the pieces line up.

Print and cut out the 'print layout' file. Printer settings: A4 paper with scale at 100% [There is a 1cm scale line on each page to check]

Cut out the paper pattern pieces and puch holes in the pattern where marked. On the photos, you will see extra holes cut in the pattern to accurately mark stitching lines or pieces for bonding.


The pattern is for a right hand, when the fabric right side up. To make a pair, cut a mirror image of each piece.

The pattern seam allowances [the distance you sew from the edge] are 2mm! On a glove pattern, seam allowance is very small and included in the pattern. If you want a little extra space to sew, cut a milimetre outside the line.

The compiled .ai file is also available to download, should you want to make edits.

Cut Out and Prep Pieces

hybrid materials knolling2.jpg
IMG_1089.JPG
IMG_1024.JPG
IMG_1028.JPG
IMG_1029.JPG
IMG_1027.JPG
IMG_0998.JPG
IMG_0995.JPG
IMG_0994.JPG
IMG_1008.JPG
IMG_1010.JPG
IMG_1009.JPG
IMG_1011.JPG
IMG_0993.JPG
IMG_1012.JPG
IMG_0999.JPG
IMG_1002.JPG
IMG_1003.JPG
IMG_1004.JPG
IMG_1026.JPG

The materials to cut are written on the pattern pieces.

Cutting out

Pattern pieces have a 'grain', marked with arrows. Grain is the direction of the weave of the fabric and therefore it's structure. This influences everything about a fabric, including stretch. The pieces should be placed with the arrow lining up parallel with the visible woven lines of the fabric or to the edge of the fabric. If you don't do this, it will still work but things might go a bit weird. It's a good rule to know, especially for small things like gloves!

  1. Lycra and stretchy fabrics DO have a grain. Sometimes they stretch differently in each direction. Put the arrow along the least stretchy direction to get more stretch across the hand.
  2. neoprene does NOT have a grain beause the rubber inside is not woven. The cuff piece still has an arrow in case you use a different fabric.


Prepare your pieces by drawing round the pattern using a chalk pen or gel pen. Gloves are pretty small, so draw them accurately. The more accurate you are, the better the glove will be.


Important things for cut and prep:

  1. The grey glove is two pieces: it has two layers on the top/back of the hand, and one layer on the palm [picture 2].
  2. The glove pieces are best cut by following the construction photos in Step 6. Draw them out, and leave the smaller uncut until you are ready to sew. They are layered together, for the wires to sit between. I use small amounts of glue film to hold them in place when I sew.


  1. Lycra and neoprene don't really fray, but velcro and elastic does! Using a lighter to gently melt and seal the edges.


  1. Look at the photos to make the plastic and textile parts to stabilise the Vive tracker. The fabric has holes for strain relief. It's probably best to experiment for the best way to do this!
  2. Use the patterns to find the right size for the hole puncher. The important one to get accurate is the large hole in the centre of the cuff and the plastic reinforcement. This is for the screw to attach the Vive tracker.


  1. If you are cutting pieces marked Bemis/Sewfree, first you need to apply the adhesive to the fabric in a block, making sure its big enough for all your pattern pieces. Then draw the pattern piece and cut out. See step 4 'Bonding Fabrics'.


  1. Before you start sewing, check out the construction photos in the steps below. I made two pairs of these gloves, and did small things a little differently each time. You'll see a few anomalies in the photos, like the order I stitched the pouch for the TinyPico and the Vive tracker reinforcement. Both ways work.

Bonding Fabrics - Mini Tutorial

Instead of sewing, adhesive films and glues can be used to bond/laminate materials together. There are many cool uses, especially for very small things like gloves:

  1. Conductive panels [here, fingertips] and traces can be cut in any shape and they won't fray at the edges
  2. layers can be bonded together and the materials stay soft
  3. tiny strips can be used to hold seams together, making them easier to sew. When you see tiny white lines in the photos, this is small pieces of Sewfree I use to keep things in place and to stabilise things. I also use it to make tiny turned hems.


The glue I use is called Sewfree. It's made by Bemis and lots of people just call it Bemis. This is the only place I know that you can buy it retail. It's a glue film with a paper backing and works similarly to Bondaweb or Heat-N-Bond, except its 1000x better...

  1. it stretches. So it is softer and more pliable, perfect for gloves.
  2. It can be used to make electircal connections! So, you can patch together pieces, or layer pieces and they will connect though the glue instead of having threads of material in between.

Bonding [and especially making electrical conections] is done using heat and pressure, to push the glue equally into the two layers of fabric so they touch.


Bonding

Cut a piece of Sewfree and bond it to your fabric using the iron. The fabric is protected by the paper backing. You do not need pressure for the first stage, only to heat the glue so the Sewfree and it's paper sticks to the fabric. This is called 'tacking'.

Draw the pattern pieces on the paper backing. Cut the pieces out, and peel the backing. Once your pieces are placed correctly on the fabric, cover with a cloth [so you don't burn the fabric!] and apply heat to soften, and pressure to push the glue into the fabric. The two fabrics bond into a single substrate.

Heat

This kind of Sewfree [there are lots] has a ‘flow’ temp of around 80 degrees [for sticking it to the fabric with the paper backing] and a ‘setting’ temp of around 130 [when using the pressure to make the final bond]. Test your iron for how long you need to do this, and to make sure you dont burn the fabric, but I usually use setting [hottest] with the paper and for less time, and 2-2.5 [between silk and cotton] for the final bond. Always cover with cloth if you are apllying heat to the fabric without the paper backing. Don't use steam!

NB When you first bond the glue to the fabric with the paper, it will shrink a little. This is why its always good to 'block fuse' larger pieces, then draw and cut after. Also it is easier, and it makes much cleaner edges.

Always leave it to cool before you stretch it, so you don't compromise the tiny stretch polymer fibres while they are curing. To get the best effect [especially if you want to wash it] don't stretch it for 24 hours!

Welcome to the Cult of Bemis. It's that good. I could go on about it for hours actually. Instead, here is an instructable for how to make an eTextile stretch circuit using Sewfree. And Here we grew crytals on bonded LED curcuits: definitely washable ✓

Cuff Construction

IMG_1056.JPG
IMG_1037.JPG
IMG_1021.JPG
IMG_1038.JPG
IMG_1039.JPG
IMG_1040.JPG
IMG_1042.JPG
IMG_1045.JPG
IMG_1043.JPG
IMG_1044.JPG
IMG_1041.JPG
IMG_1020.JPG
IMG_1015.JPG
IMG_1016.JPG
IMG_1017.JPG
IMG_1046.JPG
IMG_1019.JPG
IMG_1022.JPG
IMG_1034.JPG
IMG_1033.JPG
IMG_1030.JPG
IMG_1049.JPG
IMG_1050.JPG
IMG_1053.JPG
IMG_1054.JPG
IMG_1055.JPG

Mark the front of the cuff where holes will be punched. Punch the holes, but wait until you have finished sewing to cut the slits between them.

Mark the back where pieces will be glued/stitched.

Puck reinforcement [and strain relief]:

Back the coutil with bonding film to secure it to the plastic and bond it to the cuff, making sure the holes are aligned for the screw in the centre of the Puck.

In the photos you will see I have added an extra piece of coutil and made two cuts in the fabric. This is to act as strain relief, and the wiring can be looped through here when the circuit is constructed.

Pouch for TinyPico:

This is marked and pinned on the back of the cuff, like a little pillow case! I always double up the fabric, so the functioning edge is folded. This gives better tension and stops fraying. Mark the corners in chalk and stitch on the top side. Trim the excess fabric.

Strap:

The neoprene is folded double to protect the electronics and cushion your hand. Fold the cuff in half when sewing the strap and stitch over both layers. This also creates the pouch for the battery.

There are two ways to make the strap. For both you stitch a small piece of velcro hook to the end of the strap:

  1. If you have stretch velcro hoop elastic, you need a piece the length of the strap, and only to stitch the small hook piece on the end as shown.
  2. If you have regular velcro and elastic, you want the whole back of the cuff [on the neoprene] to be velcro loop, and the extended part of the strap to be elastic. There are pics in Step 7 of the previous Mudra gloves.

Glove + ETextile Construction

IMG_1089.JPG
IMG_1092.JPG
IMG_1093.JPG
IMG_1096.JPG
IMG_1014.JPG
IMG_1058.JPG
IMG_1057.JPG
IMG_1095.JPG
IMG_1060.JPG
IMG_1091.JPG
IMG_1061.JPG
IMG_1065.JPG
IMG_1067.JPG
IMG_1070.JPG
IMG_1072.JPG
IMG_1099.JPG
IMG_1098.JPG
IMG_1073.JPG
IMG_1103.JPG
IMG_1101.JPG
IMG_1105.JPG
IMG_1106.JPG
IMG_1110.JPG
IMG_1076.JPG
IMG_1074.JPG
IMG_1112.JPG
IMG_1075.JPG
IMG_1111.JPG
IMG_1113.JPG

Prep

Cut some thin strips of Sewfree [not bonded to fabric]. These can be used to secure awkward seams. The dotted lines on the glove textile indicate where I place small tabs of Sewfree to hold the two layers of fabric together and stop the wires from moving about so much. This also makes a little pouch to keep the button in place so it doesn't require sewing.


Conductive fingertips

NB When you cut the pieces out, peel the backing paper, but leave the small tabs at the top of the finger [picture 2] so they do not bond to the glove. These will be tucked inside and out of the way during sewing. After the glove fingertips are sewn, this will be folded over the seam and glued, to make a solid etextile connection.

Heat the iron to between 3 (cotton/maximum) and 2 (silk/medium). ‘Tack’ the fabric with just the tip of the iron to keep them in place. Once in position, cover with the ironing cloth and press down for about 10 seconds, then check the bond is good. Don’t move the iron about! Just heat and pressure make a good bond.


Sewing the glove

Sewing tip: Most of the glove can be sewn with a straight stitch so the fabric around the fingertips and finger length to be stable. In the curve between finger and thumb it is also good to use use a zigzag stitch, so it can stretch. This is marked on the pattern, but not essential.

The top of the glove [back of hand] has a double layer of fabric for the wires to sit inside. There is one long piece which wraps around [back of hand and palm], and a matching shorter one which goes underneath this layer [back of hand only].

Cut out the main glove only [long piece]. Once it is cut out, add small strips of Sewfree at the top edge of the fingertips where they are cut off short. These strips are added on the back surface of the fabric, so they will sit between the two layers. When the glove is finished, the two layers can be secured together. This is one of the last things to do, so not remove the backing paper!

Next, layer this piece with the underlayer [which remains uncut for now] adding small strips of Sewfree to hold it in place. When you fold the glove in half to stitch the fingers together, it is easier to pin and sew.

There is a small tab of conductive fabric which sticks over the top of the fingertip. This part needs to be folded out of the way when you sew the glove fingertips together. Stitch, and trim both layers.

After you turn the glove through to the right side through, peel the backing from the small conductive tab and fold it over the seam at the fingertip, and glue it down with the iron. The eTextile is made with one piece to make sure the connection over the fingertip is robust. I cut a small piece of plastic to put inside the fingertip when I pressed this part with the iron.

Connect the Cuff and Glove Textile

IMG_1087.JPG
IMG_1113.JPG
IMG_1114.JPG
IMG_1116.JPG
IMG_1077.JPG
IMG_1078.JPG
IMG_1080.JPG
IMG_1079.JPG
IMG_1082.JPG
IMG_1123.JPG
IMG_1084.JPG
IMG_1086.JPG
IMG_1088.JPG
IMG_1117.JPG
IMG_1119.JPG
IMG_1122.JPG

Once the two pieces are ready to be connected, you want to find LOTS of sewing pins. The glove has two layers and you just want to sew the top layer to the cuff. This is the most fiddly part. In the last picture, the underneath layer of the glove fabric is actually stretched over the top of the cuff so you can see the seam. Only one layer is sewn to the neoprene.

Reinforce each end of the seam through both glove layers.

Connecting Soft Textiles to Hard Electronics

IMG_1142.JPG
IMG_1135.JPG
IMG_1134.JPG
IMG_1137.JPG
IMG_1138.JPG
IMG_1140.JPG
IMG_1156.JPG
IMG_1155.JPG
IMG_1139.JPG
IMG_1150.JPG
IMG_2092.JPG
IMG_2093.JPG
IMG_2095.JPG
IMG_1144.JPG
IMG_1151.JPG
IMG_1153.JPG
IMG_1157.JPG
IMG_1160.JPG
IMG_2100.JPG
IMG_2097.JPG
IMG_2101.JPG
IMG_2103.JPG
IMG_2104.JPG

Cut the wires:

Each wire has lots of slack to snake inside the glove fingers and wrap around for strain relief

  1. fingertips: 12pcs @ 28cm - [2x thumb, 2x index, 2x middle fingers = 6 per hand]
  2. button: 8pcs @ 25cm - [2x GND, 2x power = 4 per hand]

NB each connection requires two wires. The hybrid glove uses two separate circuits for the etextile connections: power and ground. Fingertips each have two, and the thumb is the ground, and completes the finger circuit. The buttons have 2 sets of wires, power and ground for each circuit.


eTextile wires to create the hard/soft connection from eTextile fingertip to Vive/Pico

Strip 1cm, twist the wire into a tight coil, then and twist the end of the wire round pliers into small loops. Drop solder onto the loop to secure it. This can now be stitched to the fingertip using conductive thread.


Wiring the pogo pins to the Vive connector

Use the same loop method for the pogo pins, but make the loop really tiny so it fits inside the 3D printed mount. First drop solder onto the pogo pin, and heat it to put the loop in place around the back of the pin. Once all the pogo pins are in place, secure the back with hot glue.

There is an instructable dedicated to this process here. This design adds one extra pogo pin for the button [photo #2]:

  1. T/G = Thumb [which is also Ground]
  2. B = Button
  3. I = Index finger
  4. M = Middle finger

NB In the hybrid glove there are two wires soldered to GND [thumb and button]. Twist them together before making a loop!


Wiring TinyPico

Solder the JST socket to the Pico to connect your lipo.

The thumb is connected to ground, the index is connected to pin 25, and the middle finger is connected to pin 21.

There will now also be two wires soldered to the GND on the Pico [if you add one for the button]. The button does not yet have an allocated Pico pin in this design!


Connecting the fingertips

Thread the looped end of the wires through the two layers of glove textile so they pop out of the ends where the fingertips are cut. This is easier of you use a bit of tape or shrinktube to cover the wire loop [see photo] so the solder doesnt snag and get stuck on the fabric. You want to stitch the loops at the back of the fingertip, between the two layers, so you can glue down the top layer and the connections are protected. Use conductive thread and secure the loops, stitiching a little down the wire itself to create some strain relief.

When you are done, first test the connections with a multimeter. Then, peel the backing from the strips of Sewfree on the fingertips and glue them down. Dont glue them too well, in case you need to do repairs ;)

Background + Pinch Gloves - If You Just Want the Quest Bit!

Pinch-gloves-flat.jpg
pinch_glove.jpg
pinch gloves.gif
PXL_20230206_161217498.PORTRAIT.jpg
pinch gloves.jpg
PXL_20230206_161223483.PORTRAIT.jpg
pinch_glove_nonstretch-prototype.png

This is a stripped down version of the Quest part of the glove. It was initially prototyped by VR researcher Jonathan Barnoud and documented in this blog post. He made the first prototype [red background pic] using the mudra gloves tutorial. Because he doesn't sew at all, he purchased cheap snooker gloves online and used non-stretch conductive fabric tape.

This design uses two pairs of the snooker gloves. One for the glove itself, and a second [with fingertips cut off] to slip over the top, to protect the electronics [because you'll be in VR!] nd to stop the electronics interfereing with hand tracking,

If you want to make the cheapest simplest glove and do the least sewing possible, this is for you!

The circuit is the same as above. Theres a flickr link below with construction process photos for the final protoype.


Materials you'll need:

  1. snooker/billiard/pool gloves [instead of making your own textile]
  2. TinyPico
  3. conductive fabric [preferably stretch!]
  4. silicone wire
  5. conductive thread
  6. lipo battery
  7. protoboard and header pins [this was done so we could mess about while designing, but you can also solder directly to TinyPico as shown above]


GITHUB with firmware, setup and demo code [Quest2] 

FLICKR pinch glove prototyping photos [Rachel's updated working prototype]

Finished Gloves and Random Thoughts

IMG_2105.JPG
PXL_20230206_161301462.PORTRAIT.jpg
hybrid-vr-gloves-onoff-top.JPG
hybrid-vr-gloves-onoff-palm.JPG
hybrid-vr-gloves-TinyPico-closeup.JPG
hybrid-vr-gloves-front-view.JPG
hybrid-vr-gloves-middle-finger-pinch.JPG
hybrid-vr-gloves-palm.JPG
hybrid-vr-gloves-side-view.JPG
hybrid-vr-gloves-zigzag-button-closeup.JPG
hybrid-vr-gloves-vive-connector-closeup.JPG
IMG_1176.JPG
IMG_1174.JPG
Pinch-glove-palm.jpg
Pinch-glove-back.jpg
Pinch-glove-pinch.jpg

The red tape is to protect the pogo pin connector when not using the Vive. And to stop potential shorts in the double circuit.

The TinyPico has a pin for capacitive sensing. We talked about covering the conductive fabric so it was insulated, then playing with capacitive fingertips, so maybe you could increase the illusion of touch by creating responses with varying distance between the fingertips. This would be cool! but would involve a custom PCB and integrating the electronics of the two systems..

I don't have pictures of this pair of gloves with the Vive tracker attached! Not a problem, there's lots here