In this post I describe three further upgrades: 24V power, moving the electronics under the bed, and the Robotdigg aluminium effector.
In my last post I described how I upgraded to 0.9 degree/step motors to improve the resolution of the printer. I hadn’t allowed for the higher back EMF of these motors when running at the speeds (up to 333mm/sec) that I used with the original motors, so I had to reduce the maximum speed to 150mm/sec. The obvious solution was to change from 12V to 24V power.
This change was easily accomplished. I replaced the 12V 100W LED power supply by a 24V 120W one. The reason for increasing power to 120W was to ensure that I have enough for a future dual extrusion upgrade. The 12V heater cartridge in my E3Dv6 hot end had to be replaced by a 24V one, so I purchased these 24V 30W cartridge heaters. I ordered one of these 24V 40 x 10mm fans to replace my hot end fan, and another to serve as a electronics cooling fan. The Duet electronics can already handle 24V input, the SSR was rated for up to 32V input, and the heated bed uses AC mains power; so those components did not need to be changed.
Controller electronics under the bed
I wanted to move the Duet controller board under the bed in order to make the machine tidier and more portable. The Duet has the Ethernet socket, USB socket and SD card slot on one edge of the board, so only that edge needs to be accessible from outside. As only one side of the base triangle is made from two separate extrusions with a gap between them, the Duet has to go on that side next to the mains inlet components. Fortunately, there is room to do this with a sufficient gap between the Duet and the mains components.
The new Duet 0.8.5 revision from Think3DPrint3D improves on the revision 0.6 board in several ways. In particular, it supports a fifth stepper motor driver, third heater channel and second PWM fan driver. This makes it capable of driving dual extruders without needing an expansion board. In a single extruder system, you could use the additional heater channel to control a chamber heater.
Other improvements include the use of side-facing push buttons for the Erase and Reset functions, and moving most of the LEDs to the edge of the board with the connectors. This makes it especially suitable for under-the bed-mounting. The Duet 0.8.5 also provides dedicated connectors for two always-on fans, the Z probe, and a PanelDue.
You don’t need a version 0.8.5 Duet to move the electronics under the bed unless you want dual extrusion. The main issue with using a 0.6 Duet is access to the Reset and Erase buttons. The Reset button on the 0.6 Duet is at the edge of the board but facing upwards; nevertheless you could make accessible via an angled hole in the panel, and print a plastic prodder to activate it. The Erase button is more difficult because it is further from the edge. But if you are careful, you can avoid the need to use it. Once you have loaded my fork of RepRapFirmware, you can send the command M999 PERASE to put the board into programming mode. If Bossac then reports “Flash page is locked”, use bossac -u to unlock it. The only time you should need to press Erase again is if you upload completely dud firmware, or firmware that does not support the M999 PERASE command. Alternatively, you could fit a normally-open push button to the rear panel and wire it in parallel with the Erase button.
New printed mains inlet panel and tray
As well as the original cutouts for the mains components, the new mains inlet panel includes a finger guard at the end bearing the mains voltage components, a slot for holding the front edge of the Duet, and holes to access the Ethernet and USB connectors and the SD card slot. I also added holes for the Reset and Erase buttons of the Duet 0.8.5, and a thinner section for the LEDs on the 0.8.5 to shine through. You can find the design here.
Mounting the Duet horizontally in a confined space is not ideal from a cooling perspective, especially with other components such as the power supply, stepper motors and SSR also generating heat – and of course there is some heat from the bed heater despite the cork insulation. So the rear Duet mount has a 40 x 10mm cooling fan to blow air over both sides of the board in the region of the stepper driver chips.
I made a new tray to fit on the bottom of the printer, this time using 300 x 300 x 2.5mm aluminium sheet. The mains terminal block, power supply and SSR are mounted as before but moved to make way for the Duet. The printed rear Duet mount is attached to the tray using two M4 screws.
The mains wiring is as before, but you should keep it all well-separated from the low voltage wiring. I ran the 24V power cable and the X stepper motors cable in the slots of the extrusion behind the power supply, so that they do not have to pass the mains terminals. The AC mains heated bed cable passes under the Duet, but it is secured to the tray by two cable ties, one at each end of the run. All nuts inside the tray are Nyloc ones – you don’t want loose nuts shorting out the wiring. As before, remember to add a grounding wire to the upper 20mm extrusion, and check with a multimeter that the tray is grounded through the power supply.
Caution: the heated bed positive and negative terminals are the opposite way round on the Duet 0.8.5 compared to the Duet 0.6. On the 0.6 board the +ve terminal is nearest the power input terminal block, but on the 0.8.5 board this is the -ve terminal. The polarity doesn’t usually matter if you connect a heated bed to it, but it does matter when using the Duet to drive a SSR.
The PanelDue connector is on the corner of the board and so is underneath the top 20mm extrusion. Even with a right angle Molex connector fitted there, the cable for it would pass uncomfortable close to the mains wiring. So I connected the PanelDue to the expansion connector as before.
Robotdigg aluminium effector
In my previous round of upgrades I replaced the printed carriages by Robotdigg aluminium ones. On a delta printer it is important that the spacing between bearings is that same at both ends of each pair of parallel rods, and this should be easier to achieve with machined metal parts than with printed ones. Robotdigg makes an aluminium effector to go with their aluminium carriages, and I hoped that by using this I would achieve equal spacing between bearings to a greater precision.
Before fitting the new effector, I measured the bearing spacings on the metal carriages, the printed effector, and the aluminium effector:
Carriage bearing support spacings: 40.14,40.13, 40.14mm
Printed effector bearing support spacings: 40.48, 40.50, 40.50mm
Aluminum effector bearing support spacings: 39.70, 39.70, 39.70mm
The original printed effector was giving me a difference in bearing spacings of about 0.35mm. The aluminium one would give me a difference of 0.45mm. To reduce this, when attaching the Traxxas joints to the effector, I included a 0.50mm thick M3 washer under one joint in each pair to reduce the difference to 0.05mm.
The primary purpose of the upgrade to 24V was to increase the travel speed, which I had to reduce to 150mm/sec when I upgraded to 0.9deg/step motors. With the 24V supply, I found that travel speed of 200mm/sec was achievable for all types of moves. I have since done some more firmware optimization and I now achieve more than 300mm/sec.
I had hoped that using the aluminium effector and the attention I paid to getting equal bearing spacings at either end of the diagonal rods would reduce the tilting of the effector as it translates in the XY plane, and thereby allow me to reduce or remove the Z probe trigger height correction factors in the G30 commands in the bed.g file. Unfortunately, this has not been the case. There must be other inaccuracies in my build that are causing a small amount of variable effector tilt.
Moving the electronics under the bed has made the printer neater and more portable. I had been reluctant to do this earlier because of my plans for dual extrusion, but the Duet 0.8.5 has made this possible.
Acknowledgement: My thanks to Think3DPrint3D for providing the Duet 0.8.5 controller board.
Nice build!! I have a very big delta printer too (2.9m high) and printing like a charm! Love the way you have the autocalibration done and use of the Duet controller! If i want the automatic calibration unit too in my printers? How much will it cost? We produce printers for resellers and need alot if it works like we want. Hope we can do buisness together.
Hi Daniel, thanks for your comment. I have replied to you by email.
I’m following your guides to build up my Kossel XL. It’s now starting printing
I’m using a Duet 0.7 (I’m not really sure) with your last FW and web interface. Everything works like a charm. But (there’s always a BUT), I would love to use a 220V bed heater pad, using a relay instead of the stock bed header, of course. I’ve found an external header to connect the Arduino relay that will control the heater pad. The question is, would it be possible to use another different pin on the Atmel uC, and leave the standard bed MOSFET to power a 2nd extruder instead?
I.e. reassign the 3rd heater pin (used on the expansion board or Duet 0.8) as the bed heater pin, and reassign bed heater pin as extruder 2 heater?
Thank you for your contribution!
I think you must have a Duet 0.6. The version number is written next to the expansion header.
Yes you could do that. Of course, you would also need to provide an additional driver to connect the second extruder drive, and an external resistor and capacitor to connect the additional thermistor. The firmware already allows you to remap thermistor channels, but currently it doesn’t allow you to map the bed heater channel to a different heater. I may add that in a future release though. You could still run it using the current firmware, by treating the bed header as if it is an additional heater for the hot end.
The connections would be: SSR -ve input to PC6_PWML2 aka E1_PWM, +ve input to +3.3V. Thermistor between Vssa and AD7 aka E1_THERMISTOR. 10uf ceramic capacitor in parallel with thermistor. 4.7K 1% resistor between AD7 and +3.3V. You can pick up Vssa from the pin marked GND on the E0 thermistor connection, and the other pins from the expansion connector.
You’re right. It’s a Duet v0.6
The aim on using the heater bed MOSFET as an hotend heater is to update to a Dondolo [http://www.thingiverse.com/thing:673816] extruder, so there’s no need for an extra driver, one single motor moves two filaments.
The stock Duet 0.6 could handle two hotend heaters, but the second one must be reassigned from Heatedbed to E1.
But, I need to modify your code to drive a RC servo that changes from one filament to the other. It will take me a big effort, for sure.
By now, I need to set the heated bed, and instead using the default heated bed output, I just wanted to leave it free for the next extruder, because the SSR doesn’t need the power of the MOSFET.
Thank you anyway. I’ll stay tunned to your updates!
your machine looks impressive! you’ve just solved all the problems which made me away from deltas (irregular accuracy, slow motion, refusing dual extrusion, auto-leveling problems), that printers looks truly stable and reliable! do you want to integrate a pi with octoprint to be able to print via IP?
I’m contemplating building from your notes, although (and this may not be advised, since I’ve never built a delta), I’m thinking about making a few variations. I already have surplus 1m v-slot 2020’s lying around, and I found a package of 9x 360mm extrusions for the horizontal stuff. Plus, these looks like a good, rigid option for the corners; https://groups.google.com/forum/#!topic/deltabot/02gjLbTFcXc/discussion
But finally, I am thinking of using a Smoothie Board. From what I can tell, they’re very capable of Deltas, and cheaper than the Duet v0.85 that you’re recommending. Any reasons why I shouldn’t do that? Am I going to find it harder to do auto-levelling?
The Smoothieboard is certainly fast enough to run a delta. However, it lacks the good web interface of the Duet. It accesses the SD card using the slow SPI protocol, which is probably why I hear that uploading files to the SD card over Ethernet is very slow on a Smoothie. So if you use a Smoothieboard or clone, you will be using the USB interface to control it.
The current Smoothieware release doesn’t have the fast delta auto calibration function and I think it does only 4-factor auto calibration, although I understand there is a fork with more advanced calibration options. Smoothieware also lacks the segmentation-free delta movement of RepRapFirmware, although I don’t know what practical difference this makes.
So I recommend the Duet. The Duet costs less than a genuine Smoothieboard anyway. You can save some money by using the Duet 0.6 instead of the 0.8.5 if you don’t plan on dual extrusion any time soon.
Great source of data this blog – very much enjoyed reading through.
I have been asked if it would be feasible to expand the working area in both dimensions. I assume to increase the z axis is just a question of longer uprights until stability or structural rigidity becomes an issue. In the x and y presumably the link rods need to be longer. Is there a formula to establish the length of the rods for a given x and y working area.
The intention is to use the printer for ceramic paste extrusion so no heating elements involved. There is an ambition to have two or more extruders on the same plate (weight might be an issue here!)
Thanks in advance,
Yes you could scale it up. I suggest you choose 2040 tower extrusions instead of 2020 to better handle the greater height. You can now get metal corners for 2040 towers from Robotdigg. Also choose thicker carbon fibre rods. I am about to rebuild my delta using Igus joints instead of Traxxas, and 7mm rod instead of 6mm. For longer arms, use 8m or 10mm rod.
The design process goes something like this:
1. Estimate the size of effector you will need.
2. Given that effector size, work out how close to the towers the nozzle will be able to get. From that and the desired printing radius, work out what radius the towers are on.
3. That fixes the lengths of the horizontal extrusions. Choose the diagonal rod length so that when at the edge of the bed opposite a tower, the rods to that tower are at 20 degrees or a little more to the horizontal.
4. Given that diagonal rod length, choose the rod separation. I suggest about 1/6 of the rod length (this is larger than on my delta).
5. If that rod separation means you need a larger effector, repeat from step 1.
6. Choose the tower height to give the required print height at the edges of the bed, when one pair of rods may be more or less vertical.
Many thanks for the info – will have a think through the sizes over the weekend.
I have used Igus for other projects (not 3d printers) and have been very happy with the service and the quality of the products.
One more quick question,
The connecting rods operate from near vertical (effector close) to 20 degrees (or so) from the horizontal when the effector is furthest way – is this correct?
I need to connect two print cooling fans to Duet PWM fan connector. I run the Duet 0.8.5 at 24V and the fans that I want to use are either 3.3V or 5V (around 60-70mA each). I am sort of forced to use these fans as nothing in 24V range is so small. They are 15x15x3mm blower fans similar to those used on Atom 2.0 delta printer. How would you connect these to Duet. I’ve been reading about using MOSFETs for this. Most of the examples show low voltage from arduino controlling higher voltage motors. My case is the exactly the opposite – high voltage (24V PWM) controlling low voltage devices (3.3V). Any hints/ideas?
BTW I’ve already assembled my delta based on your design and it is just great. Your blog is a great source of inspiration and information.
You could try the following connection using a diode:
Diode cathode to FAN0 (or FAN1) -ve pin
Diode anode to fan -ve wire
Fan +ve wire to +5V
The voltage that the fan gets will be 5V less the voltage drop in the diode. If you choose a Schottky rectifier diode, then the voltage drop will only be about 0.4V, so the fan will get about 4.6V which should be OK for a 5V fan. Or you could use two 1N4001 or similar diodes in series, then you will get about 3.3V so you can use a 3.3V fan.
Could I not use 3.3V pins on extruder connections. As far as I know they are not used for anything ATM. Each of the fans is rated at 37mA/0.1W. I’ll have two of them so we are looking at 74mA/0.2W. Will these unused extruder pins handle this?