<p>So I was thinking of using a closed-loop motor in my 3D printer for better accuracy and high-speed printing without losing steps. I have analyzed options available including just tweaking stepper current and firmware changes to prevent step losses but I want to find the best way to do it with encoders. The problem is I need a pretty high resolution for a 3d printer and usually, high-resolution servo motors use potentiometers that are limited and not suitable for a 3d printer. I am thinking of building my own closed-loop continuous rotation servo using stepper/DC motors and encoders but I can't find any high-resolution encoder at a reasonable price. So is there any way to somehow use low-resolution encoders (like 36 pulse every full turn) or is there any encoder type that I can use for better accuracy at a reasonable price other than optical ones? Also is there any other solution for closed-loop systems at a reasonable price?<br />
Note that I am aware that I may need to modify firmware or write my own code for motors and program them from scratch.<br />
<strong>Note:</strong> You might consider this question <a href="https://3dprinting.stackexchange.com/questions/12087/closed-loop-stepper-motors">Closed-loop stepper motors</a> a possible duplicate but I have read that and my main problem is not being able to find any cheap high-resolution encoder for this purpose.<br />
<br />
Also for some reason, I can't use products like BTT S42B closed-loop stepper drives, my only option is to build them myself.<br />
<strong>TL;DR:</strong><br />
Is there any type of encoder with high resolution and cheap price for use in 3D printers? (I don't mean brand, I mean technology)</p>

[{'answer_id': 15858, 'author': 'user103218', 'author_id': 7916, 'author_profile': 'https://3dprinting.stackexchange.com/users/7916', 'pm_score': 1, 'selected': False, 'text': '<p>The gearbox approach is solid, but it will be 100x slower, and you said you wanted speed.</p>\n'}, {'answer_id': 15866, 'author': 'FarO', 'author_id': 2338, 'author_profile': 'https://3dprinting.stackexchange.com/users/2338', 'pm_score': 3, 'selected': True, 'text': '<p>You can use a magnetic position encoder.</p>\n<p><a href="https://ams.com/as0548b" rel="nofollow noreferrer">AS5048B High Resolution Position Sensor</a></p>\n<p>14-bit rotary position sensor with digital angle (interface) and PWM output</p>\n<p>14 bit means 16k steps/rotation. With a stepper which does 200 steps/rotation and 16x microstepping, you will need only 11 bit, so you have plenty of extra accuracy you can use to filter noise.</p>\n<p>You may use <a href="https://ams.com/as5600" rel="nofollow noreferrer">AS5600 Positioning Sensor</a> instead, which is 12 bits, since you don\'t need to track each microsteps in a closed loop, 4x is enough.</p>\n<p>AS5600 in PWM mode does up to 920 Hz, AS5048 1 kHz. I\'m not sure in I2C mode but surely more. Of course you have to take into account delay between measuring the position and transmission of the position.</p>\n'}]
['https://3dprinting.stackexchange.com/questions/15857', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/23146/']