They/them. PhD student: smart textiles, weaving, computational craft, hardware hacking.
by Shanel
Things I’ve learned so far about the ADNS-9800 sensor that we used to sense motion like an optical mouse does. Purchased breakout board from here.
The board maker’s code from their GitHub (mrjohnk - Arduino Example Sketches) are written for an older version of Arduino, and for a Teensy. This person’s implementation (rpriyadarshi) is up to date, and has documentation specific to an Arduino Uno. The rpriyadarshi version makes much more efficient use of embedded C, but might be more opaque to newer Arduino users.
Definitely read the data sheet, even just skimming it. Especially look at the diagrams (p15) for the datapaths of what exactly happens when you read/write to the sensor. A new user doesn’t have to worry about all the details of the timing, since read, write, SROM load, and other operations have been implemented already in the example code from both mrjohnk and rpriyadarshi.
The rpriyadarshi version implements motion burst reading, which gets a much better frame rate for motion capture than the regular read operation.