Picture of Arduino Controlled CNC / 3D Printer Hybrid

Mother Nature Makes ... We Build.

BuildersBot Fuses 3D Printing & CNC Milling Into One Builder’s Dream ""

The BuilderBot is an Open Design machine, that uses Open
Software and Open Hardware. It is a product of open projects such as the RepRap, Arduino and Repetier .

The objective of this instructable is to guide your way throw the entire making process of building a BuildersBot machine. An open design Arduino Controlled CNC Router that can also perform 3D printing.

The instructions will cover all areas such as design, mechanics, electronics and software.

But before you go any further take a look at machine's concept design:

And also the machine build photos and the machine in action:

Finally check out the insane effects of the RGB led's on BuildersBot:

Warning Viewer Discretion Advised (Strong Language)

Remove these adsRemove these ads by Signing Up

Step 1: The BuildersBot OpenDesign (Sketchup)

Picture of The BuildersBot OpenDesign (Sketchup)

To view the the machine in 3D just Download the attached sketch file and access the BuildersBot OpenSource Design (in metric system and is in 1 by 1 scale).

Use this design as much as possible for guidance during this instructable.

NOTE: Use trimble/google sketchup to open the file.

1-40 of 300Next »

Hi aldricnegrier,

Could you tell the number of steps you have used in the driver?
Thank you :)

aldricnegrier (author)  dj_freakout3 days ago


I set 12800 pulse per revolution on all drivers, this setup results in 128 steps per mm on X and Y axis and 2560 steps per mm on Z axis

BIGDOG12344 days ago

When I configured the Configuration.h file just as you did I got this error.

Arduino: 1.6.3 (Windows 7), Board: "Arduino Mega ADK"

Commands.cpp: In function 'void process_command(GCode*, byte)':

Commands.cpp:1133:4: error: expected '}' before 'else'

}else if(GCODE_HAS_T(com)) {


Commands.cpp:1133:4: error: expected '}' before 'else'

Error compiling.

What should I do.

aldricnegrier (author)  BIGDOG12344 days ago

Just download the firmaware i uploaded to instructables and upload to
our board unsing, Arduino IDE 1.0.5 or older version. I speculate it
has to do with the IDE Version.

aldricnegrier (author)  BIGDOG12344 days ago

I don't know, i never used Arduino Mega ADK.

BIGDOG12344 days ago

I got the same error on my Mega 2560.

Arduino: 1.6.4 (Windows 7), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Commands.cpp: In function 'void process_command(GCode*, byte)':

Commands.cpp:1133: error: expected '}' before 'else'

}} else if(GCODE_HAS_T(com)) {


expected '}' before 'else'

aldricnegrier (author)  BIGDOG12344 days ago

Just download the firmaware i uploaded to instructables and upload to our board unsing, Arduino IDE 1.0.5 or older version. I speculate it has to do with the IDE Version.

JosephA97 days ago

Absolutely amazing instructable! Congratulations. I'm doing sort of one and I'm going to support on this guide. I'll upload photos when I start making it.

aldricnegrier (author)  JosephA94 days ago

Thank you JosephA9 :)

Photos would be great.

PatriziaR5 days ago

I can reduce the size of the bars linear x, y, z respectively from 20mm to 16mm for x, 20 to 16 for y, 16 to 12 for z.
I wanted to reduce de size of the whole CNC.
hello domenico

aldricnegrier (author)  PatriziaR4 days ago

Sounds good :)

dj_freakout20 days ago

Hi aldricnegrier,

Will the 3D printing function work without the LCD? The ebay seller has some shipping issue with mine and I don't wanna wait longer...

Thank you :)

aldricnegrier (author)  dj_freakout20 days ago

Hi DJ,

Yes, it works without the LCD. But in this case i think you need to disable LCD suport on the firmware. I am not shure, you need to try it out.

Hi Aldric, this is a very nice project, I am in the process of gathering the parts I need to build my own. I would like to ask you something, since I couldn't find this information. Does the 3d printer and cnc router firmwares coexist or they have to be uploaded every time you change functionality of the buildersbot?

Also please detail, if possible, on how to get a 3d sketch file printed or routed, as this information would be very valuable for all of your readers and enthusiasts of 3d printing and cnc routing.

Thank You,


Hi Andrei,

Very nice question :)

When i built the machine i used 2 different firmware setings, one for CNC and one for 3D printing, mainly regarding thermistor setings (heatbed and extruder) on or off.

After that i discovered a way to allow for a single firmware, you just need to put a thermistor on when you are CNC milling. IF you look closely to the photos where CNC milling is on, you can see a thermistor connected to the wires near the Z motor.

A very nice hack :)

