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.