Werder XL1 Alpha 01 Design Log 01

Oh hey there!

For the past year and a half, I’ve been sporadically working on a RepRap design with a few tricks up its sleeve. I’ve been eager to share it for quite a while.

The printer is a leadscrew-driven, large-format, highly modular CNC platform developed for use in multiple machining scenarios. It’s largely based around 2020 aluminum extrusions for the frame and gantry, which makes the build rather affordable. Currently, I’m focusing on getting this machine ready for 3D printing, so functionality for other machining types isn’t ready yet.

The Werder XL1 Alpha 1 build. Wow, it’s kinda big!

I’m naming this version the Werder XL1 Alpha 1. The model name is XL because of the printer’s large-format build area of around 350-400 mm cubed (~13-15 cu in). I’m trying to follow the Prusa naming scheme to pay homage to my Prusa i3 MK2S MMU1, which printed nearly every part for this project. The final release will be the Werder XL1 MK1.

My newest addition to the printer family, halfway through testing the XY gantry motion. Firmware is harder than it sounds. – and “firm” is literally in the name.

Alpha 1 is not planned for release; there are too many assembly issues for it to go public. It also doesn’t have a Z-axis yet – that’s likely an Alpha 2 addition. I am ready to share the proof of concept, though. In this design log, I’ll go over specific design elements of this machine that showcase my intent for the future of the project. Before I do that, I should probably run down the past year and a half of work I’ve done on the Alpha 1 build.

Past Iterations

The sketches, parts, and assemblies below are just a few of the noteworthy revisions and documents I created since beginning this project in early October 2018. I can’t produce a totally exhaustive list of the versions, but I’ll run down the basic history behind the project.

Before I built the Alpha 1, I designed a bunch of other styles of motion systems. My first documentation of my ideas show that I wanted to design something that incorporated the best elements of both of my printers at the time (Prusa i3 MK2S MMU1, Ultimaker Original +). I had originally intended to use the linear rails themselves to be load-bearing, but I quickly learned they weren’t optimal for that. Despite the fact that both my printers were belt-driven, I decided to use leadscrews for motion, because they aren’t as springy as belts. I’m hoping that choice will make for some great CNC milling applications down the line.

A few sketches of the motion systems in use on my printers.
(Oct 2018)
A few early sketches that showcase my proposed “H-Bot” motion style. This was a misnomer; H-Bot is by definition belt-driven, similar to CoreXY. My solution more closely resembles an XY gantry. This sketch shows my intent to use dual-drive on the Y axis for stability, as well as some outdated designs for stepper motor mounts. I referred to the version as a general “RepRap CNC Motion Platform”
(Oct 2018)
A rough block assembly of the first iteration of the printer, which was loosely titled the “CNC Mark 1.0.” As I mentioned, this design relied upon linear rails as structural support, which would likely be wildly inaccurate in practice due to the flexibility of the plastic joints. However, it does show a few key features that were later incorporated into the Alpha 1 model.
(Oct 2018)
A sketch and test print of the basic “junction block” design used to interface with the linear sliders.
(Oct 2018)
A few detail views of my proposed linear rail mounting solution. My early tests clearly showed a system like this would fail, at least with the solution I had designed.
(Oct 2018)
The oldest usable part (unfinished) I designed for the Werder XL1, for the “CNC Mark 1.0” version.
(Oct 2018)
This finalized version of the last model includes mounting holes for two rail sliders, two rails, a stepper motor, and a leadscrew ACME nut.
(Nov 2018)

You may notice some strange version numbers and titles in these sketches. It took me well over a year to decide on a naming system I’m comfortable with; within that time, I referred to the machine as CNC Mark 1.0 through 1.5 before changing to Werder XL1 MK0, which was replaced by the Greek alphabet versions since the machine is still a prototype.

In Mark 1.0 through 1.2, I changed the core design of the system multiple times. The changes between Mark 1.2 and Mark 1.5 were largely negligible; they were mostly rebuilds due to model and subassembly failures. Later, I’ll discuss how I changed my design workflow to be more robust and user-friendly (to myself) by using derived subassemblies.

For whatever reason, the XY junction block (which I later named the X Motor Mount) was the first part I modeled, and the rest of the printer followed after that.

