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.

Thursday, August 20, 2009

nintendo wiimote with motionplus

I've been messing around a bit with combining gyro data from the motion plus module and accelerometer data from the base wiimote. I've been using a Kalman filter to merge gyro + accelerometer  for pitch and roll and this seems to work fairly well. The contribution of the gyro acts to smooth the accelerometer data, at least  for the two rotations which are not completely perpendicular to the force of gravity (pitch and roll). The accelerometer data appears to be completely useless for yaw.  The gyro data does a decent job of measuring yaw but it drifts, and the worthless accelerometer data does not help in this case. Perhaps just applying some sort of high-pass filter to the gyro yaw might allow salvaging some useful information.    

wireless alphagrip progress

I've finally managed to resolve some timing problems with the RF link; I now have my heavily customized wireless alphagrip mostly working.  Up till now I was having issues with jerky trackball movement when using the alphagrip wirelessly, now I've managed to sort that out, cursor movement is smooth, keystrokes are not getting duplicated anymore either.  Here's the features I've added so far: 

  • Wireless and wired operation- I retrofitted the alphagrip with a lithium ion battery and USB charger IC, and ultra-low quiescent current regulator in such a way that when you plug it in the battery recharges but the alphagrip is still fully functional. When you disconnect, the alphagrip begins to work wirelessly by talking to the special USB dongle I'm using (NOT bluetooth). 
  • Scroll wheel emulation using the trackball- enabling numlock will lock out the trackball x-axis and all buttons except the mouse buttons.  In other words when you enable numlock, the trackball no longer moves the cursor, it just acts as a scroll wheel. 
  • Firmware upgrade-ability on the fly- a special key sequence  kicks the alphagrip into its bootloader at which point new firmware can be loaded without having to physically hit a reset button tied to the microcontroller. 
  • Real modifier keys- when you push Ctrl, Shift, etc. they are actually transmitted to the host. This allows things like Ctrl/Shift click multiple selection which aren't possible with the original alphagrip. 

At this point the remaining tasks before I can deem this keyboard fully functional are mostly mechanical issues.  Solder joints at the Ctrl key are bad, need to be retouched, but this is easy. The hard problem that I've yet to resolve is cramming all the new hardware components  into the very limited amount of space inside the alphagrip.  There is just barely enough room for the new microcontroller board, RF transceiver, battery+regulator, tons of wires. I may just try  to dremel out any plastic that isn't absolutely critical in order to free up some space. Once things are more finalized I'll post some pics.



Sunday, August 2, 2009

Wacom bamboo pen and touch

This device is best summed up as a wacom tablet with some minimal touch functionality thrown in as an afterthought. The stylus+eraser functionality behaves as one would expect and you can seamlessly switch from stylus to finger on the tablet surface. So far, so good. Unfortunately, the touch functionality is not smooth at all when compared to the magic trackpad, iGesture, or even the cirque smartcat. The multitouch functionality in particular is very limited, with only a small set of available gestures and only two simultaneous touch points supported.

Anthrotronix acceleglove

soon...

where to buy ergonomic gear in the bay area

If you live in the bay area, http://www.askergoworks.com/ is the only place I know of where you can actually try out various ergonomic keyboards,mice,chairs,etc. before you buy them. They have a showroom in Palo Alto where you can check out their products by appointment. One cool thing I discovered- they are a reseller for a custom office chair company- you can specify every piece of the chair to your liking: back, seat, fabric, hydraulics,etc.

I have no connection to askergoworks.com other than purchases I made there: both my kinesis keyboards+footpedal, and both my cirque touchpads.

evoluent vertical mouse

soon...