First Steps#

After you assemble the machine, do not simply load a file and let it run. Let’s first make sure everything is working correctly.

Following these steps in order will save you countless headaches in the future.

Connect to a sender software#

For the first tests I recommend you use a dedicated sender software. This is better than the tiny offline controller that comes with the CNC because it offers better troubleshooting options. It is also better than design packages like Easel or VCarve because those have many extra features or web components that are potential points of failure.

Note: This suggestion is only for the initial machine setup and maybe for the first few test cuts. Once you determine that everything is functioning correctly, you can switch to using any software you wish, or the offline controller.

Before you can connect with the software, you may have to install the CH340 driver. It will create a COM port for communicating with the CNC control box. The driver should be part of the software package that comes with the machine.

A simple sender option is Candle. It doesn’t even need to be installed. A few other popular ones are UGS, gSender, OpenBuilds. Whatever the software, make sure you are using the latest stable build. Oftentimes CNCs come with software that is quite out of date.

Connect to the control box via a USB cable. Fire up the sender software. Locate the settings where you set the communication port. In most cases, there is a dropdown to select from the available COM ports.

What if the sender software can’t connect?#

A few common things to check:

  1. Make sure you have installed the device drivers that came with the CNC. For example you may need the CH340 driver

  2. Ensure the COM port and the baud rate are correctly set in the software. Most senders should let you pick a COM port from a short list of valid ones. Try them all. A common baud rate used by Grbl is 115200

  3. If you get “access denied” or other similar error, you may have another sender application already using the COM port. Only one program can use it at a time

  4. The USB cable may not be fully plugged in, or is bad. Try a different cable

  5. Check if the e-stop button is pressed. Twist it to release

  6. By default Grbl will start in Alarm mode, which disables most of the functionality. There should be an Unlock button in the software to clear the alarm

  7. Update the sender software to the latest stable version, or try a different one. Some are more intuitive for beginners than others

  8. If all else fails, shut down everything, including disconnecting the USB cable. Then reconnect and restart

Initial settings#

Locate the console window in the sender software. This is the terminal where you can type commands to send to the CNC and view the output.

Type the command “$$” (type “$$” and press Enter). This will ask the control box to list its current configuration settings. Copy them and save them in a text file for later.

Check settings $20 and $21. $20 enables the soft limits and $21 enables the hard limits. For the initial tests it’s best if $20 is 0 and $21 is 1. If they are not, use the commands “$20=0” and “$21=1” to change them.

Reason: The hard limits prevent going beyond the limit switches and avoid damage. It’s always a good idea to have them enabled.

As for the soft limits, until the machine is fully set up, they can get in the way.
Read more about soft limits here: Soft limits settings

Do not try to jog or home the machine just yet. If it is wired incorrectly, it can lead to damage.

Jog every axis#

Now let’s see if every axis moves and in the correct direction.

The sender software should have arrow buttons for jogging each axis. There should also be a way to set how far to move for each click. Initially use a small distance (like 1 millimeter) and a slow speed. Click each arrow in turn.

If everything looks good, you can increase the speed and distance. For now stay around the middle of each axis, away from the two ends.

Check that each axis moves in the requested direction and travels the requested distance. You don’t need to be exact, but if you ask to move by 1 inch, or 1 cm, you can probably gauge by eye if it is close.

If you have separate Y1 and Y2 axes, double-check that they both move at the same speed and in the same direction. If they don’t, they will skew the X axis and could damage the machine.

What if an axis doesn’t move?#

There could be three categories of reasons why an axis doesn’t move - mechanical, electrical, and software.

First check for software issues because they are the easiest. Look for alarms or errors in the sender software. Read the actual text of the message. It could provide hints on how to correct it. Maybe you are hitting the soft or the hard limits. Disable the soft limits (set $20 to 0) until you get the issue resolved.

Then check for any mechanical issues. It could be that the motor is turning but the mechanical linkage to the axis is loose or broken. It could be that the axis is at the end of the travel limit. Or the mechanism could be binding. Verify that all parts are moving freely and are properly connected.

Then check for electrical issues. Recheck all wires. Look for any error lights on the motor itself.

Finally, try swapping the wires and the motor with another axis that works. It will show if the problem is the wire, the motor, or the control box.

