CNC Services Northwest

Centroid CNC control sales, service, training and support


Laser Compensation on Centroid Controls

The Centroid control software supports non-linear ballscrew pitch error compensation, commonly called "laser compensation" (because the pitch errors are measured with a laser system) or "ballscrew mapping".

The software features, procedure, and underlying data file format have varied with different software releases. Notable milestones include:
VersionFeature
CNC7 v6.00Ballscrew compensation introduced (one direction)
CNC7 v7.50Bidirectional compensation added
CNC10 v2.61Improved data file format (version 3)

Data Files

The compensation data are stored in files with the ".tab" extension. There is one file for each axis. The exact file names have varied with different software versions. Names are as follows, where '?' is the axis label (e.g. 'x', 'y', 'z', etc.).
SoftwareData File Names
CNC7 (MS-DOS)CNC7?.TAB
CNC10 (Linux)cnc10?.tab
CNC11/CNC12 (Windows)cnc-?.tab

In general, the data files begin with a header which identifies the axis, travel length, mapping interval, and units of measure. They then contain data values for the amount of correction to apply at each point.

The data files from CNC7 v6.00 through CNC7 v7.17 are unidirectional. They contain a single correction value at each point, which is the average of the forward-going correction and the reverse-going correction at that point.

Data files from CNC7 v7.50 and later (and therefore all versions of CNC10, CNC11 and CNC12) are bidirectional. They contain two separate correction values at each point: one correction to be used for forward-going movement, and another correction to be used for reverse-going movement. This allows the ballscrew compensation feature to also compensate for backlash, and allows the backlash amount to vary along the axis travel.

Data File Formats

Version 1, introduced with CNC7 v6.00

24 -1448819
0
-32
-38
-47
-54
-57
-63
-69
-76
-82
-88
-98
-101
-110
-113
-120
-123
-129
-132
-135
-139
-142
-145
-148

There is one header line, with two fields:

  1. Number of correction points.
  2. Total number of encoder counts in the measured travel

The correction values are in encoder counts.

Version 2, introduced with CNC7 v7.50

2 9 0.500000 20 114300 0.000000 ; Ver. 2 compensation tables for Z axis
  0.4272
  0.2122
  0.3142
 -0.0348
  0.8232
  0.6692
  0.5752
 -0.4968
  0.2712
 -0.1808
; backward data
 -1.7938
 -2.2758
 -3.0828
 -3.0378
 -2.2298
 -2.1048
 -2.5488
 -2.1468
 -2.1998
 -2.6518

There is one header line, with six fields:

  1. File format version number (2)
  2. Number of correction intervals. Because the data include a correction value at the start point, there is one more correction value in each direction than the number of intervals.
  3. Correction interval (spacing), in machine units
  4. Machine units of measure: 20 = inches, 21 = millimeters
  5. Total number of encoder counts in the measured travel
  6. Machine coordinates position of the first measurement point

There is also a comment at the end of the header line, describing the file.

The correction values follow the header: first the list of all the forward-going correction values; then a comment line; then the list of all the reverse-going correction values.

When machine units are inches, the correction values are in tenths (multiples of 0.0001"). So, for example, the first correction value in the forward data above is +0.00004272".

When machine units are millimeters, the correction values are in microns (multiples of 0.001mm).

Version 3, introduced with CNC10 v2.61

A version 3 data file looks something like this:

CNC10 TAB FILE VERSION 3
AXIS Z
UNITS INCH
INTERVAL 0.5
ENTRIES 9
    +0.00000000	    +0.00000000	    +0.00000000
    -0.50000000	    -0.00010000	    +0.00003000
    -1.00000000	    -0.00014000	    +0.00011000
    -1.50000000	    -0.00023000	    +0.00013000
    -2.00000000	    -0.00025000	    +0.00014000
    -2.50000000	    -0.00024000	    +0.00011000
    -3.00000000	    -0.00017000	    +0.00009000
    -3.50000000	    -0.00008000	    +0.00005000
    -4.00000000	    +0.00000000	    +0.00000000
  

There are five header lines:

  1. The data file version (format) identifier
  2. The axis to which the data applies
  3. The units of measure (INCH or MILLIMETER)
  4. The sampling interval (distance between error measurements)
  5. The number of entries (measurements) for each direction in the table

The data section contains three columns, and as many lines as are specified on line 5 of the header. The data columns are:

  1. Axis position, in machine coordinates (signed distance from home)
  2. Correction amount to add, when moving away from home
  3. Correction amount to add, when moving towards home
The correction amounts are measured in default machine units: either inches or millimeters.

The above example is for a Z axis, which homes plus and has a negative travel limit. In this case, the positions in column 1 start at zero and go down; the corrections in column 2 are used for movement from plus towards minus (away from home); and the corrections in column 3 are used for movement from minus towards plus (towards home).

A data table for an axis which homes minus (and therefore has a positive travel limit) would have opposite signs: the positions in column 1 would start at zero and go up; the corrections in column 2 would be used for movement from minus towards plus; and the corrections in column 3 would be for movement from plus towards minus.


CNC Services Northwest Home

Copyright © 2015 Marc Leonard
Last updated 06-Dec-2015 MBL