Regarding CNC turorial and 3D printing tutorial, just follow any Prusa i3 / repetier tutorial and any CAMBAM tutorial (CNC).

chrisbeardy1 month ago

Hello, great job, I have a question, how did you implement the limit switches/end stops?

aldricnegrier (author)  chrisbeardy1 month ago

I only use one X and one Y endstop.

OK, what did you use for them? were they physical or digital?

aldricnegrier (author)  chrisbeardy1 month ago

3 wire mechanical end-stops, just like the ones in the electronic circuit wiring.

awesome, thank you, and well done, i hope mine looks as good as yours

Do you have a photo of where the 12v power supply fits in the case?

aldricnegrier (author)  pcourtemanche1 month ago


The 12V power supply fits under the micro stepping drivers, on the base of the case, with the connections pointed towords the acrylic door.

As soon as i can i will take a photo for you to see.

aldricnegrier (author)  aldricnegrier1 month ago

if you look closer. you can see the 12V power supply under the microstepping drivers. The Arduino is on the wall of the acrilic side plate.

benouville1 month ago


Thank you for you work, it's useful! I'm curently building a 4 Axis foam cutter CNC. Therefore I considering Malrin or Repetier for the firware (+ramps1.4, arduino mega 2560 and drv8825 drivers), but I have no idea if it is possible to configurate the A axis the same way as for X,Y,Z (meaning entering step/min, ect..) Especially, I'm wondering if it's possible to implement endstops for the A axis ? (normally they are firmwares for 3D printing and A axis is the extruder so usually, it doesn't need any endstops!)

I hope I'm being clear, thanks for your help !!

PS: I should add that I'm a rookie in electronics and code!

aldricnegrier (author)  benouville1 month ago


I dont know if it would work with repetier or marlin firmware, it would be a great hack if it could :)

You would have to try it out to find out if it is possible.

Love the machine ! Looks strong and powerful. What speeds can you reach during 3D Printing ? (while conserving a good print quality of course)

aldricnegrier (author)  Get3DPrinted1 month ago


The machine has a lot of mass on the X axis, so you need to go slow to avoid inertia problems, i don't remember the settings but it should be around 30-50mm/s.


Can I use Nema 17 for make a 3D printer ?

aldricnegrier (author)  emile.renaud.31 month ago

Hello Emile,

Yes you can, NEMA 17 is a common motor for 3D printers.

You should star by visiting the "reprap" website.



ankitvaid19902 months ago

Hello, which type of bits are used for wood and aluminum.

aldricnegrier (author)  ankitvaid19901 month ago


2 flute carbide end mill

jpmasse31 month ago


I have been working on building the printer/CNC. I've been able to salvage some stepper motors I have had laying around but they are giving me nothing but issues. Can you give the model number for the steppers you used?

aldricnegrier (author)  jpmasse31 month ago

4 Nema 23 Stepper Motors with 425oz-in holding torque

4 Stepper Drivers with 4.2A DQ542MA

2 Power Supply for 350W,36VDC

aldricnegrier (author)  jpmasse31 month ago

Make sure you are sending the right amount of current to the motors. If the current is not right, the motor will not step. Check the datasheet of the mortors and the drivers. I used NEMA 23 425 oz/in torque.

Hello. I'm going to build this machine, but only for CNC milling at first. I plan to use the small dremel or even the flex one that comes with it. Is it ok to use the Nema 17 step motors? I've already 4 of them, of 4.5/torque with their A4988 step motor driver, Arduino Mega and RAMPS 1.4.

Do you think it will be fine with this components? Also, to make it only for CNC Milling, what configuration should I set in the repetier configuration.h file to remove the 3D printing features? Thank you!!

NEMA 17 - 4.5kg/cm

NEMA 23 - 30.6kg/cm (Buildersbot)

I don't know if it will work with NEMA 17, i never built a CNC with NEMA 17.

Regarding, repetier, default settings will work fine. You just need to adjust the workspace, and the steps per mm of your motors*microstepping.

mellontiko2 months ago

Hi Aldric!

How do you stretch timing belts? Ι have enough oscillation

aldricnegrier (author)  mellontiko2 months ago

If you cant get good tension on the belts you have a look at these solutions:

I have good tension, but with time the tension gets week, and i need to tighten it again, so i found this nice solution that i will try to implement:

aldricnegrier (author)  mellontiko2 months ago

Hi Mellontiko,

You need 1 more person to help you tighten the belts. I can do it by my self now that i have some experience.

I do it by my self using a rope on the small pulley shaft, lock the belt in place, and using the rope stretch the small pulley shafts into place using the rope.

It is a bit hard to explain.

After you do this you can put a tensioner on the belt, for extra tention.

1-40 of 300Next »