EShapeoko Complete Kit
The mechanical kit includes everything you need to build the machine, except the motors and electronics. The kit includes belts, belt pulleys, and all hardware to attach the motors.
To build a complete, working machine, you will need stepper motors, a controller, stepper motor drivers (may be built into the controller), a power supply, cables, a spindle, tools, a waste board. Optionally, you could add: a fan (for the motor drivers), an emergency stop button, an enclosure for the electronics (with connectors and buttons), homing and limit switches.
TODO add product links for all items mentioned.
TODO present some alternatives.
- 1 Example machine
- 2 Stepper motors
- 3 Controller
- 4 Stepper Motor Drivers
- 5 Power Supply
- 6 Fan
- 7 Cables
- 8 Spindle
- 9 Tools
- 10 Protection
- 11 Waste Board
- 12 Limit Switches
- 13 Notes and Details
There are many options at each stage, and this page will try to guide you through the choices. As an introduction to the sometimes bewildering array of choices, we will illustrate with an example: a single, complete configuration using our preferred choices.
Our example is a machine with a 750 mm X axis and 500 mm Y axis, with NEMA23 motors on X and Y, and a NEMA17 motor on the Z axis. This machine will have just over 585 mm of X travel, 335 mm of Y travel, and 100 mm of Z travel.
We chose the X axis longer than the Y axis because a "wide" machine open at the front and rear gives better access to the work area. This is at a slight expense in rigidity: the 500 mm × 750 mm machine, which most people prefer, would have had a shorter (thus more rigid) X axis, and mid-span supports for the Y rails.
For the X and Y axes, we chose three 0.9° per step (400 step per revolution) NEMA23 motors with a current rating of 1.7 A. There's one motor on the X axis, and two of them on the Y axis. These motors are 51 mm long (not counting the shaft) and weigh about 560 g each. Like most NEMA23 motors, they have a 6.35 mm (1/4 inch) shaft. They have a holding torque of 9000 gf·cm.
To get an idea of what a holding torque of 9000 gf·cm means, read here.
For the Z axis, we chose an 1.8° per step (200 step per revolution) NEMA17 motor, also with a current rating of 1.7 A. The motor is 48 mm long, weighs about 360 g, and has a holding torque of 5200 gf·cm. It's very powerful for a NEMA17 motor, and enough for the Z axis in most cases.
We chose the most popular controller for the Shapeoko and eShapeoko: an Arduino Uno, running the GRBL software. GRBL is a G-code interpreter: it receives G-code and emits step and direction signals for the motor drivers. GRBL can control three axes; our machine has four motors, but the two Y motors always move together, so they share one set of control signals.
Stepper Motor Drivers
Because our controller is an Arduino, the drivers will be on an Arduino shield. We chose the GAUPS, a shield that takes Pololu-compatible stepper driver modules (GAUPS stands for GRBL-compatible Arduino Uno-compatible Pololu-compatible Shield). We don't plan to use a supply voltage higher than 24 V, so we got the standard version of the GAUPS, not the 40 V version.
Pololu driver modules are very convenient because they are relatively inexpensive, easily replaceable if something goes wrong, and available with a choice of driver chips. Their main disadvantage is that, because of the small module size, their cooling is not as good as it could be, so they need heatsinks and/or a fan.
The GAUPS comes as a kit that requires basic soldering skills to assemble. All components are through-hole, and none are sensitive to static discharge, so it's easy. There are clear step-by-step instructions.
For this machine, we chose four Pololu DRV8825 high-current driver modules (the purple ones). They are the most expensive of the Pololu drivers, but they have the highest current capability, and the best thermal characteristics too. The A4988 black edition driver module is cheaper, and would have worked very well too. Each driver comes with two 8-pin male headers that you need to solder on. These are what plugs into the shield. We opted to replace these with taller headers, for better airflow under the modules.
The driver chips generate a lot of heat, and they are designed to sink this heat into the bottom layer of the board. We added two small aluminium heatsinks for each driver, one on top of the driver chip and one on the bottom of the module. The one on the bottom is more effective than the one on the top.
We chose a 24 V 5 A (120 W) power supply, which can be had as a nice, completely enclosed laptop-type brick. We don't have to worry about exposed live parts, nor about chips getting in. It has just enough power for our motors. We used a barrel jack to screw terminal adapter to make it easier to connect the supply to the GAUPS.
As mentioned above, it would be a good idea to have a fan to keep the stepper drivers from overheating and going into thermal shutdown (which keeps the drivers safe, but ruins the job). Not a lot of airflow is needed, especially if directed both under and over the driver modules, from a side. Our power supply is 24 V, but 12 V DC brushless fans are ubiquitous and cheap because they are used in PCs, so we got a small DC-DC step-down ("buck") converter to get the 12 V for the fan. (Even if you have two identical fans, it's a bad idea to connect them in series.)
The stepper motors come with wires that aren't nearly long enough. We got very nice (if a bit stiff) 18 AWG (0.82 mm2) 4-core shielded cable.
Estimating the cable requirement can be very tricky, and depends a lot on how the cable is routed. For this machine, we need about 8 m of cable for the four steppers if we want to place the controller half a metre away from the machine, to one side. The Y motor nearest the controller will need the shortest cable, and the Z motor will need the longest one.
We used 3 A terminal blocks to connect the cable to the motors, and zip ties to secure the terminal blocks and the cable to the machine. We'd actually prefer to solder the cable and use heat shrink tubing to insulate the joints, but it is more difficult to solder wires well than it is to solder a GAUPS kit, so we chose the easier method. Plus, a broken or intermittent connection can destroy a motor driver. The drivers are incredibly robust otherwise, but can be easily damaged by their load being connected or disconnected while powered on, so it's important to have good connection to the motors. We need four 4-position terminal blocks, so we got two 12-position blocks, and cut them up.
At the driver end, we wired the stepper cables directly into the GAUPS screw terminals.
We started with a cheap rotary tool (a Dremel clone). They usually come with literally a hundred and one accessories — all largely useless to us. Keep the wrench, though, you'll need it to tighten the collet.
You may want to upgrade the spindle soon, though. For tougher jobs, and general use when not bothered by noise, the Makita RT0700C is an excellent choice, except for the fact that a 3.175 mm (1/8 in) collet is not easily available. You can buy one from the US, or use a 1/4 inch to 1/8 inch adapter. For quiet, delicate jobs, a small DC spindle is very nice.
We got a basic 3.175 mm (1/8 in) straight two-flute center-cutting solid carbide endmill. It's the closest one can get to a universal endmill. It's great with wood, plywood and MDF, gives good results with some plastics, and can even be used — carefully — with aluminium. It's just the right size for a standard rotary tool, and it's robust enough not to break with the tiniest mistake. Buy more than one, though.
Eye protection — for everyone in the room — is required when using the milling machine. Broken endmills can fly at high velocity in any direction. Hearing protection is a very good idea. Do not wear loose clothing, and keep long hair tied up. Avoid wearing gloves (unless they're a type designed to tear off easily if caught in the spindle).
Your safety, and that of the people around you, is your responsibility.
We could have got a piece of MDF from the offcut bin at the hardware store, but Ikea had a shelf for their 100 cm PAX wardrobes in the bargain corner. It's about 96 cm wide and 58 cm deep, which is a bit too wide for our machine, but it was cheap and flat.
We drilled three holes through each of the front and rear pieces of aluminium extrusion that connect the end plates together, and used wood screws to screw the machine to the board. (Neat freaks can drill and counter-bore from the bottom of the board, and use M5 screws and T-slot insertion nuts to attach the machine to the board.)
We screwed a smaller piece of MDF on top of the shelf, between the extrusions, to serve as an easily replaceable waste board. We plan to mill some holes in this board, place some tee nuts in them, turn it over, and have a nice hold-down table. But, for now, we use wood screws to hold the parts down, and replace the MDF when it gets too beaten up.
We installed six limit switches:
- two on the X axis, on the front X motor plate;
- two on the Y axis, on the Y motor plate closest to the controller;
- two on the Z axis, using the eShapeoko Z limit switch holder.
We wired the switches using strips of ordinary 1.27 mm pitch ribbon cable. They are soldered to the switch terminals, and the joints insulated and reinforced with heat-shrink tubing. We opted to wire all three terminals of each switch, each switch with its own wires, because cable is cheap but re-wiring is time-consuming, and some controllers need normally open switches, some normally closed (and some can deal with either); our controller (GRBL) shares one input for the two switches on each axis, but other controllers (TinyG) have separate minimum and maximum limit inputs.
One switch on each axis does double-duty as a homing switch. Having a repeatable home position is incredibly useful when changing tools during a job, and when using fixtures and work coordinate systems. By default, home is at the end of travel in the positive direction of each axis, that is, right side (X), rear (Y), and top (Z). We could have installed just those three switches.
We could have installed two more limit switches on the Y axis, on the other motor plate. GRBL can't make use of them, but other controller software (LinuxCNC) can auto-square the gantry using them.
Notes and Details
Stepper Motor Holding Torque
The NEMA23 motors we chose have a holding torque of 9000 gf·cm — that is, 0.88 N·m in SI units, or 125 oz·in in customary (US) units.
How much torque is that?
With the supplied 18-tooth MXL pulleys, one motor can hold a carriage against a force of about 15.5 kgf applied to it. This is at standstill, with the motor supplied with its rated current. The torque remains almost constant at low speed, but after a certain point, as the speed increases, the torque decreases almost linearly: at half the maximum speed, the torque will be about half the holding torque.
How much torque do you need?
The force the motor applies to the carriage must be enough to counteract all friction, the inertia of the moving parts (when accelerating), and the cutting forces on the tool (when milling). Even though 15.5 kgf is more than enough for this type of machine (and more than MXL belt is normally rated for), having a motor that powerful is still useful at higher speed, when its torque decreases. It is the available torque that limits the traverse acceleration and speed, the maximum cutting force achievable, as well as the feed rate for a given cutting force. That said, there's no point in going for a much higher torque than that. The motors become too big and too heavy for this type of machine.
What determines motor performance?
- The type of motor. Generally, all things being equal,
- 1.8° motors are faster and more powerful than 0.9° motors;
- smaller motors are faster but less powerful than bigger motors;
- motors with lower inductance (higher rated current/lower rated voltage) tend to be faster, and often more powerful too.
- The driver:
- more current capability can move the motors faster;
- some advanced drivers use more complex techniques that can improve motor performance.
- The controller:
- more advanced movement algorithms may allow the motors to go faster, or at least use their acceleration capability more effectively;
- a slow processor may limit the maximum speed.
- The power supply voltage. Using a higher supply voltage:
- can allow the motors to move faster;
- can increase torque at medium and high speed (but makes no difference at slow speeds);
- may decrease the accuracy of microstepping.
Does microstepping reduce torque?
No, it doesn't, but it's a common misconception. TO DO: add link to the Shapeoko forum, where I explain this at length.
How did we get the 15.5 kgf figure?
Belt and pulley pitch:
- MXL = 0.08 in = 2.032 mm
Pitch circumference of 18-tooth pulley:
- 2.032 mm/tooth × 18 tooth = 36.576 mm
Pitch radius of 18-tooth pulley, which is also the arm of the force the motor applies to the carriage:
- 36.576 mm / 2π ≅ 5.82 mm
Motor holding torque:
- 9000 gf·cm = 90 kgf·mm
Force exerted on carriage:
- 90 kgf·mm / 5.82 mm ≅ 15.46 kgf