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
Controller
- [1] - Nice instructional video for setting up a RAMPS controller
Parts
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
I'm currently getting a temperature sensor error and the compiler won't let me disable that sensor. Currently researching how to work around this since I don't think I need a temperature sensor.
Note: Fixed by adding a 100ohm resistor on T0