Introduction: Customizable and Autonomous CNC Machine

This is an Open Hardware and Open software CNC, oriented to cut soft materials like Foam, plastics or woods. For example the surfboard shapes. In my case i did it in a size of 3m x 1m

All the parts and source code is lisenced in GPLv3

In my country isn't easy to find amateur materials like openslide or other aluminium railed frames. If you buy something like shapeoko or makerslide to the USA, you have to pay a lot of custom clearance costs.

I've tied made an opensource big CNC (Soft materials), ussing the existing other open projects as Shapeoko and a lot of RepRap project resources.

Basically, this is a giant Shapeoko, made by steel tubes and OpenRail.

All source and files made by me or modified from other projects ar avaliable in my github repository:

https://github.com/pablinhob/steel_shapeoko2

Step 1: 3D Printed Parts

A lot of parts are 3d printed in PLA with my Prusa i3.


There are avaliable in .scad (OpenSCAD) and final .stl, and can be easily customizable in all sizes. You can download and adapt to your own project size.

Remember that in this project, printed parts are subected to some torque forces. PLA is a rather hard material, but you might be sure that plastic layers are very good sticked to the others.

I prefer to use more tranparent materials, like "nuclear green" or "natural" PLA. In my experience, this plastic melt better and is stronger than other opacity colors (black, white, grey, etc...).

In the printer, i use 3 solid layers in top, bottom and walls, and arround a 40-50% hexagonal infil depending of piece.

Please, your feedback with this parts is very important to improve the resistance for my CNC project.

Step 2: Laser Cut Pieces

In this phase, you will need a supplier of CNC cutting services. It's probably not as expensive as you thing, and the result is very good.

I decided cut pieces in 5mm steet, but i imagine that depending of the machine size you can use other materials, like wood, aluminium, plastics...

All pieces are designed by me in LibreCAD, with exception of the Y plates, that are my own fork of Shapeoko 2 project. Shapeoko usually uses nema14 motors, but we are using nema 23. If you want to cut very soft materials, i thing you can use nema14, that are more cheaper motors and stepers.

As in 3d printed parts, cuts are available in my GIT repository

Step 3: Rails and Structure

Two better open source rail sistems (in my opinion) for this kind of projects are MakerSlide and Open Rail.

I decided to use Open Rail because it can be mounted over any material, in my case square steel tubes. Makerslide is enough for 1 meter of continous rail, but i have almost 3 meter of rail in Y axis and need more resistance.

Step 4: Motion, Bellts and Pulleys

I bought the nema 23 motors and stepers for in from a famous Chinese store (Be careful with taxes).

Belts reference is OPEN LINEAR BELT - T5 (10mm Width)
And Pulley is T5 Timing Pulleys for 10mm Belt.

In my case, pulley come without the hole, but is not hard to do if you have a bench drill.

Step 5: Electronic Hardware and Autonomous SD Card Cutting

My CNC works exactly like a RepRap 3D printer. In the market, only very expensive CNC machines have autonomous cutting by SD card, but i thing that we can use all the software and hardware that RepRap provides.

I choosed a GEN3 Sanguinololu electronics from RepRap and autonomous screen and dial hardware because is very cheap and open hardware based in Sanguino project.

Originally, it uses the pololu drivers, bug i decided to use a big Wantai driver. This requires improve a little circuit interface between pololu dock and drivers. See conection scheme.

I spent some time discovering how this connection works. You can use it to run any industrial steeper with an Arduino, RaspberryPi or similar hardware.

Additionally i connect two power sources in axis XZ and YY, because Y is a two motor axis.

For the box connections with the motors i used 4pin+GND XLR connectors.

Remember that working with motors, you can have interferences with long cables. I recomend a good cable with screen to avoid surprises.

Step 6: Firmware

Marlin is today, the best firmware of RepRap project. It provides a fully support for autonomous printing and have enough functionalities for a simple CNC machine.

I decided to use Marlin because Grbl (the most famous project for CNC) doesn't support autonomous working from SD.

My modification of Marlin is in the my repository. I disabled all options related with 3D print and add some things in the screen view.

Step 7: Fist Setup

Basically, you have to adapt the firmware default values to real world of your CNC.

There are a lot of calibration guides for RepRap that are very useful to this case.

Basically, the files that you have to edit in calibration are Calibration.h and Calibration_adv.h

Remember that my configuration is set for autonomous working. If you want to work by parallel port from PC, you have to disable it.

Step 8: Software and CAM

Computer Aided Manufacturing software are used to create GCODE that our CNC will read.

There are a lot of open source CAM projects that will be useful for almost all your needs.

I use PyCAM because support full 3D CAM for GNU/Linux, and is open source

The GCODE that generates the PyCAM, is prepared to run into EMC2 softwaare. But we want to use it into our Marlin Firmware and need to make some changes.

For this, you have an script, that i've found in this blog

PyCAM Performance notes:

This software works, but is not a very fast CAM algoritm. Is important take time in understand how it work to optimize the process.
If you execute pycam in GNU/Linux, i recomend you activate the multi-thread support executing server with "pypy" and connecting client in the same Host.

The server:

pypy pycam/pycam --start-server-only --server-auth-key=fietspomp --number-of-processes=4 & python

The client:

pycam/pycam --enable-server --remote-server=localhost --server-auth-key=fietspomp --number-of-processes=0

CNC Challenge

Participated in the
CNC Challenge

Tools Contest

Participated in the
Tools Contest