Feature Creep: The Project

How many things can I add to one interface device?

Similar projects worth following
About a year ago, I found a "P5 Power Glove", which was a PC version of the NES Power Glove. This is my silly version of this. It's intended to be an arm-mounted, semi-universal interface to other projects I build, as well as be an interesting device in its own right.

Planned features:
- 8 LED illuminated buttons
- 2500 mAh LiPo Battery + Charger
- 128x64 LCD screen
- 8 WS2812 LED ring
- Wii Nunchuck interface
- WiFi via ESP8266-based board
- Teensy 3.2
- Arduino Nano
- Custom 3D modelled case

Other things I might implement given time:
- Flex Resistor Glove
- Ultrasonic Range Finger
- 8x8 WS2812 Matrix
- Color Sensor
- Sound Sensor

So, the P5 Power Glove uses 5 flex resistors to detect the flex of your fingers. I've managed to find a ribbon cable clamp that fits, so it's relatively easy to wire to it. However, it requires 5 analog pins, plus VCC and GND. So 7 pins on a controller. I'll probably hook it into an Arduino Nano, and talk to the rest of the system through I2C.

At this point, I'll probably make it modular, so I can plug the glove in separately. And while I'm at it, I'll probably add an ultrasonic range finder on the back of the hand, and a color sensor on the palm of the hand, because why not? The nano can handle all that and report back to the main module. It also means it'd only be 4 pins to the glove, instead of 7+.

Also, I can't really use a NodeMCU as the main controller - it just doesn't have the horsepower, and certainly lacks in the GPIO pins. Thus a Teensy 3.2. I/O to spare!

matrix box v2.stl

Pod for the 8x8 WS2812 matrix and mic board

simplify3d_stl - 176.94 kB - 10/30/2016 at 22:23



The top cover for the buttons - 100% infil

simplify3d_stl - 95.98 kB - 10/30/2016 at 22:23



The mounting tray for the buttons - print at 100% infill

simplify3d_stl - 471.37 kB - 10/30/2016 at 22:23



The outer casing for the buttons

simplify3d_stl - 118.44 kB - 10/30/2016 at 22:23



The main casing - Print flat side down

simplify3d_stl - 309.26 kB - 10/30/2016 at 22:23


  • 1 × Adafruit micro USB breakout
  • 1 × Sparkfun LiPo Charge Board
  • 1 × 2500 mAh Battery Pack
  • 1 × Solarbotics Nunchucky Wii Nunchuck Interface
  • 1 × Teensy 3.2

