website logo

FabNC

A scratch-built CNC mill engineered for real metal-cutting power and precision.

FabNC

Project Overview

Why?

As graduation approached, I felt a growing urgency: I was losing access to MIT’s makerspaces — the place where I learned how to make (almost) anything. Going back home to Palestine meant entering an environment where this kind of infrastructure simply doesn’t exist. It was a bit suffocating. Imagine: Just as you start to believe that you can make anything, the ifrastructure that would've enabled you to do so suddenly vanishes. I didn't want that limitation to dictate what I could build. At the same time, I was finishing my incomplete in How to Make (Almost) Anything, fully immersed in Neil Gershenfeld’s vision of Fab 2.0 and Fab 3.0—a future where digital fabrication becomes globally accessible, and where machines don’t just make products, but eventually make other machines. The idea that manufacturing could be decentralized, shared, and self- propagating felt like its own kind of utopia. It felt like a utopia that could be part of the answer to how will we rebuild Gaza's infrastructure from complete collapse. From these dreams, a concrete challenge was born: my graduation gift to myself would be to build my own CNC mill from scratch-An opportunity to actually see the current reality of this vision, and to make a machine that could bootstrap future projects, future tools, and eventually a small-scale fabrication lab that others could benefit from too. Moreover, it was a test of my performance in the face of a complex project that is largely outside of my domain of expertise.

Constraints and scope:

I wanted a CNC mill that would be good enough for most of my needs. It might not be specialized for any specific application, but it should be able to handle most of the tasks i would need a CNC mill for adequately. In particular, I wanted a machine that would be capable of machining the parts I would need to build a larger CNC mill(that whole fab 2.0 idea of a self sustainable fab lab). The specific context where I am buildling this CNC in MIT and then taking it with on a flight to Palestine imposed its own constraints and hueristics. For one, for the sake of cost effectiveness, the plan is to take the machine in a checked bag. This means that for the size of the machine to be maximal, it should be made of assembled parts that can be disassembled and reassembled. Moreover, the size of the parts is constrained by the size of the checked bag. This constraint practically define the size of the machine since I am looking to maximize the machine's cutting volume. Another hueristic that is introduced is that the machine should relatively light-weight(flight). This is challenging since milling machines often rely on mass to be able to handle resonant frequencie. The structures used to enforce the machine's rigidity are also heavy. The primary objective function to optimize is the cost of the machine. Not necessarily the absolute material cost, but rather the cost that I could personally get the parts for. In other words, salvaged parts and parts that use salvaged scraps as stock are favored as long as it is feasible to meet the constraints if these parts are used. other than the ones previously mentioned, the constraints were that the machine should be precise and stiff enough to to be capable of successfully machining later iterations of the parts used in the machine.

Research/approach?

Design

I started from PrintNC's design. The main reasons are: It had the most resources available for building it. The design open source, a guide for building it was available along with an active community supporting the project. it was on its fourth iteration. So, it was a well tested desigm with it was also parametric to an extent. thhis meant that i could easily modify the dimension of the frame of the machine to meet the constraint. the design quickly reached a point where only around a handfull of parts were shared with PrintNC. Many factors led to this. For starters, when sourcing the precision linear motion components, i was able to get a much better deal on components that were slightly longer than the ones used in the PrintNC design with my specified dimensions(i couldn't be super picky about the length since i was sourcing them from amazon). This meant that if the design is to be built as is, the steel tubing used to build the frame would be too long to fit in a checked bag. Moreover, the cheapest source steel tubing(an MIT makerspace that sells a small selection of materials) only had 1" by 2" tubing or smaller. the 2" was good. however, the 1" was too small to accomodate the stepper motor mount and the part that couples theball screw nuts to the gantry. I also had an inner desire to make the design my own. the other major shift was that i decided to use T-slot aluminum extrusions instead of steel tubing for the gantry beam. aluminum instead of steel because it is lighter. In addition, T-slot extrusion had the practical upside that you could tap its end which provided a straightforward mounting surface for the x-axis stepper motor mount. and a method to couple the y-axis linear motion components to the gantry beam. i ended up going with two 2060 aluminum extrusions for the gantry beam that Anthony Pennes(MIT technical instructor at EDS, the GOAT) generously donated to me. Anthony was also kind enough to advise me through the whole process of building this machine. i also did not like the idea of mounting a linear rail on the bottom of the gantry beam. i especially did not like it since a lot of the z axis' range of motion was already eaten up due do the smaller steel tubing. i ended up going with a linear rail mounted on the front and back of the gantry beam. i also added coupling plates at the top and bottom of the gantry beam to couple/box the two 2060 aluminum extrusions to increase the rigidity the gantry beam. the rest of the design changes follow as a result of the these major changes or in the same vein of material availability. for insteance, I luckily stumbled upon a large and thick steel angle that was perfect for the Y-axis stepper motor mount. the resulting motor mount was much more stiff than the one used in PrintNC and frankly much more stiff than required. But, it was free and the stiffness was welcome. machining the steel angle to establish the mounting and locating surfaces and ensure the angle was a precise 90 degrees was a time consuming but insightful challenge.