CNC Services Northwest

Centroid M-Series CNC Mill Control


  1. Set up tools and measure tool lengths (F1/Setup, F2/Tool, F1/Offsets)
  2. Get the part program
  3. Set part zero position (F1/Setup, F1/Part)
  4. Preview part on graphic screen (F8/Graph)
  5. Run (CYCLE START)


It is not strictly necessary to set up the tools before you program the part, but it is a good way to be sure you have the necessary tools and holders.

You must measure the tool lengths before setting part zero, so the control will know the correct length of the tool you use to set the Z axis part zero.

You need to measure every tool in the job, using the F2/Measure or F3/Auto key on the tool offset library screen.

You only have to set the Z axis part zero with one tool. It can be any of the tools you measured, but you must enter the tool number on the Part Setup screen to tell the control which one you are using.

On the graph screen use F2/View to switch to a side view, or F1/3D to switch to the isometric view, so you can see Z axis moves. A rapid (red) move below the part surface usually indicates a crash. However, rapid moves may be displayed below the part surface immediately before a tool change or at the end of the program. This is a normal consequence of canceling tool length compensation, and in this case does not necessarily indicate a crash.

Cutter Compensation Overview

Cutter Compensation is the process of moving the cutter away from the part by its radius, so that the part is cut to the intended size instead of being overcut by the cutter radius.

Compensation can be done in advance, by writing G codes that place the cutter center one radius away from the part. This is called precompensating.

Alternately, compensation can be done as the job runs, by including the G41 and/or G42 codes in the G code program. This is G code cutter compensation.

If a program is precompensated, and you find that the actual cutter size is not what you expected, then you must rewrite the G codes to precompensate them with the correct cutter size, then run the new G codes.

If a program uses G code cutter compensation, and you find that the actual cutter size is not what you expected, then you need only change the cutter size listed in the Tool Offset Library, then rerun the same G code program you ran before.

Use compensation Left (G41) when you are climb milling.

Use compensation Right (G42) when you are conventional milling.

Cutter Compensation Strategies

If you are programming your part as a series of line and arc moves, either in straight G codes or through the Intercon conversational programming, you will probably want to use G code cutter compensation (G41 or G42). Turning cutter compensation on and off at appropriate times is critical to success.

As a rule, turn it on just before cutting a feature, and turn it off immediately after the feature is done. Do not leave cutter compensation active as you move from feature to feature, or as you move off to a tool change position. The control will apply compensation to rapid moves just like it does to linear (feedrate) moves, stopping short of inside corners and swinging arcs around outside corners.

If you need to plunge into the material from above:

  1. Do a rapid move to a clearance height, above the plunge point.
  2. Turn on cutter compensation (G41/Left or G42/Right as needed)
  3. Do another rapid move, to the same coordinates (a "zero-length" move). The cutter will step over by its radius in this move.
  4. Do the plunge cut.
  5. Cut around the part.
  6. Rapid back to a clearance height above the part
  7. Cancel cutter compensation (G40/Off).

If you can approach the material from the outside (or from inside a cavity) at cutting depth:

  1. Pick a starting point on the profile. Measure over and out by the radius of the cutter. This will be the beginning of the lead-in arc. E.g., if you plan to start in the middle of a straight wall on the back of the part, which goes from X0Y2 to X2Y2, then the starting point is X1Y2. If you are climb milling (left to right) with a ½" cutter, then go left and back ½" on each axis, to X0.5Y2.5. This is the start of the lead-in arc. Rapid to this position, and to cutting depth.
  2. Turn on cutter compensation (G41/Left if climb milling, as in this example; G42/Right if conventional milling).
  3. Do another rapid move, or a linear move, to the same coordinates (a "zero-length" move). The cutter will step over by its radius in this move.
  4. Do a 90° arc move (G3/CCW if climb milling, G2/CW if conventional milling) to the starting point of the part.
  5. Cut around the part.
  6. Do another 90° arc move (G3/CCW if climb milling, G2/CW if conventional milling) off of the part.
  7. Cancel cutter compensation (G40/Off).
  8. Rapid up to a clearance height

Other approaches will also work, but these two will serve you well for most parts.

Avoid reversing direction (backing up along the path you just came from) with cutter compensation active. The control will (correctly) swing a 180° arc around the end of the line and go back on the other side. It will do this before any Z movement for the next move.


Intercon is Centroid's conversational programming software, and is included standard on nearly every control. An offline version is also available at extra cost, allowing you to program parts in the office while the machine is running.


An Intercon part program consists of two files on the computer. One has the extension .ICN, and contains all of your responses to the prompts (everything you see on the screen while you are in Intercon). The ICN file is stored in the C:\INTERCON directory. The other file has the extension .CNC, and contains the resulting G codes. The CNC file is stored in the C:\CNCM\NCFILES directory.

Intercon automatically saves both files whenever you choose Post.

When you edit the part program in Intercon, you are editing the ICN file.

When you run the job, you are running the CNC file.

Intercon saves only the .ICN file when you choose Save or Save As from within Intercon. When you are ready to run you should always use Post to save the final version of your program and write out the G codes.

When you press F6/Edit from the main screen, you see the CNC file (the G codes) in the text editor. Changes you make in this way will be lost next time you go back to Intercon and save or post the part.

Programming and Operations

Every Intercon program should start with a Tool Change operation, to load the first tool. Even if you do not actually need to change tools, you still need to insert a Tool Changer operation so that Intercon will know what tool you are using and can apply the correct offsets, start the spindle, etc..

Intercon provides numerous canned cycles (under the F5/Cycles menu) to simplify machining of common features. The canned cycles do not always provide the most efficient toolpaths, but they are pretty good and very easy to use.

For complete control of the toolpath, Intercon provides Rapid, Line and Arc moves, allowing you to walk the cutter through any 2D or 3D path you like.

Intercon also provides four "subprogram" operations, which allow you to make additional copies of features you have already cut:

Every series of Line and Arc operations should be preceded by a Rapid operation, to bring the cutter to the starting point of the first line or arc.

When you enter the depth of a canned cycle (such as a Pocket or Frame) in Intercon (any time the word "Depth" is used), you enter a positive number to indicate the depth below the surface.

When you enter the depth of a line or arc in Intercon (when the wording is "End Z"), you must enter a negative number to indicate a Z level below zero (below the surface).

More about Intercon Arc Moves

Cutter Compensation in Intercon

Intercon pre-compensates Pocket and Frame canned cycles. These cycles do not include or need G code cutter compensation.

Intercon automatically inserts G code cutter compensation for the Thread Milling cycle.

You must explicitly request G code cutter compensation if you are using Line and Arc operations. You do this by selecting F7/Comp and setting the displayed value to Left, Right, or Off.

Intercon does not use any kind of cutter compensation in the Face cycle, nor in Drill, Bore, and Tap.


You may have optional text engraving software, called MillWrite. The following is for MillWrite version 2.36, which is a DOS-based program that ran on older DOS-based Centroid controls, and which can run on newer Windows and Linux-based controls via the "DOSBox" emulator.