This strange-looking part was a scrapped version of the XY junction slider block. It incorporates one fewer linear rail, along with some odd rail slider mounts.
(Jun 2019)
The layout changed slightly between Mark 1.2 and 1.3. I decided it would make sense to print the junction block flat on the bed on the face that mates with the stepper.
(Jun 2019
This part closely resembles the current Alpha 1 build junction block. Newer versions of this part include a taller interface with the 2020 extrusion with a slot for the X linear rail, as well as an X limit switch mount and Y limit switch depressor screw.
(Jun 2019)

Almost all of the iterations before Alpha 1 were incomplete; they only contained a few parts before the full assembly began to fall apart due to poorly constrained parts. I originally created these assemblies by aligning duplicate base parts on top of each other within a subassembly for each individual part. Needless to say, it was as jacked up and wonky as you would imagine. Around Mark 1.4 and 1.5, I started designing using derived parts, a process that allowed me to design parts more freely without disturbing the assembly. No longer would the proletariat parts bow down to the bourgeoisie assemblies!

An old version of the toolhead mounting system in Mark 1.4.
(Jun 2019)
An old bearing block slider that looks similar to the Alpha 1 build.
(Jun 2019)
The final revision of “CNC Mark 1.5” full assembly before the version number change.
(Aug 2019)

Those are just a few snapshots of the development work between versions. There’s of course quite a bit more work between those, but that’s a pretty good summary of the work so far. Here’s what the current design looks like in CAD:

The Werder XL1 Alpha 1 build. This version of the assembly has a placeholder bed.
(Nov 2019 – Present)

Now that you’re caught up to speed with the work that went into this version, I’ll explain some of the key features of the printer, as well as their respective design processes.

Modular Toolhead

One of my biggest gripes with all the printers I’ve used is maintaining the hotend / extruder. Without a doubt, extrusion systems are the most complex part of 3D printers, and almost all of them suck. They’re required to handle tons of different material types, often with varying hardness, which in part leads to the whole dichotomy between direct drive and Bowden systems. Inertial mass on the toolhead is also a cause for concern in that regard. Recently, it seems like manufacturers have taken note, with some great new systems out. The Zesty Nimble completely annihilates the choice between direct and remote drive by doing both with cable driven extrusion, the E3D Hemera (or Hermes? Who knows…) almost eliminates the possibility of material kinking between drive and hotend, and Slice Engineering has started producing excellent hotends that are high-throughput, and easier to maintain than the E3D V6 standard.

Despite all those breakthroughs, I think one of the biggest issues with hotends and extruders is the challenge of maintaining them while they’re on the printer. Generally, print nozzles are completely enveloped in fans, mounting brackets, and probes.

My Prusa i3 MK2S MMU1 requires you to remove 6 screws (not including the fan shroud or multiplexer, which may also need to be removed for maintenance) to get to the nozzle. This means it takes roughly ten to fifteen minutes of work just to take out a clogged nozzlewhich is terrible for someone like me that loves to experiment with different exotic filaments.

I’ve only worked with one hotend setup that has been very easy to work on – the Lulzbot Taz 6. The Taz series is great for engineering purposes because they strongly feature interchangeable toolheads with a quick-mount system. Ultimaker also uses replaceable print heads, though these consist only of the hotend element and are, to my knowledge, closed-source (a no-no for DIY enthusiasts like myself). Unfortunately, Lulzbot’s solution isn’t one that’s caught on quite yet in the RepRap community, as far as I can tell.

Image result for lulzbot tool
Lulzbot uses a modular tool system that allows you to quickly swap the extruder for repairs. Note the wire bundle using a Molex connector.
(Photo by Lulzbot)

My modular toolhead system – I like to call the heads Modtools for short – closely follows the Lulzbot system, while adding a few key features that makes it far more friendly to DIY.

The Titan Aero Modtool attached to the Werder XL1 gantry X-carriage
Titan Aero Modtool removed from the gantry.
The cable management built into the back of the part.

In this version, Modtools use four mounting screws to secure them to the X-carriage. The tool itself has four model-in M3 nuts that are installed after printing; this means that the Modtool can be swapped out quickly without any risk of losing the screws needed to hold them in place. The screws themselves are held securely by the mount.

The current mount for Alpha 1. It’s quite bulky (almost 35mm deep), because…
…there’s a captive ACME nut for the trapezoidal leadscrew mounted within the part. I have plans to move this nut to the top of the aluminum extrusion to reduce the bulk on the front of the gantry, which should improve the rigidity of the tool as well as increase the depth of the print area (in Y).

The most interesting thing about the whole thing, however, is the electronics solution. In the Lulzbot tool system, as shown above, they use Molex connectors to secure electrical connections between the printer and the head. I like that solution, but it can be prohibitive for people without crimping equipment (like myself).

I asked a few professionals for their opinion on engineering-grade connectors that would fit my case. The one I landed on was the D-subminiature family of connectors. For this specific tool, the 15-bus D-sub connector had just the right number of connectors, including two redundant cartridge power cables. Every version of the cable I found had thick enough gauge wires to handle the current required to run the heater cartridge and motor just fine.

These connectors are great. They have screw mounts that allows you to rigidly attach the cable to the tool, as well as a removable sheet metal faceplate that makes parts look and feel professional after assembly.

The current state of the D-sub on the Titan Aero Modtool. This setup uses four contacts for the heater cartridge – two contacts for both negative and positive – though I have ensured that running full power for a 24V E3D heater cartridge via only two contacts total is within safe limits for the D-sub cable. As for the rest of the electronics here…
…I have some basic wiring diagrams to help remind me where each contact leads. As you can see, I use a similar D-sub setup for the XY gantry, which I’ll talk about later.

One of my key design considerations for this element was cost-effectiveness. I’m happy to say that the D-sub terminal block used to interface with the cable’s pins is extremely inexpensive, even on Amazon Prime. There are tons available online after a quick Google search for “D-sub 15 terminal.” Here’s the one I picked up:

Although not on Prime, the one I decided on is a two-pack of terminals for around $11. I believe the price on this has changed since I picked one up, so I encourage you to find a cheaper selection by checking out Amazon.

Similarly, the cables themselves are inexpensive, and pretty heavy-duty. The ones I got are below:

Just like the terminal blocks, there are tons of variants of this cable. Check around on Amazon for a better price.

Overall, this setup is designed to be quickly and easily accessible for maintenance, and approachable to design new tools. All you need is the screw layout – a rectangle of four M3 screws – and the D-sub subtraction body, which I’ll make available with the rest of the files for the MK1 when it’s released. Subtraction bodies are files retaining all part information that are used in conjunction with Boolean subtractions to carry over shapes for part mounts and more. I’ll talk a little about this design technique in a future project, called Modeling Complex Geometries using Subtraction Bodies.

I’m hoping that interchangeable tools will see the light of day more often, since they should make maintenance that much easier. I’m excited to continue working on the concept, and I may release other builds of X-carriage mounts as retrofits for other machines if the idea gets enough traction.

Modular XY Tool Gantry

One of the coolest parts about this build is the concept of a removable XY gantry that can be used for multiple machining scenarios. The two-axis motion system can be removed entirely from the frame with a couple screws. What I think is really exciting about this is that the frame could be replaced with a different one that fits your desired machine type – for example, I could imagine replacing it with a hexagon pattern base with a fume extractor to do some laser engraving. I could also imagine having a rotary tool used to engrave water bottles, or even a custom pick & place setup for PCBs. Even cooler than that, though, is the fact that this setup could just as easily be attached to a work piece larger than the gantry itself, meaning it’d be really easy to engrave or cut huge pieces of plywood, acrylic, and anything else you’d like to machine.

Although it might look like I’m using double-wide extrusions for the top of the frame, that’s just two stacked 2020 extrusions held together with the upper and lower corner braces. You may also notice some loose wires on the left – that’s another D-sub connector without a housing on the gantry corner brace yet.
The two halves of the corner detach, freeing the gantry from the frame. There are three screws on each corner holding the frame rigidly in place during machining. Interestingly enough, if the gantry isn’t exactly centered on the frame (it might be off by at most a millimeter on every corner), it doesn’t matter – 3D printing uses relative coordinates.
The gantry removed entirely from the frame. The corner braces are designed such that the entire assembly has enough clearance to sit on a flat surface without damaging the tool.

The actual motion system is pretty simple. There are two parallel Y-axis leadscrews and linear rails which drive the X-axis across the depth of the machine. The X-axis consists of two sliders for the motor and bearing, a linear rail, a leadscrew, and the toolhead “Modtool” mount. The motor-leadscrew couplers are self-designed as well.

For electronics, I have the Y steppers wired in parallel from the D-sub terminal, just like Prusa’s dual Z stepper setup (see the XY gantry D-sub wiring diagram above). Homing is performed with two mechanical limit switches. Pretty simple stuff.

All the parts for the frame corner attachment print in a 10 x 11 cm area. I’ve printed full sets of four corners in a single print job before, though I’d suggest printing them like this to eliminate the risk that comes associated with large print batches. If you’re courageous, go ahead, but be absolutely certain that you keep a loaded flare gun near the printer in case it learns how to love during the print.

It’s a pretty minimal concept, so I won’t embellish too much on it. It’s just a quick and easy way to reuse a motion system for anything you’d like. I’m pretty excited to finish it to test out the merits of a universal setup like this.


The 3D printing frame is made up of 2020 aluminum extrusions cut to 550mm for X and Y, and 475mm for Z. In total, the frame is made up of 20 extrusions.

One of the choices I made when designing Alpha 1 was to design my own fasteners. I have a box of M3 nuts in my garage, so I thought I’d use only M3 hardware to assemble the machine. That’d make it easier to keep track of parts, as well as cheaper for others to make. I ended up designing an M3 to T-nut converter that allowed me to use M3 nuts to fasten parts to the extrusions. It was a little cheaper than buying all new T-nuts, but the amount of time I spent assembling the nuts was definitely overboard. I have a few ideas to get around this issue which I’ll discuss later.

My art skills on display. Every location where a part is attached to the frame, an M3 nut to T-nut conversion part (seen at the bottom of the photo) is used. That conversion part seats into the part along the groove (illustrated in black) to make assembly a little quicker.

All the parts that interface with the 2020 extrusions use a groove mount system that makes assembly quite a bit faster – the M3 nuts are self-centering when the part is attached.

The bottom corners of the Alpha 1 (along with all other parts for the build) are optimized to print without supports.
This may be one of the most interesting parts in the build – I employed many strategies to ensure I didn’t have to enable auto-generated support material. If you want to see how, I’d highly recommend checking out my last project, Tricking My Printer to Print Perfect Overhangs.

I designed my own corner braces to strengthen the frame laterally. These are pretty small parts that only have one side with the groove interface for M3 hardware – they usually print in less than 2 hours apiece.

I noticed that printing these parts in PETG caused them to stick to the bed too much, tearing chunks out of the PEI. I changed the design so that these corner braces have slots cut from the bottom layer, which allows for easier PETG prints. It also has the added benefit of cutting down print time by a few minutes!
Alpha 1 frame highlighted in Inventor. This does not include the parts for the electronics rails.

That’s about it for the frame itself!

Electronics Rails

The electronics on this project were certainly the furthest from my comfort zone as a mechanics guy. However, creating a mounting solution that fits the theme of modularity and ease of access was actually pretty fun.

The electronics rails on the Alpha 1 are made up of two 2020 extrusions spaced 150mm apart from center to center (130mm between the inside faces) with plenty of mounting space for the 15A 24V power supply, IEC socket, LCD screen, and control board. All the mounting currently uses the same custom M3 nut / T-nut converters, though I think that may change soon.

From left to right: the IEC socket, PSU, and Einsy Rambo. An LCD mount is still development. The power supply cables have an XT60 connector for power delivery, visible just below the Einsy Rambo box.

As for the board I used for this version, I ended up going with the 32-bit Einsy Rambo 1.1b (from MatterHackers) used on Prusa machines. It was a purchase I made somewhat selfishly, since I have plans to RepRap a Prusa i3 MK3S in the future. I think a more future-proof, DIY-friendly board would be the Duet WiFi – that’s probably a change for Alpha 2-3 or later.

The top of the Einsy Rambo electronics box. Included within the design are zip tie holes for cable management – I love neatly managed wires! It makes it look like I know what I’m doing.
The bottom of the Einsy Rambo mount. Two D-sub terminals mount into the part using two M3x10mm socket head screws, as well as their built-in faceplate screws.

Improved Part Modeling Workflow by Deriving Subassemblies

The process I used to design the Alpha 1 was actually pretty simple. I thoroughly used the Derive tool in Inventor to model 3D printable parts around real-world hardware that I imported from McMaster-Carr, GrabCAD, or Thingiverse. I had no idea how that process worked before I tried it out, so I’ll try to explain how it works as best as I can.

Essentially, the Derive tool allows you to import another solid into the current part environment. Subassemblies are also fair game – they create a dialog asking what parts you’d like to derive or not. The origin of the imported solid is grounded on the current part’s origin – that detail will be important later.

It’s also important to note that parts and assemblies imported by the Derive tool are flexible; when those files are changed, any reference to those imported bodies changes accordingly. You can also redesignate the derived components after the fact. It’s a wise move to use the “Save As” feature when changing the derived component, then changing the file designation to keep old versions safe from changes.

Within the Part environment in Inventor, under Manage, the Derive tool is available.

With this in mind, I created subassemblies with the real-world parts in their respective places. I denoted these in the filenames as “REFERENCE” within my date stamps, as shown below:


“Subassembly Designation (REFERENCE_YYYY.MM.DD_VER)”


“X Axis (REFERENCE_2019.08.01_1)”

A “REFERENCE” subassembly is free of any 3D printed or otherwise DIY components; they only include parts I purchase externally. The general idea is that this allows me to create parts that join or interface with existing ones. Here’s what one of those might look like:

The REFERENCE subassemblies include floating parts that need 3DP parts designed to hold them as needed. In this specific subassembly, there’s one 3DP part included – the stepper coupler in white on the left. This is included because it’s been created prior to this subassembly, but that’s a rabbit hole I won’t go into now.

After a “REFERENCE” is created, I derive the entire subassembly into a new part environment. By doing so, I am now able to use the Project Geometry tool to, well, reference the parts I’ve placed in the “REFERENCE.” That’s kind of where the name comes from!

The yellow dotted lines are Projected Geometry lines. If I were to change the placement of each component shown, the sketch here would shift accordingly.

After modeling the entire part, you’ll probably want to add it to a full subassembly – not the “REFERENCE” – that shows what that final component will look like. In the case below, that final component is the assembled X-axis, which was later added as a subassembly to the master assembly. Yep, it gets kind of confusing!

The fully assembled X-axis, including the REFERENCE subassembly and two 3DP parts. Both parts are modeled in separate environments so they can be modeled and exported more easily.
The X-axis subassembly within the master assembly.

Planned Changes

Over the course of actually printing and developing the hardware I showcased here today, I came across a number of issues I’d love to fix. If you read through this and thought of something great you think I should add / change, don’t hesitate to contact me! Contact info is in the header above.

Here’s my list of changes for Alpha 2 (all subject to change):

Modtool & X-Carriage

  • Change orientation of ACME nut in carriage to thin the Modtool attachment
  • Change linear rail setup to allow carriage to be more rigidly attached to the X-axis
  • Change captive M3 nut setup to prevent hardware from falling out of Modtool during swap
  • Add support for BLTouch (or similar) auto-leveling
  • Add support for LEDs surrounding nozzle
  • Add support for OctoPrint / Duet WiFi camera (may also add to XY gantry)

XY Gantry

  • Change layout of XY gantry to have linear rails on top of respective extrusions rather than on the side – increases print envelope w/o affecting frame size
  • Add corner mount for D-sub
  • Add wire management for Modtool D-sub


  • Change M3 mounting solution to either standard T-nuts or to bar mounts to avoid losing tiny parts
  • Add an actual Z-axis
  • Add an actual Z-bed (heated)


  • Change board to Duet WiFi
  • Change board mount to only have one port for D-sub cable routing – currently routing wires is tough
  • Change board mount to have thinner walls
  • Change board mount to have less hardware for both covers
  • Add support for HyperPixel 4.0 (or similar) touchscreen
  • Add OctoPrint support (if Duet WiFi not used)
  • Add board mount Z-stepper wiring ports
  • Add board mount or PSU model-in XT60 connector
  • Add IEC socket screw to hold component more snugly
  • Add board mount D-sub labels

Well, that’s about it for this behemoth of a project post! Congratulations on making it to the end. Hopefully I was able to convey the work I did in a coherent way. As always, any feedback is welcomed at my contact info listed in the header.

Thanks so much for reading, and keep on printing!


Close Menu