Blog

Stepper motor and electronics cooling

I recently encountered a problem with my printed XY stepper mounts so thought I’d share my solution and also some other things I do to cool certain parts of my printer.

We all know that stepper motors run hot but they are mostly rated to run at around 80 degrees C so normally, cooling isn’t necessary. However, if you use a printed mount such as I do, then you may experience this.

distortedMount

I had read that this could happen but didn’t really give it any thought. What has happened is that repeated periods of 20 plus hours printing, the plastic has been softened by the heat of the motor, then the lateral force of the belt tension acting on the motor shaft has distorted the mount.

Of course, a metal mount would cure the problem but I use a sliding motor mount as a belt tensioner and not having access to metal working machinery, it has to be a printed part. It’s possible that a different type of plastic to PLA might have been more thermally stable but I decided to use a “belt and braces” approach.

The first thing I did was to buy a plumbers’ soldering mat which is made from Gold Silica and cut a couple of gaskets to go between the motor and the mount. I don’t know how effective this will be but it didn’t cost much so why not?

gasket

The next thing was to fit a heat sink and fan to the top of the motor. I used these heat sinks http://www.ebay.co.uk/itm/Nema17-Size-Stepextruder-Heatsink-Heat-Sink-Nema-17-Cooling-/151826112373?hash=item23598a9f75:g:z-wAAOSwnbZYHUUi and used some thermal paste between the motor and the heat sink.

These were the quietest 40mm 24v fans I could find http://uk.rs-online.com/web/p/axial-fans/2058310/?sra=pstk.

To fit it all together, I had to remove two of the stepper motor screws and replace them with lengths of studding (it needs very long screws which I couldn’t find). Nyloc nuts and washers keep it all together. I would have preferred it if the heat sinks had been drilled in apposite corners, rather than two holes on one side.

Lastly, the Duet electronics mean that the printer is very quiet in normal use. So much so that fan noise start to become intrusive to me. I had already changed the power supply to a fan less design (my heated bed is mains powered so I don’t need a high current power supply). The hot end fan is set to run in thermostatic mode so that it only runs when the hot end is above 45 degrees C. Likewise the fans I use to cool the electronics. So when the printer is idle, no fans run at all and it is virtually silent apart from a faint buzz from the stepper motors once they have been energised. I have the Duex5 expansion board as well which gives me extra fan and heater connections so, I decided to do the same with these stepper cooling fans.

To monitor the temperature I stuck a bead thermistor to each stepper, close to the mount, with a small amount of epoxy adhesive. Here is how the installation looks.

heatSinkandFan

Here is how it looks at the Duex5 end. The thermistors are the orange and green wires at the bottom and the fans are the red and blue coming out of each loom.

IMG_6297

Just out of shot is the thermistor that I stuck to the topmost stepper driver chip but you can see the two white wires leading into a spare heater channel. I did the same on the main board  with one of the XY driver chips. These thermistors control fans which blow air on to the back of the boards.

Next I had to configure the new fans and heaters. A note of explanation is required here. With Duet electronics, temperature channels are called “heaters” regardless of whether they are actually used to switch physical heaters or, in this case cooling fans.

So here are the relevant lines from my config.g file for the “heaters” (actually thermistors).

M305 P2 T100000 B3950 R4700; Set thermistor + ADC parameters for heater 2 – this is used to measure stepper chip temperature on Duet
M305 P3 T100000 B3950 R4700; Set thermistor + ADC parameters for heater 3 – this is used to measure stepper chip temperature on Duex5
M305 P4 T100000 B3950 R4700; Set thermistor + ADC parameters for heater 4 – this is used to measure left XY stepper temperature
M305 P5 T100000 B3950 R4700; Set thermistor + ADC parameters for heater 5 – this is used to measure right XY stepper temperature

This is the fan section of my config.g

; Fans
M106 P0 S0.0 I0 F10 H-1 ; Set print cooling fan (3) value, PWM signal inversion (off)and frequency (10 hz). Thermostatic control is turned off
M106 P1 S255 I0 F500 H1 T45; Set hot end fan (1) value, PWM signal inversion(off) and frequency. Thermostatic control is turned on
M106 P2 S255 I0 F500 H2 T45; Set fan 2 value (Duet board fan), PWM signal inversion and frequency. Thermostatic control is turned on
M106 P3 S255 I0 F500 H3 T45; Set fan 3 (Duex5 board fan) to work thermostatically on H3 temp
M106 P4 S255 I0 F500 H4 T45; Set fan 4 (Left XY stepper fan) to work thermostatically on H4 temp
M106 P5 S255 I0 F500 H5 T45; Set fan 5 (Right XY stpper fan) to work thermostatically on H5 temp

