Scratch-built CNC Router

7,160

88

15

Introduction: Scratch-built CNC Router

This Instructable is a record of my own CNC build, the challenges I encountered, and the learnings that I took away. I did not start with any specific blueprints or parts lists for my own project; the fun comes from making your own decisions based on your needs. So while this Instructable is not intended to guide you through every step to make a machine exactly like mine, it should lay the groundwork to help you plan your own machine - hopefully an even better one!

Step 1: Inspiration

As is so often the case, my year-long foray into the world of CNC construction began with a much simpler project. After being inspired by some elegant designs in a local music shop, I had set out to build my own electric violin – an instrument that I do not play, but that nonetheless appeared both challenging and structurally simple enough to match my woodworking skills. I drafted an outline of the body shape I wanted, printed it, and attempted to cut it out of wood with a handheld jigsaw.

The results were not to my satisfaction, and I quickly realized that more advanced tooling would be necessary. I was already familiar with CNC (computer numerical controlled) routers, which I had led trainings on for several years in my college machine shop, and with which I had completed a handful of personal design projects.

Despite my passion for CNCs, I had never entertained the notion of owning one due to their exorbitant cost and weight. However, my serendipitous failure with the violin prompted me to revisit this possibility. After many hours of research into home-built CNCs, I concluded that constructing one from scratch might be both affordable and feasible enough to warrant an attempt.

Step 2: Planning

As with all of my projects, I placed an emphasis on starting "from scratch," or as close as possible. Aside from a handful of CNC-specific components that I bought online, the vast majority of the parts I used could be found in any hardware store.

Before purchasing any materials, I had to make a lot of decisions. How large should the machine be? How much current would it draw? What size and type of motors would be sufficiently strong, yet economical? What mechanical drive system would be best? This required a significant amount of learning. Although I was already proficient with CNC operation, I was initially overwhelmed by the array of choices necessary to design one from scratch. In the end, I did not follow blueprints or use a kit, although many such guides are available online. Instead, I conducted in-depth research on the many facets of CNC construction and designed my own custom machine, part by part, to suit my needs.

The three main factors that influenced my design choices were size, cost, and manufacturability. First, I knew that I wanted a machine similar in size to the ShopBot Desktop, with its 18” x 24” cutting bed. This would be more than sufficient to accommodate my violin project, with room for larger pieces as well. Second, I wanted to keep my CNC economical, and repurpose existing materials whenever possible. Third, I was constrained by my available tooling; I did not have access to a metal shop, which meant I could not build an aluminum-framed machine. I chose stock materials that I could cut to size using a limited selection of hand and power tools. This meant relying primarily on wood for structural applications – an admittedly atypical choice for a CNC, and one that did contribute to the challenges of the project.

Step 3: Frame and Tracks

While some degree of planning is necessary for any successful project, I am a firm believer in learning by doing. Therefore, I began the building process quickly, revising my design as needed along the way. My first step was to build a frame.

Next, I fabricated rollers to allow the gantry to travel – a design that I had selected for its simple off-the-shelf parts and easy customization. I used common skate bearings bolted to aluminum angle brackets, which would travel along steel bars. I also fabricated set-screw blocks to allow for fine adjustment of the tracks.

I used similar techniques to create three sets of tracks, for the X, Y, and Z axes. The result was an unpowered gantry system that could roll smoothly along three axes.

Step 4: Motion System

Next, I installed lead screws and NEMA 23 stepper motors, a system that offered adequate torque and high precision of movement. Aligning the lead screws to be reasonably parallel with the tracks was difficult, and required careful adjustment of the set-screw blocks. Failing to align the screws properly would cause excess friction in the system and result in rapid wear on the parts.

Step 5: Spindle Installation

The centerpiece of any CNC is its cutting spindle, for which I had selected an air-cooled 500-watt brushless motor. This choice offered a high power-to-weight ratio, especially important for my wood-framed machine. Additionally, it was one of the most powerful spindle systems available that ran off normal wall voltage (110-120V). The larger classes of spindles required 220V, which would unnecessarily complicate my electrical system. To mount the spindle to the Z-axis, I drilled and tapped an aluminum plate.

Step 6: Machining Bed

My final step was to attach a machining bed. I first installed cross-beams to prevent the bed from sagging in the center. I then cut the bed out of Medium Density Fiberboard (MDF), drilled holes and installed T-nuts so that clamps could be mounted. At a later point, I would use the machine itself to plane down the bed, thus leveling it relative to the X and Y axes.

Step 7: Software and Electronics

In line with the economical goal of my project, I used exclusively free (and mostly open-source) software. Four distinct software packages were necessary to run the CNC: a computer-aided manufacturing (CAM) program to generate toolpaths, a G-Code sender to send files to the machine, a G-Code interpreter to translate the code into motor motion, and an environment in which the interpreter would run. I settled on Autodesk Fusion 360, Universal G-Code Sender, and a GRBL motion-control package run on an Arduino platform, respectively. Getting these programs to cooperate reliably was one of the most challenging parts of the project. It required extensive research and troubleshooting, as well as collaboration with an exceptionally computer-savvy friend.

