In this entry I describe how I built a largish delta printer based on the Kossel design. It started up as an upgrade to the Mini Kossel that I describe in earlier posts, but now there is very little of the Mini Kossel left in it.
Two months ago I had two 3D printers: a Ormerod 1 (upgraded to dual extruder and aluminium X arm) and a Mini Kossel (upgraded to Duet electronics). Each had some advantages over the other. The Ormerod has a larger build area (200 x 210mm) and can do 2-colour printing. But if I want to print ABS with it, I will need to upgrade some of the plastic parts from PLA to ABS. My experience of printing ABS prints on the Mini Kossel tells me that I will also need to build an enclosure for it – not easy because of the large footprint it occupies, on account of the moving bed.
The Mini Kossel prints faster than the Ormerod for the same print quality. It takes up less space, is more portable, seems more stable, and requires less maintenance. Its heated bed heats up very fast. I have done successful ABS prints on it by using plastic bags as a temporary enclosure. But the build area is only 170mm diameter.
So I decided to upgrade my Mini Kossel to support a larger build area. My original plan was to re-use all the original Mini Kossel parts except for the bed, horizontal extrusions, diagonal rods, and power supply. I would keep the original vertical extrusions, and sacrifice some build height because of the longer diagonal rods. I successfully implemented the plan, but the reduced build height turned out to be a problem. So I decided to increase the build height, which meant changing from 1515 extrusions to 2020. The result is almost a completely new printer; so I will present the design as a new Kossel build rather than an upgrade.
- Bed diameter: 330mm, of which 300mm printable
- Build height: 480mm at edges, 540mm at centre
- Total height: 1m
- Filaments: PLA and ABS capable
– Native USB port
– Ethernet supporting telnet, web interface, control via smartphone, HTTP and FTP file upload
– Colour touch-screen control panel
- Single extrusion, upgradable to dual
- Differential infrared Z-probe
A printer of this height requires at least 2020 extrusions, so that is what I chose. My choice of 1m high extrusions was because this felt about right, and it reduces the price slightly because this is one of the standard lengths sold by Motedis.
Using the assumption that the required bed power scales up approximately with bed area, I calculated that a 350W heater should be sufficient and give an acceptable heating time to 110C for printing ABS. At this level of power, a mains powered bed is a more practical option than a 12V or 24V heated bed. Fortunately, the fixed bed of a delta printer lends itself to mains power with fewer safety concerns than for printers with moving beds. A mains powered bed heater is easily controlled using a zero-crossing SSR.
The use of mains power for the bed meant that I needed a mains inlet. Using 2020 horizontal extrusions, the standard designs for lower frame vertices provide a 20mm gap between the extrusions. This is just enough to accommodate an IEC mains inlet; but sadly, I was unable to find a combined IEC inlet and fuse holder or switch to fit in that space.
I have been very happy with the Duet electronics. The firmware for it provides an excellent web interface and probably the best delta support of any electronics, featuring segmentation-free delta movement and single-iteration 3, 4, 6 or 7-factor auto calibration. However, the board supports only one extruder, so you need to buy the piggyback Duet Shield or the Due X4 expansion board if you want more.
Since I upgraded my Mini Kossel to Duet electronics, the electronics has not been under the bed. I prefer it to be more accessible anyway. With mains power already going into the printer to power the bed heater, it seemed natural to fit the 12V power supply under the bed instead of the electronics. This avoids the need for an external power supply enclosure, and keeps all the mains wiring out of the way of prying fingers.
Extrusions, corners and accessories:
- 5 off 2020 x 355mm aluminium extrusion (Motedis or Mitsumi, see note)
- 2 off 2060 x 355mm aluminium extrusion. Alternatively, another 4 off 2020 x 355mm (see note).
- 3 off 2020 x 1m aluminium extrusion, preferably with one end M5 tapped (see note)
- 1 set 2020 aluminium Kossel frame vertices including idler pulleys(Robotdigg)
- 6 off 623ZZ bearings for the idler pulleys
- 250mm x 250mm x 2.5mm sheet aluminium (update: use 300mm x 300mm x 2.5mm instead if you want to put the electronics under the bed as well as the power supply)
- Approx. 70 x M4 and M3 T-nuts to fit extrusions (Motedis)
- 6 off 6mm x 4mm x 315mm carbon fibre tube (I got mine from Think3DPrint3D)
- 12 off Traxxas 5347 rod ends (update: I suggest you buy 2 packs of 12, so that you can pick the 12 best ones)
- 12 off M4 x 20mm set screw
- Slow-set epoxy resin (e.g. Araldite Ultimate)
- 330mm diameter x 5mm aluminium plate (eBay)
- 2 or more 330mm diameter x 4mm float glass bed plates (my local glass merchant)
- 300mm diameter silicone heater with 100K thermistor (Shenzhen Ali Brother Technology Co. via Ali Express – be sure to specify 350W power @ your mains voltage, and 100K thermistor)
- 330mm diameter x 7mm thick cork sheet (eBay)
- 3 off M4 x 10mm male-female metal stand-off pillar (eBay)
- Aluminium foil + contact adhesive, or aluminium tape
- Matt black stove/barbecue paint or black paper, if you will be using the IR sensor
- E3D V6, 1.75mm Bowden version, 12V or 24V according to your power supply (see later).
- 4 off 17HS19-1684S stepper motor (update: or use 0.9 degree/step motors instead, see my next blog entry)
- Duet 0.6 electronics board (Think3DPrint3D, RepRap Ltd); or Duet 0.85 or Duet WiFi electronics board (Think3DPrint3D, Filastruder – see later blog entries).
- Optional: PanelDue controller, screen and cable (Think3DPrint3D, or buy the controller from me and source the display and cable yourself)
- 12V or 24V 100W (or 120W for dual extrusion) LED power supply (eBay). Either 12V or 24V is OK with 1.8 degree/step motors, but for 0.9 degree/step motors you should use 24V.
- 40mm x 10mm hot end fan, 12V or 24V to suit your power supply (update: if you put the electronics under the bed then you will need another similar fan for cooling the electronics).
- SSR-10DA (for 230V) or SSR-25DA (for 230V or 110V) solid state relay (eBay)
- 4 off stepper motor cables (RobotDigg)
- Mini differential IR height sensor board (me)
- Mains voltage wire (I used the cores from some 3-core 5A mains flex)
- 5A wire for connecting extruder heater
- Thinner wire for connecting endstop switches, hot end fan, hot end thermistor and Z probe
- Bulgin PX0575/15/63 low profile snap fit IEC mains inlet (Farnell 469658)
- Panel mounting 20mm fuse holder (Farnell 9630198)
- Arcoelectric H8553VBNAO illuminated mains switch (Farnell 150388)
- 20mm slow-blow fuse (3.15A for 230V mains, 6.3A for 110V mains)
- 6 way 5A or 15A terminal block
- 6.3mm and 4mm fully insulated red crimp blade receptacles for mains inlet and switch (eBay or Maplin)
- 6.3mm yellow piggyback receptacles, if you will be using the Duet Shield (eBay or Maplin)
- 4mm crimp eyelets for grounding (eBay or Maplin)
- Spiral cable wrap
- 150mm cable ties
Fastenings and Miscellaneous
- About 50 x M4 x 10mm button head socket cap screws
- About 20 x M4 x 8mm button head socket cap screws
- 9 off M4 x 8mm countersunk screws
- 3 off M5 x 16mm button head screw (for attaching the feet)
- 9 off M3 x 30mm socket cap head screws (to attach the carriage rollers)
- 3 off M3 x 25mm socket cap head screws (to adjust the carriage clamping force)
- M3 x 12 and M3 x 16 socket cap head screws
- A few M3 and M4 screws, nuts, nylock nuts, and washers
- 3 off 25mm foldback clip (eBay)
- 9 off V-roller
- 1m of 4mm OD (2mm ID) PTFE tube
- 4 off M5 pneumatic connector (2 needed, 2 as spares) (update: I no longer use these connectors as I find them unreliable)
- Just over 6m GT2 timing belt
- 3 off 16- or 20-tooth stepper motor pulley for GT2 belt
- 3 off carriage with belt locking pillars and slots (update: or use Robotdigg metal carriages with integral belt tension adjusters, see the next blog entry)
- 3 off carriage truck for 2020 extrusions (adjust width of necessary to suit your wheels and extrusion slot size)
- 3 off endstop switch mounts
- Effector plate
- Hot end locking ring and/or hot end fan duct, depending on your hot end
- IR sensor mount (best combined with hot end fan duct, see my designs on Thingyverse)
- Mains inlet panel
- 3 off foot
- 5 off Z-tower cable tidy
- Parts for mini geared extruder assembly, or an alternative extruder
- Duet enclosure (update: not needed if you fit the electronics under the bed)
- PanelDue enclosure
- 2 off jig ends for assembling diagonal rods
- Traxxas joint assembly tool
Alternatives and substitutions
I chose the RobotDigg aluminum corners because in earlier builds, I never managed to get the towers truly perpendicular to the bed using printed corners. But if you are on a budget and have access to a 3D printer already, you could print standard 2020 Kossel corner pieces. There are also sheet metal corners under development, see the delta printer Google group for details.
Motedis sell two types of 20mm extrusion, the I-type and the B-type. I used the I-type, however it wouldn’t fit into the vertical holes in the Robotdigg metal corners without enlarging the slots with a Dremel, and I needed to tap the end hole M5 myself. So B-type verticals would probably be better, as long as the slots are not too wide for the wheels. Motedis only sells 2060 extrusion in I-type, therefore either the horizontal extrusions must be I-type, or you could use 6 x 2020 B-type extrusions for the lower horizontals instead of 2 x 2020 and 2 x 2060. Also note that the B- and I-type extrusions take different sorts of T-nuts. The B-type takes M4 T-nuts that rotate into place. The I-type take M3 or M4 T-nuts that can be pushed into the slot and have a spring-loaded ball to hold them in place.
Update: Robotdigg now sells a version of the aluminium corners for 2040 vertical extrusions. This would be my choice if I was starting now, to provide greater rigidity.
You could use V-slot extrusion if you prefer – just check that your wheels are compatible.
The 350W bed heater is adequate, but it takes 5 minutes or so to reach ABS printing temperatures. You could go for slightly more power, perhaps 400W. Instead of the cork insulator, you could use 3-skin corrugated cardboard.
I used the original 17HS19-1684S stepper motors that were supplied with my Mini Kossel kit. These are somewhat more powerful than the Mini Kossel needs. I have since upgraded to 0.9 degree/step motors for the towers, to get better vertical resolution and more accurate printing at layer heights below 0.2mm, and I replaced the extruder motor by a shorter, less powerful one. See my next blog entry for alternative motor suggestions.
The step that takes the most elapsed time is assembling the diagonal rods. They need to be exactly the same length, so you need to print a jig. The jig can only be used for one rod at a time, and the epoxy resin takes several hours to set. So print the jig ends first, attach them to a piece of extrusion so that the peg centres are 350mm apart, and start assembling the diagonal rods. Then print the mains inlet plate, then the feet, then the carriage parts and endstop switch mounts. While the parts are printing, you can start the main assembly.
Update: it is important that you don’t have too much play in the joints. So I recommend you buy 2 packs of 12 Traxxas joints, assemble them using the hot/cold method (see later), and then pick the 12 tightest to use with the rods. You will need a different jig to make up the rods using pre-assembled Traxxas joints.
Building the base
Start by fitting the stepper motors in the metal corners – it is easiest to do this before any extrusions are attached, because the metal corners lack the screw access tunnels that the printed versions normally provide. Then assemble the lower triangle. Use the 2060 extrusions for two sides, and two of the 2020 extrusions for the remaining one. Note that one of the stepper motors is turned over the opposite way from the others (see photo later), to better keep the stepper motor connections away from the mains wiring.
Now make the tray to hold the PSU, SSR and the terminal block for the mains wiring. Place the aluminium sheet on the triangular frame so that one edge is flush with the outer edge of an extrusion, and mark where the corners on the opposite side need to be cut off to avoid overhanging the frame. Also mark suitable positions for fixing holes to secure the tray to the frame, and for the power supply, SSR, terminal block, and cable tie holes for the heated bed cable. See the photo later for how I positioned them on the tray. Cut the corners off and drill the holes. If you will be using countersunk screws, then countersink the holes from the underside. Alternatively, you can use button head screws (the feet provide about 5mm clearance under the tray). If you wish to put the electronics under the bed, you will need mounting holes for the electronics support bracket to – see my later blog entry.
Attach the power supply, SSR and terminal block to the tray, and wire them together, leaving flying leads terminating in spade receptacles for connecting to the mains inlet, and flying leads connected to eyelets for grounding the frame.
Attach the tray to the frame. The long edge of the tray goes below the two 2020 extrusions – this is where the mains inlet will be.
Wiring the tray
Fit the IEC mains inlet, switch and fuse holder to the printed inlet panel, and wire them together. Fit the panel to the 2020 horizontal extrusions. Connect the mains wires from the tray to the mains inlet panel. Put the fuse in the fuse holder. With 230V mains, a 3.15A slow-blow fuse is about right. For a 110V mains you would need a 6.3A slow-blow fuse.
It is important that you make a protective ground connection to any metal parts that might possibly become live and be touched by the user. This includes the tray, the horizontal extrusions, the bed, and the stepper motor casings. The tray is grounded through the PSU so it doesn’t need a separate protective ground connection – but check with a multimeter that there is a low resistance between the ground input terminal and the tray. To make certain, you could add a separate ground connection to the tray. The heated bed is attached to the horizontal extrusions via metal pillars, so again no separate ground for it is required – but if you decide to fit plastic bed supports instead, for example to use force-sensitive resistors for Z probing, then you must add a ground wire to the bed. The two 2060 and the lower 2020 extrusion are grounded through being bolted to the tray. That leaves the upper 2020 extrusion. In theory, this is grounded to the 2060 connections via the bed, but I suggest you ground it separately, to ensure that it is grounded even with the bed removed. If you used 2020 extrusions for all 3 sides instead of using 2060 for 2 sides, then add a ground wire to each top extrusion.
Cover one side of the cork insulator with aluminium foil or aluminum tape. This will be the top side, to reflect heat back up to the bed heater.
Drill three holes about 7mm from the edge of the bed plate at 120 degree intervals, and countersink them from the top. Also make three corresponding holes or cutouts in the cork insulator, large enough for the standoffs. Attach the three standoff pillars loosely to the tops of the top extrusions, then slide them into suitable positions to support the bed plate and tighten them. Do not over-tighten – standoff pillars are typically made of brass and the threads are easily stripped.
If you will be using my infrared height sensor, then the top surface of the heated bed plate is best painted black. I used matt black spray-on stove & barbecue paint. The paint needs to be cured after application according to the instructions. One option is to cure it in a domestic oven. I had already attached the heater before I painted the top surface, so I stood the heater and plate on several layers of insulation and used the heater to heat the plate to 170C for 3 hours.
Plan where you want the heater power cable to be in relation to the fixing holes. Then attach the heater to the back of the bed plate. Make a cutout in the foil-covered cork insulator to clear the cable.
Connect the heated bed power cable to the terminal block. To secure the heated bed cable and relieve stress where the wires go into the terminal block, thread a cable tie through the two extra holes you drilled and around the cable.
Attach the SSR control wires, colour coding them so that you know which is positive and which is negative. Also attach the stepper motor cables and route them well away from the mains wiring. Bring all the wires out next to the Z tower, as shown in the photo.
Now you can put the foil-covered cork insulator in place (foil side up), then put the heated bed plate on top and secure it to the standoff pillars.
Completing the frame
If necessary, tap one end of each vertical extrusion to take an M5 screw for the foot. Attach the vertical extrusions to the base so that they are flush with underside of the corners. Use an M5 screw to attach a foot to the bottom of each extrusion.
Assemble the carriages and slide them on to the vertical extrusions.
Attach the printed endstop switch mounts to the extrusions, and the microswitches to the mounts. Fix the endstop switch mounts accurately at the same height. Try to get them all to within 0.5mm or better. If the vertical extrusions are accurately cut to the same length, you can do this by setting the top of each mount to be 25mm below the top of the extrusion. Check that the carriages trigger the microswitches before coming to a hard stop.
Fit an idler pulley and a pair of bearings to each corner piece. Then assemble the top triangle using the corner pieces and three 2020 extrusions. Fit the top triangle on the vertical extrusions. For now the corners can just sit on top of the microswitch mounts, with 5mm of each vertical extrusion protruding from the top. [Update: if you use the Robotdigg metal carriages with integral belt tensioners, then fit the top triangle right at the top of the frame, and the microswitch mounts just below it.]
Belts and spider assembly
Fit the belts, leaving as little slack as possible. Then tension each belt by pushing the top corner up so that it no longer sits on the microswitch mount, and tighten the screw that secures the corner piece to the vertical extrusion. If you are using the Robotdigg metal carriages, use the belt tensioning screws on the carriages instead.
Assemble the effector plate and hot end, and attach the diagonal rods as described in the standard Kossel assembly instructions.
Electronics, wiring software, commissioning and calibration
Some points to note with this particular build:
- The RobotDigg stepper motor looms did not have the same pin connections as my other motor looms. I had to swap the outer two pins on the 4-pin header connector that plugs into the Duet. Otherwise, the motors vibrate very loudly but do not move. I subsequently discovered that different stepper motor manufacturers use different pin connections on the 6-pin JST connectors, so the RobotDigg cables were evidently made for motors from a different manufacturer.
- The standard PanelDue cable is 800mm, however you need a longer cable (approx. 1.5m, or 1.8m if you mount the electronics under the bed) if you mount the PanelDue under the top front horizontal extrusion as I did.
- I routed all 3 endstop switch cables and the PanelDue cable down the Z tower. I used the printed cable tidy pieces (the yellow printed part in the photo) to secure the cables out of the way of the carriage wheels.
- When setting up the bed.g file for auto calibration, ensure that at all the probe points, the sensitive area of the IR sensor board is over the bed and not very close to the edge.
- To get accurate readings from the IR sensor, it is essential that the effector remains level as it translates. This is not easy to achieve. The diagonal rods in each parallel pair need to be as close as possible to being exactly the same length, and the spacing between them needs to be exactly the same at the carriage end as at the effector end.
- Some time in the future, I may increase the spacing between the parallel rods from its current value of 48mm to around 65mm. This will increase rigidity, and should also reduce tilting of the effector if the spacing is not quite the same at both ends.
- I purchased a TP-LINK TL-WR702N nano router (£20 from Amazon UK) and connected it to the Duet electronics using the short Ethernet cable supplied, so that the printer is on my WiFi home network and I can control the printer from my smartphone. Alternatively, either connect the Duet direct to your router, or use Duet WiFi electronics as I describe in a later blog entry.
- The thermistor embedded in the silicone heater is not in good contact with the bed. Also there is a significant temperature drop across the glass. The result is that I have to set the bed temperature to 140C indicated on the PanelDue or the web interface when printing ABS. This gives 110-120C on the edge of the aluminium bed plate, as measured with a thermocouple. I use 70C indicated bed temperature when printing PLA directly on the glass.
- I used the extruder drive that came with the Mini Kossel kit, which is the RepRap Mini Geared Extruder. The 17HS19-1684S stepper motor is somewhat more powerful than it needs, so I have the extruder stepper motor current set at just 500mA. This is so that if the nozzle gets obstructed by the print, the motor skips steps, and extrusion resumes when the obstruction is removed. At higher currents, the extruder drive chews a crescent into the filament instead and traction is lost. Subsequently, I changed to a shorter motor and a different extruder design – see my later blog entry.
Finally, here is a video of the completed printer performing auto calibration.