EShapeoko Complete Kit (Example Only)

From Amber Spyglass Ltd
Jump to: navigation, search

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. Our example is a machine with a 750 mm X axis and 500 mm Y axis, with NEMA 23 motors on X and Y, and a NEMA 17 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.

We intend to use this machine with a trim router, milling plywood at an aggressive feed rate with a 6.35 mm (1/4") endmill, as well as more delicate applications (PCBs), using small endmills with 3.175 mm (1/8") shanks.

Stepper Motors

NEMA 23 motor (51 mm long)

We chose three 0.9° per step (400 step per revolution) NEMA 23 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 (excluding the shaft) and weigh about 560 g each. Like most NEMA 23 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 a 1.8° per step (200 step per revolution) NEMA 17 motor, also with a current rating of 1.7 A. The motor is 48 mm long, weighs about 340 g, and has a holding torque of 5200 gf·cm. It's very powerful for a NEMA 17 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 and count as only one axis.

Stepper Motor Drivers

GAUPS 1.0 shield (assembled)

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 slightly cheaper, but works 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.

Power Supply

120 W power supply

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


Shielded stepper cable

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. Put a zip tie through an unused hole in an end plate or motor plate, and store it there.


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.

Waste Board

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.

Limit Switches

Limit switches

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.

The switches come with mounting screws, washers and nuts. The screws are M2 × 12 mm (tiny!).

Mounting bracket for Z axis limit switches

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


Motors and Power Supply

Items highlighted in yellow are available from our store.

Item NEMA23 motors
on all axes
NEMA23 on X and Y NEMA17 motors on all axes
Faster Z Extra-precise Z Fast Precise Extra-precise Z
X and Y motors 4 × NEMA 23 0.9° 3 × NEMA 23 0.9° 3 × NEMA 23 0.9° 4 × NEMA 17 1.8° 3 × NEMA 17 0.9° 4 × NEMA 17 0.9°
Z motor 1 × NEMA 17 1.8° 1 × NEMA 17 0.9° 1 × NEMA 17 1.8°
Power supply 200 W cage-type 200 W cage-type 120 W brick (power cord: UK, EU)
—or— 120 W brick (power cord: UK, EU)

Everything Else

Note that there is no correlation between columns in this table; you can pick any one item from each line. Items highlighted in yellow are available from our store. We're working to add the remaining ones.

Controller Arduino Uno (running GRBL) (needs USB cable)
Drivers GAUPS (standard) GAUPS (40 V) shield
4 × Pololu A4988 (black) 4 × Pololu DRV8825 (purple)
4 × Aluminium heatsink 8 × Aluminium heatsink 4 × Copper heatsink
4 × Tall headers (optional)
Barrel connector to screw terminal adapter
Fan Small DC-DC converter Larger DC-DC converter
Brushless 12 V DC fan (PC type) + fan guard + mounting screws
Cabling Shielded cable CAT5 (stranded) any 4-core cable 0.5 mm2 or more
2 × 12-way 3 A terminal block (coming soon) solder and heatshrink tubing
Zip ties (coming soon)
Limit switches 6 × Microswitch (or 8 of them, or only 3)
Mounting bracket for Z axis limit siwtches
Ribbon cable shielded signal cable almost any type of cable

Also: spindle, tools (endmills, engraving bits etc), waste board, eye and hearing protection.