Finally, I wanted to be able to actually display these temperatures on the web interface. The way I found to do this was to create “dummy” tools without any extruders associated with them. I started with defining tool numbers 99 then worked backwards.

Here is the ending part of my tool definition section.

M563 P99 H2; define this dummy tool just so dwc shows the temperature value for the thermistor that’s stuck to the stepper driver
M563 P98 H3; define this dummy tool as above for duex thermistor
M563 P97 H4; define this dummy tool as above for left xy stepper thermistor
M563 P96 H5; define this dummy tool as above for right xy stepper thermistor

This is how it looks on the Duet Web Interface.

Screenshot-2017-4-18 TallCoreXY

I just have to remember that Heater1 is the hot end thermistor (as normal), Heater 2 is actually the XY driver chip on the Duet main board, Heater 3 is the same for the Duex5 board, Heater 4 is the left XY motor body and Heater 5 is the right XY motor. I have posted a request on the Duet forums for a better way to display these temperature channels.

I understand that future versions of firmware will have the ability to control fans based on a temperature warning signal from the driver chip itself. This would negate the need for the thermistors that I have used but as I understand it, the temperature threshold at which the fan comes on will be quite a lot higher and not user configurable.

Finally, it was time to test my new cooling arrangement and I can report that it works like a charm. I started printing a simple 200mm square object. It takes quite a while (about 45 minutes or so) for the steppers to reach 45 deg C. This may be due to the heat sinks on their own – I have no data to compare with though. When the temperature reaches 45 deg C, the fan switches on, the temperature drops, the fan switches off and there is a bit more of a drop before the temperature come back up. The cycle time for the fans is about 1 minute on, 3 minutes off and after about 4 hours, the temperature was still being controlled at 45 deg C with the same hysteresis. What is interesting is that when doing diagonal infill on a coreXY one motor is stationary and I can observe one fan switching on and off while the other hardly runs until the next layer where the situation is reversed. So I’m glad that I decided to add control to each individual motor. Maybe I need to do the same with the driver chips…………

 

 

Setting up a Metrol positioning switch

This is a very quick post on how I installed a Metrol positioning switch for Z homing with my sliding hot end mount using the Duet Wifi electronics.

Metrol are a Japanese company who make high precision switches for industrial applications. Here is a link to their web site http://www.metrol.co.jp/en/. They seem to have a direct sales site called Toolsensor.com which is here http://toolsensor.com/. It looks like you can buy from ToolSensor via their Amazon.com outlet too.

I couldn’t find a UK source so ended up going to Misumi  UK and buying one of their contact switches. It wasn’t until it was delivered that I discovered that it was in fact a Metrol switch. Misumi only sell to businesses but they don’t seem to care if the business is VAT registered (mine isn’t) and there are no  minimum order quantities. So how and where you source these Metrol switches will depend on what part of the world you live in.

These switches come in numerous configurations. The one I chose has a smooth body but there are threaded versions available too. If you can, buy one without the LED as then it can be connected to the E0 end stop connector in the normal way – i.e. just like any other micro switch. The instructions for connecting end stop switches are here  https://duet3d.com/wiki/Connecting_endstop_switches.

Unfortunately, the non-LED version was not available from Misumi so I had to buy the LED version. The Misumi part number of the one I chose was N-MSTK-ASD. The non LED version is the same part number but without the “D” on the end. There is a sleeve on the switch with the word “Metrol” (that’s how I know it is a Metrol switch) and then “CS06A -L” which I assume is the Metrol part number and I would hazard a guess that the hyphenated “L” denotes LED version.

The data sheet for this switch shows a stroke of 2.0mm, the switching point as being 0.3mm from tip and the repeatability to be 0.005 mm. Metrol do make switches with claimed repeatability of 0.001mm but IMO that would be overkill even for our Z axes.One down side is that the switch is normally open rather than normally closed so if a wire falls off, it won’t fail “safe”. As I mentioned in my other post, I installed a backup micro switch to trigger 1mm higher than the Metrol switch and initiate an emergency stop should the primary switch fail.

