Build Log

Ultimaker has always made nice printers, and recently the Ultimaker 2 has been highly ranked for its print performance. I wanted one, but I didn’t want to shell out $2500. Because the Ultimaker 2 is open source, it is possible to self-source and build one yourself, although it isn't straightforward. Here’s my build, with a few improvements: a very rigid 2020 extrusion frame, direct drive on X & Y (reduced backlash), pillow-block radial bearings, and a Smoothieboard. I’m calling it the Alumimaker 2.

How I thought of the idea

I wanted to build a new 3D printer, and since I had just read Make Magazine’s 3D printer shootout, I was interested in the Ultimaker family. I saw that you could buy the laser-cut wood parts for the Ultimaker Classic on eBay for $175, did the math, and decided that I’d go for it.

As I started pricing and spec-ing stuff, I noticed that it wouldn't be that much more expensive to upgrade most of the parts to the Ultimaker 2 versions. But would they all fit in that wood enclosure? Then it hit me that for less than $175 I could build a frame from 2020 extrusion, and that’s where this project began.


Overall the Ultimaker 2 is well respected, and has an excellent mechanical design. It does, however, have several places where some improvement could be used. First, because two different sets of belts are used to drive each X & Y axis, there is the potential for the compounding of backlash. There are several mods in the Ultimaker Classic that address this problem by directly coupling the steppers to one of the shafts, but I haven’t found anyone who has done this for an Ultimaker 2, which would also benefit from this mod. Part of this may be due to the fact that the Ultimaker Classic has a more-friendly-to-mod plywood chassis, while the Ultimaker 2 is plastic.

Speaking of the frame, increasing frame rigidity can reduce noise and increase accuracy. The Ultimaker Classic frame is plywood, while the UM2 frame is plastic. By switching to aluminum extrusion, we have the potential to significantly increase the rigidity of the frame.

The Ultimaker Classic and UM2 both use 608 radial bearings for rotation of the shafts. However, because these bearings do not have collars or grub screws, the shafts may shift a small amount. Some mods have been created, including screws that limit the motion of the shafts; However, if these screws touch the shaft, they add friction. While considering how I might make an Ultimaker with an aluminum extrusion frame, I looked for radial bearings that would mount to 2020 extrusion, and found the KP08. It’s a radial bearing with a 8mm bore that will mount to 2020 extrusion with a 10mm M4 screw and T-nut. It also has 2 grub screws to secure the shaft in place.

One further improvement I've made over the UM2 is to switch their knurled extruder gear for a MK8 gear. I initially used their knob but saw some slipping, so I switched.The MK8 fits fine in their extruder body and provides great grip.

In this particular build, I’m putting in a SmoothieBoard mini instead of the stock Ultimaker electronics. While this has some downsides (no documented RTD support, a slightly less polished UI), it has significant upsides as well: a 120mhz ARM processor with DRV8825 1/32 microstepping drivers, better look-ahead, etc. In this build you can pretty much use whichever electronics you want (including the Ultimaker Classic ones) – the issue is whether to go with thermistors, thermocouples, or RTDs.

Maybe the best improvement of the Alumimaker 2 over the UM2 is how much more hackable it is. 2020 extrusion is left exposed, making it simple mount add-ons. You can use whatever kind of Bowden extruder you want, it just needs to be mountable to a 2020. With a Nema 17 motor mount, the stock UM2 extruder mounts nicely, but you could use an Airtripper, or any one of a number of extruders. The same goes for mounting spook holder, etc. The use of corrugated plastic inserts instead of plastic sheets makes modifications easy. You can also arbitrarily alter the height of the Alumimaker 2 by changing the height of your alumimum extrusions, Z-shafts and Z-lead screw.

Thoughts before Building

I initially designed this machine to have as much in common with the Ultimaker 2, simply because I knew that it was a good machine. I sourced almost all the custom Ultimaker 2 parts, to have around just in case. But you don’t have to do this. You can save $80 by not using the stock UM2 head, and just buying 2 LM6UUs, a cheap J-head, and printing a mount. (This would also have the advantage of being lighter, and thus potentially more accurate – the UM2 hot end assembly weighs about 100g, and I think you could do half that with a Bowden J-head and printed LM6UU holder.) You can save another $20 by not using the injection-molded UM2 extruder and using a similar direct-drive extruder from thingiverse. You could save another $100-$120 by not using a stock UM2 heated bed, and finding something more similar to the Ultimaker classic design, or even by sourcing the platform from some other system like Solidoodle. You can save a couple of bucks by printing 12mm mounts instead of using KFL12s. I was not trying to make the cheapest possible version here – I wanted something that worked well, and was willing to pay something of a premium for it; but this doesn’t have to be your decision.