Unfortunately, the electronics end was less straightforward. In addition to the Arduino, my system included two power supplies (36V and 48V), three stepper motors, six limit switches, a CNC shield board, motor drivers, and a brushless spindle speed controller, as well as a simple control panel. Although each of these components was compatible with the power requirements and constraints of my machine, getting them to behave correctly required continuous debugging. All told, I burned out three Arduino rigs while learning to correctly balance the power supplies and motor driver potentiometers. Thankfully, the electronics I damaged were inexpensive to replace, and I began to keep a backup system on hand. Once the software and hardware were working reliably, I set out to configure the motor system. GRBL allows the user to set many parameters, including travel resolution, motor acceleration, and maximum speed. Optimizing these variables took some trial and error. For example, setting the acceleration too high would cause the motors to stall; too low, and the motion felt sluggish. I determined satisfactory initial values and have continued to refine them since.

Step 8: Finished Product

My machine never felt truly finished, as there were always improvements to be made and maintenance to be conducted. However, it did reach a point at which it was recognizable as a CNC, and functioned reliably enough to use for my projects.

Step 9: Challenges and Solutions

Over the year-long design and build process, I encountered innumerable challenges, only some of which I had foreseen. Following are a few of the larger issues that I tackled.

A. Axes Alignment and Leveling

Perhaps the most overarching challenge had to do with my choice of materials. The wood frame was inherently less rigid than metal, and even my steel rails turned out to be more flexible than I had anticipated, making it extremely difficult to achieve the degree of accuracy of motion that I hoped for. A barrage of remedial measures lessened the severity of this problem. First, I identified problem areas and added structural support, including cross-beams and steel corner brackets. I also added a series of set screws to help stabilize the rails along the X and Y axes. Although tedious to adjust, these screws prevented the rails from bowing outward under load, and dramatically reduced “wiggle” in the machine. They also allowed me to more accurately level the spindle height relative to the bed, a critical factor for specific types of toolpaths.

B. Correcting Erratic Motor Motion

When I first began testing the machine for travel accuracy, I immediately noticed that the stepper motors behaved erratically under certain conditions. Within a specific range of lower speeds, they would audibly jitter and rattle. Additionally, they would sometimes move haltingly, generally during more complex, lengthy cut jobs. After many hours of troubleshooting, I diagnosed two separate causes. The first had to do with resonance: the motors were “losing steps” at certain frequencies, meaning that they lost track of their intended position. I solved this issue by implementing a “half-stepping” wiring configuration on the microcontroller board, which sacrificed some torque in exchange for increased motor stability and precision of movement.
The second issue, ironically, was caused by overheating motor driver boards. I had not expected this as the drivers already had heat sinks installed and sustained no obvious damage from overheating. I later learned that these tiny boards included automatic heat shutoffs, which would cycle rapidly under higher loads. The cool-down period appeared to be only a fraction of a second, which is why the issue manifested as the stuttering movement that I observed. Although frustrating to diagnose, this issue was simple to solve: I repurposed a small CPU cooling fan to direct airflow across the electronics.

C. Limit Switches Triggering

While not strictly necessary, CNCs often use mechanical limit switches to detect the end of their range of travel along each axis, and to prevent losing position during a cut. They also allow the machine to obtain coordinates relative to the ends of its axes, which is helpful for resuming a job if the initial zero point is lost. After installing simple limit switches on my machine, I found that they would sometimes register a signal even when they were not being pressed. This would unexpectedly freeze the machine mid-operation.
I isolated the cause of this problem by testing the operation of each switch independently under controlled conditions. After verifying that the switches were not damaged, I looked for differences in their setup within the overall electronic system. I concluded that the false readings occurred sporadically on switches whose wires ran adjacent to high-voltage electric wiring, causing electromagnetic interference. After some research, I installed small capacitors where the switches connected to the microcontroller, to filter out this electrical “noise.” This successfully solved the problem, and avoided the need to rewire the machine.

Step 10: Using the CNC

While this year-long journey was full of unexpected twists and detours, I did not lose sight of where it began. In the spirit of coming full circle, I knew that the inaugural task for my new CNC would be completing my electric violin, which I did a few weeks later. The photos and video show my use of Fusion 360 to design, render, toolpath, and build this instrument. As long as the machine holds itself together, I plan on many more projects to come.

Build a Tool Contest

Participated in the
Build a Tool Contest

