Previous work
http://tim.cexx.org/?p=613
https://conorpeterson.wordpress.com/2010/06/04/optical-mouse-hacking-part-1/
etc.
The optical mouse sensor above is ~$1.50 USD and has a resolution of 19x19 or 18x18. Extracting an image takes 0.5s during which the camera cannot move relative to the source. Surely there is a faster sensor out there?
The goal
20 bits of grey code on either the outside of a cylinder or on a flat disc. I can make either option work in my robots.
Why
Because right now the best option I have is a magnetic encoder for ~$200 USD: https://www.rls.si/en/aksim-2-off-axis-rotary-absolute-encoder
Your help
What I need from you, hive mind, is a sensor that's <$5 and reads 40xA where A>2 and a very fast SPI read time (several thousand FPS) OR a DSP built in to read the grey code. Nice to have would be a 3.3v or 5v interface.
@Dan Royer are you prepared to go analogue initially and eg average readings to get a stable value?
https://botscene.net/2012/10/18/make-a-low-cost-absolute-encoder/
This would work for a ring or disc.