To Orbit or not to orbit

As a christmas gift from my employer I got a very nice mouse, the Kensington Orbit. I really liked having a trackball mouse again, in the past I’ve had several Logitech trackball / mice that helped me solve RSI problems. The reason I liked having one now is that I’m frequently drawing in Google Sketchup and / or Solidworks. I liked the idea of rotating a physical object (the ball in the mouse) to manipulate the object on the screen.

Middle mouse button!

The Kensington Orbit has a ‘scrolling ring’ and two mouse buttons, but lacks a third mouse button. That last button is extremely comfortable when using 3D CAD programs as it allows you to orbit your object while performing another task at the same time. Confusing enough, the Kensington Orbit cannot be used to orbit by mouse….

..have..to…press..middle…mouse…button….

OK. This one might have gone too far, but I REALLY wanted that middle mouse button. To go short, I added a Konig mini USB hub, and the controller of another mouse inside the original housing to add the functionality I wanted.

Description:

Konig Mini USB hub, removed housing and desoldered the USB connectors to make space available

Cypress CP6238 controller desoldered from a logitech mouse, only to use the USB lines and the middle mouse line.

Original mouse electronics and USB cable, but removed connector from incoming USB cable and soldered the lines directly to the USB hub. One of the USB hub ports now feeds the original electronics

What did I try that did not work?

I had several other options in mind before I used the one described above:

Remove original electronics and use only donor mouse parts. Pro: USB hub not needed Con: the Orbit uses a Allegro A505 optical chip, the donor mice I had lying around were all using other (less sophisticated) optical chips. Interfacing would be very hard.

Use original microcontroller Pro: no other hardware needed Con: The original microcontroller (also Cypress, but now the CY7C63813) can probably be flashed, but I didn’t feel like finding out what compiler to use, creating a build environment, etc. I also tried checking unused pins for pull-ups by touching them with 10k to GND (first checked voltage level on left & right mouse button to see what could be expected), but could not find an unused ‘middle mouse button’ pin.



Pictures