Note: It may be best to remove the motors from the frame when doing this. Each axis has different settings, which can lead to unexpected movement and damage the machine.

What if the wrong axis moves?#

If the wrong axis moves when you jog, it means the wiring is incorrect.

Check that the correct cable for each motor is hooked to the corresponding connector. Keep in mind that in rare cases the labeling on the cables or on the box may be wrong.

What if the axis moves in the wrong direction?#

Let’s say you click the Left arrow, but the X axis moves Right instead, and vice versa. You will need to adjust the settings to reverse the direction of the axis.
Read about it here: Axis movement direction setting

In case the axis sometimes moves in the correct direction and sometimes moves in the wrong direction, it could be caused by loose wiring or electromagnetic interference. Re-check all wires and shut down potential sources of EMI, like dust collection or a spindle.

In case the axis moves in one direction only, it could be caused by loose wiring or insufficient power to the electronics. Re-check all wires. Try a different USB port and cable. If you have the option to use an offline controller instead of PC, try that instead, but make sure the USB cable is disconnected.

What if the axis travels the wrong distance?#

If the travel distance doesn’t match the requested amount, it is possible that the steps per mm are set to the wrong value.
Read about how to change them here: Steps per mm settings

What if none of the axes move?#

Here’s a common scenario: You try jogging, the coordinates in the sender software appear to change on screen, but none of the motors physically move.

This can happen if the control box has no power. You may think it is turned on because it communicates with the sender software on the PC. But in fact, the control board is getting power over the USB cable, which is enough to run the CPU and the firmware, but not any of the motors.

The power supply for the motors may be turned off or damaged. Check the following:

  • Are you certain you are plugged in a working AC outlet?
  • Is the power supply set to the correct AC voltage, either 110V or 220V?
  • Is there a power switch on the control box that needs to be turned on? It could be on the back
  • Is there a fuse next to the AC power cable that may need replacement?
  • Oftentimes control boxes have a fan - is it spinning? No fan noise may indicate no power

What if Y1 and Y2 move in opposite directions?#

If Y1 and Y2 move in opposite directions, there is a problem with the hardware.

For ballscrew and leadscrew machines the Y1 and Y2 motors need to spin in the same direction because they are oriented in the same way.

For belt-driven machines Y2 should spin opposite of Y1 because they face each other. You will need to flip the direction of one of the motors. How you do that depends on the motor type.

Open-loop motors can be reversed by reversing the polarity of one of the coils. The motors have 4 wires, 2 for each coil. You need to swap two of the wires. It can be done internally inside the control box or on the connector at one end of the motor cable.

Closed-loop motors can be reversed by toggling one of the DIP switches. You will need to contact the supplier to know which one. It is likely to be the first or the last, but it may not be. Do not start changing switches at random as it could lead to more problems.

After fixing the hardware problem, manually align Y1 and Y2 to recover from any twist of the X axis.

What if Y1 and Y2 move at different speeds?#

If Y1 and Y2 motors spin at different speeds, then there is a problem with the hardware.

Closed-loop motors have DIP switches in the back that determine how fast they rotate. If Y1 and Y2 are set differently, maybe a switch got bumped by accident. You need to change one to match the other. But which of the two is the correct one? Look at the X and Z motors for reference. Keep in mind that one of the switches determines the rotation direction. For belt-driven machines Y2 needs to rotate in the opposite direction from Y1, X and Z.

Open-loop motors also have similar switches, however they are part of the drivers inside the control box. It’s best to contact the manufacturer for help.

When experimenting with motor speeds or direction, it’s best to unhook them from moving the X gantry. For ballscrew drives, either disconnect the motors from the machine and leave them on the side, or at least remove the X gantry to allow each side to move independently. For belt drives, disconnect the belts.

Once everything is spinning correctly, reinstall and align the X gantry.

Test the e-stop#

It’s best to test and get familiar with the e-stop during the initial setup, so you are ready and confident when you need it.

Start a jog on the X axis at a slow speed from one end to the other. Somewhere in the middle, hit the e-stop. The movement should stop abruptly.

To release the e-stop, twist the button and it should pop up. You will have to reconnect from the control box.

Test individual limit switches#

Now let’s test the limit switches one by one. You need to ensure that they are operational before running the homing sequence.

