How to configure limit switch inputs of controller in PlanetCNC TNG software

Limit switches are used to reference your machine(homing procedure) as also for safety reasons.

If you use only one limit switch for axis X motor (positive direction), connected to controllers limit input 1:


If you have two limit switches for axis X motor (negative and positive direction), connected to same limit input of controller:


If you have two limit switches on X axis(negative and positive direction), connected to separate limit inputs of controller:


Same principles that were shown above for X axis can be used for all other axes.

Limit switch test:

When your limit switches are connected to limit inputs of controller, you can test if PlanetCNC TNG software senses the limit switch activation. On main screen click the “IO” tab and observe controllers Limit status bar behaviour:



Invert option:
If you use normally closed type of limit switches then you can invert controller limit input in settings: File/Settings/Limit


Click round button next to limit pin that you wish to invert:


How to set Steps Per Unit values in PlanetCNC TNG software

Steps per unit value (in further text SPU) defines how many step pulses controller needs to generate in order that axis moves for distance of one unit. Units can be in millimeters or in inches.

SPU value depends on few factors: stepper motor, stepper drivers micro-step configuration, lead screw pitch:

Stepper motors usually have 200 or 400 full steps per one rotation of its shaft.
One rotation of shaft in degrees is 360°. For motors with 200 steps per revolution this means
one step is equal to 1.8°. For motors with 400 steps per revolution this means one step is equal to 0.9°.

In equation below, we will name this parameter M

With micro-stepping we improve motors resolution, accuracy, smoother movements, we reduce
resonance problems etc. The real compromise is that as you increase the number of micro-steps per
full step the incremental torque per micro-step drops off drastically. Resolution increases but
accuracy will actually suffer.

With micro-step number we define, how many smaller steps is one full step divided into.
Most common values are ½ , ¼ , ⅛… but it is really up to you which micro-step value you will use.

In equation below, we will name this parameter S

Usually CNC machines operate with the help of lead screws and nuts. They can be trapezoidal or
ball screw leads. The pitch of a screw thread is the distance between adjacent threads. When lead
screw is rotated for one revolution, this reflects as linear motion of axis. Distance traveled is equal
to lead screw’s pitch.

In equation below, we will name this parameter P

(Some CNC machines use rack and pinion instead. Distance traveled when pinion makes one
revolution can also be considered as pinion pitch. Similar is also true for toothed belt drive.)

Setting SPU values of your machine in PlanetCNC TNG software

StepsPerUnit tab can be found in settings under Motors section: File/Settings/Motors

We can calculate SPU values for our machine by starting from two different conditions:

If we know all variable values:
Calculating correct SPU value is easy: SPU value = (M*S)/P

If we don’t know all variable values:
We will have to do some measuring and provide ourselves with some numbers. Then we will be able to calculate correct SPU value.

We use metric units so our unit is millimeter. If you use imperial units (inches) then values are different.

1) In Settings/Axes/Setup we set our SPU value to some “normal” number, say 200 steps per unit.


2) Jog machine to a suitable location, and set: Machine/Work Position/Axis to Zero/XY offsetXY.

3) Now let’s say that we want to move X axis from our offset zero position to X=10 position and measure the actual distance for which machine will move. To measure the distance of machines travel, we can use ruler, caliper or measuring tape which we place under machines tool.

Tool should start at 0 of the ruler:

In MDI window write X10:

Machine should move from X=0 to X=10, therefore travel for 10mm, but when we execute MDI command we can see that machine travelled for 2.5mm instead of 10mm:

Meaning, our current SPU value moves machine axis for wrong distance.

4) We can ask ourselves a question:

If ‘Current SPU’ value moves X axis for ‘Measured distance’ value, what is the ‘Correct SPU’ value that will move X axis for ‘Entered distance’ value?

Equation looks like this:
Correct SPU value = ( Current SPU value * Entered distance value ) / Measured distance value

Current SPU = 200
Entered Distance = 10
Measured distance = 2.5

Correct SPU value= (200*10)/2,5 = 800 SPU

Now we enter correct value for SPU in Settings/Axes/Setup, Enter X10 in MDI window and measure the new distance value.

Measured distance value is now correct. Our steps per unit are correctly set.

It is recommended to repeat this procedure several times and use largest possible travel. Using 10mm travel is good for first pass but if you use maximum possible distance machine can travel, you will obtain much better results.

Basic PlanetCNC TNG connection settings

PlanetCNC TNG software recognises all PlanetCNC controllers that are connected to your PC trough USB or Network ports. You would need to select controller that will serve as primary controller.

Basic connection settings:


Lets start by going trough connection parameters in settings: File/Settings/Connection

Select the type of connection that you wish to use with your controller:
-Network(Only Mk3 controller)
“Adapter IP” setting allows you to insert your network adapter IP address.

When you select type of connection, you will notice that window with connected devices will add new controller(s) to the list(beside Simulation). If you have multiple controllers connected via USB to your computer, software will display them. In case of enabling Ethernet option, software will display also controllers connected to you network:

