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


where to buy ergonomic gear in the bay area

If you live in the bay area, 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 other than purchases I made there: both my kinesis keyboards+footpedal, and both my cirque touchpads.

evoluent vertical mouse


gyration airmouse

This mouse is the more compact, but less ergonomic (IMHO) version of the go pro. The kit consists of a mouse an RF transceiver dongle which hides in the mouse itself when not in use, and a zippered pouch for the mouse. Standard alkaline batteries are needed (the mouse comes with two). The key points for me: unless you have very small hands, the mouse is awkward to hold up in the air. The movement tracking is really not that great especially if you inadvertently roll the mouse at all. It's too easy to brush your fingers under the optical sensor of the mouse while holding it up in the air. There does not appear to be a way to disable the traditional/optical mouse functionality, which makes aforementioned problem even worse. My main interest at this point is tearing it down to see if some sort of wearable, wireless pointing device can be hacked out of it since it is so small and lightweight.

alphagrip chording keyboard + trackball

This is my current input device with which I'm mostly satisfied. I'll post soon about some of my customizations.

Cirque smartcat/pro touchpad

The only reason to buy the pro, in my view, is to get a distinct third button for linux paste capability.

Fingerworks iGesture

Imagine half of a touchstream, without the typing capability, and this is what you get. Just like the touchstream, the USB cord is not detachable and poses a potential point of failure. The picture above shows an improvised strain relief on the cord using hot glue.

Touchstream LP

Amazing, but has a very high learning curve and an even higher price ( if you can even find one). I generally use mine when I'm doing work that involves more complicated mouse actions than actual typing or when browsing the web (since I have all the browser actions mapped to gestures).

Combined typing and mousing. Being able to seamlessly transition from typing to mousing or gesturing without moving your hands is great.

Highly programmable- literally hundreds of user configurable gestures and settings. Imagine bettertouchtool on steroids x 2.

Lack of tactile feedback makes typos a constant issue. Even after owning several touchstream keyboards for many years, I still type much more slowly on these than on a mechanical keyboard and make far more typos.

Availability- the only way you might be able to get ahold of one now is ebay.

Price- absurdly high due to the lack of supply.

Comfort keyboard system (original)

This keyboard has a number of cool features, but in the end I found it unusable. This keyboard's key selling point ( and it's downfall, in my case) is the 3 section layout where each section can be independently tilted, rotated,shifted,etc. It's a great idea, and I think the mechanical design is very clever. Unfortunately, this pivot on rails mechanism makes the keyboard very tall, even if you rest it on your lap. There's a few more issues, I'll come back to later...

IBM/Lenovo Ultranav with trackpoint

This is a very low profile keyboard whose key features in my view are the integrated trackpoint and touchpad. This may or may not be a good feature depending on which aspects of computer usage cause you problems. If you have issues with your fingers (as opposed to wrists, elbows,etc.) the trackpoint is not good. I found it can quickly make the pointing finger quite sore. The touchpad is just your usual run of the mill touchpad but it did notably work quite well under linux, including scroll support,etc.

The key feel (at least on the several ultranavs I own) is not good- the keys snap in such a way as to recoil painfully on the fingers.

Kinesis freestyle

This keyboard has two notable advantages over the kinesis contour: it's cheaper, and it's more accommodating of wide sh0ulders as the two halves of the keyboard can be significantly separated. You do lose a few features for the lower price- no programmability, no curved keywells, no integrated USB hub, no support for footpedals. Currently, I have this keyboard disassembled to experiment with pieces of it. Here's some pictures of the internals, as requested. The function keys are on the same matrix as the letter keys. I added the internals of a 4-port USB hub, de-soldered one of the 4 ports' connectors and soldered the keyboard's original USB connection directly to the pads of that connector. The keyboard is the then connected to a computer via the hub PCB's USB connector. Sorry for the rotated images, this was a quick update.

Kinesis contour

This is one of the first ergonomic keyboards I purchased and has many strong points. The curved keywells take some getting used to but I do find them to be superior to a traditional keyboard layout. The two main benefits I see: having the keys laid out in straight rows and slightly reduced reach due to the keys being at heights suited for each finger. The fact that the left and right hand are separated does slightly help if you have somewhat wider shoulders ( I do and this keyboard is still not quite wide enough). The separation also provides a somewhat convenient flat area to affix a touchpad ( if you can tolerate the amount of forearm pronation and elevation this would require).

I tend to work on multiple computers using different operating systems. In this context, the keyboard's support for key-remapping in hardware is quite useful since you'd otherwise have to restore your customizations at every computer you use.

In short I like a lot of things about this keyboard- but since I have issues with excess forearm pronation+elevation, I'd have to say it's simply too tall and narrow for frequent use.

I'm currently addressing both these issues by building a custom keyboard which I'll post up here soon.