Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

steps per degree: accumulating error on 4th axis #346

Open
agent-r opened this issue Dec 7, 2023 · 5 comments
Open

steps per degree: accumulating error on 4th axis #346

agent-r opened this issue Dec 7, 2023 · 5 comments

Comments

@agent-r
Copy link

agent-r commented Dec 7, 2023

Hi there,

I recognised a problem when using my 4th, rotational A-axis: I did some jobs with quite a lot of rotations (spiral milling) and recognised, that after some hundreds or even thousands of revolutions, the top face of my workpiece was turned at some degrees. I initially suspected missing steps, but since i changed for a closed-loop stepper on the A-axis recently, this was rather unlikely.

The following seems to be the problem: My axis has a 6:1 gear leading to a odd steps/degree value of 53 1/3. If i read the docs of grblHAL right, the steps/degree setting is stored as a float datatype (with about 7 decimal digits?). But in ioSender 3 decimal places (=53.333) is the most accurate value i can enter. This leads to an error of 0.12 steps per degree => 1 degree per about 444 revolutions of the axis. This machtes quite exactly with the error i see on my machine.

Is there any way to set more precise values for steps/degree settings? Am I doing something wrong? Are there any (good ;-) ) reasons for the limitation to 3 decimal places? Any workarounds? Could this be improved in future releases of ioSender?

Thanks!
P

@terjeio
Copy link
Owner

terjeio commented Dec 8, 2023

The sender does not limit the number of decimal places, the controller does by telling it which format to use.

Is there any way to set more precise values for steps/degree settings?

Yes I believe so, try setting it via the MDI. The value will still be reported back with 3 decimal places though.

Are there any (good ;-) ) reasons for the limitation to 3 decimal places?

Not that I know of, the limitation is inherited from legacy Grbl (and can be changed).

Note that you may also run into the limited precision of floats when commanding many revolutions of the A-axis.

@agent-r
Copy link
Author

agent-r commented Dec 9, 2023

Thanks! Setting the steps/degree value via MDI seems to work. I will check the next few days, if it really improves my parts.
I guess, from now on I will have to set this value every time after I change other settings via the ioSender grbl-settings interface, right?

@terjeio
Copy link
Owner

terjeio commented Dec 9, 2023

I guess, from now on I will have to set this value every time after I change other settings

No, only changed settings are sent to the controller.

@agent-r
Copy link
Author

agent-r commented Dec 9, 2023

No, only changed settings are sent to the controller.

Good to know! Thank you!

@terjeio
Copy link
Owner

terjeio commented Dec 15, 2023

FYI I have increased the allowed number of decimals from 3 to 5.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants