These CNC FAQs cover all of our Linux-based controllers since we introduced CNC Sherline machines
Software Information/Documentation
⚠️IMPORTANT: Installing LinuxCNC will completely overwrite your current operating system as well as all data and programs on your computer. The hard drive will be reformatted. Save all g-code and other important files to an external drive before continuing with installation.
Installation on Computer with BIOS firmware – PDF
Installation on Computer with BIOS firmware – DOCX
Installation On computers with only UEFI support – PDF
Installation On computers with only UEFI support – DOCX
Reinstallation On computers with only UEFI support – PDF
Reinstallation On computers with only UEFI support – DOCX
Linux is an open-source operating system known for its stability, flexibility, and security. It serves as an alternative to commercial systems like Windows or macOS and is widely used in both personal and industrial computing environments.
In CNC (Computer Numerical Control) applications, Linux provides a robust platform for controlling machine tools through software such as LinuxCNC. This software runs on Linux and enables precise control of CNC machines. Key reasons Linux is favored in CNC include:
-
Real-Time Performance: Linux is be configured for real-time computing, which is essential for accurate, time-sensitive machine control.
-
Open-Source Flexibility: We customized and extended the software to fit specific our specific configurations and tooling.
-
Reliability: Linux is known for its long-term stability and low risk of crashes or slowdowns, which is critical for uninterrupted machining.
-
Cost-Effective: Being free and open-source, Linux helps reduce software costs for CNC operations.
Many CNC systems, especially DIY or small-shop setups, rely on Linux-based solutions for high-precision, low-cost control.
Red Hat, Debian, and Ubuntu are popular Linux distributions, each with different focuses:
-
Red Hat (RHEL): Enterprise-grade, subscription-based, known for stability and long-term support. Uses RPM packages.
-
Debian: Community-driven, very stable and secure, preferred by advanced users. Uses DEB packages and is often a base for other distros.
-
Ubuntu: Based on Debian, designed for ease of use. Popular for desktops and CNC applications like LinuxCNC. Uses DEB packages and
apt
.
In CNC applications, Ubuntu is commonly used due to its balance of user-friendliness and performance, especially with LinuxCNC which is why we currently use it.
Sherline provides clear, step-by-step instructions to help you get up and running. These instructions are included on the Sherline Instructions and Utilities CD that comes with your system. You can also access the latest version online by visiting the Sherline CNC Instructions page on our website.
In addition to Sherline’s documentation, there is a wealth of CNC and Linux-related information available online. If our materials don’t address your specific question, try searching online—chances are someone else has encountered and resolved a similar issue. You’ll also find several user communities and forums that offer valuable support. While not Sherline-specific, many members are familiar with Sherline systems or closely related setups.
For Linux-specific help, the official Linux website at www.linux.org features a built-in Google search tool that can guide you through various Linux topics.
If you need help getting started, you’re welcome to contact Sherline support at 1-800-541-0735 or 1-760-727-5857 during business hours, or email us at info@sherline.com. We’re happy to assist with getting your CNC system up and running. However, please note that we do not provide custom G-code programming or machining setup guidance for specific parts, as those tasks are part of the machining process and will be up to you.
Our CNC instructions, along with the machining manual included with every system, will provide you with a solid foundation to begin your CNC journey.
From the CNC operator’s perspective, the underlying operating system is often secondary—as long as it runs your programs reliably and efficiently. In most cases, users interact with Windows primarily to launch software or manage files, and the Linux desktop functions in much the same way. If you’re familiar with Windows, you’ll find the transition to Linux intuitive. The basic actions—navigating, opening and closing programs, moving files and folders—are all similar, with only a few minor differences that are easy to learn.
What truly sets Linux apart is its performance advantage when running CNC software.
When selecting an operating system and control software for Sherline’s CNC systems, we didn’t choose the Linux-based EMC (Enhanced Machine Controller) just because it’s free—we chose it because it delivers superior performance for three key reasons:
1. Focused System Resources
Linux dedicates its full processing power to running the EMC software, without the background interruptions common in Windows. At the time of our evaluation, CNC programs running on Windows could pause unexpectedly during a machining operation due to the system performing internal tasks—leading to unwanted marks or flaws in the finished part.
Some Windows-based CNC systems worked around this by using a second computer to buffer data to the servo drivers, but this added unnecessary hardware complexity and hundreds of dollars in cost. Linux, on the other hand, avoided the issue entirely by providing a stable, dedicated environment for machine control.
2. Developed for Precision by Experts
EMC originated at the National Institute of Standards and Technology (NIST). When the software was released as open-source, it wasn’t user-friendly for most machinists. However, a group of dedicated engineers and skilled hobbyists continued to refine it. Sherline partnered with this community to create a user-ready version of EMC that offered performance and reliability unmatched by Windows-based systems at the time.
3. Advanced Cutter Compensation
When we chose EMC, one standout feature was its robust handling of cutter offsets (G41/G42). At that time, this level of accuracy and control wasn’t available in other software accessible to home machinists and hobbyists. While many modern programs have since improved, EMC continues to offer professional-grade features without the extra cost.
In short, Sherline chose Linux and EMC not for cost savings, but for performance, reliability, and better machining results—all of which directly benefit our customers.
EMC stands for Enhanced Machine Controller, a powerful open-source CNC control program originally developed by the National Institute of Standards and Technology (NIST). It is licensed under the GNU General Public License (GPL), allowing it to be freely distributed and modified. While NIST no longer actively develops EMC, the project has been taken over by a dedicated community of Linux users and skilled developers.
For the latest updates and technical information, you can visit the official project site at www.linuxcnc.org. Today, the software is more widely known as LinuxCNC.
EMC functions as a G-code interpreter, meaning it reads your G-code programs and translates them into step-and-direction signals that drive the stepper motors on your mill or lathe. Despite being open-source, it’s a highly capable system that includes features such as:
-
Tool offset management
-
Backlash compensation
-
G-code editing tools
-
A backplot display for visualizing toolpaths
-
And much more
The latest version, known as EMC2 (now generally referred to as LinuxCNC), introduced several enhancements—most notably, improved support for CNC lathes. Starting September 17, 2009, Sherline began bundling EMC2 standard with Ubuntu Linux on all CNC systems. While the changes are most noticeable for lathe users, Sherline CNC mill users will find the functionality between EMC and EMC2 to be largely the same.
The Sherline CNC system, along with EMC, operates using G-code, the industry-standard language for programming CNC machines. G-code is widely supported by most CAD/CAM software, making it easy to integrate into your workflow.
For simple parts, G-code can be written manually. For more complex shapes, you can design your part in a CAD program and export the file as G-code for use with EMC. If your CAD software doesn’t support direct G-code export, a separate CAM or post-processing program may be required to convert the design.
For more information on G-code and how it’s used with Sherline systems, refer to the CNCinst.htm file included on the Sherline Documentation CD.
Not always—and here’s why.
At Sherline, we only use the latest version of EMC or EMC2 that has been thoroughly tested and verified to work reliably with our systems. While newer versions may become available from the LinuxCNC community, we do not adopt them immediately. These updates may include bug fixes or new features, but they can also introduce unforeseen issues or incompatibilities.
The version of EMC2 that we preinstall on our systems, offer on CD, or provide for download from our website is the most current stable release that we have tested and support with our documentation.
If you choose to download and use a newer version from another source, please understand that you do so at your own risk. While it may contain improvements, it could also create issues that were not present in the supported version. Additionally, Sherline cannot offer technical support for versions beyond those we officially support.
Our goal is to ensure a stable, reliable experience—so we prioritize proven performance over unverified updates.
The most up-to-date version of the instructions can be found at CNC 7 Instructions. Instructions for Debian systems purchased between January 1, 2005, and September 17, 2009, can be found at CNC 4 Instructions. For those using a system purchased before January 1, 2005, instructions for the 2.xx Redhat version can be found on the Sherline CNC Instructions page.
Yes. EMC2 now includes a program for CNC lathes. On the desktop, just select the icon for the leadscrew pitch of your lathe (inch or mm) and open the EMC2 program for your lathe. This was one of our main reasons for switching from EMC to EMC2.
Earlier versions of EMC do not have a lathe-specific version written for them, but writing G-code for a lathe tool path is pretty easy to figure out. The lathe uses just the X and Z axes. (In machining, the spindle axis is always called the Z-axis.) Keeping this in mind, it is not difficult to re-orient your thinking from mill to lathe.
We have included a number of free utilities that will help you create G-code. They are located in the “Utilities” folder that can be found on your CD. They are all programs that run on your Windows® computer, and the G-code files you generate can be saved in .txt or .ngc format and transferred to your Linux computer to be run. They can also be found on the Sherline website at CNC Links and Resources.
Programing Questions
If you’re new to CNC, we strongly recommend reading the Sherline CNC Instructions in full before attempting to machine any parts. These instructions provide a solid foundation for beginners and are especially helpful for those unfamiliar with CNC programming or G-code.
By the time you’ve completed the guide, you should be comfortable writing basic programs and have a clear understanding of more advanced code and operations—giving you the confidence to begin machining with accuracy and purpose.
LinuxCNC Help – Getting Started includes other links to G and M codes for LinuxCNC mill and lathe sample programs, special notes on the tooling page and CNC mill set-up procedure, and more.
You cannot run a CAD (Computer-Aided Design) file directly in EMC or most CNC control programs. Instead, the vector data from your CAD drawing must be converted into G-code—a plain text format made up of letters and numbers that EMC uses to control the stepper motors on your machine.
Professional CAD/CAM software like Mastercam®, Surfcam®, or GibbsCAM® allows you to create drawings and export them directly as G-code. However, these programs can be quite expensive. If you already have a CAD program that doesn’t support G-code export, there are free or low-cost translator programs available that can convert files (such as .dxf
or .stl
) into G-code. We provide links to some of these tools on our CNC Links and Resources page.
To convert a CAD drawing to G-code:
-
Open a translator program on your Windows® computer.
-
Import your
.dxf
or.stl
file. -
Export the file as a
.txt
G-code file.
This G-code file can be opened in any text editor (e.g., WordPad®, Microsoft Word®, etc.) or directly in EMC. Save the file in EMC’s designated “gcode” folder to run it from the CNC interface.
Keep in mind:
-
EMC uses a simple version of G-code, and files generated by high-end software may include commands that require editing or removal.
-
You can edit and test the G-code within EMC using the Backplot feature before enabling the stepper motors to begin machining.
This process ensures a smooth transition from design to production using your Sherline CNC system.
Not necessarily. G-code generated by CAD/CAM software may require some manual fine-tuning before it runs properly in EMC—or any CNC control program—because post-processors are typically customized for specific machines, which can vary significantly.
While EMC follows industry-standard G-code conventions, it is up to CAD/CAM software developers to tailor their output to be compatible with EMC—not the other way around. Some manufacturers assign unique functions to unstandardized G-codes, which may conflict with how EMC interprets them. Additionally, Sherline’s simplified CNC system does not support all G-code functions, such as certain canned cycles, M-codes, or inputs like limit switches.
Because of this, it’s important to preview your G-code in EMC’s backplot tool before running the program. If the program stops and highlights unsupported or incorrect lines of code, you’ll need to edit and remove them manually using the built-in editor.
This is why having a basic understanding of G-code is still essential—even if you use a CAD/CAM program to generate it. As EMC (LinuxCNC) becomes more widely used, more software developers are beginning to offer dedicated post-processors for it. However, Sherline has no control over how these third-party companies design their software.
In the absence of a dedicated EMC post-processor, we recommend selecting a “Mazak” or “Hurco” post-processor as a close alternative for 3-axis projects.
There are several ways to transfer G-code files to your CNC system, but the simplest method is to save the files as plain text (.txt
) on a USB flash drive, CD, or DVD using your CAD computer.
⚠️ Note: File names should be limited to eight characters or fewer to ensure compatibility with the EMC program.
To transfer the file:
-
Insert the USB drive or disc into your Sherline Linux computer.
-
An icon for the device will appear on the Linux desktop—double-click it to open the drive.
-
Also on your desktop is a folder labeled “G-code.” Double-click to open it.
-
Drag and drop the G-code file from the drive window into the “G-code” folder. (This process works just like it does in Windows.)
-
Once copied, you can open the file from within EMC by navigating to the “G-code” folder.
A USB flash drive is included with your Sherline CNC computer for easy file transfers. To move a file from the CNC computer to another system, simply drag it from the “G-code” folder to the flash drive’s window, then eject the drive as needed.
⚠️ Note: Ubuntu Linux no longer requires manual “mounting” or “unmounting” of external drives—removable media is now handled automatically, similar to modern Windows systems.
Some customers mistakenly believe that a CNC machine can take an image of a part and automatically produce it. This is not possible with any CNC system.
To understand the steps involved in converting a design into a machinable format, please refer to our guide: “What Is Needed to Make Parts on a CNC Lathe?”
That said, there are specialized programs that can interpret an image—such as a photo—by analyzing its light and dark areas and converting them into height data (darker areas are interpreted as deeper cuts). These programs can generate a 3D G-code file that reproduces the image as a machined surface.
One such program is DeskART, which allows users to import BMP, GIF, JPEG, WMF, or TIFF files and convert them into a DXF surface mesh or directly into G-code. You can learn more and download a free 30-day trial at www.deskam.com. DeskAM also offers additional software tools for engraving and CNC design.
Yes, our Sherline/MASSO CNC controller (P/N 8780) can cut threads. However, LinuxCNC does not have the provision to accept input from an encoder. For the Linux system, you will need to cut the threads manually using the thread-cutting attachment (P/N 3100) and handwheels.
⚠️ Note: Threads can be milled on a Sherline CNC mill using the A-axis and Z-axis.
You can switch between inch and metric modes in EMC by using the G20 or G21 G-code commands:
-
G20 sets the machine to interpret dimensions in inches.
-
G21 switches the system to use millimeters.
When you use G21, the software automatically converts your inputs into the correct motion, even if your machine uses inch-based leadscrews. Likewise, G20 allows inch-based programming on a machine with metric leadscrews.
Even if you always program in inches or millimeters, it’s important to explicitly include the appropriate command at the beginning of each G-code file. This is because EMC retains the last-used unit setting, even after the system is shut down.
-
On inch machines, always start your program with
G20
. -
On metric machines, always begin with
G21
.
This ensures the machine runs with the correct unit system and prevents errors caused by leftover settings from a previously run program.
When launching EMC, be sure to select the correct machine configuration from the desktop:
-
For an inch-based machine, choose “CNC Sherline Benchtop Mill (Inch)”
-
For a metric-based machine, select “CNC Sherline Benchtop Mill (mm)”
Each configuration file is calibrated for the specific leadscrew pitch of your machine—20 TPI for inch machines and 1 mm pitch for metric machines.
Because of this, you cannot run a metric machine using an inch configuration or vice versa, as the motion calculations will be incorrect.
Computer and Hardware Information
Sherline has simplified the setup process to get you up and running quickly. Your CNC computer comes with the operating system, control software, driver, and power supply pre-installed—all housed within the computer case. All that’s left for you to do is connect a few cables.
To help guide you through the setup, a step-by-step printed “Quickstart” guide is included with your system. It features clear, full-color images showing exactly how to connect your Sherline CNC computer and stepper motors. (And don’t forget to plug in the parallel cable!)
This same guide is also available digitally on the Sherline Documentation CD under the filename CNCquickstart5.htm. There, you’ll find detailed photos of the system, including the back panel of the computer, to ensure each connection is made correctly.
⚠️ Important: If you’re new to computers, please follow the instructions carefully. Forcing a cable into the wrong port could damage the system.
With the provided resources and plug-and-play setup, you’ll be ready to start machining in no time.
Yes, you can—but it’s important to consider whether it’s worth the extra effort and potential complications. You have two main options:
Option 1: Retrofit Your Existing System
You can use your own computer by retrofitting a standard Sherline mill with the following components:
-
Stepper Motors (P/N 67127)
-
Driver Box (P/N 8760) to power the motors
-
A parallel (printer) port on your computer for connectivity
Once the hardware is installed, you’ll need to choose between:
-
Installing Linux and EMC (included on CD with the driver box), or
-
Purchasing and installing Windows® or DOS-based CNC software from a third-party provider.
The current Ubuntu-based version of Linux is relatively easy to install and compatible with most modern systems. However, due to the many variables involved, we cannot guarantee compatibility with your specific hardware. That’s one reason Sherline offers a complete system with a pre-configured computer.
⚠️ Note: The driver box does not include free technical support for third-party software installations. If you purchase software elsewhere, confirm that it is compatible with Sherline’s hardware. Some vendors may require you to buy their own motors and drivers.
For more details about the pros and cons of Linux vs. other operating systems, click here.
Yes, Sherline offers CNC systems designed specifically for customers who already own a mill. These systems include a retrofit kit for either a 10″, 12″, 14″ or 18″ mill, along with:
-
Three stepper motors
-
A computer preloaded with drivers and control software
In essence, it’s the complete CNC system minus the mill itself.
Part numbers for retrofit systems:
- 10″/12″ mill
Inch version: P/N 8542
Metric version: P/N 8543 - 14″ mill
Inch version: P/N 8022
Metric version: P/N 8023 - 18″ mill
Inch version: P/N 8058
Metric version: P/N 8059
Retrofit kits are also available for Sherline lathes, allowing you to upgrade your existing equipment to full CNC capability.
Yes, Sherline’s CNC system can operate on 230V power, but you’ll need to make two manual adjustments to ensure safe and proper operation:
1. Switch the Computer Power Supply to 230V
On the back of the computer’s power supply, you’ll find a small red voltage selector switch. Use a flat tool (such as a small screwdriver) to flip the switch from 110/115V to 220/230V.
2. Switch the Driver Board Power Supply to 230V
The driver board also has its own voltage selector switch, similar to the one on the computer’s exterior. To access it:
-
Unplug all power before proceeding—even if the computer is off, the driver board may still be receiving live current.
-
Remove the side panel of the computer (the one with the driver board’s power switch) by unscrewing the two rear screws.
-
Inside, locate the voltage selector switch on the power supply—it’s recessed, so you’ll likely need a screwdriver to flip it.
-
Set the switch to 230V, ensuring it matches your local power standard.
⚠️ Note: Using the wrong voltage setting can damage your equipment. Double-check that both switches are set correctly for your region’s power supply before plugging in the system.
Transferring G-code files from a Windows® computer to your Sherline CNC system can be done using CDs, DVDs, or more commonly today, USB flash drives.
For systems running Sherline Linux version 4.38 or later, USB support is already included:
-
Simply insert your USB flash drive into the USB port.
-
A USB icon will appear on the desktop.
-
Double-click the icon to access the drive’s contents.
-
You can then drag and drop files into the system’s “G-code” folder—just like in Windows.
-
There is no need to manually “mount” or “unmount” drives in Ubuntu Linux, as was required in older versions.
Setting Up USB Flash Drive Support on Older Linux Versions (Without Native USB Support)
If you’re using an older version of Linux that does not include USB support, you’ll need to manually configure it:
⚠️ Note: This process involves editing system files. Proceed with caution. Mistakes could require a full system reinstallation.
Steps to Enable USB Flash Support:
-
Boot to the Linux desktop.
-
Log in as root:
-
Click the K-icon (bottom-left, like Windows Start Menu)
-
Choose: Logout > End session only > OK
-
Log in with:
-
Username:
root
-
Password:
sherline
-
-
-
Open Terminal (icon looks like a small LCD monitor)
-
Type the following commands:
-
mkdir /media/flash
→ Press Enter -
mc
→ Press Enter twice to open Midnight Commander
-
-
Navigate to
/etc
, then:-
Highlight and press F4 to edit the modules file
-
Add:
usb-storage
-
F10 to save and exit
-
-
Still in
/etc
, edit the fstab file:-
Press F4 and add:
-
F10 to save and exit
-
-
Press F10 to close Midnight Commander
-
Type
exit
to leave the Terminal -
Logout from root and log back in as:
-
Username:
sherline
-
Password:
sherline
-
-
On the desktop, right-click and select:
Create New > Device > Hard Disc Device-
Name it Flash Media
-
Under “Device,” select /dev/sda1
-
Click OK
-
-
Right-click the new Flash Media icon, choose Properties, and under Permissions:
-
Set Group and Others to Can Read & Write
-
Check “Is executable”
-
Click OK
-
In newer BDI versions, USB devices can also be managed via icons in Properties > General.
Once configured, the Flash Media device will behave like a floppy drive, using Mount and Unmount commands.
Technically, you can use stepper motor cables longer than six feet, but it comes with risks and limitations:
-
Electrical resistance is not a major issue since the driver delivers current, not voltage.
-
However, longer cables can introduce signal distortion, especially from inductance or electrical “ringing.”
-
Signal corruption—not signal loss—is the most common issue with longer runs.
-
Environmental interference (e.g., from a Dremel-type motor) can severely affect longer cables by inducing unwanted noise.
-
Some users have successfully used longer cables, but this is at their own risk.
⚠️ Note: The biggest risk isn’t the cable length but the connectors. If a connector becomes loose or intermittent:
-
The stepper motor may surge, sending damaging current to the driver.
-
If a motor runs rough or falters, stop the system immediately—continuing to run could destroy the driver chip.
Bottom line: Shorter cables are safer and more reliable. Use longer runs only with proper shielding and secure, high-quality connectors.
Machining Questions
A good place to start is the regular machining FAQ page on this site. It will answer many of your basic questions about the tools and cutting metal. There is also a very informative illustrated book on machining in miniature that features Sherline tools called Tabletop Machining by Joe Martin.
Most CNC systems that use stepper motors do not include a feedback loop with encoders to report actual position or movement back to the controller. In contrast, servo motor systems—which are typically more expensive—use encoders to create a true closed-loop system. This allows the machine to compare commanded movements with actual positions, detect missed steps, and make real-time corrections. Servo systems can also be used for advanced tasks like reverse engineering, where a probe maps the surface of an existing part to create a digital model.
Stepper motor systems, such as Sherline’s, operate on the principle that applying power causes the motor to move in precise, fixed increments—typically 1.8° per step. Sherline enhances this precision by using microstepping, which divides each full step into smaller increments (e.g., 0.9°, or 400 steps per revolution), allowing for finer control and smoother motion.
When properly configured—meaning the motor is appropriately sized for the machine and the feed rate is correctly set—a stepper motor system can operate with excellent reliability and without the need for a feedback loop. Under normal machining conditions, the motor has sufficient torque to complete its movements without missing steps.
At Sherline, we believe a well-designed stepper motor system offers the best value for most users, balancing performance, reliability, and affordability.
One important characteristic of stepper motors is that torque decreases as speed increases. This happens because the duration of each electrical pulse shortens at higher speeds, reducing the power delivered to the motor. For this reason, it’s wise to set your feed rates approximately 20% below the system’s maximum—especially when running programs with frequent, short movements or when operating on the Z-axis, which carries more load.
-
On older EMC systems, the maximum feed rate is 22 in/min (560 mm/min). We recommend staying below 18 in/min (450 mm/min) for optimal performance.
-
On newer LinuxCNC systems, the maximum feed rate is 32 in/min (810 mm/min). In this case, keeping it under 25 in/min (630 mm/min) is a good practice.
Some users have enhanced Z-axis performance and reduced leadscrew wear by adding a simple counterbalance system using a rope, pulley, and weight. For a photo and description, visit the CNC Projects section on our website.
Overall, Sherline’s stepper motor system is reliable and capable of running complex programs without losing steps, when configured and operated properly.
G-Code Programming Tips:
-
Begin and end each program with a percent sign (%)
-
Start your program with:
-
This cancels any lingering tool radius compensation, tool length offsets, and sets the machine to metric (G21) or inch (G20) and absolute mode (G90).
-
End your program by returning the tool to its starting position
-
Be aware of which G-codes are supported by EMC/LinuxCNC—some canned cycles may not be available.
By following these guidelines, you’ll improve reliability, reduce mechanical strain, and ensure smoother, more consistent CNC operations.
Stepper motor drivers can be designed using either unipolar or bipolar configurations. Without delving into the technical details of circuit design, the key difference from a user perspective is that bipolar systems require more complex and costly drivers and generally do not support micro-stepping.
At Sherline, we chose to design our driver box using a unipolar configuration because it supports half-stepping (a form of micro-stepping). This allows for a high-resolution output of 400 steps per revolution, offering smoother motion and greater precision.
To ensure performance isn’t compromised, we paired this design with high-torque stepper motors, delivering ample power while maintaining the benefits of a more economical and accurate system.
If you’re interested in a deeper technical comparison between unipolar and bipolar systems, visit eio.com for additional information.
No problem. This program would do the job. The reason we switched to incremental was we could use the copy-and-paste edit program for each revolution of the thread.
%
g90 g40 g49 g00 x1 y0 z0
x0
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g91g02 x0 y0 z-0.100 i0 j0.5 f6
g90 g00 x0.5
z0
x1 y0 z0
%
This program would cut six threads at 10 TPI.
Karl Rohlin also produced a thread milling program that includes notes explaining what each line does. He added notes to the end that explain how to do a rough and finish pass.
CLICK HERE to see the program.
Troubleshooting
The maximum feed rate for a Sherline machine is 32 in/min. However, g-code can specify feed rates of 60 in/min or even up to 240 in/min. If your program includes feed rates higher than the machine’s limit, it will automatically run at its maximum allowable speed—32 in/min—regardless of the programmed value.
In this situation, your stepper motors are likely stalling during cuts and missing steps. Stepper motors do not provide position feedback to the computer; they operate on open-loop control. When the computer commands an axis to move, it assumes the move was completed as instructed. If the motor stalls, even momentarily, and misses steps due to an excessive feed rate, the computer remains unaware—resulting in positional errors.
For a full explanation, please visit our blog post: My CNC Machine Is Missing Steps
The most likely issue is that your mill is binding or not properly lubricated. CNC operations involve rapid, repetitive movements and can accumulate a high number of leadscrew rotations in a short time—placing much more stress on the machine than manual use. As a result, Sherline CNC mills require more frequent lubrication. Under continuous use, we recommend lubricating the mill every four hours.
For detailed instructions, refer to the mill manual or our Lubrication PDF .
Additionally, please note that stepper motors may emit a slight buzzing or hissing noise when powered on but idle. This is normal and not a cause for concern.
If an axis is moving in the wrong direction, it’s likely due to incorrect settings in your .ini
configuration file.
For LinuxCNC users: [CLICK HERE]
For EMC2 users:
You’ll need to edit either mill_inch_mini.ini
(for inch leadscrews) or mill_mm_mini.ini
(for metric leadscrews). These files can be found at:
-
home/sherline/emc2/configs/Sherline
(for mills) -
home/sherline/emc2/configs/Sherline-Lathe
(for lathes)
To locate and open the file:
-
From the top menu bar, go to Places > Home Folder.
-
Navigate to:
emc2 > configs > Sherline
orSherline-Lathe
. -
Double-click the appropriate
.ini
file and choose “Display” to open it.
Look for the INPUT_SCALE
and OUTPUT_SCALE
parameters. If an axis is jogging in the wrong direction, reverse the sign of these values:
-
Change
+1600
to-1600
or vice versa.
This should correct the direction of movement.
It’s likely that a fuse in the driver box has blown to protect the circuit. Spare fuses are provided and can be found wrapped in plastic, taped to the inside of the cover lid.
For detailed instructions on accessing the circuit board and replacing the fuses, refer to the following guides:
If you’re using a version of EMC earlier than 4.37, you may encounter issues caused by increased CPU usage from repeatedly running the same short program. (You can monitor CPU usage in the small window near the bottom-right corner of your screen.) While rebooting the system will resolve the issue temporarily, it can be inefficient.
Ray Henry recommends disabling the Backplot feature when running short programs multiple times, as this helps reduce CPU load.
Another effective workaround is to combine multiple copies of the short program into a single, longer file. Insert an M0
command between each copy to pause the machine. When you’re ready to continue—such as after replacing a part—simply press the [Resume] button.
Note: This issue has been resolved in EMC version 4.37 and later.
Yes. See www.sherline.com/troubleshooting-cnc/ for detailed answers to questions about specific hardware or software problems.
Try our Help Sheets and Instructions page for troubleshooting miscellaneous CNC problems.