Like Intercon, MillWrite creates two files for each part program. One has the extension .ENG, and contains your responses to all the on-screen prompts (like Intercon's .ICN file). The other has the extension .CNC, and contains the resulting G codes.

Unlike Intercon, MillWrite does not automatically write the G codes whenever you save the part program. In order to save the part program, write the G codes, load the new job, and return to the main screen (all the things that happen when you select Post in Intercon) you must do the following:

  1. Press ESC for the MillWrite main menu.
  2. Press G to generate NC codes.
  3. Press F for flat engraving (or select another surface type, as appropriate). The G codes appear in MillWrite's text editor.
  4. Press ESC for the text editor menu.
  5. Press F for File.
  6. Press S to save the text editor file.
  7. Type a base file name (up to 8 characters, no spaces) and press Enter.
  8. Press ESC for the text editor menu.
  9. Press Q to quit the text editor and return to MillWrite's main engraving screen.
  10. Press ESC for the main menu again.
  11. Press X to exit back to the Centroid control.
  12. If prompted, press 'Y' to save the engraving program, type a name and press Enter. You can use the same name for the engraving program as you used for the CNC file.

When you get back to the Centroid main screen, press F2/Load; select the new program file using the arrow keys; and press F10/Accept.

Aside from this cumbersome procedure for saving the program, MillWrite is a very intuitive and powerful program. Concise explanations of each entry field appear at the bottom of the screen as you move around the screens.

MillWrite has no "F10/Accept" procedure to accept a page of data, the way Intercon has. Data is accepted as part of your program as soon as you enter it. You move between the program outline (line by line of text to be engraved, on the left side of the screen) and the machining details (location, size, feedrate, etc. on the right side of the screen) using the left and right arrow keys.

The "X alignment" and "Y alignment" selections can be a little confusing when you are working with rotated text (e.g. at a 90° angle). It is simplest to think of it as follows: the X and Y coordinate values you enter give the location of the text. "X alignment" then says whether the text begins, ends, or is centered on that point. "Y alignment" says whether the top, middle, or bottom of the text lies on that point. Thus for 90° text, "Y alignment" actually positions the text in the X direction but it still refers to the top, middle, or bottom of the text.

When you enter a wrap radius to wrap text around an arc, you no longer have X and Y alignment options. Such text always uses Center X alignment, Bottom Y alignment. I.e. the center of the text is at the angle you specify, and the baseline of the text is at the radius you specify.

Run, Search, and Resume

Ordinarily you start jobs by pressing CYCLE START from the main screen, or any other screen where the message box prompts "Press CYCLE START to start job".

When running a new job or new setup for the first time, keep your hand on the feedrate override knob during the initial plunge move after each tool change. As the tool rapids down to the clearance level, slow it down by turning down the feedrate override. When the tool is about one inch above the surface, pause it by pressing FEED HOLD. Check the DRO position display for the Z axis. If the Z height shown there appears to match the height of the tool above the surface, all is probably well: press CYCLE START to continue. If the Z height shown on the DRO does not match the height of the tool (especially if it reads higher), something is wrong: press CYCLE CANCEL and review your tool measurements and part zero setting.

You can cancel a job at any time by pressing EMERGENCY STOP, CYCLE CANCEL, or TOOL CHECK.

EMERGENCY STOP will stop motion immediately, release servo motor power, and shut off the spindle and coolant. The tool will remain down. Once the crisis is past, you can release E- stop and use the jog keys or TOOL CHECK key to move the tool clear. The control's main screen will be displayed (with Setup, Load, MDI, etc. options). The G codes which were running when the job was canceled will remain on the screen until you choose some other screen.

CYCLE CANCEL will stop motion immediately and shut off the spindle and coolant. Servo power will remain on. You can use the jog keys or TOOL CHECK key to move the tool clear. The control's main screen will be displayed (with Setup, Load, MDI, etc. options). The G codes which were running when the job was canceled will remain on the screen until you choose some other screen.

TOOL CHECK will decelerate to a smooth stop, pull Z up to its home position, then shut off the spindle and coolant. The control's Run/Resume screen will be displayed, ready to pick up where you left off. If you choose, you can press ESC twice to return to the main screen.

In any of these cases, you can resume the uncompleted job on the line where it was interrupted by using the Run/Resume option. From the main screen, press F4/Run, then F1/Resume. If you wish, use the jog keys to move the tool close to where it was when you stopped the job. Press CYCLE START to resume at the beginning of that line of G codes. The control will automatically restart the spindle and coolant as needed, move X and Y over the resume point, move Z down, and resume running.

If you want to restart the job at some other point than where you interrupted it (for example, if the tool broke several moves back) use the Run/Search option. From the main screen press F4/Run, then F2/Search. You can enter a line number (the default will be the line where the job was interrupted), a block number (N number), or a tool number. The control will locate the place you choose and start running the job from there.

If you are uncertain whether the search point you ask for is really what you want, you can get a graphic preview from the Search screen: type the line number, block number, or tool number, but do not press Enter yet. Press F8/Graph instead. The part will display with blue dotted lines for everything which is being skipped over, and beginning with the usual yellow and red lines at the search point. Press ESC to leave the Graph screen, then either press Enter (or F10 or CYCLE START) to accept the search, or enter a different search point if needed.

Tool Changing Height

On a bed mill with lots of Z travel, you may want to change the height that the head moves up to at each tool change, and at the beginning and end of a job. To do so:

  1. Press F1/Setup
  2. Press F1/Part
  3. Press F9/WCS
  4. Press F1/Return
  5. Use the arrow keys to select the Z axis line (third line down) of the first return point (the G28 position).
  6. Enter zero (0.0) if you want the head to come all the way up to the top of travel. Enter a negative number if you want it to come up to a lower position. For example, if you enter -6.0 for the G28 position on the Z axis, then the head will stop six inches below the top of travel for each tool change.
  7. Press F10/Save
  8. Press ESC three times to return to the main screen

CNC Services Northwest Home

Copyright © 2006-2022 Marc Leonard
Last updated 03-Mar-2022 MBL