Refer to the pin testing guide here: Testing limit switches

Test hard limits#

After ensuring that all limit switches work on their own, let’s verify that they activate under normal use.

Move one axis to one of the ends until it gets close to the limit switch. Start moving further, 1 millimeter at a time until the switch clicks. This should trigger an alarm in the sender software. Clear the alarm. Move the axis in the opposite direction 1 millimeter at a time until the switch is released. Another alarm will trigger. Clear the alarm again.

Repeat for both ends on every axis.

If there is no alarm at all, check setting $21 to make sure the hard limits are enabled (set to 1). If some switches work, but others don’t, it could be a mechanical issue.

  1. For mechanical switches: You will need to examine exactly how the carriage is supposed to push the switch. Sometimes the switch is stationary and is pressed by the carriage. Sometimes the switch is mounted to the carriage and is pressed against stationary end stops. It is possible that the switch is mounted slightly off. There should be screws that can be loosened to adjust the position of the switch.

  2. For inductive switches: There are two components - a stationary sensor and a moving metal plate attached to the carriage. The position of the sensor can be adjusted by loosening a few screws or nuts. The metal plate should be bolted securely to the carriage.

Home the machine#

Pause: You need to complete the previous steps before attempting to execute homing. It is critical to ensure that every axis moves in the correct direction, at the correct speed, and that the limit switches are operational.
If you skip those steps you may encounter hard to diagnose problems and even cause hardware damage.

Now that you’ve confirmed that all the components are functioning correctly on their own, you are ready to run the homing sequence. It will be safest to do this with the spindle removed, or at least remove the tool from it. You don’t want it to accidentally slam down into the surface.

Find and click the Home button in the sender software. Here’s what is supposed to happen:

  1. The Z axis should go up until it hits the upper limit switch

  2. The Z axis should move down a little bit to disengage the switch

  3. The Z axis should move up slowly until it hits the upper limit switch again, then retract down

  4. The X and Y axes should start moving towards the homing corner (usually left and front) until they both reach their limit. One axis is going to get there first and wait for the other

  5. Then X and Y will move away from the corner to disengage the switches

  6. Then X and Y will move towards the corner again, but slowly, until the switches are hit

  7. Finally, X and Y will retract

Warning: Keep one hand near the e-stop. If the limit switch gets reached, but the axis continues to push forward, hit the stop to avoid hardware damage. This could mean that the limit switches are not connected or are wired for the wrong axis. Double-check all wiring.

Also keep an eye out for the movement speed. If it appears that the axis is approaching the corner at a breakneck pace, you may wish to adjust the homing speed. Read about it here: Additional homing settings

Note: It is possible that the Z axis will move down instead of up. This is not necessarily wrong, but you may want to change it.

Read about changing the homing corner: Homing corner selection

Troubleshooting homing#

If the homing sequence doesn’t complete successfully, the most likely culprit is going to be the limit switches. You need to check if they are working as required, and also make sure none of them is active when the homing starts.

Here’s how to view the status of the switches and test if they are working: Testing limit switches

You may also get an alarm message. Common alarms during homing are 8 and 9.

Alarm 8: This alarm indicates that the limit switch was not properly released after it was activated.

The most common causes are:

  1. The switch may be faulty, mechanically stuck in the closed position, or incorrectly wired

  2. The motor may fail to reverse direction. Repeat the “Jog every axis” section

  3. The axis may need to pull away extra distance to release the switch.
    Increase the distance and try again: Additional homing settings
    Visually confirm that extra distance is needed before changing the setting

Alarm 9: This means the limit switch was not activated.

The most common causes are:

  1. The switch is faulty or incorrectly wired

  2. The work area size settings do not reflect the real size of the machine. If the setting value is too low, the axis will not move far enough to reach the limit switch.
    Double-check the settings and try again: Work area settings

Determine the real work area#

The advertised work area of a CNC machine rarely matches in practice. The real size depends on the physical location of the limit switches, which can be adjusted.

For example a model that is sold as 800 mm wide, may actually have 820 mm of usable width.

To determine the real size, first you need to disable the soft limits and enable the hard limits. Set $20 to 0 and $21 to 1. That’s because we will be traveling beyond the allowed soft limits, but we still need the hard limits to tell us when we reach the end.