If you’ve managed to find a non-LED version of this switch, then you can stop reading now as the rest of this post is on how to install the LED version.

Because this switch has a series LED and the Duet electronics also has an LED with a pull up resistor, it has to be treated as an analogue switch rather than a digital switch (this was what confused me at first). So following David Crocker’s advice (DC42) I connected the switch between the In and Gnd pins of the Z probe connector, with a pull up resistor (about 220 ohm to 1 K) between in and +3.3V. The resistor value isn’t critical as long as it is within that range – lower makes the series LED shine brighter when the switch is triggered.

Here is a link to the Duet Wiring diagram. https://duet3d.com/wiki/Duet_WiFi_wiring_diagrams. NOTE. Unless you have a very early prototype board, the diagram to use is the one at the top entitled “………v1.0, v1.01,v1,02” The lower diagram is for PROTOTYPE – don’t let the “V2” fool you into thinking that its is later than the production V1.0 versions. This is important because the Z probe pins are different.

Having got the switch connected, we now need to “tell” the Duet board what type of switch it is. In this case, it is probe type 1. The relevant gcode command is M558 and the settings can be found here https://duet3d.com/wiki/G-code#M558:_Set_Z_probe_type. So my M558 line looks like this. M558 P1 X0 Y0 Z1 F180 T6000 I1. I don’t use and form of bed probing other than for homing so the “T” parameter is irrelevant in my case.

Note that unlike the mini height sensor, the “analogue” voltage from the Metrol switch does not change gradually as the sensor gets close to the bed. Instead it simply switches from one value(zero) to another. So you cannot use the facility whereby the probing speed will slow down as the sensor gets closer to the bed so you may need to drop the Z homing speed (180 mm/min works well for me).

The last thing to do is check that the switch is working and set the trigger value and trigger height.Again, it should be noted that I don’t use any form of bed compensation so I’ve only ever used G31 for homing. If you do detailed probing, you may be using G30 or G32 but the principle will be the same.

I currently have a problem with my printer and am unable to connect using the web interface so I’ll have to do the rest of this post from memory. Apologies in advance if what you see is not what I say you will see.

This is where I discovered another command that I wasn’t previously aware of. One can use M119 to report the end stop status. With the switch open as normal, send M119 via the web control and observe the switch status in the console. Then manually close the switch and send M119 again to check that it is closed. The console on the web interface may indicate that the probe is close to the bed but not actually at the bed. This is because the trigger value may not be correct, especially if you have previously been using the IR probe. So, with the switch open, observe the probe value (top right hand corner of DWC) and should read zero. Then with the switch closed, observe the probe value again. With a 500 Ohm resistor, I had a reading of 474 and my G31 was still set for the mini IR probe with a trigger value set to 500 which is why the web interface console showed that the probe was close to the bed. The actual value will depend on the resistor you used, so set the trigger value to be about half way between zero (when the switch is open)  and the reported value when the switch is closed. In my case I used 250 so my G31 ended up as “G31 P250 X0 Y0 Z-0.8”. The “Z” value is the trigger height and is set in the usual way by using a thin piece of paper between the probe and the bed or whichever method works best for you.

HTH

Ian

 

 

 

Tool free swappable, bed probing hot end mount.

Like many things in life, this printer modification evolved into something much more than my original intention. By way of introduction, this picture shows my original hot end mount and X and Y axes.

original

As readers of my blog will know, I use a Diamond mixing hot end. This is a rather ungainly beast with 3 heat sinks sticking out at 28 degrees taking up quite a lot of space and weighing in at around 250gms (excluding any extruders). Because of the weight, the engineer in me decided that the best way to mount it would be to fix it between two parallel rails, rather than having it hanging over the side of a single rail, which is why I ended with a such a huge X carriage. It was heavy too. The X carriage including the hot end weighed 690gms and the Y carriage with the X rails fitted weighed in at 1,210gms so my combined Y axis weight was a whopping 1,900gms. Having said all that, I regular used to print at 90mm/sec with non print moves set to 350mm/sec with accelerations set to 1200mm/sec^2 and the thing was absolutely rock solid. It was impossible by hand, to “flex” the hot end in any way.

My issue was that I have another Diamond hot end, fully assembled but with a 0.9mm nozzle that I intend to use with Taulman T glass filament, and changing the hot end was a complete pain. So I set out to make a new mount that would enable me to quickly swap hot ends, preferably without the need to use any tools. I also decided to abandon the dual X rail setup and replace the two 2020 extrusions with a single 2040 extrusion. Part of me still thinks this was bad idea from a rigidity point of view, but there are other benefits such as weight savings and increased range of movement which I hope will outweigh the negatives.The next two pictures are Open Scad images of the new X carriage.