To select your primary controller from device list, you double click on it. “Primary controller” window will display type of connection, type of controller and its serial number.
Primary controller

Now that your primary controller is selected click OK and then you can observe its communication status.

Connection light colour description:

If you look closely at the bottom right corner of PlanetCNC TNG software you will notice that there is a round light.
This light can be lit in various colours and each colour indicates different connection state.

Green light indicates that controller is updated to correct firmware version and controller is activated meaning license is found by software. connected_license

Green light with X indicates that software does not find proper license for connected controller. connected_NO_license

Orange light indicates that controllers firmware version is not correct. Update firmware of controller. Firmware_not_correct

Gray light indicates no communication between controller and software. Click “Machine/Controller/Reconnect” and make sure that correct controller is set as Primary controller in settings. Not connected_No license

Red light indicates that software is processing commands and is sending them to controller. ProgramRunning

Communication status can also be indicated by observing on-board Link LED. If this LED is blinking in pattern of approximately 500ms, controller is communicating with software. When software is processing commands and is sending them to controller, this LED will be blinking even faster.

If Link LED is not blinking, this indicates communication has dropped.

PlanetCNC TNG software overview and performance guidelines


PlanetCNC TNG is a high performance CNC system. It is designed with flexibility in mind and it can be used for mills, routers, lathes, plasma or laser machines as well as any other machine or system where coordinated movement of servo or stepper motors is needed.

PlanetCNC TNG software works with Mk3 series of motion controllers and PC running windows 7, 8, 8.1, 10 or Linux.

Further in this post we will describe few guidelines that you can follow in order to achieve better performance of PlanetCNC TNG software and more stable communication with PlanetCNC controllers.

  • For best performance of PlanetCNC TNG software, PC with 4 virtual processors(cores) CPU is recommended. However, PC’s with 2 virtual processors will do just fine. Various services running in the background, antivirus software and program updates can interfere with PlanetCNC TNG performance and that is why dedicated computer is recommended.
  • Controller should be connected directly to computers root USB port. We recommend that you connect controller to computer root USB port via USB HUB device. Note that controller should be the only USB device connected on this HUB.
    You see, all devices connected to the same HUB device share available bandwidth. Because data traffic is prioritised by the OS, it would not be uncommon if another device connected to same HUB would interfere with controller and therefore compromise the communication between controller and PC.

    You can check which devices are connected to your PC USB ports with “UsbTreeView” software. You can get it here:UsbTreeView

  • Images below describe bad and good type of USB connection with PC:

    Example of bad USB connection with PC as seen in UsbTreeView software:
    You can notice that PlanetCNC Controller is connected with PC trough various USB HUB devices(3 in total). Also, if you look closely at the USB HUB device to which PlanetCNC controller is connected, you can see that other connected devices to this USB HUB, are mass storage device and USB camera, both known as devices with huge data flow. The data flow of camera or storage device could interfere with communication of controller which as result would not perform at its best performance.

    Example of good USB connection with PC as seen in UsbTreeView software:
    You can see that PlanetCNC controller is connected directly to one of computers root USB ports. There are no other devices connected to root hub.

  • Use double shielded USB cable. If cable longer than 1.5m is needed then it should be one with active repeater.
  • If Ethernet connection is used then dedicated network card just for controller is recommended. This prevents that high network utilisation interfering with communication.
  • Controller should have its own separate external power supply.
    If controllers voltage is supplied only trough USB, than there is a possibility that voltage fluctuations on the USB power line could interfere with USB communication and as a result communication would drop.
    For Mk3 and Mk3/4 controllers you can use 8-24VDC, 200mA power supply.
    IMPORTANT!!! For Mk3ECO controller power supply must be +5V VDC.
  • Use shielded cables for wiring of limits switches, motors…

Please note that these are not minimum requirements for controller and software to function. PlanetCNC controller can easily function on Celeron based PC’s as also controller can be connected to HUB device which serves as source for multiple other devices.



Using Adapter for 16 pin header with PlanetCNC controllers

If you need to connect your external electrical equipment such as sensors, switches, buttons, encoders with controller using single wires, you can use adapter for 16pin header.


Adapter pinout when connected to CTRL header of Mk3 controller:


Adapter pinout when connected to JOG header of Mk3 controller:


Adapter pinout when connected to LIMIT header of Mk3 controller:


Using Adapter for 10 pin header with PlanetCNC controllers

If you need to connect your external electrical equipment such as sensors, switches, buttons, encoders with controller using single wires, you can use adapter for 10pin header.


Adapter pinout when connected to AUX header of Mk3 controller:


Adapter pinout when connected to AXIS header of Mk3 controller:


Adapter pinout when connected to INPUT header of Mk3 controller:


Adapter pinout when connected to IOEXT header of Mk3 controller:


Adapter pinout when connected to OUTPUT header of Mk3 controller:


Adapter pinout when connected to SDI2C header of Mk3 controller:


Using SD card adapter with PlanetCNC controllers