Jog X and Y close to the far corner. Then slowly move X closer and closer, until you trip the limit switch. This will trigger an Alarm. Dismiss the alarm with the Unlock button.

Slowly move backwards until the limit switch is released. This will trigger a second Alarm. Dismiss it and move back a little (let’s say 2 mm more) to get fully clear of the switch.

Note the current machine coordinate. It should be some positive number, like 17. That means we have extra 17 mm on top of the advertised setting. You can add that number to setting $130 (in our example it will be 817).

Repeat the process for the Y axis and update setting $131.

After you are done, run the homing sequence again because the machine coordinate system will be out of sync after changing the settings.

Test the spindle#

Safety first: Remove the cutter tool and the collet from the spindle until we know it works correctly. Never operate a spindle with a collet nut and no tool because the nut can come loose and fly off.

Most sender programs have buttons to manually turn on the spindle. If you can’t find the controls, you can use the G-code command

M3 S10000

This should turn on the spindle. The S10000 parameter only matters for VFD spindles. Otherwise it is ignored.

To stop the spindle use the command

M5

VFD spindle break-in#

VFD spindles have special bearings that are designed to withstand high lateral loads during cutting. They need the grease to be well distributed all around.

If you have a brand new VFD spindle, it is recommended that you run it for a few minutes at various speeds. Let’s say start with 6000 RPM for 5 minutes, then increase the speed to 12000 RPM for another 5 minutes, and so on until you reach the top speed. This should reduce the squeaking noise that is sometimes present on new spindles.

You should also run this process after the spindle has been inactive for prolonged time.

What if the spindle doesn’t start?#

The troubleshooting steps will depend on the motor type

DC motor#

Check the obvious - are there loose wires, do you have everything plugged in the right socket?

There is usually a knob for controlling the speed. Maybe it is set to the lowest setting?

If there is a switch to select between LASER and SPINDLE, make sure it is in SPINDLE mode. Try it both ways just to be sure. The switch may be wired backwards, or mislabeled.

If you have a voltmeter, check the voltage at the spindle.

There should be a relay in the control box. Listen for a click when you execute the M3 and the M5 commands.

Trim router with a smart relay#

Let’s assume the router turns on when you plug it directly in a wall socket. If not, you have bigger problems :)

The smart relay should be connected to the DC spindle output of the control box. Check the wiring.

If there is a switch to select between LASER and SPINDLE, make sure it is in SPINDLE mode. Try it both ways just to be sure. The switch may be wired backwards, or mislabeled.

There should be a relay in the control box. Listen for a click when you execute the M3 and the M5 commands.

There should be a knob for controlling the speed of the DC spindle. Turn it up half way at least.

VFD spindle#

If the VFD has manual mode, try it first to ensure that both the VFD and the spindle are operational on their own. Then enable the automatic mode. If the VFD is programmable, you will need to check the instruction manual for the exact settings.

The VFD should be connected to the PWM output of the control box. Check the wiring.

If there is a switch to select between LASER and SPINDLE, make sure it is in LASER mode. Try it both ways just to be sure. The switch may be wired backwards, or mislabeled.

Double-check the Grbl settings $30 and $31. They configure the minimum and maximum spindle speed.
More on them here: Spindle speed settings

Test the Z probe#

While we are testing everything, let’s confirm that the Z probe is wired correctly.

The Z probe usually consists of a thick metal plate and an alligator clip. Touch the plate with the clip.
Use the tutorial here to verify that the contact was detected: Testing probe connectivity

More on Z probing here: Z Probing

What next?#

Congrats! By now you should have a fully assembled machine that is behaving correctly, both mechanically and electronically.

There are two more steps to do before you can start using it:

  1. Tramming - this is the process of aligning all axes to be perpendicular to each other.
    Here’s an in-depth tutorial how you can do this: Tramming a CNC Router

  2. Surface the spoilboard - this is the process of flattening the bed surface to get it parallel to the XY plane. You can use the built-in surfacing tools in the gSender and OpenBuilds sender applications. There are also many tutorials on Youtube that describe the process in detail

Discussion#

Comment Form is loading comments...

  © 2026 Ivo Beltchev cnc@ibeltchev.com