OpenScadCarriage

OpenScadWithDiamond

The red part is the new Diamond hot end mount. Effectively, the mount has a sort of Dovetail slot around the two sides and the bottom, into which the mount slides.This is a close up of the actual Diamond hot end mount.

DiamondMount

At this point, I realised that I could solve another minor issue that I had. That is, I use an IR mini height sensor but I also use 3DLac on my my glass build plate, and the 3DLac can alter the reflectivity of the glass, meaning that I often had to make adjustments to my Z axis homing. The other problem I have with the IR sensor is that, because of the shape of the Diamond hot end, it is very difficult to mount it anywhere close to the nozzle.So I thought, rather than locking the hot end into place, I could hold it against it’s seat using springs which would allow it to slide up and down. I could then mount the height sensor above the hot end, rather than below it. This would mean that the hot end is itself the height probe. In the event, I discovered a Metrol positioning switch with a claimed repeatability of 0.005mm  and decided to use that above the mount but retain the mini IR sensor below the mount if the sliding arrangement doesn’t work out. I’ll cover the Metrol switch in a separate post.

It took me a few attempts to print the parts such that they would slide easily but at the same time have no “wobble”. It wasn’t too hard though because the bottom of the mount is also a “Dovetail” shape and when the springs act down on the mount, the effect is to pull the two faces together.

Of course, I have reservations about how well these plastic printed parts will last over time but I am optimistic because now that I have installed and set it all up, I have only 0.8mm of movement before the switch triggers and can probably reduce this further. The worst case scenario is that if the sliding\probing\homing aspect proves to be unreliable, I will change the design slightly to clamp the hot end in place and go back to using the mini IR probe for homing.

At least I will be able to quickly change hot ends without using any tools. Here is a little video I made showing how that all works.

As with all these things, the update was much more involved than I first though. The entire upper section of the printer has to be disassembled, including the motor mounts, idlers, and of course the X and Y rails………

stripDown

………but I got it all put back together.

back together

So in practice, what happens for Z homing is that the bed rises, the nozzle touches the glass then the mount gets lifted off it’s seat and slides up until the switch triggers (currently 0.8mm) and my configuration file is set so that Z=0 is 0.8mm below the point where the switch triggers. The switch has 2mm of plunger travel but triggers at 0.3mm so there is a further 1.7mm of plunger travel available. I made use of this by building in a fail safe which is just a micro switch acting on the bed and set to trigger an emergency stop at 1mm after the point where the homing switch should trigger.

limitSwitch

If using the nozzle itself as a means of Z homing proves to be unreliable, I have still achieved my original objective which was to have a means of quickly swapping hot ends. As a bonus, I have gained an extra 50 mm of movement in X  (now 375 mm instead of 325 mm) and 30mm in Y (now 350mm instead of 320 mm). Also, the new X carriage weighs 520gms instead of 690gms and the new Y axis (without X) weighs 820gms instead of 1,210gms giving me a total weight saving in Y of 560gms ( 1,340gms instead of 1,900gms).

The downside is that I can now “flex” the nozzle in the Y direction if I push and pull hard enough, whereas the old design was rock solid. However, I’ve just finished my first print and there is no sign of and “banding” that I would expect to see if the nozzle was moving around during a print. Also, the Z homing is working like a charm and thus far, is consistent and repeatable.

One last thought. With this mounting arrangement, I could fairly easily change to a completely different design of hot end, by making a suitable adaptor. By way of illustration. here is an adaptor that I’ve just made so that I can fit a dial gauge to level the bed.

dialGaugeMount

I’ll give an update in a few weeks or months when I am able to asses how reliable and/or repeatable this turns out to be.

Ian

Late edit. I’ve just finished printing this object which is 133mm tall.

1stPrint

There is no sign of banding and the dimensional accuracy is pretty good. The smaller diameter should be 45mm and it measures at between 45.3 and 45.2 throughout the height. The inner square should be 21mm and measures at between 20.96 and 21.02 and the overall height measure at 132.8mm now that it’s cooled. So although it is possible to flex the hot end in the Y direction by applying force by hand, I’m reasonably confident that there is no movement during normal printing (at least in the centre of the bed).

 

