MachineKit Encoder
Motivation
I want an encoder! Encoders1 read position, generally by counting 'ticks' on some reference. For example, an Optical Encoder uses a reference with openings that allow light to pass, and count whenever a photodiode goes high or low to indicate that some motion has occurred.
Then, you add the ticks together to get your position. In order to detect direction, a technique called 'quadrature' is used:
Super simple, very neat. Here's picture of a fancy encoder:
You'll notice this encoder has two other reference markings - those are super interesting as well, and encode absolute position into the ring - there is only one uniqe combination of holes-or-not-holes on those rings for every single indicated position. This is good news because then your joint / axis does not have to touchoff on a known reference point - aka a 'home' or 'limit' switch - before it starts counting. If this looks expensive, it's because it is. An encoder like this might run ~ $300, and they're super sensitive to dust, misalignment etc. That's no bueno.
So my goal here is develop an encoder that I can put on whatever-I-want without spending too much money, and without fussing too much about setup. Critically, I also want to un-constrain myself from particular sizes - whenever I have to source a particular size ring or strip (for reference) I end up boxed-in in terms of the *~ design spaces ~* I can get into. I don't like that.
Solution: Capacitive Encoder
Go Here for Capacitive Writeup and Doc
Solution: Magnetic Encoder
Go Here for Magnetic Writeup and Doc