Calculating Belt Loop Size

In the UM2 the sliding blocks are held in place by belts loops secured by springs. I recently found out that the more common RepRap spring tensioners are too small for the stock UM2 sliding blocks, so you probably want to order stock UM2 spring tensioners. I have found, however, another way to make the UM2 sliding blocks work with open-ended GT2 belts (involves several zip ties and modifying the sliding blocks) - I'll post some pictures soon. 

If you do decide to use belts loops with stock springs, the formula for calculating loop length is (Axis Extrusion Length - 30)*2+pi*GT2 pulley outer diameter. For example, in the design spec'd in the BOM, for a 300mm axis, you need belt loops that are (300-30)*2+pi*12.22 = 579mm long. However, you probably want a little slack, so the BOM specifies 586mm loops.


The first thing to do is to construct the frame. I used 8 x 297 2020 extrusions, along with 4 corner blocks. Tap 4x 300mm aluminum extrusions on both ends, and 4x 450mm extrusion on one end. Screw the 4x 300mm extrusions together into a square using the corner blocks, and then add the 4x 450mm extrusions as legs.

Next, put one 8mm bore GT2 pulley on an 335 8mm shaft, followed by a bronze bushing, followed by another GT2 pulley. Put a KP08 radial bearing on each end of the shaft. At this point, don’t tighten the grub screws in the KP08s. Loop 2 586mm GT2 belts over the shaft.

Attach the KP08 bearings to one side of the box facing inward. The KP08s are mounted with M4 x 10 bolts into t-slot nuts. Leave the grub screws loose, and spin the shaft, making sure that there isn’t any binding before tightening the grub screws on at least one side.

Repeat this process, but rotate the shaft 90 degrees, and attach underneath the previous shaft.

Print the X and Y motor mounts (stls here). If you can’t find fairly short couplers (like these), print these rigid couplers (stls here). Using short couplers helps maximize internal volume and keeps the motors from being located too far away from their supporting aluminum extrusions.

Mount the motors to the motor mounts with m3 x 8mm screws. To get the maximum print volume, I recommend trimming the drive shaft on your steppers so that your 5mm to 8mm coupler is relatively close to the base of your stepper. Use tape or silly putty to avoid getting aluminum shards into the body of your motor. Then mount the couplers to the motor shafts with m3 screws and nyloc nuts. Then mount the motors and mounts to the extrusion with M5 x 10mm screws and T-nuts. The X mount should be higher than the Y mount.

Next, take 2x 8mm shafts, and engage each one in KP08 bearing. Place a M4 x 10mm screw and T-slot nut on them and engage them opposite their motor mounts, and slide them into place. You will need to slide the 8mm shaft a bit further through the KP08 at first, and then slide it back to engage it in the coupler.

KP08 bearing with 8mm shaft attached.

At this point, axes can be aligned and belts and sliders put into place. A good reference for this is the UM2 build guide.

Take 4 KFL12 or print 4 of this STL. Decide which side will have your Z-axis. Loosely mount 2 KFL12 or the STL onto the underside of the top 300mm extrusion, and mount 2 onto the top of a new 297mm extrusion.

You can follow the instruction in the Ultimaker 2 build guide for putting together the Z-table. Also place the trapezoidal nut, and thread your leadscrew through it.

Slide your Z shafts into the holders on the top, and slide the shafts and holders until it looks like they will fit. Next slide in the 300mm extrusion with the KFL12 or printed parts on it, and push it up into place to hold the Z shafts in place. Secure this extrusion into place with 2 triangle plates with M5 x 10mm scews and T-slot nuts.

Sliding print table over 12mm rods

Next use some tape, rope or whatever to temporarily suspend the Z table. You may need to spin the leadscrew a bit as well. Take a Nema 17 motor and put a mounting plate on it with 4x m3 8mm screws. Next use a 8mm to 5mm coupler to couple the leadscrew to the motor. Sit the motor on top of the extrusion supporting the Z shafts, with the flange of the mounting plate facing inward.

Frame upside down, mounting motor

Next, loosely attach 2 more 300mm extrusions with triangle plates to the sides of the frame. They should be just about even with the top of the motor. Take another 300mm extrustion and attach it to the mount plate on the motor. Now make these 3x 300mm extrusions line up. When they align, tighten them into place. Next, use triangle braces to secure the 300mm extrusion attached to the motor to the other two extrusions.

At this point the basic mechanical frame is done. Add whichever extruder(s) you want, wire in whatever electronics you want. I plan to keep on working on this, but for more help check out the Ultimaker 2 assembly guide, which has detailed build instructions for the Ultimaker 2.

More to come...