Dual function LED ornament stands

As a change from printing lots of test pieces with no practical value, I thought it was about time I made something useful. I’ve given step by step instructions and a list of materials in case anyone else want to make any of these.

My wife has a growing collection of miniature glass and plastic Christmas trees (one or two of which I have made using Taulman T glass) which come out every year. They look more effective when lit from below so we have one or two of those led stands that one can buy. The trouble is, some of these ornaments are plain glass and look best with coloured light while others are already coloured so look best with white light. The other issue with some of the stands one can buy is that they take those really small button cells which make them expensive to run compared to using say, rechargeable AA or AAA batteries. So I decided to make some that would take rechargeable batteries and that could be switched between colour changing or white.

Initially, I had planned to use rechargeable PP3 9V batteries. These would have been easier to fit inside the base and would have meant that I could run 2 or 3 LEDs in series with a single current limiting resistor. However, when I looked into the capacity of these batteries, the amp hour rating is very low which would have meant that they would only have lasted about 8 to 10 hrs between charges. So, I decided to use AA size cells instead, which have a much higher capacity. The voltage drop across the super bright white LEDs is 3 volts and for the colour changing it was 2.4 volts (variable depending on which colour is being produced) so I needed at least 3 batteries to give me 4.5 volts and the LEDS would have to wired in series, each with it’s own current limiting resistor.

The colour changing LEDs are not as bright as the white LEDs so I decided to use 4 colour changing ones and 2 white ones.

In addition to the LEDS, I also needed a switch. I had hoped to use a miniature ON-OFF-ON slide switch but was unable to find one. The best I could find was On-On which would switch between colour changing and white but had no centre “OFF” position so I ended up using two switches. One for ON-OFF and the other for Colour – White. If you can find an ON-OFF-ON version, it would simplify the wiring quite a bit.

Then I needed clips to hold the batteries and provide electrical contact, some wire and some strip board.

The complete list of materials for one of theses stands is as follows.

2 off super bright white 5mm LEDS (one could also use 3mm)

4 off slow colour changing 5mm LEDs (or 3mm)

1 off piece of strip board 25mm x 25mm

3 off Keystone AA (-ve) contact part No 209. These are the dimensions

209

3 off Keystone AA (+ve) contact part number 228 as below

228

2 off switches PIC part number SS-22f25-G dimension as below

pic-ss-22f25-g

Printed parts – Base, Top and Insert. These can be found on Thingiverse here Printed parts files

The first thing was to make up the strip board LED modules. Each LED has it’s own current limiting resistor, the value of which will depend on the specification of the LEDs. In my case I used 220 Ohm and 180 Ohm. The +ve input to all 4 of the colour changing resistors are connected together as are the 2 +ve inputs for the white resistors. The -ve side of all the LEDS are connected together.  Here is a picture of one of the made up boards.

strpboardmodule

The 4 colour changing LEDS are on the outside and the 2 white ones are on the inside. The red wire is the +ve for the white LEDs and the Orange is the +ve for the colour changing LEDS. The black wire is the common -ve.

A quick note about using these slow colour changing LEDS. When they are first turned on, they are all the same colour and start to slowly fade to the next colour. However, they don’t all change at the same rate. So after a period if time they get “out of sync”. This results in many more combinations of colour which are more subtle than just RGB and in my opinion, give some quite pleasing effects.

The next thing was to design and print the base which holds everything together. Here is one of those bases.

unwiredbase

And here is one with everything wired up.

wiredbase

The pictures should be self explanatory. The base is designed to take the switches which are a snug fit but slide in from the top. The clips for the batteries are a press fit from the top. NOTE, solder the wires to the clips before fitting the clips otherwise the heat will melt the plastic. The lower right hand battery clip is the +ve terminal which goes to the centre terminal of the ON-OFF switch which is at the top. One side of this switch goes to the centre terminal of the changeover switch which is on the right. The red wire from the LEDs goes to one side of the changeover switch and the orange wire goes to the other side of the switch. The black -ve LED wire goes to the -ve battery clip which is the top right one. The batteries are then connected in series -ve to +ve as shown by the blue wires. As I mentioned before, life would have been a lot easier if I could have found a miniature ON-OFF-ON switch rather than having to use two ON-ON switches.

Here is a finished base with batteries installed. For testing, these are just ordinary A batteries, not rechargeable. The LED board sits in a recess but I used a couple of spots of silicone sealant to hold the LED board in place (but any glue will do).

