The stock Power Glove has three input methods: finger flex sensors, ultrasonic triangulation, and button pad entry.
Here you can see the thumb flex sensor (the glue had deteriorated on mine, so it was easy to peel up and have a look -- don't mess with yours if it's intact! I fixed mine up later with some E6000 glue.)
For our modified Power Glove MIDI controller, we'll use the four flex sensors and add tilt and roll sensing from the Feather Sense's accelerometer.
Power Glove Disassembly
Unscrew the four screws that hold the inner wrist support in place. Be sure to save the screws in a safe, organized place!
Unsnap the wrist band and remove it, then remove the inner wrist support and place them both aside.
The four screws you just removed not only held the wrist support in place, but also held the wrist control pad and main PCB in place.
Open the lid and set the base aside.
This is the main brain of the Power Glove.
Here you can see that the NES cable had already been desoldered and removed from mine. You can do the same now, we won't be needing it.
The plastic casing on the back of the hand of the glove is sometimes referred to as the "palm controller" and "palm PCB". This contains circuitry and wiring for the flex sensors and the ultrasonic emitters, as well as a small piezo speaker.
A wiring loom runs a group of wires from the palm board to the wrist board.
Unscrew the four screws on the sides of the palm controller casing to open it up.
A look at the palm PCB reveals some interesting things.
First of all, there's the type logo. Radofin made video game consoles (think Pong) and computers (ever heard of the Aquarius?) in the 1970s-80s, their involvement in the Power Glove doesn't get much mention. The Power Glove was actually made by Mattel on license to Nintendo, and Radofin designed electronics for Mattel, this makes sense.
We can see the four pairs of wires from the flex sensors are soldered to the PCB and then half of them run straight across the board to their wires that head through the wiring sleeve to the wrist PCB. The other half of the wires make a detour through a diode each first.
Some Power Glove modders have gone the route of desoldering the diodes and replacing them with resistors to create the voltage divider circuit we want, but out of respect to the board, I decided to desolder all of the wiring from it and remove the board. We'll then replace it with our own perma proto board.
Using a hot soldering iron, some tweezers and proper ventilation, begin desoldering each of the flex sensor wires from the palm PCB.
If you have problems getting the solder to melt, it can help to add a bit of fresh flux core solder to the joint first.
Once the flex sensor wiring is off, desolder the wires from the other side of the palm PCB where they head to the wrist board.
Note, if you run into big blobs of gummy adhesive/hot glue obscuring the solder joints, you can remove it with isopropyl alcohol and tweezers.
This is a great time to test out the original flex sensors, and determine which wire pair is connected to each finger. Using a multimeter in resistance mode, connect one end to a uniquely colored wires, such as white and then check each red wire until you measure a value around 160KΩ.
While still measuring these wires, bend the thumb and each of the first three fingers (sorry pinky) to determine which one is connected. The resistance value should smoothly increase to around 650KΩ as you bend the associated finger.
Map these out and you should end up with a chart similar to this:
- thumb = blue
- index = black
- middle = white
- ring = brown
We don't need to map each of the red wires since they'll all go to the positive 3.3V line.
We'll create a voltage divider circuit for each flex sensor that allows us to read an analog value with the Feather for each sensor. This guide on using force sense resistors gives a great overview of how this will work.
With the 3.3V output of the Feather and a 470Ω fixed resistor to pull down to ground, we'll get about a 1V range out of each finger sensor.
Here's what the circuit will look like:
Due to a complicated incident involving mint tins, neon scrunchies, and a time portal in Ladyada's dorm room, the screw standoffs in the Power Glove palm molding match the mounting hole spacing of the Adafruit Perma-Proto Small Tin board.
Solder the Reistors
Grab your perma proto board and four 470KΩ resistors. Bend the leads in and insert them at an angle on the board as shown here. Note that one end of each resistor must go to the GND rail, indicated by the blue line on the board.
Bend the legs out to hold the resistors in place, then solder them to the board.
Clip the resistor leads off with flush cutters.
Solder the Sensor Leads
Now, solder the uniquely colored flex sensor wires each to their corresponding resistor.
Reference the Fritzing diagram above for the finger ordering, in case your colors don't match exactly.
To keep things neat and tidy, you can insert these wires from the underside of the board and solder on top.
The other lead of each flex sensor will go to the positive 3.3V rail. Solder those wires (all red wires in the case of this particular unit) to the positive voltage rail, marked with the red line on the perma proto board.
Again, you can connect these from the bottom of the board and solder on the top side to keep things neat.
Wiring to the Wrist
We'll reuse the wiring harness that we previously desoldered from the PCBs that connects the two sections of the glove.
Solder one wire per sensor row.
Match the wiring colors (or choose your own, so long as you keep track of them!) so we can make the proper connections to the Feather on the other end.
Solder the red and black wires to the positive voltage and GND rails, respectively.
You can reserve the unused wires for later use, just be sure to clip their exposed ends to avoid any shorts.
Next, run a 8" length of ribbon cable up from the wrist support area, through the small programming slit that is molded into the wrist controller base as shown here.
We'll only use six conductors, but I decided to keep all ten in case additonal mods come up later, such as buttons wiring or adding LEDs.
This idea came from Adafruit friend @todbot -- we'll use header pin connectors to join the palm wiring to the ribbon cable.
Peel off the first six wires, using the white edged wire as the first position when counting.
Strip the ends and tin the wires.
Prepare a six position set of male and female headers as shown, marking one end as a reference with light colored paint marker.
Tin the female header connectors, then solder the wires in place as shown.
Wiring Loom Connector
Re-tin the ends of the six wires coming from the palm perma proto board through the wiring sleeve.
Insert the male header pin set into the female connector. Tin the exposed pins and solder the wiring in place as shown.
These are the positions we'll use:
- Position 1 = red = voltage
- Position 2 = black = GND
- Position 3 = brown = ring
- Position 4 = white = middle
- Position 5 = gray = index
- Position 6 = blue = thumb
Close the Wrist Controller
Add some Kapton tape and this connector at this end is complete.
Making sure to keep the wires out of the way of the mounting holes, you can now place the wrist pcb and cover/button pad on top of the wiring harness.
Now, we can flip the Power Glove over and wire up the Feather.
First, solder male headers to the Feather Sense and insert it into the Terminal Block FeatherWing.
Strip the ends of the six ribbon wires we'll use.
Then, insert the ribbon wiring into their respective positions on the screw terminal blocks as delineated in the wiring diagram above.
Insert the LiPoly battery into the Feather's JST connector.
Use some double-sided adhesive foam tape or adhesive Velcro to secure the battery to the Power Glove wrist support space, and the FeatherWing to the battery.
You can still access the power switch on the FeatherWing and the USB port for programing and battery charging.
Your Power Glove MIDI controller is now wired up and ready for action.