Be the First to Share

    Recommendations

    • Backyard Contest

      Backyard Contest
    • Metal Contest

      Metal Contest
    • First Time Author Contest

      First Time Author Contest

    15 Comments

    0
    tercero
    tercero

    9 months ago

    Ok, you did a good job...but. It's a waste of time and money to build a cnc's x,y,z axis from wood. Wood is subject to swelling and contracting depending on the temperature, humidity etc.
    It's nice ible, but a complete waste of resources as an actual tool. You'll just run into binding, run out etc that will leave the users yelling in frustration.

    IMG_20201015_151628751.jpg
    0
    caepncrunch
    caepncrunch

    Reply 3 months ago

    you are totally wrong ... there are many wooden CNC machines even for Industry. You need the right wood, of course some kind of treatment but it works. Look at this one: https://www.cnc-holzfraese.de/kompakt

    0
    Steve Tyng
    Steve Tyng

    Reply 7 months ago

    I disagree with your assessment. Wood has been used in the construction of successful machines since the dawn of man. If you are aware of the constraints of your building material and work around them, you can build successfully. Does this router have .0005" accuracy or can it churn out parts 24x7? I doubt it, but I doubt that was a design requirement to begin with. It appears that this machine is doing exactly what it's designer intended it to do and the proofs in the pudding with that beautiful electric violin build. The icing on the cake is that this router probably doesn't cost one thenth of the one you have pictured.

    0
    DG_Builds
    DG_Builds

    Reply 9 months ago

    I agree that wood isn't the ideal material for CNCs, and discussed this a little in my Instructable. This was mostly a learning project for me, and intended just for my own use. Using wood allowed me to embark on a project that I otherwise might not have attempted, due to a lack of a metal shop, etc. If I were to make another one though, I would probably try aluminum as a step up.

    0
    Steve Tyng
    Steve Tyng

    7 months ago

    Nice work. I love any CNC build where the builder bucks the trend and builds their own rail system. Looking at just another bolted together pile of aluminum extrusions and Chinese rails gets boring after awhile.

    0
    Rob Salmon
    Rob Salmon

    9 months ago

    Voted. Love the way the electric violin starts and finishes the instructable / story! Its a serious piece of kit. I'm totally jealous!

    0
    DG_Builds
    DG_Builds

    Reply 9 months ago

    Thanks! It might just seem like a storytelling gimmick, but the violin was legitimately the impetus for building this machine (:. Glad you liked it.

    0
    KellyCraig
    KellyCraig

    10 months ago

    I've been eyeing CNC routers and lasers for nearly fifty years. Initially, getting one would have required talking the neighbor into letting me mortgage his house, along with mine and a couple others.

    CNC's have come a long way, as far as being within reach of hobby woodworkers, capability and practicability. Still, a decent commercial one isn't cheap, so I pondered building one too.

    The few consumer made CNC's I've read about were rather limited for my wants (I have a Radio Carver with a 4'x6' bed, so can make signs). Yours, I find inspiring. More so because you shared the details of problems you ran into and solved. Some of the electronics ones I recognized from my days of working for the Fed. They were common and we solved them same way you describe, or with shielded wire, for example.

    So, THANKS much for your efforts, and the inspiration to re-arrange, yet again, the furniture of my shop.

    A TIP: When doing wipe on finishes, cut the rag down to a fraction of what you were using. The large rag just gets in your way, wastes finish, and is that much more surface you must spread out to allow to harden before tossing it (for those not aware-to avoid the spontaneous combustion, which is all but guaranteed to happen if you don't spread the rags out and let them harden).




    0
    DG_Builds
    DG_Builds

    Reply 9 months ago

    I'm glad you liked it, and appreciate your advice on wood finishing. I'll be sure to keep it in mind for next time.

    0
    KellyCraig
    KellyCraig

    10 months ago

    Routers and CNC spindles are notorious dust and chip generators. My routers are the one tool in my shop that make the biggest mess of it. That said, I note the following exceptions:

    (1) My router table, which has dust collection at the fence and at the router cover under the table, may only leave a tablespoon of dust on the top, even though the work might result in filling a five gallon can with dust and chips.

    (2) Occasionally, I am able to use my sanding station for router work, including long boards I am able to fit through the sides or back. Because it has two sides, a back and a top (nylon cloth) around a down draft table, all the air drawn in by the dust collector comes from the front, so nearly all the dust and most of the chips are captured in the station.

    (3) I am able to position a 4" dust collection hose near the trim router my Radio Carver uses to duplicate items off templates or other items like violins, gun stocks and so on.

    Each of the above tie to one of my 3 horse, "four bag" dust collectors. Obviously, the combination does a wonderful job.

    Since moving a four inch hose around a table would put a lot of load on the stepper motors, I wonder if an alternative would be using the approach I did for my sanding station. That would mean building a "box" around the CNC just tall enough to allow the moving head to clear. It could be as simple to make as using 4 mil, clear plastic (versus the heavy nylon I use for my sanding station). Collector to ports at the bottom, near the work area would reduce dust problems greatly and may even contribute to system cooling.

    Sanding Station-1.jpg
    0
    DG_Builds
    DG_Builds

    Reply 9 months ago

    Thanks for writing! You're right that dust collection is an important consideration. I did actually end up building a "box" around the machine to keep the dust inside, using plastic sheeting and a simple frame. That was a later add-on and I didn't include it in this Instructable, but it works reasonably well without having to deal with a vacuum.

    0
    pablobj
    pablobj

    9 months ago

    Thanks for sharing: I love your work!

    0
    dcolemans
    dcolemans

    10 months ago

    Very nice!