withbattswhite

I forgot to take a picture of the top but here is an image from OpenScad

ledstandtop

It is designed to just clip on and has 2 “prongs” which locate it and also hold the switches in place. The rectangular cut out takes a clear insert which I printed separately.

ledstandinsert

I printed the inserts using Taulman T glass clear. They simply press in and I used some clear silicone sealant to hold them in place. Here is a picture of three of them.

tops

I actually made 10 of these. One was a working prototype so “er in doors” has 9 useful ones.

nineoff

Here is a picture of one of them in white. The featured image at the top shows it in colour mode. Sorry about the reflections of my window blind which show on the top but you’ll get the idea.

finishedwhite

I put all the files including the OpenScad file on Thingiverse so you can play around with the design as you see fit – maybe you’ll be able to find an On-Off-On switch to simplify things. Here is that link again Printer parts files

 

 

 

 

 

 

Z axis lead screws.

I just wanted to share my thoughts about lead screws and the like for Z axis motion. I have read numerous posts on various forums by people claiming that threaded rod isn’t accurate or that it is only suitable for holding things together and never for linear motion. They will then go on to say that one should use “proper” lead screws.

So my first observation is that, by definition a lead screw is a threaded rod. However, I don’t really want to enter into this endless debate, except to say that I am comfortable with my own decision to use threaded rods which were not specifically branded as being “lead screws”.

What I do have a bit of a problem with is multi-start lead screws for use on Z axes. It seems that people buy them because they are labelled “lead screw” and therefore must be superior. Many machines are built using them too – probably because the manufacturer thinks they will sell more if they can say they use “lead screws”.

One very important thing to think about is “lead” (pronounced leed not led). This not the same as pitch although often people think that it is the same thing. It happens to be the same thing for single start screws but for multi start screws, it is completely different.

To illustrate the point I have been playing around with OpenScad, wrapping a helix around a cylinder to simulate what a screw thread might look like.

Here are two images of a rod 8mm tall.

1start2mmside

4start8mmside

The pitch of a screw thread is the distance between two “peaks”. As you can see, there are 4 of these peaks over the length of the 8mm rod in each picture so the pitch is 2mm in both images.

This next image is the same as the top one but looking more from the top.

1start2mmtop

If you trace a line from the top of the rod and follow it around anticlockwise for 1 full turn, you’ll see that you end up exactly 1 pitch distance (2mm) below where you started. This is the lead and it means if a nut was held on the rod so that it couldn’t rotate, in revolution the nut would move 2mm. This is a 2mm pitch single start screw so also happens to have 2mm lead.

Now let’s look  at the top of the second image.

4start8mmtop

Here we can see that it is completely different and that is because it is a 4 start screw, with each helix offset by 90 degrees. Now what happens if you trace the line as before? To make it easier, I’ve taken away 3 of the threads and left just one……….

1start8mmtop

 

………and from the side it looks like this

1start8mmside

As you can see, an 8mm single start screw wouldn’t have much contact area between  the screw and a nut which is why they are made with 2 or 4 threads offset by either 180 or 90 degrees to each other.

So now we can see that tracing a line for 360 degrees as before moves us the full length of the rod (8mm) so the lead is 8mm. This is a 2mm pitch 4 start lead screw and people buy them because they think that 1 revolution will mean a linear movement of 2mm when in fact 1 revolution will give 8mm of linear movement.

Why is this not a good idea for our Z axis? Firstly look again at the angle of the helix and compare it with the top picture which is a single start screw. You’ll see that it is much steeper. Therefore, a heavy Z axis bearing directly down on the rod could exert enough force such that the bed would fall under it’s own weight as soon as power to the motor is lost. Also, it will require more torque to drive the rod because it has to move the load a greater distance for a given angular movement (in the case 4 times greater). So we’ll most likely need a bigger motor.

But most importantly it will have an adverse effect on accuracy, which is ironic when people buy lead screws because accuracy is their main criteria.

To elaborate on this, I need to do a little maths. An average stepper motor moves 1.8 degrees between steps (I am aware that one can buy 0.9 degree stepper motors but they are more expensive). So, I revolution will be 200 steps assuming we have 1:1 gearing and are not using asymmetric pulley sizes. For our 2mm single start screw which has a lead of 2mm we can say that 200 steps = 1 revolution = 2mm. Or it’s 100 steps per mm which means that for a resolution of 0.1mm layer height, it will be 10 steps, 0.2mm will be 20 step, 0.3will be 30 steps etc.

