My Kossel XL Printer Build

by Roderick W. Smith,

Originally written: October 28, 2018; last Web page update: November 18, 2018

This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!

Donate $1.00 Donate $2.50 Donate $5.00 Donate $10.00 Donate $20.00 Donate another value


This page describes my experiences building a Kossel variant delta-style 3D printer from scratch (not from a kit). If you know what this means and are interested, but are not yet an expert at building 3D printers, then read on. If you don't know what 3D printing, and especially building your own 3D printer, is about, then you may want to stop reading now, or check out the RepRap wiki, and particularly its page on the Kossel design, for some background information. In brief, the replicating rapid prototyper (or RepRap) project is intended to create designs for 3D printers that anybody with sufficient skill, interest, and money can build themselves. These printers can then be used to (among other things) create some (but not all) of the parts necessary to build a new 3D printer, other useful things, toys, decorative objects, and other less-useful items.

In 2018, 3D printer technology shows a lot of promise, but it's nowhere near the "replicators" of Star Trek. Current home and small business 3D printers are slow (they take hours to print an object the size of a baseball), finicky, and print only in plastic (although exotic printers that print in other materials do exist). Nonetheless, the technology is advancing rapidly, and it's useful in some professions and industries — architects and engineers, among others, rely on 3D printers to do real work. For others, including myself, 3D printers are more of a hobby. There are only so many soap dishes and figurines you can print before the novelty wears off. That said, the ability to print unusual or even one-off products, such as cases for Raspberry Pis or brackets sized as needed, can be handy.

For reasons described shortly, I decided to build my own 3D printer starting in December 2017. This project took several weeks to reach a point where the printer could be considered useful, and much longer to fine-tune it to the point where I was satisfied with the prints it produced. I'm sure an expert could have gotten it working in a day or two (not counting waiting for deliveries), with another couple days to fine-tune it. In the process, I learned a lot about 3D printers, and experienced the satisfaction of having built one from scratch myself. I also now have two 3D printers — the one I built and the one I bought ready-made some time before that. Thus, one printer can produce spare parts for the other, should one go down because of a broken plastic part.

Note that this page provides a sort of snapshot of a project that's continuing to evolve. After beginning this document, I delayed publishing it for various reasons, but I finally decided to publish it about ten months after beginning the project, despite the fact that the printer is not yet finished. I will no doubt make further changes to my printer, which I might or might not add to this document.

Who Should Read This Page

When I began my 3D printer project, I found quite a few Web pages and YouTube videos with instructions on how to build a 3D printer, particularly in kit form. I also found high-level descriptions of different printer designs. What I had a hard time discovering, though, was information on how to pick individual components that work with other components. The RepRap wiki provides good information on individual components, but it's spotty and has limited information on how different components interact with one another. If you buy a kit, of course, whoever designed the kit handled this task. Likewise if you exactly follow a design you find on the Internet. The moment you begin to deviate from such a design, though, things can begin to unravel. This page is intended to help fill that gap: I describe both the overall design of my printer and the reasons I picked individual components. (Sometimes I picked a component twice, or even three times, after discovering the problems with my first choice!) My hope is that this information will help you if you decide to build your own printer from a kit or from designs you find online, but you want to change some details of the design.

I've written this page with people of a certain skill level in mind: You should understand the basics of 3D printing, and probably have used one. You should have experience with building high-tech devices, such as assembling a computer from parts or perhaps even building a 3D printer kit. You should be comfortable with tools like wire strippers, soldering irons, and of course screwdrivers. You should want more of a challenge than a 3D printer kit (built exactly to spec), and you must have the time to spend on the project.

If you're already a 3D printing expert, you'll find little of interest on this page. Chances are you could design and build your own Kossel printer, and likely make it better than mine. I make no claims to being a 3D printing expert. Rather, I'm sharing my experiences as somebody who's still a relative novice but who took on this challenge as a learning experience. My hope is that this page will serve as a useful guide to people in a roughly comparable position, to help steer them away from dead ends and toward working solutions.

Note that this page is not intended as a complete step-by-step build guide to assembling a printer. Although I do provide a parts list and information on how various parts interact with each other, this page should be viewed more as a how-to guide on designing a 3D printer, rather than building one. For step-by-step assembly instructions, I recommend you look up the instructions for Kossel kits (the Kossel page on the RepRap wiki provides links) or Kossel build videos on YouTube. Of course, such instructions won't exactly match the parts described on this page — but if such deviations would be a real problem for you, then building from a kit or buying a ready-made printer may be a better choice for you than building from scratch.

Setting Design Goals

3D printers are a rapidly evolving technology. My analogy is that in 2018, they are roughly where personal computers were in the mid-1970s. Personal computers of that era required considerable dedication and know-how to use, and weren't very practical devices even then. That began to change with the advent of the Apple II, TRS-80 line, various Commodore models, the Atari 8-bit series, and some others. It really changed with the introduction of the IBM PC and, soon thereafter, the Macintosh, in 1984. We have yet to see the equivalent of an Apple II, much less a Macintosh, for the 3D printer market. What we have are machines that are one of three things:

I own a Robo 3D R1+ printer, which falls squarely in the second category. I bought it for $500, and upon receiving it, I was disappointed by its finicky nature and lack of reliability. In the process of learning the machine's quirks and figuring out how to get decent prints out of it, though, I necessarily learned a lot about the technology — enough that I thought it would be an interesting challenge to build my own printer. I also became intrigued by the design of delta printers — more on that shortly. Most delta printers ship as kits rather than as pre-assembled machines. As I began investigating kits, I found that I wanted features not offered by most kits, so I delved into the build-it-yourself approach. Things I wanted from the printer I ultimately built included:

Thanks to the RepRap project, a large number of 3D printer designs are available for hobbyists to build. Most of these designs are Cartesian printers, but there are a few delta printer designs available. Of these, the most popular is the Kossel, which is often described as having two size variants: mini and XL. (In truth, you can build a Kossel printer of just about any size, within constraints imposed by physics.) I opted for a Kossel XL, with an initial design inspired by this example build by Johnathan Hottell. Although his design served as my jumping-off point, I've deviated from his design on almost every detail.

If you're interested in building your own 3D printer and have similar design goals, then it's possible that my printer's design will interest you — see Picking Parts for a detailed parts list for my printer. The more your needs and desires differ from mine, though, the less you'll want to mimic my design. That said, even if you have completely different design goals, you might find my explanations helpful, particularly if you've never designed a 3D printer yourself. If you want to build completely from scratch but lack a 3D printer, you can look into ordering critical 3D-printed parts from a 3D printing build service. I know next to nothing about such services except that they exist, so I can't provide much guidance; but there's an "order this printed" link on the listings page of objects on the popular Thingiverse repository of 3D printing models. There's also a Kossel-specific "pay-it-forward" program in which you can get a set of 3D-printed Kossel parts if you promise to make two such sets for others. (The details are described in the README for the Kossel printed parts design on its github page. Scroll to the bottom, to the "Pay it forward" section.) If you want to build your own printer but don't want to collect all the parts from multiple vendors, then a kit may be what you want. Two I considered before deciding on the from-scratch approach are the Folger Tech Kossel ($326) and the Anycubic Kossel (available from many sources — try a Google search; $170-$340). The latter is available in at least two sizes and with various other options, hence the range of prices. Neither of these printers is as large as mine, and both cut corners on things like the hot end and electronics; but they should work reasonably well if built competently. You can also upgrade any components you like as your time, interest, and budget allow. Another product, which cuts fewer corners, is the Tevo Little Monster ($720-$950, depending on the seller). The Kossel page on also provides links to a number of popular Kossel kits. Kits for Cartesian printers are available, too, but I don't have recommendations for specific models.

Viewing a Delta Printer from Afar

The following sections refer to various parts of a delta printer; but if you're not already familiar with these details, these references are likely to confuse you. Therefore, I provide a brief rundown of the major components here. If you're already familiar with delta printer design, feel free to skip ahead. If not, though, be sure to read this section. Note that many components are shared between delta and Cartesian printers, but some are unique to delta printers. Thus, you may want to read this section, or at least skim it, even if you're familiar with Cartesian printers.

My Kossel Printer

Figure 2: My Kossel-style printer

Figure 2 shows my delta printer, as initially built, with various components marked. These are:

I've made some changes to the printer since taking this photo, but the components called out in Figure 2 remain in the same locations. Other delta printers, and especially other Kossel printers, follow the same basic layout, although they differ in many details. For instance, some Kossel printers mount the power supply to the horizontal or vertical extrusions; the extruder may be located elsewhere; the control board may be placed elsewhere; and so on. Compare Figure 2 to the image of the Kossel near the top of the RepRap wiki Kossel page, for instance.

An effector and hot end

Figure 3: An effector and hot end

Because it's so important, I'm also calling out some subcomponents of the effector, which is shown in close-up in Figure 3:

Picking Parts

I'm going to begin at the end, with a part list, then describe in detail why I selected certain components later. If you want to exactly reproduce my printer, you could begin with my part list; or you can compare it to other printer designs and use one as a starting point for your own design. Table 1 shows an (almost) complete bill of materials (BoM) for the printer I built, and Table 2 shows the 3D printed parts I used. (You can download both tables in the form of an OpenDocument spreadsheet here.) Note that Tables 1 and 2 describe the printer as it exists today. My initial design proved to be unsatisfactory in some ways, as described in later sections. I've omitted parts that I bought or printed and that I abandoned. If you were to include the cost of these items, the price tag on my printer would go up significantly.

Table 1: Bill of Materials for a Kossel XL Printer
Item Price Ea Base Qty A Few More Total Qty Total $ Shipping or Tax Subtotal Source
Base Parts
20x20mm extruded aluminum 100cm $5.70 3 3 $17.10 $6.65 Misumi USA
20x20mm extruded aluminum 36cm $2.05 9 9 $18.45 $5.94 Misumi USA
12-inch diameter, 1/8-inch thick aluminum plate $14.25 1 1 $14.25 $13.65 eBay
310mm diameter SeeMeCNC clone heated PCB (280mm heated diameter), 12V (from China) $31.99 1 1 $31.99 $0.55 eBay
Stepper motor vibration dampers $7.50 3 3 $22.50 $3.77 TriD Printing
0.9o Nema17 Stepper motor $17.95 3 3 $53.85 $4.36 Ultibots
2GT Idler Pulley with Bearings $2.69 3 3 6 $16.14 $2.60 eBay
Open Ended 6mm Width GT2 Belt 10 Meters for up to 5 100cm verticals, with 10x 16-tooth 3mm GT2 belt pulleys $21.99 1 1 $21.99 $4.33 eBay
Belt tensioners (4-pack) $4.95 1 1 $4.95 $0.00 eBay
304mm magnetic ball-cup arm (set of 6, delrin sheath) $74.95 1 1 $74.95 $6.07 Ultibots
Extruder & hotend
Genuine E3D V6 hotend w/800mm of PTFE tubing $63.38 1 1 $63.38 $0.00 Amazon
Delta Smart Effector $64.99 1 1 $64.99 $10.00 Filastruder
Bowden/PTFE tube (2m) (no pushfits) $2.99 1 1 $2.99 $0.98 Gulfcoast Robotics
E3D Titan extruder with Bowden Adapter $71.91 1 1 $71.91 $8.35 Ultibots
NEMA 17 stepper motor for extruder $10.99 1 1 $10.99 $5.88 Gulfcoast Robotics
End stop micro switch $1.15 3 2 5 $5.75 $0.00 eBay
12V 30A Power supply $19.09 1 1 $19.09 $3.76 eBay
40mm fan for effector/print cooling $1.75 1 1 $1.75 $2.70 eBay
Power supply AC power cord 3 Conductor $5.00 1 1 $5.00 $0.00 eBay
C14 connector $1.99 1 1 $1.99 $2.80 eBay
AC rocker switch $1.99 1 1 $1.99 $4.49 eBay
Fuse holder $4.99 1 1 $1.99 $2.66 eBay
5A 250v slow-blow fuse (to fit purchased holder) $1.18 1 4 5 $5.88 $0.00 eBay
12-gauge wire for heater bed, 25 ft. (overkill length) $8.25 1 1 $8.25 $0.00 eBay
Ethernet cable, ~25 ft $4.20 1 1 $4.20 $0.00 eBay
DC switch (for lights) $1.30 1 4 5 $6.49 $0.00 eBay
12V LED light strip 5m (will only use ~1m) $11.80 1 1 $11.80 $0.00 eBay
4-pin (or more) heavy-duty connector set (for fast removal of heated bed) $4.55 1 1 $4.55 $2.98 eBay
2- to 4-pin wiring connector pairs (for end stops, extruder, & lights) $0.69 5 5 10 $6.92 $0.00 eBay
Insulated wiring disconnects (1-pin) $0.36 11 14 25 $9.10 $0.64 Lowes
Duet WiFi $169.99 1 1 $169.99 $7.70 Filastruder
Panel Due (7-inch, with cable) $94.99 1 1 $94.99 $4.30 Filastruder
IP camera $25.00 1 1 $25.00 $0.00 eBay
M3x6 screw (motors & end stops) $0.23 12 8 20 $4.64 $0.00 eBay
M3x8 screw (motors & end stops) $0.23 9 11 20 $4.68 $0.00 eBay
M3x16 screw (sliders/carriages, frame braces, bed mounts) $0.18 53 17 70 $12.64 $0.00 eBay
M3x20 screw (fan duct) $0.40 2 8 10 $4.02 $0.00 eBay
M3x25 screw (sliders/carriages, top vertices, Panel Due mount) $0.28 10 10 20 $5.57 $0.00 eBay
M3 Nut $0.11 30 20 50 $5.71 $0.00 eBay
M3 T-nut $0.18 39 11 50 $8.99 $0.00 eBay
M3 Washer $0.35 3 7 10 $3.50 $0.00 eBay
M4x6 screw (power supply) $0.41 4 6 10 $4.07 $0.00 eBay
M5x8 screw (Duet panel, power panel, plywood floor) $0.32 19 1 20 $6.48 $0.00 eBay
M5x10 screw (top & bottom vertices, Panel Due mount, spool holder) $0.24 51 19 70 $16.62 $0.00 eBay
M5x16 screw (bed frame) $0.33 12 8 20 $6.64 $0.00 eBay
M5 T-Nut $0.23 80 20 100 $22.96 $1.86 Ultibots
Short wood screws (1/16-inch diameter; for cable management clips) $0.14 8 17 25 $3.50 $2.75 eBay
Printed Parts
Filament (price per kg).... $21.55 MakerGeeks
Total mass of printed parts from Table 2 (g) (Note: "A few more" column is percentage for waste) 1447 723 2170 $46.77
Styrofoam insulation for heat bed (way more than needed!) $6.50 1 0 1 $6.50 $0.46 Lowes
Plywood (400x300mm) 1 0 1 Had on hand
Zip ties (100-pack, 8-inch) $3.89 1 0 1 $3.89 $0.27 Target
Cable clamps, 1/4-inch (64mm); pack of 18 $1.50 1 0 1 $1.50 $3.50 eBay
PVC pipe, 1-inch diameter, ~800mm 1 0 1 Had on hand
Heat shrink assortment $4.35 1 0 1 $3.35 $0.00 eBay
Kapton (high temp) tape (wide, for heat bed) $6.98 1 0 1 $6.98 $0.00 eBay
Kapton (high temp) tape (narrow, for hotend) $2.95 1 0 1 $2.95 $0.24 Ultibots
Grand Total $946.49 $114.23 $1,175.35

Some of the downloadable Things referenced in Table 2 include multiple files. In most cases, I printed all of these files; however, in some cases I did not, because the files are variants with different sizing or because, in mixing and matching components, I needed only one or two files. In these cases, Table 2 notes which files I printed. In most cases, slicer choice is not very important; Table 2 presents this information merely for completeness. (I was experimenting with various slicers as I embarked on this project.) The infill percentage can be important for the strength of structural components such as the vertices, the 2020 slider, and the magnetic carriages. The slider and carriages, in particular, can flex when under stress if they're printed too skimpily, which can lead to poor print quality.

Table 2: 3D Printed Parts for a Kossel XL Printer
Thing Qty Slicer Used Infill Plastic Type Mass (g) per item Total Mass (g)
Kossel XL Lower frame vertex (frame_motor_2020v2.STL) 3 Slic3r 30% PETG 96 288
Kossel XL Upper frame vertex (modded_frame_top_2020sw.stl) 3 Slic3r 30% PETG 34 102
Kossel Mini 2020 Frame Brace (2020Kossel_braceV3.stl) 6 MatterControl 35% PETG 52 312
2020 extrusion end cap (Misumi_2020_Endcap_80u__v1-0.STL) 6 ideaMaker 40% PETG 2 10
Kossel bed frame 3 Slic3r 20% PETG 50 150
Anycubic Kossel spool holder 1 CraftWare 30% PETG 88 88
ROBO top spool holder (ROBO_top_spool_shaft.stl only) 1 Slic3r 40% PETG 22 22
2020 Extruder Motor Mount 1 Slic3r 30% PETG 14 14
Combined Magnetic Carriage and Slider (Magnetic-Carriage-and-2020-Slider-55mm-full.stl) 3 ideaMaker 70% PLA 50 150
Electronics panels (power & Duet) 1 Slic3r 15% PETG 44 44
Duet back panel (modified DuetRearMount.stl) 1 ideaMaker 20% PETG 18 18
Panel Due enclosure & bracket (PanelDue-7-Back.stl, PanelDue-7-Case.stl, & PanelDue-7-LM-Bracket.stl) 1 ideaMaker 20% PETG 160 160
Power supply cover (Vision_12_Volt_Power_Supply_Cover_-_Final_-_No_Switch_Hole.stl) 1 ideaMaker 20% PETG 16 26
Adjustable 2020 End Stop Bracket 3 ideaMaker 30% PETG 6 18
Delta Smart Effector Circular Cooling Fan (EffectorCircularFanDuct-270.stl) 1 ideaMaker 50% PETG 8 8
2020 Extrusion profile cover (per cm) 140 ideaMaker 20% PETG 0.23 32
Parametric U-Clamp 1 ideaMaker 30% PETG 9 9
Dust filter and oiler 1 Slic3r 30% PETG 2 2
Wing addition to M3 nut (for securing print bed) 6 Slic3r 40% PETG 0.6 4
Total mass (g) 1447

Note that the links and prices in these tables are current as of late December, 2017, or in some cases a month or two after that. No doubt things will change in the future, so you'll have to go hunting to find equivalent items. This is especially true of the eBay links. Also, one of my suppliers, RepRap Champion, has undergone changes and rebranding as Gulfcoast Robotics. I've updated the links and prices to the new site, but I've not yet bought anything from the company in this incarnation. Fortunately, most RepRap components are fairly commonplace because they're used in other products. A few specialized items, like the hot end, likely can't be found at your local hardware or electronics store; but Amazon, eBay, and specialized 3D printer retailers make it easy to find even these items.

I have a few comments on both general and specific component choices; and some others appear in the next section, too....

As described in the next section, if you use this BoM as a guide, but make some substitutions, you may find yourself making more substitutions after that. The more such substitutions you make, the more likely you are to run into problems, which may necessitate yet more changes — perhaps replacing already-purchased items with others, thus increasing your costs.

In addition to the parts that go into the printer, you'll need tools. Most of these are common household tools such as screwdrivers and needle-nose pliers. Others you may own if you tinker with electronics, such as a soldering iron, wire crimper, and multimeter. If you don't have these tools on hand, be sure to budget for their purchase.

If you want to build a printer that's similar to mine but at lower cost, I have a few suggestions:

The next section can be considered an extended caveat to the advice about how to save money; when you swap out one component for another, this may require another substitution, and so on until you can find a break point. On the other hand, another source (a few are listed in the references section) may provide a design closer to what you want to build, so following it may make sense.

On the Fundamental Interconnectedness of All Things

If you buy a 3D printer kit, its manufacturer will have (or at least should have) picked compatible parts, so you should find that everything fits together perfectly. In practice this may not be true, but a kit is likely to fit together more easily than a bunch of components you buy from different vendors following instructions you found on the Internet. If you go to various online and brick-and-mortar stores to buy components separately, you're almost certain to run into problems with incompatible components. This effect is made worse if you deviate from whatever design you're following. The next few sections describe how all the components of a Kossel 3D printer fit together, and therefore the main compatibility issues you may encounter. Although substitutions are possible, they can result in hours of time spent tracking down other components that you might have to substitute, because changing one item can have a domino effect on the rest of the design.

Because the various components are so interrelated, the following sections contain a fair number of forward references. This is unavoidable. If you want to build a printer from scratch, and especially if you want to deviate in any way from a design you've found, you may need to read the following two or three times, or combine it with other sources of information, before you'll be able to properly design what you want, much less build it.

The Extruder

Contrary to what you might think by the name, the extruder does not extrude molten plastic. Instead, it's basically a set of gears that pushes room-temperature plastic into the hot end. In the case of a delta printer, the extruder usually employs a Bowden configuration, in which the extruder and hot end are separated by significant distance and connected by a polytetrafluoroethylene (PTFE; commonly called Teflon) tube. This contrasts with a direct drive configuration, in which the extruder sits atop the hot end and feeds filament directly into it. This separation is done in the interests of saving weight on the hot end — the design of a delta printer is more sensitive to weight on the hot end and effector than is the design of a typical Cartesian printer.

My extruder

Figure 4: The extruder is basically a NEMA 17 motor with bits attached so it can push filament into the hot end.

In any event, there are three main compatibility issues for the extruder:

Extruders are very simple devices; for the most part, they're simply motors with a few small bits attached to drive and guide filament into the hot end or Bowden tube. Some people use 3D printed parts for a few extruder sub-components, but I bought a manufactured extruder so as to save myself from digging through more Thingiverse listings and figuring out what else I'd need to buy. I initially bought this model, which is explicitly described as a Bowden extruder. I had minor problems feeding filament through the extruder into the Bowden tube, though, and more serious problems with jams. I tried fine-tuning and replacing numerous lower-cost components to deal with the jams, with no luck. Thus, I tried replacing my extruder with the expensive ($70) E3D Titan extruder, which has received rave reviews and is shown in Figure 4. This change eliminated my filament loading problems. Jams continued, although the problem was reduced in magnitude. I believe my jamming problem is caused by an interaction of at least three factors:

A print problem: stringing

Figure 5: Stringing is an obvious and ugly artifact, although it's easily removed.

In addition to jamming problems, a long Bowden tube can also create problems with stringing, as shown in Figure 5. When the hot end moves from one area of the print to another, it can leak molten plastic, which creates thin lines of plastic in the pattern of these moves. To be sure, this is an issue with all FFF printers, but with a direct-drive design, you need only configure your slicer to retract the filament by a short amount (perhaps 1mm) before such moves. With a Bowden configuration, the amount of retraction required is much greater — I found I needed at least 6mm of retraction to avoid the worst stringing artifacts. The greater the retraction, the greater the risk of jamming, which exacerbates the inherent jamming issue with Bowden configurations.

A final problem with a long Bowden tube is that it is difficult or impossible to print flexible filaments with such a setup. Being flexible, these filaments are prone to buckling, and they usually require slow print speeds with little or no retraction. Adding a Bowden tube to the path creates more opportunities for these problems to manifest.

At least two alternatives to the conventional setup with a long Bowden tube exist:

I've not tried either of these configurations, although I am considering trying a flying extruder or even buying a Zesty Nimble. Either way, this will be the third extruder (or at least, extruder configuration) on this printer, which is a good indication of how troublesome this component has been with this build.

The Hot End

As noted earlier, the hot end is the part of an FFF 3D printer that melts and extrudes plastic. It's roughly equivalent to the print head on a 2D inkjet printer. Dozens of models are available; see here for a visual comparison of some of them. In choosing a hot end, two decisions are necessary: Which design to use and whether to get an original product or a clone.

Choosing a Design

Hot ends interact with a few other aspects of a 3D printer, most notable of these being:

Hot ends are themselves composed of several components that interact with one another, and that can sometimes be interchanged:

My extruder

Figure 6: Hot ends vary in size and shape. On the left is the Hexagon hot end from my Robo 3D R1+ and on the right is the E3D V6 hot end used in my Kossel.

The most critical distinctions between hot ends are in their heat sinks, heat breaks, and heater blocks. Their heat sinks determine how the hot ends mate to the rest of the printer; their heat breaks determine how hot they can operate and how well they handle different materials; and their heater blocks determine how you affix the heater cores and thermistor. The overall design can be important, too; these factors include overall weight and size and how reliably the hot end as a whole functions.

I looked at a number of hot ends when I designed my printer; however, the choice came down to two in the end. Most other hot ends lacked support for printing at above about 250 degrees or were so exotic that finding matching effectors would have been nearly impossible. My two final contenders were:

Based on design specs alone, it looks like the Hexagon is the better deal; however, the popularity of the E3D V6 gives it a huge advantage: There are more effector designs to fit it than to fit the Hexagon. To be sure, some generic effectors fit both, but then you must find a part-cooling fan that fits both the hot end and the effector (or do without this fan). Designing an effector from scratch is also a possibility, but when I began this project, I was not yet good enough at 3D design to attempt such a task. (I eventually did design my own effector, but that happened long after I decided to use an E3D V6.) In addition, although I found no head-to-head comparison reviews, the overall impression I got was that the E3D V6 was a better hot end than the Hexagon. Thus, I went with an E3D V6. Because I didn't want to risk problems caused by a poor clone, and because I wanted to support the company that designed it, I sprang for the genuine product, at $63.38. The next section covers this aspect of my decision in more detail.

Send in the Clones

The E3D V6 was designed in England and is manufacturered there; however, the design is open source, and so Chinese companies quickly began making clones, which are available for a fraction of the cost of the original — typically about $15 (and sometimes $10 or less), vs. $60 or so for the original. Given this cost difference, many people, quite understandably, opt for a clone. Advice on this subject is split. Some people say that clones vary greatly in quality, but tend overwhelmingly toward being less reliable than genuine E3D V6 hot ends. (You seldom know who made a particular E3D V6 clone.) Most E3D V6 clones use PTFE tubing in their heat breaks, so they can't be used with materials that need temperatures above about 245oC. Buying a genuine product also contributes to the research and development budget at E3D, so that they can come out with future products. On the other hand, if you're on a tight budget, spending 1/4 the amount of money is appealing, and many people find that the clones work fine for them.

A clone vs. original E3D V6

Figure 7: A clone (left) and original (right) E3D V6. (The original E3D V6 comes with a "sock" for the heater block, which appears to the right of both hot ends.)

Out of curiosity, and to have a backup in case my genuine E3D V6 hot end fails, I bought a clone for $11.62 (shipped) on eBay. I have yet to print with the clone, but some differences between it and the original are apparent even by reading the eBay ad or by a simple visual inspection:

A clone vs. original Hexagon hot end

Figure 8: A clone (left) and original (right) Hexagon hot end.

Of course, if you buy a V6 clone, you may find that it's very different from the one I've just described. I've presented the above litany of differences mainly to illustrate that the clones really are (or at least can be) different. Some of these differences may not be very important, but others, like the 0.1mm difference in mounting neck size and use of PTFE lining in the clone's heat break, could be quite consequential.

Although clones of the E3D V6 are all the rage, some other hot ends are available as both genuine and cloned products, too. In order to have a backup for my Robo 3D R1+'s Hexagon hot end, I decided to buy a cheap clone for it, too. I paid $21.55, less than half the price of a genuine product. What I got, sadly, will be useless in my Robo, or in most designs intended for a real Hexagon hot end. The reason should be obvious in Figure 8: The clone is huge compared to the original! To add insult to injury, the mounting neck, which is 4.6mm tall on a genuine Hexagon, is 6mm tall on the clone. Overall, this "Hexagon" clone looks more like an E3D V6 clone, but with a hexagonal heat sink rather than the cylindrical V6 heat sink. The clone's heat sink has a minimum 22mm and maximum 25mm diameter, vs. a uniform 22mm for an E3D V6 or clone; and the Hexagon "clone" is even taller than an E3D V6. Thus, the clone "Hexagon" might not fit properly in a tight-fitting E3D V6 effector or print head. In fairness to the seller, the eBay listing for this hot end did include a diagram that provided all the measurements, albeit at a resolution that made it barely legible. I mention all of this to serve as a cautionary tale. If you're not careful about what you buy, you might end up in a similar situation. For whatever it's worth, I printed out a version of my parametric effector to try out the Hexagon clone, and it worked fine when printing PLA. There was a caveat, though: When I tried to tune the thermal response of the hot end, my Duet board reported that the hot end's heater core was over-powered, which made it difficult to control. This was likely an issue when I tried to increase the temperature to 240 degrees (near the hot end's temperature limit) to print PETG; the hot end's temperature jumped up past 250 degrees and it clogged badly. I suspect the heat crept up too far in the heat break and melted either the PTFE liner or some of the plastic I was trying to use. I have yet to clean it out, and I may not bother, given that I've since changed my effector, as described in the next two sections.

Be aware that many sellers of Chinese knock-off E3D V6 clone hotends, particularly on eBay, include "J-Head" in their descriptions or product names, which leads to confusion. This appears to be a matter of Chinese eBay sellers overloading their product descriptions with related, but inapplicable, terms in order to drive searches to their products. J-Head hotends used to be quite popular, so including that term would drive searches for the popular J-Head hotends to these E3D V6 clone hotends. Although I get the impression that E3D V6 hotends are now more popular than J-Head hotends, eBay listings continue to inaccurately describe E3D V6 clones as being J-Head hotends, but they aren't. If you want a J-Head hotend, be sure that's what you get, not an E3D V6 clone that's been inaccurately described.

The Effector

My effector

Figure 9: My effector is printed in three parts: the main mount, a part-cooling fan duct, and a triangular cap to lock the hotend in place.

On a delta printer, the effector holds the hot end in place. It connects to the six rods that in turn connect to the motion carriage. Thus, a few interactions need to be considered when selecting an effector:

In addition to these issues of physical compatibility, effectors vary in other features. I wanted a print cooling fan and a bed Z-probe sensor, both of which must normally be mounted on the effector, thus necessitating either explicit support for these features or at least a design amenable to adding these components. Furthermore, the design features can affect print quality. Arm spacing, in particular, can affect stability, which in this context refers to the effector's ability to remain level. Poor stability results in print artifacts and difficulties getting consistent readings from some types of Z-probes. Wider spacing between parallel rods improves stability, as does bringing the parallel rod sets closer to the center of the effector. These two ways of improving stability are mutually incompatible past a certain point, of course. A physically large effector can limit the build area because it may bump into the frame or bed-related objects, such as nuts used to hold the bed down. Finally, minimizing weight of the effector is important in a delta design; extra weight makes it harder for the motors to accelerate or decelerate, which reduces print speed and may introduce print problems.

Initially, I went with this effector, which includes built-in print cooling ducts for a fan and a mount for an inductive sensor. It is, however, a rather heavy effector, at 54 grams; and the combination of its inter-rod spacing and distance between the rod connector axis and hot end makes for middling stability. Furthermore, the inductive bed probe mount is rather far from the hot end's nozzle, which increases measurement errors. Because of these problems, I tried designing my own effector, which I published on Thingiverse, and show in Figure 9. My design is highly parametric, which means it can be easily modified for any new hot end that might appear in the future. Unfortunately, although my effector considerably reduced bed-height measurement errors compared to the first effector I tried, the errors remained unacceptably high (close to 1mm variation across the entire bed). The result was that, although I could use the G32 command to tell the printer to automatically set many delta design parameters, I could not make good use of the G29 command to fully level the bed. Thus, I decided to spend the extra money on a Delta Smart Effector, as described in more detail in the next section.

The Bed Probe

My bed probe

Figure 10: Bed probes come in many shapes and sizes. One of the more obvious is an inductive sensor, like this one.

The bed probe is an optional component; a Kossel printer can operate just fine without one. A bed probe enables precise measurement of the distance from the effector to the bed. This can help in two ways. First, the printer's firmware can use a series of effector-to-bed measurements at various places on the bed to help simplify initial setup and configuration, which can be quite tedious, particularly on a delta printer. (The G32 command does this job in RepRap Firmware.) Second, a bed probe enables use of bed leveling (aka bed tramming), in which the printer can compensate in software for a tilted or uneven print surface. (This is done via the G29 command in RepRap Firmware.) This feature can, at least in theory, simplify print-to-print setup and configuration after you make changes that might alter the bed's height or level, such as removing and then replacing the bed to service the printer's electronics. It can also help if the bed is anything but absolutely flat—a common problem.

These advantages sound great, and in practice they can be useful; but they aren't without their drawbacks. Setting up and calibrating the bed sensor can take considerable effort, and the bed sensor must be compatible with other components, most notably:

The Delta Smart Effector

Figure 11: The Delta Smart Effector is a printed circuit board that functions as an effector. It provides a built-in bed probe, lights, and wiring.

The variability of bed probe designs is quite large compared to some other components, and this can create a lot of compatibility headaches. I initially used an inductive sensor with my printer because they're inexpensive and provide excellent precision. This decision created problems because of effector tilt, though, which quickly became frustrating enough that I abandoned this approach in favor of a Delta Smart Effector, as shown in Figure 11. This product combines the effector and the bed probe; it uses a built-in strain gauge to detect when the hotend's nozzle touches the bed, providing for a zero-offset design. It has some drawbacks, though, including cost (about $65) and the fact that it requires an E3D hotend, or at least something that will work with an E3D heat sink. (The Smart Effector ships with an E3D heat sink with a custom-made screw-in mount rather than the clamp-on mount that's standard with the E3D heat sink.) The Smart Effector was designed to work with a Duet control board, which is fine for me; but if you use another control board, be sure to read the Duet wiki's section on Smart Effector compatibility before buying one. I also discovered that my bed heater (a Chinese clone of the SeeMeCNC Onyx heater) creates an elecromagnetic field that causes the Delta Smart Effector to register bed contact when it's within about 100mm of the bed. This effect only occurs when the bed heater is turned on at less than full power, which is the case after it's reached its target temperature. I know of three workarounds:

Note that this issue does not occur with most bed heaters; I was the first person to report such a problem to the Delta Smart Effector's creators. Thus, if you decide to use a Delta Smart Effector, you can probably avoid the issue entirely by using another bed heater. On the other hand, there have been reports of similar issues caused by hotend fans and certain patterns of north/south magnetic polarity on the magnetic diagonal rods that the Delta Smart Effector is designed to use. This fan shroud is designed to move the hotend fan away from the effector by enough to clear the problem caused by a fan's magnetic field.

This effector design aims to achieve the same zero-offset goal of the Delta Smart Effector by adding a microswitch to the effector. I have no idea how well it works in practice. Also, for my purposes, it has a big drawback: It's intended for use with mechanical diagonal rod connections, whereas I wanted to use magnetic diagonal rods. I've seen adapter designs, but none that work with this particular effector. That said, an adapter would not be all that hard to create.

Another zero-offset bed probe technology uses force sensitive resistors (FSRs). These are small, thin discs that can be mounted between the print bed and frame or on an effector designed to use an FSR. When the hotend's nozzle touches the bed, the FSR triggers. Mounted in the bed, FSRs have certain drawbacks, such as the need to insulate them from the heat of a heated bed and the fact that the force at the nozzle needed to trigger the device can vary depending on the position on the bed, which creates a problem that's analogous to that of effector tilt with sensors mounted some distance from the nozzle. I've seen only a couple of effector designs intended for use with FSRs.

My path from an inductive sensor to the Delta Smart Effector is informative. As noted earlier, a bed sensor is used by two commands in RepRap Firmware, G32 and G29. When run, the first of these commands reports a deviation score, which measures how well the software could fit its readings to a model of the printer. For me, these started at about 0.3 (which is dismal) with the inductive sensor mounted on the first effector design I tried. I was able to bring the score down to 0.1 (which is better, but still not spectacular) by updating my effector design and going through the tedious process of mapping point-to-point differences in trigger height. Switching to the Delta Smart Effector brought a very small further improvement, to about 0.09 — which was achieved without the tedious distance mapping required by the inductive sensor. (I achieved a further improvement, to 0.04, by re-printing my carriage and slider in PLA, rather than the PETG I used initially.) What the Smart Effector really improved, though, was the ability to use G29. With the inductive sensor, this command produced a map of bed height deviations that reflected the effector tilt more than actual bed-height differences, so I was unable to use that data, and I could not reliably print objects wider than about 50mm. (I probably could have done so after doing careful and tedious manual bed leveling, but if that's necessary, the bed probe becomes essentially worthless.) With the Delta Smart Effector, the G29 height map data became usable, enabling me to reliably print objects with much larger footprints.

The Diagonal Rods

My bed probe

Figure 12: diagonal rods connect to the carriage at the top and the effector at the bottom.

The diagonal rods have two obvious connections, one issue that's not quite so obvious, and a few others that may crop up:

The biggest single compatibility issue is connector types. Traditionally, this has been via ball bearings attached to both ends of the diagonal rods and attached to the effector and carriage via locking rings. These can develop play, or be loose because of parts that don't fit quite right from the start. Either way, the result is reduced print quality. Thus, I opted for a magnetic design, with metal ball studs attached to the effector and carriage, and magnetic heads on the diagonal rods. (Specifically, I bought these diagonal rods.) Note that this particular design puts the magnets in the diagonal rods and attaches the balls to the effector and carriage. This contrasts with a traditional non-magnetic configuration, in which the balls are attached to the diagonal rods. Some magnetic designs use balls that are glued to the diagonal rods; and the diameters of the balls can vary. When you buy components in a complete set, as I did, everything should match, although you must then find matching effector and carriage designs. For more on different delta printer joint types, see the RepRap wiki page on this subject.

Diagonal rod length is also a critical issue. An oft-quoted rule of thumb is to make the rods (ball to ball) 80% of the length of the horizontal 2020 extrusions in the frame of a Kossel. Given the 360mm horizontal extrusion size of my printer, this would make for a rod length of 288mm. The actual optimum length is harder to compute, though. Up to a point, increasing the rod length produces a build volume with a larger diameter but a shorter height. Going with diagonal rods longer than 288mm would therefore increase my printer's build volume, by increasing the radius by enough that the decrease in height would be compensated, in a pure cubic centimeter measurement. There are at least theoretical effects on print quality of different rod lengths, but this subject gets complicated very fast. In the end, I settled on 304mm rods. It turns out that longer diagonal rods would have done me no good because of obstructions like the nuts I used to clamp the print bed to the frame.

To investigate the effects of different diagonal rod lengths, I recommend using the OpenSCAD delta simulator. This program runs in the OpenSCAD 3D modeling tool, which is an unusual way to do such calculations. You'll need to install OpenSCAD, then click the Clone or Download link on the simulator's github page, then open the Delta_simulator.scad file in OpenSCAD. Peruse and modify the variables in the first hundred or so lines of the program, then select Design -> Preview (F5) to see the effect. Numeric results appear on a simulated piece of paper next to the simulated printer. (You may need to zoom in to see the results clearly.) If you want to see the effect of arm length on build volume, check the Working Diam, Centre Working Height, and Minimum Working Height figures. (The top of a Kossel's build area is actually conical, so the center build height figure is slightly greater than the minimum [edge] working height.)

The Carriage and Slider

My carriage and slider

Figure 13: My carriage attaches to the diagonal rods, drive belt, and slider, which in turn wraps around the vertical 2020 extrusion.

I'm combining two separate components in this category: The carriage provides an interface between the diagonal rods, belt drive, and slider; and the slider interfaces between the carriage and the vertical frame components. Collectively, this combination requires several compatible interfaces:

I wanted a linear rail system, but as MGN12 linear rails go up significantly in price as they get bigger, I found the price tag for linear rails for my desired printer height to be too much to stomach. I therefore opted for one of the cheap designs that uses the vertical 2020 extrusions as a linear rail — specifically, this one; my print is snown in Figure 13. As noted earlier, though, this design uses an unusual 20x16mm mounting hole arrangement, which required a long search for a matching carriage. In the end, I was saved only by discovering a parametric carriage design that I could modify for my needs; my modified version is also shown in Figure 13. I made a few more minor adjustments and shared the result on Thingiverse.

My combined carriage and slider

Figure 14: A combination carriage/slider is highly specialized, but simplifies assembly. I intended it to improve stability, but its effect has been negligible compared to separate components.

Another point with respect to this topic is that the tolerances of printed parts are extremely important in motion-related components. This is likely to be less true of most designs compared to the slider I used, but if a wheelless slider that fits around a 2020 extrusion is improperly sized, it will either wobble back and forth or fit so tightly that it won't move easily. My first print of my slider was too tight; I could barely fit it over my 2020 extrusion, much less move it. I discovered that tuning my slicer settings helped: By reducing infill/perimeter overlap to 5% (for Slic3r) or 0.03mm (for MatterControl) and by reducing the extrusion multiplier to 0.9 (for both programs), the slider began working well. Of course, you might find that other settings would work better for you; printers, filament type (I used PETG initially, then PLA, as described shortly), filament brands or batches, and slicers can all affect the precise sizing of printed parts. I also needed to add a few drops of vegetable oil to the slider to properly lubricate it, and run the slider up and down the entire extrusion by hand a few dozen times. (Do this with the drive belt disconnected to avoid inducing a current that might damage the stepper drivers!) After several months, including a period of inactivity, the oil became tacky, so that might not be the best lubricant for this application. I've now cleaned the oil off as best I could and am trying a lithium/PTFE-based lubricant intended for the focusing helicoids of camera lenses and microscopes.

Once my printer was up and running, I discovered that the carriage/slider assembly flexed significantly in use. This was quite visible when the print involved quick back-and-forth movements, such as when printing infill in narrow components. This flexing may have been a result of gaps that were too large or flexing in the plastic. Because PETG seems a little more flexible than PLA, I re-printed the carriages and sliders in PLA. This seems to have improved matters; visible flexing during printing was reduced, and my G32 deviation scores dropped from 0.09 to 0.04, as described earlier, in The Bed Probe.

In an attempt to further improve matters, I created a combined carriage/slider. This design, which is shown in Figure 14, merges the carriage and slider into one piece and adds bracing material intended to reduce flexing. Unfortunately, it had little or no effect on the print quality or G32 deviation scores.

Frame Components

My lower frame, assembled

Figure 15: The lower frame is assembled, showing major frame components: Horizontal 2020 aluminum extrusions, vertices, (non-standard for Kossel) additional support braces, and bed support corners. I later added a plywood base beneath the lower 2020 extrusion. The upper frame is similar, but has fewer pieces and smaller vertices.

The frame consists of the major structural components of the printer. In the case of a Kossel, this is aluminum bars and various printed (or otherwise manufactured, in many kits) parts that connect them together. The former are typically either a 1515 (15x15 mm) or 2020 (20x20 mm) extrusions, although some Kossels use 2040 (20x40 mm) extrusions for their vertical components. Smaller ("mini") Kossels are often built from 1515 extrusions, whereas larger ("XL") ones, like mine, use 2020 or 2040 extrusions. This type of aluminum bar includes grooves in each side, which enables things to be mounted to them. In the case of a 3D printer, these "things" can include the printed components that tie the extrusions together, the slider, the extruder, motors, and various electronic items.

The Kossel page on describes a mini Kossel as using nine 240mm 1515 extrusions for horizontal beam components (six in the base and three at the top) and three vertical 600mm extrusions. I don't know of an official design document for a Kossel XL, but most kits and descriptions I've seen specify nine horizontal 360mm (or sometimes just 300mm) 2020 extrusions and three vertical extrusions of about 750mm. (I increased mine to 1,000mm, but some of that increase was sacrificed, as described shortly.) You can construct a Kossel of any size (within reason; too big or too small and you'll run into engineering limits), but the nine horizontal extrusions must be identical in size, as must the three vertical extrusions. (In principle, a delta printer could be built using a non-equilateral triangle as a base, but such configurations are extremely rare.) Substituting other forms or materials for the frame components is certainly possible, but deviates significantly from the Kossel prototype and would require significant changes to the carriage and printed frame components. If you like the idea of a delta printer but dislike the Kossel design specifically, you might look into other delta designs, such as the Rostock, Delta-Pi, or Cerberus.

Changing the height of a Kossel is trivially easy; just buy longer (or shorter) beams. Most other components, such as the diagonal rods, won't be affected. One possible exception is the linear rail, if your design uses one; it must be scaled along with the vertical extrusions. If you want a very tall printer, as I did, this will increase the price of linear rails to the point that they may be unaffordable, as described in The Carriage and Slider. Using wheeled carriages or sliders that fit directly to the vertical extrusions, though, means that you won't need to make adjustments if you go with a non-standard height. Another component that must be adjusted if you want an extra-tall printer is the drive belt; you'll need roughly six times the printer's height in belt. You'll also need longer wires and a longer Bowden tube if you want a taller printer.

Changing the size of the horizontal beams is another matter, since any such change necessitates a change to the length of the diagonal rods and print bed. Particularly if you want a heated bed, going large can become a challenge. Heated beds for a full-sized Kossel, which requires a bed of approximately 300mm, are significantly more expensive (and harder to find) than are heated beds for mini Kossels. An even larger heated bed would be even harder to find and more expensive. The size of the horizontal frame will also affect placement of any components you might want to put under the bed, such as the power supply and electronics. This is likely to be more of an issue if you want to miniaturize the design than super-size it. In fact, most mini Kossels, and even many Kossel XLs, have power supplies mounted outside the main frame, on one of the horizontal or vertical extrusions.

Speaking of the power supply mounting location, I was frustrated to learn that the combination of power supply, motors, and Duet controller board I had bought could not fit together underneath the print bed. Rather than move the Duet board or power supply outside that area, I decided to sacrifice a few centimeters of vertical build space in order to create enough vertical space under the bed to hold both the power supply and Duet board, one beneath the other. If I'd been building a shorter printer, I probably would not have done this, but with 1,000mm vertical extrusions, I was willing to sacrifice about 50mm of vertical space for this purpose.

Beyond the aluminum extrusions, you'll find a wide variety of designs for printed plastic frame components. The most important of these are the upper and lower (or "motor") vertices, which connect the aluminum extrusions to one another. Most of these, for a given extrusion size, appear to be compatible with one another; but you may want to stick with a matched set (upper and lower from one design), or at least check to be sure that the components you pick have the same outline when viewed from above, before printing them. If the upper and lower vertices put the 2020 extrusions together in ways that don't quite match, then the geometry of the printer will be compromised, leading to prints that are distorted. Instead of using printed vertices, you might want to consider using metal vertices, such as these from Robot Digg. Metal vertices are likely to be more rigid than plastic ones, which should improve print quality.

One of the challenges in assembling a Kossel is in mounting the NEMA 17 motors used to drive the sliders. The Kossel design requires tightening screws that are buried inside the bottom vertex pieces. These screws are accessible from the top and the bottom, so one solution is to use hex nut screws and tighten them using a right-angle Allen wrench (the kind that ships with cheap ready-to-assemble furniture). Some designs take other approaches. I first tried to use this approach, which splits the lower frame vertex into two parts for easier access to the mounting screws. Unfortunately, I discovered that getting the 2020 extrusions over the gap between the two parts was quite difficult, and in fact I broke one of my vertices attempting this feat. Thus, I ended up printing a replacement using this design, which instead includes grooves for easier access to the mounting screws. That worked much better.

For increased stability, particularly if you build big, you might consider using a frame brace in addition to the standard components. These provide added grip at the corners of the design. Be aware, though, that these components can interfere with some carriages or sliders, particularly if used at the top of the printer. (Most Kossels require the sliders to travel close to the top of the frame for maximum vertical space, and an extra brace will prevent this. A brace placed above the top vertex will pose problems only if the diagonal rods are too short.) In my case, I doubled these up on both top and bottom of the lower frame components, since I was raising the print bed to make room for the power supply. I also added a plywood "floor" to the bottom of the bottommost horizontal extrusions. This provided support for the Duet electronics (above the floor) and the power supply (below the floor), and theoretically might improve the rigidity of the lower triangle. Note, however, that wood isn't the safest material to use in a 3D printer, since it's so flammable. Figure 15 shows my bottom frame, minus the plywood "floor."

The Print Bed

The print bed is the surface on which your printed parts are built. In a delta printer, the print bed is circular in shape (or sometimes hexagonal; or some other shape can do in a pinch) and stationary. Its important interrelationships with other components include:

In addition to these component compatibility issues, one perennial question is what material to use for a print bed. Glass (especially borosilicate glass) and aluminum are both popular choices. My Robo 3D R1+ uses glass, but within the first month of ownership, it developed three small chips, which turned me off to glass. Aluminum is also more thermally conductive than glass, which means an aluminum bed will heat up to a more uniform temperature than a glass bed, particularly if the heating element is uneven in its heat distribution. Thus, I opted for aluminum for my Kossel. I quickly discovered, though, that a print head (especially the stainless steel nozzle I bought) can gouge channels into an aluminum bed if it's accidentally driven too low. Covering the bed in Kapton or painter's tape might be prudent, especially when calibrating the printer and running the first few prints.

When selecting heated bed components, be sure your aluminum or glass printing surface is thick enough. The common advice is to use aluminum that's at least 3mm (or 1/8 inch, which is 3.2mm) thick, since thinner aluminum tends to warp when heated, which will make bed leveling difficult. If you go with glass, thicker glass will be more resistant to breakage, as will borosilicate glass; but I haven't seen much of a consensus on just how thick a glass bed should be. Some people say 1.75mm is thick enough, but others advocate 3mm or thicker.

You may want to consider insulating the underside of a heated bed. This will both reduce the bed's warm-up time and protect electronics housed under the bed from the worst of its heat. I used styrofoam insulation for this purpose, but other options include cork, wool, cardboard, fiberglass, and several others. This site provides tests of a few materials. Adding a ventilation fan to protect your electronics is also worthwhile. Of course, mounting the control board away from the heated bed is another way to protect it from the heat.

My heating element is one of the few components I bought direct from China, because I found it difficult to locate a ~300mm heating element in the US, especially at a tolerable price. I didn't realize it at the time, but what I bought is a clone of the SeeMeCNC Onyx bed (which I had not discovered when I ordered my heating element); however, what I got is marked as a "rev. 6" board, whereas SeeMeCNC is currently selling "rev. 10" products. Also, once I assumbled my printer, I discovered that the build area wasn't quite as large as I'd hoped — it maxes out at about 260mm. Heating elements of that size are both more common and less expensive than are ~300mm heating elements. In hindsight, therefore, I might have been better off buying one of them.

The Power Supply

A 3D printer's power supply is similar to the power supply in a computer; in fact, it's possible to use a computer power supply as a 3D printer power supply — printers without heated beds can get by with laptop-style power "bricks," and those needing more power can use ATX-style power supplies. Many 3D printers, including my Kossel, use a format of power supply that's more commonly used with LED lighting products, though. Whatever the choice, there are several compatibility issues with power supplies:

My own design puts all of these electrical components underneath the heated bed, tucking them away where they're less likely to be accidentally touched. I used push fittings on the back side of the AC power socket, fuse holder, and power switch so as to provide some insulation between them and the aluminum frame; I did not want a soldered connection to come loose and create a short with the frame! In hindsight, I think an ATX-style power supply might have been a better choice, but it's not worth the effort to replace my working configuration.

For more on power supplies, see the RepRap wiki page on the subject.


My Duet electronics board

Figure 19: A large number of wires converge on the Duet electronics board in my printer. Note that the heat bed (top left) is connected via a clip-together connector, so that it can be completely removed.

Every 3D printer holds a simple computer that functions as the device's "brains." Traditional designs use an Arduino Mega or similar processor. This is an 8-bit CPU, and devices that use it typically hold about 8 KiB of RAM and have about 256 KiB of flash storage. In other words, they're roughly comparable in power to an Apple II from around 1980. This is adequate for most Cartesian printers, but such a controller struggles to keep up with a delta printer. For these, something more powerful is desirable, such as a Smoothieboard or Duet. These boards are based around 32-bit ARM CPUs, and they have roughly 128 KiB of RAM and 512 KiB of flash memory. In other words, they're roughly comparable to early Macs or PCs from the mid-to-late 1980s. These devices are still woefully underpowered compared to modern PCs, but they aren't expected to play dynamic 3D games, just crunch numbers for 3D printing static objects. To be sure, an 8-bit board can control a delta printer, but a 32-bit board is likely to produce smoother operation and may enable faster print speeds. As an added bonus, Smoothieboards and Duets both provide network connectivity, so you can upload files to the printer without moving an SD card around. You can also perform firmware updates, adjust settings, and control the printer remotely by using a computer, tablet, or cell phone.

The key difference between 3D printer electronics and low-end computers like Rapberry Pis is that 3D printer boards provide specialized input/output connections so that they can control stepper motors, hot ends, heated beds, and so on. (You can see this wiring converging on my Duet board in Figure 19.) Most importantly, these connections include stepper drivers, which are chips that control stepper motors. 3D printer control boards either ship with stepper drivers soldered in place or accept stepper drivers on small plug-in boards. Any product sold for 3D printers should work with most designs, but different stepper drivers can provide different levels of control precision, be noisier or quieter, and vary in other ways. In addition to providing faster CPUs, 32-bit boards often come with higher-quality stepper drivers soldered in place; but cheaper 8-bit boards are usually designed to use removable drivers, so you can replace the default cheap drivers with something better. Removable drivers can also be a boon if a driver should burn out, as can happen if you disconnect a stepper motor while power is applied or move the print head by hand too quickly.

Whatever type of electronics you choose, you must ensure its compatibility with a number of other printer components, including:

Because an Arduino-based solution can barely keep up with the more complex calculations required by delta printers, I recommend going for something that's ARM-based. After much research, I settled on a Duet WiFi. Every direct comparison I found between Duet and Smoothieboard suggested that the former was better for delta printers because of superior handling of delta calculations. That said, as I have no personal experience with a Smoothieboard, I can't say how true this is. If you must use an Arduino-based board, I've heard claims that the Repetier firmware imposes a lower CPU load than the Marlin firmware, so you might want to use the former; however, I have no personal experience with Repetier firmware, and I've used Marlin only on my Robo 3D R1+ Cartesian printer, so this advice is based on hearsay.

Note that the Smoothieboard has been cloned by several Chinese companies. Clones include the MKS-SBASE and Azteeg X5 Mini. These clones typically cost about half what a genuine Smoothieboard costs (roughly $80 vs. $160, for the x5 model), so they can be appealing if you want to cut costs. I can't comment from personal experience on how these Smoothieboard clones work. Apparently the MKS-SBASE design deviates significantly from the original Smoothieboard design and has not been released as open source, which the original Smoothieboard license requires. This may make it difficult to get support for the product. Chinese clones of the Duet products have also begun to appear since I built my printer. These typically cost about $85 on AliExpress to $140 on eBay, as opposed to $170 for the genuine article. It's unclear who's making these clones, and I have yet to see reports of how well they work; but the ads make them look almost identical to the original. For both Smoothieboard and Duet clones, bundles with color touch screens are common. As with hot ends, using a clone means that you're depriving the products' designers of income that would help them to develop future products. Thus, if you can afford it, I recommend buying an original Duet or Smoothieboard rather than a clone.


A pair of t-nuts

Figure 21: T-nuts come in both pre-assembly (left, M5) and post-assembly (right, M3) varieties.

The least flashy components can sometimes create the biggest headaches. Screws, nuts, washers, and similar items can be a frustration because you may have a hard time finding the right items and because it may not be obvious what type of connecting hardware you're supposed to use. (Many designs on Thingiverse are annoying in their lack of specificity on this point.)

My bill of materials (BoM; Table 1) provides a rough estimate of the connectors I used in building my printer. My record-keeping is far from perfect, though, and you may find you need different hardware because of small changes you've made in the design or because you're using different types of hardware — two screws with different head types might fit differently and therefore need to be of different lengths to be used in the same place.

Most of the screws and nuts are common metric sizes that are readily available even in US hardware stores, although buying online in bulk is likely to be more cost-effective. One relatively rare item is the t-nut, which is an oversized nut with a rectangular shape that fits inside the grooves of a 2020 aluminum extrusion, enabling items to be mounted to the frame. These nuts are available in two varieties: pre-assembly and post-assembly. The former can be inserted only from the ends of the extrusions, and so must be placed before finishing assembly of the frame. Post-assembly t-nuts have two rounded corners, which enables them to be inserted sideways and then turn in one direction as a screw is turned, enabling them to lock in place. Note that what you need are the rectangular t-nuts for 2020 extrusions, as shown in Figure 21, not the cross- or star-shaped t-nuts for use with wood furniture and that are available at my local hardware stores. You're likely to need a mixture of M3 and M5 t-nuts, with the exact mix depending on the exact components you use. In a pinch, search Thingiverse; there are designs for adapters that turn regular nuts into t-nuts. I've never tried them, though.

Configuring Software

A 3D printer is useless without software. This includes both the firmware on the printer itself and software you run on your desktop or laptop computer to download or create 3D models and to slice those models for delivery to the printer.

The Duet control board I used runs RepRap Firmware, which is designed for ARM processors and is different from the more common Marlin and Repetier firmware, both of which were originally designed for 8-bit Arduino (and similar) boards. (32-bit versions of both Marlin and Repetier are now available, though.) Unlike Marlin and Repetier, RepRap Firmware keeps its configuration in files, so you don't need to recompile and re-upload the firmware whenever you make a trivial change. RepRap Firmware also provides a Web-based user interface (UI). My second-choice control board, the Smoothieboard, another 32-bit ARM-based product, uses firmware called Smoothieware, which has features that are roughly comparable to those of RepRap Firmware. In any of these cases, you should check the documentation for your controller board to learn what firmware you can use. (You may have multiple options for some hardware.) Likewise for setting up and configuring the firmware. My experience with the Duet is that its documentation is mostly adequate, but relevant information is sometimes spread across multiple pages of its wiki, so I sometimes had to do Google searches to figure out what values to plug into the configuration files. Smoothieware's documentation seems to be a little better, but as I've never actually configured a Smoothieboard, it could be I haven't delved far enough into it to have found its problems.

The software options that are most relevant for this page relate to slicer software. Most slicer programs support Cartesian printers just fine; however, some slicers don't explicitly support the round bed of a delta printer. The Duet's flavor of g-code also creates problems for some programs. Furthermore, some Duet features work well with some programs but not with others.

To one degree or another, I've used five or six slicer programs with both my Robo 3D R1+ and my Kossel XL: ideaMaker (version 3.3.0), Slic3r (version 1.2.9; and its Prusa Edition variant, version 1.39), Craftware (version 1.20 beta), MatterControl (version 1.7.5), and Cura (version 3.4.1), in more-or-less that order of preference. (Note that I use Linux as my main OS, so some of my preference are related to Linux-specific issues, which I don't cover here.) Some of these programs have problems that are unique to the delta design or to the RepRap Firmware used by my printer's Duet control board:

Because pre-3.3.0 versions of ideaMaker had more Kossel- and Duet-specific issues than my second-choice Slic3r, I'd been using Slic3r more with my Kossel. (Note that there are two versions of Slic3r; the original and a version updated by Prusa. The latter has enough improvements to be worth using.) With the release of ideaMaker 3.3.0 and its explicit support for circular beds, I expect I'll use it more with my Kossel XL. Even before building my Kossel, I'd relegated Craftware, MatterControl, and Cura to backup status; between them, ideaMaker and Slic3r handle most of my needs. Thus, I have much more experience with ideaMaker and Slic3r on my Kossel than I have with the other three programs. My main reason for putting Cura last in my list is that it has the impressively bad ability to completely hang my main Linux-based desktop computer. It's more reliable on a laptop I sometimes use, though.

Two other popular slicers are Repetier-Host and Simplify3D. I played briefly with the former with my Robo 3D R1+, but by the time I got to it, I'd already become familiar with several others, and I didn't see anything compelling enough in Repetier-Host to make me want to switch. Simplify3D gets excellent reviews, but it's pricey ($149) commercial software, and the free and open source alternatives do what I need, so I'm not motivated to spend the extra money. Thus, I can't comment on how either of these programs, or other more obscure ones, work with either delta printers generally or printers built around a Duet board.

Note that, aside from briefly using MatterControl to set up my Duet, I've never used any of these programs when connected to my Kossel via the USB interface. My interactions have been exclusively via the Web interface. Thus, I can't comment on how well any of them would work when controlling the printer via a USB cable, or even in transferring files in this way.

Evaluating the Working Printer

How does my printer work? Quite well, overall, although it didn't get there immediately. My first prints were awful because I began doing test prints before fully calibrating the printer. Because of lessons learned when making those first prints, I revisted certain design decisions and made changes, some of which I've described earlier on this page. I also fine-tuned the configuration, which was tedious, even with the help of so-called "automatic" tuning procedures in the RepRap Firmware. (This is not a criticism of that firmware, though; calibrating a delta printer is hard!) Fine-tuning my slicer settings required more experimentation. Even before I got all the settings right, it was quite a thrill to see the printer I'd built from a stack of parts, some of which I'd designed, spring to life and begin printing!

A 3D Benchy sample print

Figure 22: Early (left) and fine-tuned (right) 3D Benchy prints

Figure 22 shows two sample prints of 3D Benchy, a standard 3D printing test object, printed in PLA. The Benchy on the left was one of the first successful prints from my printer. You can see it's quite stringy, which is an artifact caused by inadequate retraction settings in my slicer. It also suffers from a wrinkly prow, which is caused by inadequate cooling on overhangs. The Benchy on the right is a later creation, which has tamed the stringiness via retractions of 6mm and improved the part cooling.

One of the biggest challenges I faced was in improving dimensional accuracy. Early on, 20mm test cubes came out a little bit tall (about 20.1mm) but narrow (19.6mm, give or take 0.2mm), with some slides sloping or curving a bit. The X/Y dimension errors are the result of incorrect settings for the diagonal rod length (set via the L option to the M665 command); setting a rod length that's too long results in printed objects being too small, whereas setting the rod length to a too-small value results in objects that are too big. Thus, after setting the values based on your measurements, printing a calibration cube and measuring it is worthwhile. You can then adjust the rod length value as necessary.

Objects with sloping sides or inconsistencies between the X and Y dimensions can be the result of tiny build flaws, such as a vertical extrusion being misplaced by a fraction of a millimeter or diagonal rods that aren't quite identical in length. The printer's firmware can be configured to correct for some such flaws, and in fact the RepRap Firmware's auto-calibration is supposed to do that. This Thingiverse design can help you check for such problems. The provided description includes instructions on adjusting the firmware to correct for such problems, but it assumes the use of Marlin firmware, so you'll need to "translate" the procedures if you use something else. Note that such corrections are likely to require overriding the firmware's auto-calibration results, and so may be wiped out if you run the auto-calibration routine again. Note also that if you make calibration adjustments that fix sloping sides on a cube, you may need to measure the dimensions of a freshly-printed cube, adjust the rod length, and then re-calibrate the other factors. You may need to iterate over this process several times before everything is printing accurately. Achieving dimensional perfection is notoriously difficult with delta printers, so you may have to accept some small deviations.

Because of a delta printer's extreme sensitivity to build errors and the difficulty in correcting them, this class of printer may not be the best choice for making precision parts, such as components for another printer. For all its flaws and annoyances, my Robo 3D R1+ printer produced much more dimensionally accurate parts from the start. Of course, the Robo is a manufactured product, with firmware settings that were pre-tuned, at least to some extent, so this may not be a fair comparison.

A Homo erectus skull printed on my Kossel XL

Figure 23: A Homo erectus model printed on my Kossel XL

For prints like figurines and vases, which don't require much dimensional accuracy or precision, a delta printer can work fine, even when not completely tuned. That second Benchy, for instance, looks pretty good. I've printed figurines, vases, soap dishes, and other objects on my Kossel, and these all work fine, even if their X/Y/Z proportions are off by a small amount. Figure 23 shows a model of a Homo erectus skull I printed on my Kossel XL. This was a punishing print; it took over two days to complete, at 0.1mm layer height. Unfortunately, the hot end heat sink worked loose partway through the print, which resulted in some unevenness of layer lines, which aren't clearly visible in Figure 23. Despite this flaw, and "scarring" from support material on the back of the skull, I'm happy with this print.

Early in this page, in Setting Design Goals, I noted a number of problems with my Robo that I hoped to overcome with my Kossel XL. To revisit these issues and specify what I achieved, here are the original issues:

Overall, then, I'm happy with my Kossel XL. In most respects, it's a slightly better printer than my Robo 3D R1+, although its susceptibility to jams is disheartening. That said, neither printer is reliable enough that I'd give it to somebody who's not a technologically-savvy tinkerer. Both printers require obscure adjustments and regular minor repairs, and I consider myself lucky when I get either printer to fail on fewer than 4 in 10 prints. (Fortunately, most failures occur within a minute or two of starting a print.) This is, I think, simply the state of 3D printing today, particularly among home and hobbyist printers. The state of the art is improving, though. For instance, Prusa recently released its i3 MK3 model, which incorporates a number of features that should improve reliability and usability, including a filament run-out sensor, the ability to resume a print after a power failure, and a flexible magnetic build plate to make print removal easier. Given a few more years of incremental improvements like these and 3D printing may become commonplace. In the meantime, hobbyists and tinkerers can play with low-end products, kits, and build-it yourself projects.

How to Avoid My Mistakes

I learned a lot in building my Kossel 3D printer. In fact, its design changed significantly between the time that it first began working and now, and it may change more in the future. In the interest of helping others avoid some of my more painful and costly lessons, I offer the following advice:

Of course, we learn more from our mistakes than from an easy and successful first attempt. That's one of the reasons that a build-it-yourself project like my Kossel can be such a valuable learning experience. I've learned, through sometimes painful personal experience, about electronics, delta printer effector tilt, 3D modeling, and so on. Of course, if you read this page, you may avoid some or all of my mistakes, only to make your own.

Beyond flat-out mistakes, there are decisions I made that I'd make differently if I were to embark on this project anew. Some I've already corrected, such as my switch to a Delta Smart Effector. Others I may change in the future, such as switching to a flying extruder or Zesty Nimble. Other changes involve too much work or are too minor to be worth trying, such as replacing the vertical 2020 extrusions with 2040 extrusions, using metal vertices, or replacing the LED lighting power supply with a computer ATX power supply.

References and Additional Information

I've scattered references to outside resources throughout this page. Gathered here are the more useful of these references, along with a few others (mostly specific sub-pages of larger pages I've referenced earlier).

copyright © 2018 by Roderick W. Smith

This document is licensed under the terms of the GNU Free Documentation License (FDL), version 1.3.

If you have problems with or comments about this Web page, please e-mail me at Thanks.

Return to my main Web page.