I need help deciding on which sensor to use for my current home project. Basically I'm trying to replicate the Numio Control but at much cheaper cost. If it is successful I will publish the result online open source. But as of right now I am stumped on the rotating part. One of the main problems is, that it will be portable, meaning the sensor should be somewhat resistant against shock impacts. There also is not a lot of space, so the sensor needs to be small (a few mm at most). Also the processor will be a ESP32 with a 600mAh battery, so no crazy calculations are possible. Ideal would also be some sort of interrupt, so my ESP32 can wake up on wheel rotation. Also important to know: The enclosure and all inner workings will be 3D-printed... so nothing crazy mechanical either is possible.

Moving on to the progress I have made... I began looking on the video senic (the manufacturer of the numio control) provides very carefully, but couldn't find anything worthwhile. There aren't any teardowns on it either. So naturally I took a look at other products using something similar, like the Google Nest 2nd Gen. Ifixit took it apart and found the "magic" behind the wheel. It is the ADBM-A350 by Avago now Broadcom. The chip seems perfect for my application. From my understanding it is a low res image sensor taking many pictures per second to measure movement. Sadly it isn't getting produced anymore and I don't want to use a depricated chip in my new design.

The chips I'm taking a look into:

  • Closest to a successor comes the APDS-9500 by Broadcom which "provides an imaging-based gesture recognition function". But all I could find is one library on github with this sensor.
  • A very similar (and cheaper chip) is the APDS-9960 and comes with a library by SparkFun. I would prefer this chip, but I still don't know if it will even do the job. Do I need to print some sort of pattern on the inside of the ring for it to work? Apparently the Google Nest does, but I couldn't find any pictures. My main problem with those chips is the complexity that come with it. I'm not really experienced in that kind of thing so a good library is a must.
  • I guess I would prefer something simpler and cheaper. I did have a look into optical encoders and quadrature encoders, but I couldn't find one that suited my application. Also I would need to print a delicate ring inside the rotating part which is something I am trying to avoid.

I'm open to any suggestions. Is the image sensor the way to go? Will the libary from SparkFun be enough? Or is the complexity too much to take on and a optical sensor is better? Or should I go for something else entirely like a hall-effect sensor?

  • \$\begingroup\$ these are like the sensors used by computer mice and cheap digital calipers, an etched, sand-blasted, or machined metal surface should work fine. \$\endgroup\$ Commented Oct 12, 2019 at 22:34
  • \$\begingroup\$ @Jasen Hm, yeah... thought so. Still seems a daunting task taking on image sensors \$\endgroup\$
    – Ariel
    Commented Oct 12, 2019 at 23:20
  • \$\begingroup\$ you could use an optical mouse sensor to detect the movement of the ring \$\endgroup\$
    – jsotola
    Commented Oct 13, 2019 at 1:20
  • \$\begingroup\$ you could use a capacitive ring sensor that has no moving parts \$\endgroup\$
    – jsotola
    Commented Oct 13, 2019 at 1:23
  • \$\begingroup\$ @jsotola True, I will probably end up using a quadrature encoder since it is easy to use and can be built quite sturdy. I thought of using a capacitive touch sensor on the outside but decided to have something physical to move as it will be more natural. \$\endgroup\$
    – Ariel
    Commented Oct 13, 2019 at 12:57

1 Answer 1


Actually, the animation of the assembly is quite revealing. See the tiny slots on the inner rim of the wheel? The sensing technology is probably optical, just like the scroll wheel in mice and trackballs.


  • \$\begingroup\$ Hmm, for some reason I never thought of the possibility that the outer layer and the metal ring might be connected. It would make for a much simpler solution to my problem indeed. The resolution of the 3d printer probaply won't allow for such thight gaps, but it would work nevertheless. Do you the name of the sensor I'm looking for? "Quadrature encoder" doesn't seem to lead to the thing I'm looking for. I would need two photo sensors close to each other ideally in one package. \$\endgroup\$
    – Ariel
    Commented Oct 12, 2019 at 23:19
  • \$\begingroup\$ you could possibly use a Moiré grid printed onto acetate sheet using an ordinary laser printer. \$\endgroup\$ Commented Oct 13, 2019 at 3:00
  • \$\begingroup\$ @Jasen Interesting! How would one read the information? Using an image sensor? \$\endgroup\$
    – Ariel
    Commented Oct 13, 2019 at 12:59
  • \$\begingroup\$ print some Moiré gates and use ordinary photosensors, he main benefit to using moire is that you can have the spokes on the grid smaller than the sensors without needing focusing optics. \$\endgroup\$ Commented Oct 14, 2019 at 1:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.