Now for the 4 start, 2 mm pitch lead screw which has a lead of 8mm, 200 steps = 1 revolution = 8mm. So instead of 100 steps per mm we now have 25 steps per mm and for our 0.1mm resolution we have 2.5 steps, for 0.2mm it’s 5 steps and for 3mm it’s 7.5 steps. Which means we will be relying on micro stepping for positional accuracy for anything other than our 0.2mm layer height. And micro stepping does not improve accuracy. In general, stepper motors are quoted as having a non accumulative positional error of +-5% which for a 2mm lead screw, equates to about 0.01 mm but for an 8mm lead it becomes 0.04mm which may start to become significant with 0.1mm resolution layer height.

So, multi start lead screws are designed to give a large linear movement for a given angular movement. They require more torque to drive them and provide less holding power than a single start screw of the same pitch. Basically designed for speed which would be fine for our X and Y axes but not what we want for our Z axis.

In my opinion 2 start, 2mm pitch screws are just about acceptable or 4 start but with 1:2 gearing. Finally, this is an image representing what I use.

1start1mmside

It’s 8mm diameter, 1mm pitch single start trapezoidal threaded rod. It gives me 20 full steps per 0.1mm and requires very little torque enabling me to use 3 of them to lift my 7.3 kg bed with a single Nema 17 stepper motor. If you look at my other posts, you’ll see that I can print 300mm x 300mm with no bed compensation (despite the fact that these screws didn’t have the “lead screw” label) so I’m happy with the accuracy. Maybe they will only last 30 years instead of 50 but who cares – they are cheap enough to replace (much cheaper then “lead screws”).

That was just my twopence worth……….

 

 

 

 

 

The “stripey toothpaste” effect of the Diamond hot end.

As readers of my bog will know, I have been using a Diamond hot end for quite some time. One of the issues with this hot end is that it doesn’t actually mix colours all that well. What happens is that the filament exits the nozzle somewhat like stripey toothpaste. The featured image above shows how this manifests itself. This was a simple hollow cylindrical container that I created by using a custom script to alter the mixing ratios in 1% increments at every layer change. So, the colours “fade” from 100% Red and 0% Blue to 0%Red and 100% Blue then from 100%Blue and 0% Yellow to 100% Yellow and 0%Blue and finally from 100%Yellow and 0%Red back to 100% Red and 0% Yellow.

The three pictures above are the same object viewed from different angles. The one on the left is roughly at the angle where the Blue filament enters the hot end, the one in the middle is roughly where the Yellow enters and the one on the right is roughly where the Red enters. You can see that the colour is biased towards the inlet position in the hot end for that particular filament.

The effect can be largely negated by using translucent filaments.

Or, it can be exploited. To explore this a bit further, I created a simple pyramid and orientated it on the build plate such that each face was in line with each of the filament inlet positions. I defined a single tool with mixing ratio of equal proportions for each of the 3 filaments. In this case, the filaments that happened to be loaded at the time were Red, Black and Gold. So the tool was using roughly 1/3rd of each colour. Then I printed the object just as one would using a “normal” hot end and took three pictures, each at 120 degrees around the object. Here they are:

blackredsmall

redgoldsmall

goldblacksmall

As you can see, each face is a different colour although they were all printed at the same time, using the same tool with no fancy tool changes or post processing. The top picture shows mostly Black on the left and mostly Red on the right. The next picture down with the object turned 120 degrees shows mostly Red now on the left and mostly Gold on the right. The last picture is with object turned another 120 degrees so the mostly Gold is now on the left and mostly Black is on the right. I say “mostly” because there is some mixing of the colours on each face but they are strongly biased towards the position where each filament enters the hot end.

I just wanted to show this as an illustration that sometimes what may be seen as defective or unwanted behaviour, can be exploited to ones advantage. (That is of course if one has a need for a 3 sided object with each face being a different colour).

Now on to the next picture and one that had me baffled for some time.

colourshiftsmall

I was printing something else when I came across this issue (always an issue – never a problem). So I made a simple rectangle with two holes in it, so that I could evaluate what was happening. As you can see, there is a distinct colour shift. Some sections are darker than others (or lighter depending on your point of view). It was printed mixing two filaments, Blue and White in equal proportions. It is consistent and reproducible. It will happen with any combination of extruders. i.e. extruders 0 and 1, extruders 1 and 2 or extrudes 0 and 2. There is no change in layer height or any sign of over or under extrusion. The extruder gears all appear to rotate at the same speed.

