I've been wanting to build a CNC machine 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

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).

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

<gvideo>Mm1jMkFLY2VqdGZkbjc1TmpwVlo4dTc5Zm4wcVFB</gvideo>