Optical Mouse Teardown: a look at the sensor
electronupdate.blogspot.com
electronupdate.blogspot.com
At my high school, they started supergluing the compartments shut to prevent tampering, so I had to carry a Phillips screwdriver and remove the whole bottom to get a usable mouse.
http://www.oldmouse.com/mouse/hawley/ http://www.oldmouse.com/mouse/hawley/wheels.shtml http://www.oldmouse.com/articles/hawley/DECbottoms.shtml
I personally have a decent optical mouse on my desk, but also another (rather recently bought) optical mouse that sometimes "stutters" - this may be related to the material of my desk pad (in other words: If I were to buy a good mouse pad the problem would disappear). But this should deliver further evidence for the previous paragraph.
Any problems with erratic movement were caused by excessively shiny surfaces. Preferring ball mice was pure superstition. All the competitive players switched once they realized how much better the optical mice were. I still use an Intellimouse today (with replaced microswitches after the originals wore out).
I have a good quality mouse pad, but that specific material, combined with the specific sensor in my mouse meant that having an LOD setting of 1 (it's a scale value from one to 5) would make the mouse work fine, except for intermittent stuttering that made me think there was dust on the sensor.
Disclaimer: I had to download the mouse's Win-only utility to change this setting.
But the ones I'm using are the ADNS-5030 for an interesting project with 3d printing. Its max poll rate is 1MHz, which is damned quick for a Atmel328p chip- it leaves only 16 instructions per SPI poll. The chip's default is 500 DPI (grr again inches), but can be changed simply by popping a "1" in a register.I'm sure different chips have much better qualities.
Also, you can pull out the dX and dY registers for relative travel since last sample. But you can also pull 256 times to get a 7bit grayscale picture of the mouse sensor! ADNS-5030 is a 16x16 7bit grayscale. And even the 'duino can pull that with relative ease and display in Processing. You can also display the fiduciary markers in which the optical analysis system determines as travel (how it gets the dX and dY).
But yeah, this article is kind worthless. Sorry. Anyways, videos can be a really bad way to pack little content in a lot of time and bandwidth. :/
Hopefully your application is less demanding!
http://electronics.stackexchange.com/questions/15481/how-doe...
[1] MyScript Nebo https://www.youtube.com/watch?v=aNx-Nir0VQI
The more common approach is called semi-custom design. The idea is to write your gate-level design in VHDL, and simulate it extensively to make sure it works. Once you want your circuit to be realized, you pipe that code to a synthesis tool that does a place-and-route. In a nutshell, the synthesis tool takes each gate, converts it to its transistor layout level design using a standard cell library, and finally routes the gates (or cells) together to realize the connections between them. The tool would then perform a LVS check which makes sure that the layout performs the same function as the HDL code you wrote. Finally, the synthesizer outputs a GDS file which describes the exact layout specifications, including transistor dimensions, spacing, and placement on the silicon die. You send this GDS file to a fab and voila you get a circuit!
The other approach is much less common nowadays in digital circuit design, and is limited to applications where performance is key. It is known as full-custom design. You basically design the circuit at the transistor level by hand, and then simulate it to make sure it works. After that you manually design the layout of that circuit, and as before perform a LVS check. Your EDA tool will package your layout into a GDS file which you again send to the fab for manufacturing.
For example, in a modern CPU, key circuit components such as adders, multipliers, dividers, multiplexers, encoders, flip-flops, and cache memory are usually designed using a full-custom approach for maximum efficiency and performance. Other general circuitry may be designed using semi-custom. It also varies by company. I believe that ARM processors are completely designed using standard cells, not sure about Intel/AMD though.
Might be hard to say about the chips used for optical mice. First article I read on them was about 20 years ago in maybe Electronic Design News or some such.
Deal with these is because of the image sensor and analog driver circuitry need a certain amount of real-estate, and the requirements don't change much, they might just occasionally tweak the design to make it work with whatever fab process is cheapest. AKA they could be using really old layouts/designs.
For the image processing "state machine" I imagine most of the "core" design is done at the HDL level with some small tweaks to the other steps along the way to optimize the chip for physical production.
http://www.logitech.com/assets/35565/2/more-mousing-on-more-...
http://gamingmiceplanet.com/wp-content/uploads/2015/11/Optic...