Connect SD card adapter with the Planet-CNC controller:

Mk3 and Mk3/4 controller:
SD card adapter is connected to Mk3 and Mk3/4 controller with 10pin flat cable trough SD&I2C connector.


Mk2 controller:
SD card adapter is connected to Mk2 controller with 10pin flat cable trough EXT connector.


Export your toolpath to Raw file format in CNCUSB controller software: “File/Export Toolpath to Raw”:


Raw file must be named “toolpath.raw” and must be located on SD cards root folder.


Program Execution:

You can start the execution of your program from SD card:
“Machine/Start from SD card”

If you do not intend to use computer, you can connect a switch to desired input, assigned it as “Start” switch in software and start the execution of the program without the use of computer.

In settings you set input as ‘Start’ switch:

Mk3 and Mk3/4:


File/Settings/Input/Use Start


When running your program from SD card, the initial starting point of machining is always machines absolute XY=0 position.

It is important that the version of controller(Mk2, Mk3..) connected to computer when you export your toolpath to RAW format is the same as the one that will be later executing program from SD card adapter.

When you use controller in standalone option (no computer and no power supply via USB) it is necessary to use external power supply. Normal 8-24VDC adapter is suitable.

Mk2 requires jumper “JMP” to be short circuited (soldered) while Mk3 and Mk3/4 do not need this jumper to be short circuited.

Same settings need to be used when exporting toolpath(RAW file) and when updating controllers firmware (same settings need to be loaded into software).

Using output board with PlanetCNC controllers


Output board can be used to control external equipment such as VFDs, coolant systems, vacuum pumps etc.

It requires 12V power supply connected to a terminal labeled 12V (be careful with the polarity). Output board has 3 relays and 0-10V output. Relays can be used as NO (normally open) or NC (normally closed).

Relays and 0-10V output can controlled via 10pin header or terminals labeled “S”, “0”, “1”, “2” and “3”.


1. Output board connector description:


This IDC connector is used to connect output board with controller via 10pin ribbon cable (For Mk2 and Mk3).
Pin 5 of this connector activates relay 1.
Pin 4 of this connector activates relay 2.
Pin 3 of this connector activates relay 3.
Pin 6 of this connector controls 0-10V output.
This screw type connector is used to connect Mk2/4 or Mk3/4 controllers(or some other external devices) with output board:
[0-10V; GND, OUT] → to connect variable voltage output with VFD, output

[POWER; GND, 12V] → to connect power supply (12V DC, at least 200mA ), input

[SPEED; S, 0] → to connect varying frequency signal from controller or some other external device, input

S: Frequency signal input from Mk2/4 or Mk3/4 or other external device

0: GND from controller

[RELAYS; 1, 2 , 3] → Control signal input for SPINDLE, MIST or FLOOD from controller (or other external device), input
Input 1 controls relay labeled 1
Input 2 controls relay labeled 2
Input 3 controls relay labeled 3
This trimmer is used for calibrating the 0-10V output:
These are relay connectors. They are used for connection of the controlled device:

NO- normally open contact of relay
NC- normally closed contact of relay
1 – common movable contact of the first relay
2 – common movable contact of the second relay
3 – common movable contact of the third relay

2. Output board and controller connection:

Mk2 and Mk3 controllers use 10pin IDC connector, which makes the connection of controller and output board very easy.

Mk2 output connector:

Mk3 output connector:

Mk2 connection:

Mk3 connection:

Mk2/4 and Mk3/4 use screw type connectors so you will need to use single wires to connect controller with output board. To know which output pin from controller is connected to which input of output board, please refer to tutorial in Step 1.

Mk3/4 output connector:

Mk2/4 output connector:

Mk2/4 connection:

Mk3/4 connection:

3. Configuring controllers output pins in CNC USB controller software:

For Mk2 and Mk3 controller:

Connect Mk3/Mk2 controller with 10 wire cable to controller OUTPUT connector.
Do not connect terminals labeled “S”, “0”, “1”, “2” and “3”.

Set settings like this:
For Mk3/4 controller:

Connect Mk3/4 controller with wires to screw terminals.

If you use 3 relays connect output board terminals to controller like this:
“S” – not connected
“0” – GND
“1” – OUTPUT1
“2” – OUTPUT2
“3” – OUTPUT6

Set settings like this:

If you use 2 relays and 0-10V connect output board terminals to controller like this:

“0” – GND
“1” – OUTPUT1
“2” – OUTPUT2
“3” – not connected

Set settings like this:


For Mk2/4 controller:

Connect Mk2/4 controller with wires to screw terminals.
If you use 3 relays connect output board terminals to controller like this:

“S” – not connected
“0” – GND
“1” – OUTPUT1
“2” – OUTPUT2
“3” – OUTPUT7

Set settings like this:

If you use 2 relays and 0-10V connect output board terminals to controller like this:

“0” – GND
“1” – OUTPUT1
“2” – OUTPUT2
“3” – not connected

Set settings like this: