How does the Motor's encoder work?


New to this. I have 3D printer experience and driving Stepper motors. I’m fascinated by the geared/encoded motor of the Maslow. I’ve looked at the driver shield. Just curious if anyone can explain how the encoder is being used in the system?

So, the encoder is sending back pulses to the Arduino? And how is that used for precise movements or steps?

I understand how a standard stepper motor driver gets a direction and step command from the arduino.

So with these motors, they just turn on in one direction or the other until the encoder sends back the amount of pulses it desires?

How accurate is this compared to a stepper? Obviously it works here.

Just want to understand the electronic set-up.



Each motor has a quadrature encoder monitored by two inputs dedicated to that motor. These inputs interrupt the processor with every change, and the processor keeps track of the changes to figure out how much the motor shaft has turned and in which direction.

I guess I’d say “they just turn on in one direction or the other and the encoder marks the movement until the firmware sees amount of pulses desired.” But that’s the right idea.

Steppers can be pretty inaccurate - you command them to move, but unless there is a way to verify that the movement happened (and the correct amount), you’re ‘flying blind’. On the average, with everything properly adjusted, nothing in the way and not asking for too radical a move, a stepper moves as expected, but if something goes wrong the firmware won’t know that the stepper didn’t reach the desired location.
Our motors only accept ‘on/off’, but we can know pretty accurately how far and fast they moved, and with this feedback, the motors can handle wide ranges of load - lighter or heavier sleds and the varying tension from the varying angles between the chains.


steppers are 200 steps/rev (you can microstep, but you loose power when you do

our encoders provide us >8000 steps/rev

our motors are not just on/off, we can adjust their speed in either direction
via PWM

David Lang

1 Like

You can read a great explanation of quadrature encoders here:

1 Like

Thanks for all the information!


Steppers actually come in a big range, from the few steps/rev cheapies to 400 (or possibly more, didn’t look) steps/rev in common use.

In addition to losing power (in some positions you gain power due to cogging) with microsteps that don’t hit a motor pole their positional accuracy is abysmal. They’re like shop vac motor hp, a somewhat tenuous connection to reality. There’s been several DIY comparisons of stepper positioning accuracy with different motor controllers in the last few years. If you’re strong in the Fu you should be able to find some if you care. I’ve read opinions that the reduced power/microstep is made up for by the reduced movement required, but never run across a rigorous analysis; since my higher math was learned in classes, well lets say a long time ago, and not used since I would no longer understand it anyway.

Non stepper motors, both AC and DC, with encoders are common in the big iron. They call them servos (not to be confused with the RC motor servos - which are actually dc motors with encoders and onboard logic but controlled differently). You can find a lot of discussions of steppers vs servos in CNC machine design and the trade offs thereof with Giggle. LinuxCNC, Mach, and the industrial control systems have supported servos for a long (in digital years) time.

Bar’s use of cheap encoded motors was part of what made Maslow’s so inexpensive, add it to the list of brilliant insights

1 Like