Content Preview
TB058 Rev4 Manually Creating Axis Position aka ballscrew or pitch Compensation Tables
Platform Acorn AcornSix Hickory Oak Allin1DC MPU11 with CNC12
Useful for axis position correction on any Mills Lathes Routers and Plasma machines
Note Compensation Table data can also be automatically generated using LASER Interferometers see TB222
This TB describes how to manually without the use of a LASER setup and edit the compensation tables
How it works A table of CNC commanded positions verses actual and corrected positions over a regular interval is created for a
given axis CNC12 interpolates the correction amounts for machine positions over the interval distance Said another way
CNC12 adds or subtract the error and spreads out the correction amount” over the length of the interval move so the CNC
commanded move matches the actual measured machine position See videos on next page for a demonstration
Prerequisites Fine tuning the pitch of an axis is often the very last CNC configuration step in commissioning a CNC machine
tool Do not attempt unless all the base CNC control parameters are tested and verified to be correct and functioning as
expected Before applying axis pitch compensation prerequisites are but not limited to Axis motor counts per rev for Acorn
steps per rev direction overall turns ratio motor tuning! Machine Home position and Software travel limits The machine must
also be in good mechanical working order No amount of ballscrew compensation is going to make up for problem bearings ball
nut issues or loose pulleys etc Pitch compensation is the icing on the cake and only applied to a machine with proper CNC
configuration and in mechanically good condition Below is a review of the minimum requirements for pitch compensation
• Machine has been verified in good mechanical condition All mechanical issues have been resolved with minimized
backlash all axes moves freely no sticky spots no binding easy to move by hand properly lubricated proper
ballscrew angular contact support bearings rack pinion not directly connected to the axis motor machine is operating in
the mechanical sweet spot see this post for more info https //centroidcncforum com/viewtopic php?f=63&t=1801
• Axis motor setup complete and verified counts per rev for Acorn steps per rev direction overall turns ratio maximum
rate backlash compensation accurately measured confirmed consistent over the length of the axis axis motor
acceleration time and axis motor tuning has been completed
• A reliable accurate repeatable Machine Home position
• Software Travel Limits After getting a reliable repeatable Machine Home position working then go and setup the
Software travel limits Set the home position side soft travel limit to 0 0000 and the other side of the axis travel software
limit to either a positive or negative non 0 value Please see TB289
• The “overall turns ratio’” = pitch + axis motor reduction must be set so that the commanded movement of that axis
agrees closely with the actual measured movement Please see TB36
• Make sure parameters 216 and 217 are set to zero zero is the default value
Limitations
A software paired Axis can not have two separate position corrections tables for the Master and Slave axes Correction can be
made for the Master axis just like any other axis
Overview of the Screw/Pitch Compensation Manual Data collection and feature activation process
1 Home the Machine
2 Collect error data starting from home position to max travel limit at your chosen interval
3 Collect error data from max travel position back to the home position at your chosen interval
4 Enter Data in the CNC12 screw comp correction Table
5 Turn “screw comp” ON
6 Power cycle machine and re home the machine and verify position improved accuracy
See videos on next page that go over this process in detail
How to setup machine axis pitch compensation videos
Alan Hollerbach “Ballscrew comp with Centroid CNC Acorn Board”
https //youtu be/yMRqL8b0Orw
Uwe Mattern “Acorn DIY CNC Screw Compensation for better precision”
https //youtu be/87D rOpv5hU
Screw/Pitch Compensation Tables
Pressing F5 from the machine configuration screen will display the lead Screw Comp Table This screen provides you with a
method of manually entering lead screw adjustment information There is a table for each axis
Press F1 to select the next axis compensation table Press F10 Save to save any adjustments on the currently displayed axis
Press Esc to exit without saving changes F2 deletes the table so you can start over
The machine positions listed in the comp table are determined by the positive and negative Software Travel Limit settings in the
machine configuration screen
The CNC12 compensation tables are automatically generated when Pressing F5 M Comp The automatic table number of
intervals rows are based on the software travel limit values For instance is the X axis has a travel of 32 inches there would be
64 position in the table for the X axis
Notes
If you press F5 M Comp before setting up the travel limits you will get an error message since software travel limits are required
to generate the tables At least one of the software travel limit values must be non zero in order to use the compensation tables
otherwise an error message is produced by CNC12
If you pressed F5 M Comp with incorrect Software Travel Limit values the comp table will be based on those incorrect software
travel limit values To fix this issue delete the comp tables F2 Delete Table for each axis Correct and test the travel limit
values and then re enter the F5 M comp menu and new tables will be generated based on the new software travel limit values
The default interval is 0 5 inches in inch mode and 25 0 mm in millimeter mode Note The Automatic laser compensation
method can modify the interval If a different interval is desired use the automatic procedure to generate the tables with the
interval you want and then you can hand edit the resulting tables according to the rest of this document see TB222 which
describes how to create “laser table” with a custom interval amount
The Moving from Home column is used to correct positioning when moving away from the Home Position The Moving Toward
Home column is used when moving back toward the Home position
The first correction value for “Moving From Home” value must be zero The first correction value at the opposite end for
“Moving Toward Home” value must also be zero It is impossible to acquire meaningful data for these points
There are many ways to collect the machine position data manually As this writing linear scales have become inexpensive so
using a DRO has become an accurate affordable way for a DIY user to determine and verify screw compensation data as seen
demonstrated in the two videos on page two of this document
Notes To collect good data you must always move in the same direction If you change direction in the middle of a ‘run’ you will
have to reset and start over
Data Collection procedure example
Home the machine
Press ALT D to display machine coordinates The word "Machine" will appear in the upper left corner of the screen and the
DRO should indicate a position of 0 0000
If the measuring instrument has a zeroing or reset feature it should be used at this time
Use an MDI command to position the X axis at the first interval amount For this example X axis 0 5000 inches in the positive
direction since the sign of the X axis software travel limit is positive The command for this movement is G91X 5 which would
be entered at the MDI dialog block press cycle start to execute the command Record the actual distance moved as measured
by a laser system digital scales or other measuring technique Continue moving the X axis 0 5000 inches at a time and
recording the measured position until the software travel limit is reached
Repeat the measurements for the reverse direction The command for this movement is G91X 5 Continue moving in the
reverse direction and recording the measured position until the software travel limit is reached
Note As an alternative to using MDI commands to move the axis a G Code program created by Intercon or a text editor could
be used The following program is an example for this case
G91X 5
G4P5
M102
When this program is run it will continue moving the X axis 0 5000 inches until it reaches the software travel limit pausing for
five seconds to allow the measured distance to be recorded and for machine movement to settle A similar program may be
constructed to move in the reverse direction
G91X 5
G4P5
M102
Alternatively a more sophisticated program with stop and wait for operator with message might look like this example is in mm
G28
G91
M200 “Starting with Z ”
G1 Z 25 F1000
M200 “Record position \n Press Cycle Start to go to next interval”
G1 Z 25 F1000
M200 “Record position \n Press Cycle Start to go to next interval”
G1 Z 25 F1000
M200 “Record position \n Press Cycle Start to go to next interval”
G1 Z 25 F1000
M200 “Record position \n Press Cycle Start to go to next interval”
G1 Z 25 F1000
M200 “Record position \n Press Cycle Start to go to next interval”
G1 Z 25 F1000
etc
Example Z axis on a typical bench top milling machine with a travel limit of 250 mm
Now enable the compensation tables to be used by CNC12
The compensation tables can be enabled or disabled independently for each axis by toggling the "Screw Comp" setting in the
machine configuration screen to "Y" or "N"
Power down the machine tool and re home the machine The compensation table will now be active! Z HOME
Moving away
from HOMEZ HOME
Moving towards HOME
Validate the results
The results can be checked and verified by running through the measurement procedure again and noting that the measured
positions are markedly closer to the commanded positions See examples of this in the videos on page two
Notes
Remember each time you Enable or Disable a compensation table the machine requires a power cycle and re home
Disabling the Screw Comp feature by changing it to “N” does not change or delete any of the table data The Screw
compensation data file is preserved so that you can Enable the table at a later time by choosing "Y"
To completely erase all compensation data and start fresh delete the tables using the F2 Delete Table function key in the M
comp menu Alternatively delete the corresponding cnc12? TAB file s from the cnc12 directory where "?" is the desired
axis TAB files are located in the CNCM/CNCT directories and reboot
If you change a value by editing any compensation table the machine requires a power cycle and re home
Compensation Table TAB files can also be hand edited with Notepad ++ saved copied etc just like any txt file If you edit
any TAB file the control requires a power cycle and re home
Notes on Controlled Machine Position Granularity
The compensation values are only limited by the controlled position granularity of the axis
Said another way if the desired correction value is less than the actual ability of the machine to resolve such a move the
machine will not attempt any correction for that entry Typically not an issue with Hickory Oak Allin1DC but could you could
potentially run into this when using Acorn/AcornSix at the minimum recommended step per revolution value of 1600 in
combination with a low value overall turns ratio such as 1 turn per inch
Controlled position granularity of a machine tool depends the number of encoder counts per unit distance traveled or steps per
unit traveled for Acorn
For example” The granularity is inches/count and can be determined by dividing 1 by the revs/inch value and dividing the result
by the counts/rev value If the axis has 1 revs/inch and 1600 counts/inch its granularity is 0 000625 inches In this case the
smallest correction value that will have any effect in the error correction tables is 000625
If a smaller correction value is desired then either increase the steps per rev and/or the overall turns ratio
See this post for more information https //centroidcncforum com/viewtopic php?f=63&t=8649
Notes on a related feature “Beta 2 5D compensation” With this feature you can take a bow or angle out of and axis This is
the precursor to full 3D volumetric compensation More info and videos on 2 5D position correction is here
https //centroidcncforum com/viewtopic php?f=67&t=9266
Document History
Rev4 Created on 2024 12 27 by km
Rev2 Created on 2002 01 22 by #000
Rev1 Created on 1999 02 18 by #000