Welcome! Log In Create A New Profile

Advanced

Understanding XY resolution

Posted by parto 
Understanding XY resolution
December 13, 2017 04:22AM
Hi, I have built and been running successfully a home designed reprap cartesian printer based on a Gen 7 main board with Marlin 1.1.x firmware. I have been looking to improve the resolution on my X and Y axis. My current steps /mm is as below:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 11.94, 13.93, 500, 129.7 }

Taking my X axis for example this should translate to 1/11.94 = 0.083mm/step. In my host controller - which is Simplify 3D – I tried finding the smallest X movement I could get the printer to move. I assumed this would be 0.08 mm since that would be one single step of the motor. I moved the X axis to 100mm from the home position and then sent a G1X100.1 F1 (the F value was set as low as possible so I could roughly count the steps the motor moved. ) I found that I had to increase the move to 100.4mm before I got any movement of the motor and then the motor moved about 3 or 4 steps to go from 100mm to 100.4mm. Further increasing the move distance resulted in no movement until G1 X100.8 F1 and then the motor moved the same distance as before.
I don’t understand why the smallest distance I can resolve to is about 0.4mm. I would have expected 0.08mm. Is there some setting in marlin that is preventing the resolution from going below 0.4mm?
Re: Understanding XY resolution
December 13, 2017 03:37PM
any micro stepping in there?

As microstepping is about smoothness not resolution, anything over about 1/4 micro stepping it doesn't actually move every step.
Re: Understanding XY resolution
December 15, 2017 06:58AM
Thanks Dust,
My printer drivers can only do half stepping. I'm using the Vexta UDK5114N 5 phase stepper driver and PK564-NAC motors I salvaged from some old equipment. See --> [images.100y.com.tw]
for details. I can get reasonable resolution because my motors are 0.72 degree per step, giving 500 steps / rev or 1000 steps/ rev in half step mode. In my case with marlin set as follows:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 11.94, 13.93, 500, 129.7 }

for my X axis one step should move 1/11.94 = 0.084mm. My printer is working fine. I have attached a pic of a wade extruder I've printed that works great to give some idea of the quality I'm getting. Before I go modifying the hardware to improve the resolution with gearing, an easier fix would be to make some firmware adjustment if that was possible. Software is not my forte but from what I've gleaned from looking at the stepper.cpp file, there seems to be an interrupt routine that gathers up the step count and only moves the motors after some minimum count. Maybe I'm off the mark in my assumption of what's going on in the Marlin code but applying this theory to my printer; since I see a best resolution of approx 0.4mm this means an accumulation of 4 to 5 steps before the ISR is triggered , given my theoretical resolution of 0.084mm/step. This would explain why printers that use microstepping, and typically having an X axis firmware setting of 80 steps /mm can get printer moves below 0.1mm. If I apply the same logic to these printers; the theoretical best resolution is 1/80 = 0.0125mm. If the printer counts 5 steps before interrupting for a move this gives a best actual resolution of 0.06mm. I realise that other mechanical considerations come into play which further reduces this resolution value such that many reprap printers give a best X or Y axis resolution of 0.1mm on their printer specification sheet. Can anyone tell me if I am on the right track here and if it is possible to modify the firmware for this issue when X and Y steps /mm are well below 80 as in my case?

Thanks in advance for any help.
Attachments:
open | download - Optimized-IMG_2649.JPG (612.5 KB)
Sorry, only registered users may post in this forum.

Click here to login