What is Kickstarter? We’re the world's largest funding platform for creative projects. Learn more!

Jrowberg-avatar.large

Jeff Rowberg

Roanoke, VA

I'm a programmer by trade and by choice. I love creating order out of chaos and learning how to do what I love more efficiently. I feed off new ideas and techniques, and I get to work with a small but awesome group of people who accommodate my love for ... view more

  1. on April 21
    Jrowberg-avatar.thumb

    Jeff Rowberg
    Posted project update #17

    Keyglove Kit PCB Revision Update, Glove Status, and an Anniversary

    Happy Saturday, everyone!

    I've been continuing to make progress on the Keyglove, and especially for those of you who are interested in kits, I've got a great update. I've also got some sad news about the potential glove manufacturer I referred to in my last update, but let's start with the good stuff for now.

    For the "TL;DR" folks who would love to jump right into oodles of Kit PCB pictures, check out this, this, this, and this photo album on the Keyglove Facebook page.

    Kit Board Updates: 3rd time's the charm!

    As I mentioned last time, I've been working on a compact, simplified circuit board that will allow people to put together a collection of off-the-shelf parts and prototype modules easily without having to worry about exactly how to connect everything together. My goal is to end up with something that requires only connections from the sensors on the glove itself (clearly labeled, of course), and everything else should be plug-and-play--or perhaps plug-and-program-and-play. The kit board is based first and foremost on the Teensy++ board from PJRC and the 6DOF IMU motion sensor from SparkFun, both of which are easily obtainable and proven, tested components. The first attempt at this board, version 0.1, was a good effort:

    But even before the v0.1 board made it back from the fabricator and into my hands, I'd already scrapped it in favor of a new version. First, the circuit was missing a few connections that are required to provide seamless wireless (Bluetooth) connection management. Second, I had just modified the sensor count to include a total of 37 instead of the 34 I had been working with, and this required a significant reworking of the RGB/vibe/buzzer feedback module due to the limited number of pins on the Teensy++ board. Third, this board contains a whole module that won't even be necessary for the kit version of this project. So, I got rid of that, modified the feedback module, laid out the components a little different, and tried again:

    This revision, v0.2, is better than v0.1 from a layout standpoint and supports all the right modules and connection, and it pretty much turned out exactly the way I hoped it would. It even has a cozy little space to hold the lithium polymer battery.

    But two bad things happened with this board. First, although it worked wonderfully after I first plugged everything in and tested it for a few minutes, the board spontaneously decided to act up anytime I actually wanted to use it. Each component still worked fine on its own, but the moment I plugged them into the board, the Teensy++ would lock up and refuse to blink its pretty little orange LED at me.

    Usually.

    It would actually work briefly at random times. Intermittent problems are the worst. I still haven't pinpointed the issue, but I suspect the messiness of the circuit traces on the PCB itself may be introducing some capacitance in...actually, I'm not sure. I haven't learned enough to really know what I'm talking about when it comes to that in-depth level of electrical theory. It is honestly more likely that it's a very simple error that I wasn't fortunate enough to accidentally stumble upon.

    However, that issue aside, I also discovered a usability problem: although the board was smaller than the solderless breadboard I'd been working with before, once I added those 90-degree header pins on the edges, it became even more unwieldy. Add to this the fact that the PCB is extremely rigid, more so than the solderless breadboard (which has a thin foam pad on the bottom), and my super awesome kit board suddenly felt painfully big and ugly, despite being more convenient from an assembly standpoint. This would not do. So, to attempt to fix the unidentified electrical issue and to drastically shrink the board, I tried again:

    All right! Now we're talking! This v0.3 board is considerably smaller, which makes it easier and more comfortable to mount on the back of your hand without feeling the rigidness of the board. Also, it works. All the time. (Well, all the time so far; it hasn't stopped yet, and I've been doing a lot with it.)

    The photo above, ladies and gentlemen, demonstrates the latest in cutting-edge Keyglove Kit technology. The sensors work, the wireless module works, the battery charging circuit works, and of course the microcontroller driving it all works as well. Some of the larger modules do hang off the edge a bit, but this causes no electrical or structural problem, and it allows the base PCB to be smaller. There's not much that could be done to make this any more compact without stacking vertically or cutting out a module entirely (both of which are possibilities, but for now I'm sticking with this design).

    Not only is this probably something very much like what the eventual Keyglove Kit will use for a foundation, but it also simplifies the development process for me. Connecting sensors to the prototype module for testing is something I've had to do many, many times, and will have to do many more times during the course of development and debugging. With three dozen or so sensors, this gets to be tedious (or worse). With this board, that tedious-or-worse-ness goes away almost entirely.

    However, there's still that issue of what to plug into those 37 sensor-ready right-angle headers, which brings us to the fact that the...

    Glove Manufacturer Search Continues

    The exciting prospect I had last time has not panned out--not for lack of trying or interest on their part, but the main manufacturing facility in China that they usually use didn't feel comfortable attempting the mixture of textile and interwoven electronics that is necessary for the Keyglove's physical component. The management stateside was as disappointed in this as I was, and they said I could contact them again if could provide a very clear design that would be easier for a manufacturer to follow, rather than a conceptual explanation, simple diagrams, and a prototype. Although I was really hoping to have this taken care of by now (or at least be well on the way to), this is a perfectly reasonable request on their part, really.

    So, aside from the kit PCB, module testing, and embedded software development, I'm trying to start some conversations with reputable 3D artists who can help me put together something that will be suitable for a glove manufacturing company to use as a reference design. I've got one prospect on that front so far, but if you're reading this and know of someone (or are someone) you wouldn't hesitate to recommend, I'd be happy to hear from you. I've got a high-quality 3dsmax model of a hand to start with, but I don't have the software or knowledge to develop something better with it:

    So, that's the story on that. In my mind, this is still by far the biggest difficulty to overcome, and I'm intent on tackling it as soon as possible.

    One Last Thing: Your Enduring Support

    I honestly had hoped to be considerably farther along on this project by now, having real Keygloves on your hands and a strong market beginning to develop. My eternal optimism and lack of prior experience in many areas made my estimates off-target, and for this I am sorry (both for myself as well as for all of you). It isn't from lack of money--I still have a good deal of Kickstarter funding left from your generous backing, and I've even been able to take care of many recent Keyglove-related investments with my own income in an effort to stretch the Kickstarter money out as far as I can, to better accommodate future purchases that I don't even know I'll need to make yet. Most of the difficulty comes from a lack of time, since this is not my primary source of income, and that has to take precedence. Some of the difficulty also comes from a lack of knowledge, but I see that as a very temporary hurdle since I love learning new things.

    In less than a week--April 27th, 2012 to be exact--we will reach the one-year anniversary of the success of the Keyglove Kickstarter campaign. Wow. The truly incredible thing to me though is that in all this time, not one of you has sent me any nasty messages asking where the @#$! your rewards are, and telling me to hurry up. This is relieving and encouraging, but it is also humbling. I have a magnificent set of supporters, and though I've said so before, I want to tell you again that I am inexpressibly grateful for you all. You've given $12,474.80 and so far received very little in return (unless you really enjoy reading these lengthy updates). I promise it will not remain this way forever, and I'm doing all I can to finish the project and put products in (and on) your hands.

    So thank you all, again, for your generosity and especially your patience. You will not be disappointed. This thing is going to be awesome when it's done.

    Jeff

      1. Missing_thumb
        Julianna Yau Yorgan on April 24

        I've been reading all the project updates and just wanted to say keep up the great work!


    Post Comment
  2. on February 10
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    Double Fine Adventure by Double Fine and 2 Player Productions

    An adventure game from Tim Schafer, Double Fine, and YOU!

    • 834% funded $3,336,371 pledged
    • 87,142 backers
    • Funded Mar 13, 2012
  3. on February 10
    Jrowberg-avatar.thumb

    Jeff Rowberg
    Posted project update #16

    Glove Manufacturer and Keyglove Kit Developments

    Greetings, Keyglove fans!

    I've been busy on multiple fronts for a while yet again, so here's an update that will bring you all up to speed.

    Glove Manufacturer

    Perhaps most important to the overall progress of the Keyglove is the headway that I've made on the glove manufacturing front. In the last update around Christmas, if you recall, I mentioned that I'd located a manufacturing company that looked promising. Since then, I've been contacted by someone from a different company local to the United States, and so far the conversations are going very well. Not only is my contact at the company personable and helpful in general, but he is also so interested and enthusiastic about the Keyglove project that he actually contacted me to find out if he could help in any way. He is thorough and he definitely knows his glove stuff. He even sent me some samples from his company to show the quality and durability (understanding that the design required by the Keyglove would be notably different). The company makes some great stuff.

    Since we're still discussing possibilities, I can't provide more details at this point, but I am very excited about what could come of our conversations--and sooner, rather than later. I hope to know more within a week. I've included a photo showing one of the simple reference designs I sent to him showing the placement of touch sensors on the side of the glove. You can find this and many more Keyglove diagrams in this photo album.

    Keyglove Kit Developments

    Although I have been working on both hardware and software in recently, a major step relevant to at least a few of you is the creation of a DIY-friendly Keyglove Kit circuit board. The design is not tested yet since the PCB fabrication is still pending, but it's very promising. The ultimate goal is to create a fully unified and self-contained controller board that is pre-mounted and connected to the glove unit, but for those interested in building their own, making modifications, or just understanding each individual module, the kit approach is another option. (Not to mention the fact that it will be available before the polished retail version, due to the smaller amount of work that has to go into it.)

    A few of the individual modules will still need to be pre-assembled by me or someone else due to the required surface-mount components, but for those of you who want to order a Teensy++ programmable microcontroller board from PJRC and a 6DOF motion detection module from SparkFun--and for those of you who signed up for a kit--this board is a giant step in the right direction. One of the hardest parts about prototyping or building your own is making sure all of the bzillion connections are correct. This board takes care of all of that by building the connections into PCB traces, or breaking out the required external connections (glove sensors) into clearly labeled right-angle male headers. The rest of the modules just get plugged straight into female headers on the board.

    To top it off, the whole thing is smaller (in every dimension!) than the solderless breadboard I've been using for prototyping, and it even has an enclosed space to hold the lithium polymer battery! Even though it will still be a couple of weeks before I can get my hands on a fabricated version of the PCB design, the sheer awesomeness of the pending simplicity is overwhelming. This board supports all of the critical features currently in the design, and does so in a way that is far less work than anything I've done so far. Perfect.

    I'm sure there are some details I've forgotten at the moment, but keep watching your inboxes for more info and the pieces continue falling into place.

    Thanks for all you have done for me and the project!

        Jeff @ Keyglove

    • Image-90953-full
    • Image-90955-full
    Post Comment
  4. on February 2
    Jrowberg-avatar.thumb

    Jeff Rowberg
    commented on a project

    Nice job on this! It looks like you've definitely grasped all of the basic (and some of the not-so-basic) knowledge necessary to work with microcontrollers. :-) I'll be happy to give you some pointers and code to help make it wireless using Bluetooth as well, if that is something that interests you. The Bluegiga WT12 module can be integrated almost as a drop-in replacement for the Teensy's KB/mouse functions with the right code.
  5. on February 2
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    Reconfigurable High-Resolution Trackball by John Kicklighter

    Reconfigurable high-resolution trackball suitable for CAD, Photo editing and gaming with user programmable buttons.

    Funding Unsuccessful (03/03/2012)
  6. on December 26
    Jrowberg-avatar.thumb

    Jeff Rowberg
    Posted project update #15

    All Kinds of Updates, and Merry Christmas!

    It's been a full three months (exactly!) since the last Keyglove Kickstarter update, so I'll get right into the details.

    Actually, no. I'll start with the summary, and then get into the details:

    Motion Tracking

    I still haven't been able to reverse-engineer the inner workings of the very powerful MPU-6050 motion sensor chip I'm using, but I managed (with a lot of help from others) to implement the calculations right inside the Keyglove code that allow for remarkably accurate and reliable orientation and movement detection. This is a major milestone, since what I had before was quite limited and not useful at all for gesture detection. This new code detects the orientation of the glove at any given moment, which allows the rest of the code to know which direction is up even if the glove is upside-down. The only remaining hurdle in this area is to figure out how the on-board digital motion processing (a.k.a. "DMP") feature works on the MPU-6050, which will allow me to offload the complex math onto that chip instead to save a lot of time and battery power. This not easy because the manufacturer does not give out information on how that feature works, treating it as a valuable trade secret. You can watch a video of the motion detection here.

    Bluetooth Wireless

    Although I've been working on the code to use the Bluetooth module I have for quite some time, I've only recently managed to integrate it correctly with the existing Keyglove code. (Prior to this, it was only functional in a proof-of-concept sort of way.) There are a few things I still need to do, but I'm waiting for a redesigned circuit board to arrive in the mail before I can develop them. Those should be arriving in the next few days, hopefully before the new year. It was definitely exciting to hold a completely wireless, battery-powered prototype board in my hand for the first time and watch the mouse cursor move as I moved it. You can see that happening here.

    Interrupt-Driven Code

    When something needs to happen repeatedly and consistently using software, there are two different approaches: one is to use polling, and one is to use interrupts. Polling is where you keep checking for a certain condition over and over until it occurs; this is simple, but less reliable and more constant effort for the processor (which means decreased battery life). Interrupts, on the other hand, use special hardware features to automatically trigger some behavior whenever the hardware itself notices the condition. The software, in the mean time, case just sit and do nothing while it waits for an interrupt signal. I've now fully transitioned all of the existing Keyglove code to use interrupts, with a noticeable increase in performance.

    Using interrupts also provides a much better guarantee that certain events, like reading the motion sensor or testing for touch detection, always happen at exactly the same rate. For example, the motion sensors and touch sensors are read 100 times per second (or 100 Hz). The interrupt-based approach lets me to do this simply and reliably, instead of estimating how much delay is necessary between each check.

    Faster Serial Communication Protocol

    For configuration and special functionality, the Keyglove uses a simple serial communication "language" to send and receive data. The old stuff I was using was pretty inefficient, and obviously we can't have that! You can read the details of this new approach here, but the short version is that I've been able to cut down most data by at least 50%, with some cases being even better. Less data to send means it will take less time to send it, and for battery-powered operation, this is crucial to maximizing battery life (since wireless transmission is a very power-hungry operation).

    Roadmap and How to Build Pages

    For those of you following the project more closely and/or interested in the technical side of things, I've replaced the old "Project Status" page with a much more thorough Roadmap page, powered by the impressive Interstate app. This shows at a glance (or a bit more than that) how each feature is coming along, what's already done, and what's planned for future development. Check it out if you have a moment!

    Also, I've added a new and (hopefully) intuitive set of instructions on the How to Build page. It contains far more info than was there before, and it's full of simple step-by-step instructions and lots of pictures, such as the one attached to this update. The guys at Digital Telepathy hooked me up with a free Pro version of the SlideDeck content slider, and it's an awesome way to present instructions such as these. It doesn't have steps for every current feature of the Keyglove design, but it's enough to get you started, and as more of the design settles into place, I'll add more instructions. There are already a few people that I know of who are starting their own development prototypes! This is very exciting for me to watch.

    Physical Glove Manufacturing Option

    One of the biggest hurdles for me is still the lack of a manufactured glove to work with for prototyping. I've had a few setbacks on this front over the last few months, not all of which have even yet been resolved, but I'm hopeful that the difficulties may be coming to an end. I've located a company in Europe that manufactures custom gloves of all kinds using very good materials--some even military-grade for the best combination of features--and while I don't know whether a long-term arrangement is wise yet, they can produce small quantities for prototyping. I am currently working on a basic reference design to give them more detail about what I'm looking for, and we'll continue discussing different possibilities after I get that to them.

    At the beginning of this year, I was hoping that I'd have some products ready for retail by the end of 2011, and that hasn't happened. (I don't think five more days in the year will allow me to reach that goal either, sadly.) While the delays are disappointing to me, they also are a constant reminder and motivation for me to keep pushing as hard as I can. I want to realize the goals of the Keyglove project as much as much as you all do, and I'm confident that I will be able to present a robust, intuitive, powerful device to the tech world sooner rather than later.

    Thanks again for all of your support! I hope you all have an excellent Christmas holiday and happy new year.

    Jeff

    • Image-82829-full
    Post Comment
  7. on December 10
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    C 299,792 km/s by Derek Van Gorder and Otto Stockmeier

    A visually stunning, compelling sci-fi short film about interstellar colonization, meticulously shot with retro filmmaking techniques.

    • 200% funded $37,317 pledged
    • 1,198 backers
    • Funded Dec 26, 2011
  8. on December 6
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    The Eyeboard by Luis Cruz

    The Eyeboard is an open source eye tracking project that lets you interact with the computer and the real world.

    Funding Unsuccessful (02/04/2012)
  9. on November 23, 2011
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    Blink: A surreal first-person gaming experience by Blue Void Studios

    Blink is a first-person game crafted with an innovative formula of platforming, puzzles, and mystery.

    • 145% funded $14,580 pledged
    • 677 backers
    • Funded Nov 28, 2011
  10. on November 22, 2011
    Jrowberg-avatar.thumb Backer

    Jeff Rowberg
    backed a project

    Photo-full

    The Eyeboard - Low cost eye tracking system (Canceled) by Luis Cruz

    The Eyeboard is an open source eye tracking project built with the intention to help people with disabilities using EOG.

    Funding Canceled (12/06/2011)