Author Topic: rolling your own (homemade trackballs)  (Read 8445 times)

0 Members and 1 Guest are viewing this topic.

Offline Count Zero

  • Thread Starter
  • Posts: 8
rolling your own (homemade trackballs)
« on: Tue, 19 January 2016, 02:31:02 »
Hi guys, I've recently become emotionally invested in the idea of an oversize trackball (my goal is: bigger than the 4.5" trackballs from the old atari arcade cabinets). Since this is not a market segment that exists in any size I'm looking into building my own. This could mean a couple different things. Straight from scratch would mean buying a load of chips and sensors, teaching myself how to code microcontrollers in their most feral state, then soldering and tinkering until I had a trackball. Disadvantages of this being there is a lot of knowledge that I do not have, which would probably prevent the project ever taking off. At the opposite end would be buying a trackball that somebody else made, taking it apart, then wiring it into whatever abomination I have built. Disadvantages of this would be being limited to the inputs that have been provided by the manufacturer. It also seems that trackballs don't usually come with the latest and greatest in sensor technology, and If I'm going to go through all this trouble for a mouse I want it to be the best dang mouse I can build. Were I to use a higher end regular mouse as the base for my project I would have to deal with the fact that the axis are turned around, there are software fixes for this but I would prefer to deal with it at the hardware level.

A third option came to me while looking at different related projects across the internet. Arduino has a built in HID library that allows it to act natively as a mouse and/or keyboard (I believe that the ergodox uses something related). If I could obtain one of the sensors used in the more decent gaming mice, It seems doable to interface it with the arduino and have that act as the controller. With the bonus that I could add oodles of buttons and other weirder inputs if I felt so inclined.

My questions to you, the community, are thus:

-Are optical mouse sensors difficult to source ? I have done a cursory google search and digikey has product entries for some decent avago sensors, but they are listed as out of stock with a unit quantity of 1000. This is many more than I need (by about 999)

-Would the arduino impose limitations on the performance of the mouse ? Maybe the arduino processor is too slow to throw the inputs to the computer fast enough, maybe the higher level language of the arduino sketches would bog down the process. I don't know.

-Am I chasing a nonexistant advantage ? The better sensors will obviously be more responsive and have better tracking and whatnot. But this could be a negligible difference. Especially factoring in that I will probably not be manipulating a 2+ pound trackball with incredible speed, and I don't really do any gaming.

-What complexities am I missing ? From the information I have tracked down so far it sounds like a mouse sensor handles all of the image comparison magic, then throws out a pair of delta x and delta y values over a serial connection. Which the microcontroller then translates into something the computer will understand as mouse input, then sends that over usb. This seems straightforward, especially if I am using the built in mouse functionality of the arduino. Take the output from the sensor, do some simple math to it, then throw it over to the computer. However I have dipped my toes in enough ponds to know as soon as you convince yourself something is simple, that is exactly when it is revealed to you why companies hire people who have studied their entire lives to work on it.

-[Related to the above bullet point] So what does the microcontroller do other than the things I just talked about ? I have read through the teamliquid "an overview of mouse technology" and it seems that companies put a lot of effort into various forms of mouse acceleration and error correction, but each segment for an error correction technique is accompanied by "and some people don't like it so here's how to stop it". If i just throw what is basically raw output from the optical sensor into the computer as mouse movement will it be a horrendous experience ? Will I need to write my own correction algorithms ? Correction algorithms would also be something that could eat into the processing power of the arduino.

-Lastly, Is there anybody on here that does this for a living? Or who knows someone that does this for a living I could get in touch with? There is definitely a wealth of knowledge about mice here but it seems to mainly flow from the consumer side of things.

Offline 3K

  • Posts: 279
  • Location: Germany
Re: rolling your own (homemade trackballs)
« Reply #1 on: Tue, 19 January 2016, 06:05:17 »
I think it would be a good start to sketch something up, a prototype. I'm not too experienced with these kind of things, but the easiest would probably be taking some old ball mouse apart and modding it to work with bigger balls, wouldn't it? After all trackballs are just upside down ball mice. Well, kind of.

                   Model M '88    | Model M SSK '87 | HHKB P2  | Zowie FK1

Offline jacobolus

  • Posts: 3661
  • Location: San Francisco, CA

Offline hanya

  • Posts: 132
  • Location: Japan
Re: rolling your own (homemade trackballs)
« Reply #3 on: Tue, 19 January 2016, 10:42:49 »
If the surface of your ball is not suite to be tracked by mouse sensors, opt-mechanical or magnetic encoder type would be preferred.
PFU HHKB JP, Sanwa MA-TB38 trackball

Offline Count Zero

  • Thread Starter
  • Posts: 8
Re: rolling your own (homemade trackballs)
« Reply #4 on: Tue, 19 January 2016, 10:55:40 »
I think it would be a good start to sketch something up, a prototype. I'm not too experienced with these kind of things, but the easiest would probably be taking some old ball mouse apart and modding it to work with bigger balls, wouldn't it? After all trackballs are just upside down ball mice. Well, kind of.

I've got a couple different ideas in the works for what it will look like, but the design will partially depend on what electronics are being stuffed where. A ball mouse would make the process easier for sure, but I'm chasing that contactless optical precision.

https://www.tindie.com/products/jkicklighter/adns-9800-optical-laser-sensor/

This is exactly the kind of thing I'm looking for, awesome!

If the surface of your ball is not suite to be tracked by mouse sensors, opt-mechanical or magnetic encoder type would be preferred.

True, but I understand that laser sensors (like the one jabobolus just posted) are quite good at working on a variety of surfaces.

Offline domsch1988

  • Posts: 57
  • Location: Germany
Re: rolling your own (homemade trackballs)
« Reply #5 on: Wed, 20 January 2016, 00:51:57 »
Nice project, i'm in the process of starting this myself.

First of, i think electronics is the "easy" part of this. I plan to salvage some mouse for this (as a first try). The mechanical side of things seems much more complicated to me.
I plan to use a Carambolage Billard Ball. They are 61,5mm in diameter and the biggest billiard balls you can buy. Really nice, some weight to it and easily source able. I thought about going bigger, but over that size it's getting harder to find mass produced balls. And DIYing one is really a struggle. The usability of a trackball is in big parts dependent on the ball being perfectly round and it's weight being perfectly centered.
Lastly, i found, that a slight textured ball is more easy on the hands and better for Tracking. I plan to test some plastidip on the ball. Giving it a slightly rough texture and a "grippy" feel. Not "sticking" grippy, but like the old balls from ball mice. This should also help keeping the noise down quiet a bit...

My biggest problem currently is to find the bearings that work. There are companies doing transfer units in sizes down to 4mm, but they have a couple of problems: First they are expensive (around 25€ each). Then they are designed for much higher weights. The weight that is on these things plays a big role in how smoothly the roll. So two test units i had where really scratchy until i started pushing on them quiet hard. And third they are industrial products and therefor, silent operation is not on there list of priorities...

Yeah, so my input would be, start with getting the mechanical aspect working. Integrating the sensor, controller and buttons shouldn't be that hard after that...