View all 11 components

  • Disaster! (again?)

    TwystNeko11/24/2016 at 19:47 0 comments

    So, my HT16K33 controller just failed. Doesn't show up on an i2c scan, and thus my LED buttons don't work.

    Other issues I've run into:

    - Sparkfun ESP32 Thing: Wonderful board, just doesn't have a mature software stack. SPI and i2c are flaky at the moment. I hope to be able to use it soon.

    - LED matrix is clunky, and I didn't make the slot it fits into big enough, so it's curved. Also managed to ruin traces, hooray for jumper wire patches.

    So now I'm looking at other ideas. I saw some really nice SMD charlieplexed matrices on Adafruit - 16x9, runs via i2c. I'd love to have several of those, make a really nifty display, but I don't like the gaps when boards are next to each other. Guess I'll look into PCB design - something I've never done!

  • Upgrade Get!

    TwystNeko11/13/2016 at 19:19 0 comments

    So I finished designing the new casing. I was smart, and made it so the button pod was reusable. I did have to tweak the height on that just a bit - the top cover wouldn't fit.

    The base, which has the arm mounts, is snap-fit onto the bottom.

    Next up is going to be integrating the tiny OLED screen. I figure I'll run animations on the LED matrix, as it's a bit clunky for any real information. The OLED is a simple i2c device, and can share pins with the HT16K33. I'll just make a mount for it on the top side of the main case.

  • The best-laid plans of mice and men...

    TwystNeko11/08/2016 at 17:50 0 comments

    Isn't it awesome when things just don't work? I managed to somehow blow up my Arduino Nano. No big deal, I have a few. But the display not working with a Teensy is more frustrating. So I decided to look through my stash. I've got a 8x32 LED matrix, a 320x240 TFT shield, and a tiiiiiny OLED display. I know the matrix and the OLED will work with a Teensy, but the shield is iffy. It'd be cool if I could use it, as it also has an SD card slot and a touchscreen. Of course, this means that whatever I do, I'll have to redesign the main body of the project.

    I'm kind of leaning towards the LED matrix, as it's easy to work with.

  • Argh, libraries!

    TwystNeko11/07/2016 at 22:23 0 comments

    So my initial plan was to use a Teensy 3.2 as the brains of the operation - it's fast, lots of I/O, and mostly arduino-library compatible.

    Note the mostly. Turns out the library I use for the LCD display, U8Glib, is incompatible with the Teensy, and there's no current fix. The new version, U8G2, is also incompatible. So now I'm stuck shoving a bajillion sensors and connections onto a poor Arduino Nano. Looks like I might have to make this thing dual-core after all! Use something small - like a Trinket - for the LCD display, and control it via i2c from the teensy. Or perhaps use a NodeMCU, so I can at least have one controller do the wifi and the LCD - I know the library works on that.

    I've also been working on getting a graphic equalizer running on the LED matrix, but the MSGEQ7 is proving to be a lot harder to deal with than I thought. It wants a very small voltage as an input - such as LINE-IN voltage, rather than an amped up voltage that you get from a microphone breakout board. So I'm playing with a bunch of ideas trying to get it all to work.

    I do have a rather impressive rat's nest of wiring going though!

  • Blinky Buttons!

    TwystNeko11/04/2016 at 20:19 0 comments

    This is what the setup looks like so far, without the LCD screen in place. behind the LED matrix is a Adafruit mic breakout board. I'll also be wedging a MSGEQ07 chip in back, with its associated components.

    As for the blinky buttons - I've gotten those LED-topped buttons working! The HT16K33 is an amazing little chip - it can share LED pins with button pins, so it's only 9 wires to control 8 LEDs and 8 buttons!

    I'm using a pretty minimal library for it, as I don't really need any fancy graphic routines for it. I was trying to get it using interrupts, but it's much easier to just poll it every 30ms or so in my code.

  • Progress!

    TwystNeko10/31/2016 at 00:23 0 comments

    I've made the files I've created thus far available in .STL format. They're still a work in progress.

    I made the main casing 25mm tall instead of 20mm, and now there's room for everything! I also thickened up the thin walls.

    As well, I've modelled up the WS2812 8x8 Matrix casing. There's a hole in the back that an Adafruit mic board fits into, as well as room for an MSGEQ07 - Spectrum analyzer time! Also sound-reactive patterns.

    I'll upload a diffusion screen pattern later, to be printed in translucent filament.

  • Fresh Prints

    TwystNeko10/29/2016 at 19:15 0 comments

    As you can see, everything fits (so far!) One problem I'm seeing is around the USB/Nunchuck ports, the edge actually has a gap due to the chamfer I put on the case - those two walls are 1mm thick due to tolerances, rather than 2mm everywhere else. I'll have to redo that.

    Also, there is barely enough room for everything - the Sparkfun LiPo board will have to have the barrel jack removed, and all the pins on the LCD will need to be removed. The Teensy will fit on the back of the LED ring, and the ESP8266 is tiny, it'll fit almost anywhere.

    I suspect I'll have to increase the depth of the case - it's 20mm right now, if I bump it to 25mm, that'll give me breathing room.

  • First Steps

    TwystNeko10/28/2016 at 18:03 0 comments

    So, I've been modelling the case in Fusion 360. I'm designing it to be fairly modular - the buttons will be on a breakout pod, for example. It's been a good way to learn how to design to real-world components.

    My first attempt at printing out the casing demonstrated that while a 1mm thick wall is just fine if it's sheet metal or injection molded plastic, a 3d printed case needs to be more robust. I also need to design larger tolerances into my designs - my 3D printer is good, but not that good. :)

    I'll be releasing all the design files as I build them - .stl and .step, so people can edit them to their needs.

View all 8 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates