Wednesday, April 21, 2010

wireless split kinesis contour

I finally have almost all the hard issues sorted out and I've assembled the left side of my heavily customized kinesis keyboard. Here's what's currently working:

Seamless wired to wireless operation:
Recharges when it's connected via USB, but can still be used while doing so. When disconnected, the wireless interface starts working immediately. When reconnected the wireless is disabled.

Support for 4 pointing devices:
The final keyboard will have 1 trackpoint + 1 touchpad per side. I've verified that I can support 3, and I'm 99% certain that 4 should work. I'm using synaptics touchpads and trackpoints directly connected to my microcontroller. This means I can implement distinct functionality for left and right sides- e.g. one side scrolls, the other side moves the cursor.

Runtime selectable keymaps:
I'm using a microcontroller with plenty of flash, so I have room to spare for extra keymaps (e.g. QWERTY,Dvorak,etc.). I've verified the ability to switch between them on the fly.

Remaining Tasks

At this point I need to:
solder the right half of the key matrix to the controller
build the plastic housings for each half
integrate touchpads and trackpoints into plastic housings
try to ruggedize everything as much as possible

The mechanical stuff has always proved to be the hardest for me. In the picture above the keyboard frame is still in one piece because I'm still measuring out how to integrate 2 touchpads and 2 trackpoints- there's barely enough room. A very similar issue is why I ended up postponing further work on the wireless alphagrip; it was just too hard to fit everything back inside. When I get back to working on the alphagrip, my plan is to make my own more compact keymatrix, perhaps consisting of individually soldered keyswitches to free up room vs. a full PCB.


  1. Interesting. Can you show pics or give more detailed info on the Kinesis Contour mod and the Alphagrip mod?

  2. Was planning on posting pics earlier but microSD holding them got corrupted. The small board in the picture with the orange LED is the microcontroller board, the RF board is in the picture, but edge on, so its hard to see. The longer green schmartboard is where the trackpoint and touchpad for one half of the keyboard are connected.

  3. Coolio!

    I'm sorting through a few items in the pics I don't recognize. Thank you for showing what you're doing. I'm a Mac user and I'm wanting to be wireless, I don't know if I can :(

    Link to my less technical/proof of concept version:

    Also, how do you like the Alphagrip?

  4. If you just want wireless, that's not hard. In fact I've got it working perfectly using nordic transceivers (nrf24l01+). The wireless stuff by itself would fit easily in the original keyboard housing, especially if you don't intend to cut it in half (as I do). The alphagrip is awesome in a lot of ways. I'd say it's two main shortcomings are that it's not wireless and it's too narrow for me. Despite these issues it's still my primary input device most of the time because it allows me to type while standing. Being able to change positions frequently is crucial if RSI is at all an issue.

  5. just looked at your writeup- very detailed, nice. Wireless might be tricky in your case because of the reliance on an off-the-shelf USB hub, power efficiency is not going to be great and you'd likely run into a slew of other complications trying to interface that hub to a USB OTG or hostmode compatible ucontroller. If you went ahead and used a microcontroller with integrated USB hub functionality you'd probably have better luck. In this case firmware would likely be a tad complicated, as I don't know whether you'd be able to use a nice USB stack like Dean Camera's LUFA.
    The alternative to all this is you could use one of the new wireless USB dongles, if you could find one with Mac drivers. I can confirm that the ones made by cables unlimited will work with battery power under windows. Be warned, however, that they suck power like crazy, you'd need something like an RC car battery which won't be light or convenient to recharge over USB.

  6. This comment has been removed by the author.

  7. Interesting input on wireless. For me, wireless will need to be a Phase II project. Splitting and integrated pointing devices are my primary concerns. Wireless won't matter if these other items are not elegant.

    Thank you for Alphagrip info. I'd like to get one later this year after my current project has results.

    Please keep posting your progress!

  8. I want to echo what GG said - please keep posting your progress! This is very interesting - combining features of two great products made by the same company.

  9. Have you looked into having (volume/track) media keys on the Contoured? Maybe in the F-key row?

  10. I've not been able to find a USB Trackpoint that is not part of a main controller. You said you're using a Synaptics Touchpad and a Synaptics Trackpoint?

  11. I have considered adding extra keys, but have not really done much with the idea. What I have made some progress on is a custom replacement case for the keyboard. I vacuum formed a new split back side for the keyboard and laser cut some acrylic for the top side. Ill try post some pics when I get the chance. As far as touchpad/trackpoint, yes I'm using synaptics. At a low level the modules themselves are actually using PS/2, the top level controller is what provides a USB interface. In my case, I'm bypassing the controller board and directly connecting an atmel microcontroller to the PS/2 interfaces of the trackpoint and touchpad.

  12. Not quite a wireless solution but I built a split kinesis contour keyboard using 2 monitor vga cables. If you can make it wired you can make it wireless :)

  13. This is a very cool looking project. Have you arrived at a final version yet?

    I am considering something like this (split Kinesis with TrackPoints, perhaps wireless down the road) and have a few questions for you.

    Do you have a more detailed description of your hardware? It looks like you have replaced the original Kinesis logic board with a teensy dev board. What do you have setup on the receiver side? Do you have any of your source code available? What kind of batteries are you using? Where did you find your TrackPoint units? The only source I've found (in an admittedly short searching period) were in the form of full keyboards.

    Thanks for your help. I look forward to seeing your finished product.

  14. I had a hard drive failure where I lost a lot of the code/schematics/etc. I've recently started restoring stuff from dropbox backups, so I'll probably have a new post once I get back to a working state. The trackpoints came from 16 old laptops I got for free. Batteries are compact lithium ion, don't remember the capacity off the top of my head.

  15. Hi,
    I'm doing a follow up on this and a couple of your projects :)

    Is it possible to see some pictures and/or get some parts info on the wireless in the Kinesis?

    Thank you!

  16. Hey GG, sorry for the lack of follow up. I've been pretty busy, but I hope to get back to working on this sometime soon. I'll see what I can do about adding more detailed info.

  17. It's taken me this long to touch base, so no worries. I moved to Silicon Valley this year. I just saw your work on the Freestyle for the first time, dunno how I missed it for the last 4 years.

    There's some extensive info on adding keys to the Kinesis Advantage matrix…about 6 can be added, just add wire and program. It's on Geekhack, you can link to it via my signature (Input Nirvana)

  18. Thanks for the heads up, I'll have to take a look. Hopefully I'll have sometime over the upcoming holidays to finally look at some hardware hacking again, it's been too long. Now that you're here in the valley you can pick up all sorts of stuff at Halted and make use of techshop (I'm bummed they've raised their rates so much, however).

  19. Any more info on this project? Code? Firmware for controller? Looks like a Teensy 2.0+ on there. I would love to replicate some of the functionality you have accomplished, but I'm still lacking the technical chops for it at this point.