I've been wanting to build a CNC/3D Printer for a while, but have gotten distracted by various other things. I finally did a minimal amount of research and bought some stepper motors and a controller. I honestly jumped into this pretty quick, though, and didn't spend a lot of time researching what I was buying. I'll update this as I learn more about what I bought and, more than likely, what I should have bought instead.

Research

Tools, documentation, and other online resources for the various steps of the build.

Controller

  • [1] - Nice instructional video for setting up a RAMPS controller
  • [2] - Much more functional 32 bit controller

Software

  • [3] - Recommended 3d Printing Software
  • [4] - Nice web-based tool for monitoring and controlling the 3d printing process.

Plans

MyDIYCNC Plans

Instructables DIY CNC Router

Lautr3k RepRap

C-Bot by cfeniak

D-Bot by spauda

Parts List

What I actually bought.

Controller

I started with this controller:

It's about $39 and includes:

  • 1 x 1.4 RAMPS Arduino Shield
  • 1x MEGA 2560 R3 16mhz Clone
  • 4x A4988 Stepper Driver rated at 1A and cooling with up to 2A, Note: this board now comes with heat sinks.
  • 1x 12864 LCD Screen with board with SD card interface

I guess it was a mistake, but they actually sent me 5 drivers. I won't have extruders, so apparently I only need 3, but I guess I'll have a couple extra in case I burn one up. In retrospect, I wish I had done an all-in-one controller like this one (arduino on the board). The shield might be better for tinkering, but for a production machine it will just make the box bigger and the wiring more complicated.

Motors

For motors, I went with NEMA 23 269oz stepper motors:

I paid about $80 for 3. Most of the other build I've seen go a little bigger, but hopefully they should work okay for the X and Y access. If anything, I may just need something a little heftier for the Z axis (or add a second).

Hardware - 5/2/16 ($170)

I bought about $60 worth of hardware from MrMetric and around $110 worth of extruded aluminum for the Frame from Open Builds Store.

Setup

Controller

The RAMPS 1.4 controller setup involved:

  • Join arduino/ramps.
  • Add heatsinks to drivers
  • Add jumpers to controller. For each stepper driver, there are 3 jumpers (6 pins). For 1/16th precision (recommended), configuration should be:
    • Low end A4988 Driver: xxx (1 jumper on each set of pins)
    • High end DRV8825 Driver: 00x (1 jumper on the far right pin)
  • Install drivers in the XYZ positions
  • Install LCD adapter and LCD
  • Install 100ohm resistor on jumper T0 - this prevents a MAXTEMP error caused by a missing thermistor
  • Download Marlin firmware
  • Configure Marlin firmware
    • Uncomment "#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER"
    • Install u8glib library in Arduino IDE
    • Compile and upload
  • Download "Printrun-Win-Slic3r-10Mar2014" (user interface for RAMPS)
  • Apply USB power and run Printrun

As you can see, I'm currently getting a temperature sensor error from the extruder (499 degrees is hot) and the compiler won't let me disable that sensor or remove the extruder. Currently researching how to work around this since I don't have an extruder (Note: temporarily fixed by adding a 100ohm resistor on T0 and setting TEMP_SENSOR_0 to -1). I suspect this firmware will work, but I may need to find a RAMPS firmware better suited to CNC. There seems to be an awful lot of stuff in the config that won't apply to me. Not to mention, my OCD kicks in when I see a non-existent extruder on the LCD.

Broken Z Axis on RAMPS board (4/21)

I was having a lot of problems with the Zaxis. It would stutter and make a lot of noise. It seemed like a power issue, but the current switch didn't seem to help and moving the same driver and motor to another position seemed to work fine. I assumed I had a bad board and even found what looked like cracked traces on the board near the Z axis. I contacted the vendor and they were nice enough to send me another one. Unfortunately it had the same issue. I toyed around with some of the settings in the firmeware and the problem seems to have gone away. Particularly I changed this line:

#define DEFAULT_AXIS_STEPS_PER_UNIT   {80,80,80,500}  // default steps per unit for Ultimaker

And set the steps to the same as the X and Y axis (I think it was set to 20 or 30 by default. Not sure why this had to be changed, but I'll research it more later.

Change of Plan (5/1)

I was originally planning to do a CNC/3d Printer machine, but I've since decided to switch over to just 3d Printer. From what I've learned, it's difficult to make a good 3d printer that also does CNC. CNC needs to be slow, strong and heavy, and 3d needs to be light, fast, and agile.

Build Selection: D-Bot

I've decided to build a variation of the D-Bot build, however, I'm going to try and use my NEMA 23 motors. I'm going to try and stick with a single NEMA 23 motor for the Z-axis, unless it just doesn't seem stable enough.