After a lot of head scratching and a lot of testing, I finally realised what was causing it. When it is printing, the infill is at 45 degrees and the head starts just below the left hand hole and moves diagonally in the direction of top left to bottom right whiles traversing toward the right hand side. This is the dark section. So it goes all around the bottom of the hole, then it reaches the right hand side of the hole after which it goes all the way to the top of the print. Then it reaches the right hand side of the right hand hole, and goes around it.

So for all of these moves, each new line of filament (apart from the first line) is supported by or squashed up against, the previous line on the left but has free space on the right.

Once the print head reaches the top right corner of the print, it then moves to the nearest unprinted section which is the top of the right hand hole, nearest to the right hand corner. To continue the print, the head still moves in the same direction diagonally but this time it is traversing from right to left instead of from left to right.

So now, for all these moves each new line of filament is supported by or squashed up against, the previous line on the right but has free space on the left.

Going back to what we now know about the filament coming out as stripey toothpaste, it is reasonable to deduce that the colour of the “mixed” filament changes depending on whether the filament is supported and/or squashed on the left with free space on the right compared to being supported on the right with free space on the left. To put it another way, it seems that the newly extruded filament rolls or twists either towards or away from the previous line of filament thus giving a predominance of one colour over another depending on the direction that the head is traversing.

At least that is my theory. It explains what I have observed happening but like a lot of theories that come up in the world of 3D printing, it isn’t actually proven. The only way to do that would be to put the prints under a microscope.

Looks like that might have to be something to add to my tool box…….watch this space……..

Ian

 

 

Latest update to blog 6th Jan – multi colour printing without wipe and prime towers.

Before I launch into this, it occurs to me that people not familiar with mixing hot ends might be confused when I talk about tool changes. I explain how to define tools in another post, so I won’t go into it again here. Just be aware that a tool change and a colour change are one and the same thing, so I apologise if might use the terms interchangeably.  Also of course, “colour” and “color” are the same thing but I’m English so to me it’s “colour”.

As I reported earlier, I found an issue with the original script when tool (colour) changes were close together. Having looked again at my feeble attempt to write code, I did find the problem – in fact I found a few.

The main issue was that the script would not move a tool change to a position earlier than the previous tool change. On the face of it, that seems logical. However, the script didn’t “remember” that the previous tool change itself had been moved to an earlier position in the file. One way to think about it is a stream of commands with tool changes at various points and we need to move all these tool changes forward in the file by an amount equivalent to, (for the sake of argument) 2.5mm of extruded filament. It shouldn’t matter if there is only 1.0mm of filament between some of these tool changes as they will all be shifted by the same amount.

That was the main thing I needed to fix but while I was looking at the code, I found a couple of other problems. The first was that the way I segmented the moves was incorrect. That is to say that the new tool position is almost invariably somewhere in an existing “XYE” move so that move has to be split, the tool change inserted and then the rest of the move completed. So one line is replaced by two lines with a tool chnage command inserted between them. The amount of filament extruded (the “E” number) was correctly apportioned to each line but the corresponding X and Y amounts were not correctly apportioned.

The other thing I found was that the new lines could be inserted in the wrong place in certain circumstances. As an example, my machine is set to do very fast “non-print” moves so it might have a line something like “G1 X170.329 Y165.990 F21000.000” (a feed rate of 21,000 mm/min or 350mm/sec) followed by “G1 F4800” which sets the speed back down, in this case to 4,800 mm/min or 80mm/sec for normal printing. I discovered that in some instances, the script would put the new segmented moves and tool  change command after the fast non-print move but before the speed change back to normal command. This would have resulted in those two print moves being executed at 350mm/sec which would have been interesting to watch!

So I have deleted the link in the original post to the Python script and here is my latest feeble attempt. It does actually get the job done but I know any professional code writer will probably burst into tears if they see it.

To save a lot of copying, pasting and formatting of text, I’ve take a number of screen “snips” of the code. The comments should make it clear as to what I’m trying to do.

capture1

capture2

capture3

capture4

capture5

capture6

capture7

capture8

I haven’t included a link to the script this time but I’ll make it available if anyone is interested. Just leave a comment if you want me to do this.

Ian