Tuesday 21 July 2009

Production issues

Since the beginning of the year HydraRaptor has been fairly reliable. I optimistically thought that I could get the 100 hours of printing done in a week. I set one build off before I go to bed and another before I set off for work. I use these slots to print the large parts, in multiples if possible. I use the evenings and weekends to print the many smaller parts while I am around to remove them.

I have a script that can print multiple copies of the same object. It works out how many can fit on the bed and spaces them out so that the head can get in between them. It then prints them, one at a time. I have to remember to tweak the script whenever I change the extruder shape. It simplistically works out the bounding box of the object and then uses the object height to decide how fat the extruder is at that height and spaces the objects so the extruder clears their bounding box. A more sophisticated approach would be to do collision detection between 3D models of the extruder and the object. That would get them a bit closer together in a lot of cases, but I don't consider the gain worth the extra complexity.

I could get a lot more on the bed if all the objects were printed one layer at a time. The easiest way to do that is to load them all into a CAD program, place them like a jigsaw and then join the bases with a very thin membrane that is too thin to actually print, but makes them into one object so they can be sliced together. The reason I don't do that is that the chance of a breakdown in a build that would take tens of hours, possibly days, is too high at the moment. Also, if it did go wrong it could waste a lot of plastic. The objects would also end up with a lot more string on them as the extruder has to flit between them on every layer. Perhaps when the system is more reliable, and ooze control is better, I will switch to this approach.

Right from the start things did not go to plan and in the end it took two weeks to complete the build and used almost all of my free time during those two weeks. Not something I would choose to do again until I can get it much less labour intensive.

The first time I made these parts the extruder kept breaking due to parts wearing out: the flexible drive cable, the JB-Weld, the 6V GM3 motor, the PTFE barrel and the bearings. Having eliminated all those causes, the breakdowns were more due to human error and bad luck.

This is the extruder I used: -

A recurring problem I had was the extruder jamming due to the heatsink getting too hot, allowing the plastic to melt inside causing the plug effect I have detailed before. It can then no longer be pushed forward, so I have to remove the pump parts and pull it backwards while it is hot.

I have disassembled it and reassembled it so many time that the M3 threaded rods started to lose their threads. I keep meaning to make a wider extruder with M5 bolts but never get round to it. Once the extruder has broken you can't print new parts so you have to fix it some other way, then you don't need the new parts! I should really keep a spare working extruder.

When the threads had stripped, rather than replacing them, I swapped the bottom two wingnuts for threaded brass spacers. They have a much longer thread engagement area, so get round the problem. They are also blind, so they only go on so far. I found with them fully on, I got the right spring tension for ABS using a pair of M4 nuts as spacers. For HDPE I added a second nut each side. Being able to reset the tension consistently each time I put it back together was a big bonus.

The reasons it got too hot were various, but fundamentally it needs a better heatsink or a fan to give more margin between the running temperature and the glass transition of the plastic. The new extruder controller I have built but not tested yet has a second fan drive and a second thermistor input to allow the cool zone to be regulated. A simpler solution in the case of HydraRaptor would be to make the extruder base / clamp out of aluminium. That would conduct the heat to the z-carriage, which is all aluminium, so could dissipate hundreds of watts .

I eventually tracked down the first reason for over heating to a bad four pin connector in the wires to the heater and thermistor. They are rated at 3A in the Maplin catalogue, but I have had problems with them on the extruder controller before and I am only putting 2A through them. The connections go high resistance for no apparent reason. If it is the heater connection then the heater cools down and the connector gets hot. I have had one de-solder itself from the board.

This time the thermistor connection intermittently went high resistance causing a low temperature reading. I also had the extruder motor stop during a build, again it appeared to be due to its connector failing. I don't know why they do this. If I re-seat them then they work for a while and then fail again. Perhaps they are not rated for the number of insertions they have had due to constantly rebuilding the extruder for 2 years! I have built my new controller with Tyco connectors rather than these unbranded ones.

I switched from the 0.3mm nozzle I have been using recently to 0.5mm so that I could use the same g-code I made the first set of parts from. I can do that because I only use the g-code for tool path information. All the machine settings like temperature and feed rate are in my script.

After the nozzle swap, molten plastic started oozing out of the side of the extruder. The bolts which clamp the compression joint had worked themselves loose after many heat cycles. Changing the nozzle broke the seal and let the plastic out. Tightening them again fixed it.

With the older 0.5mm nozzle I had trouble getting its PTFE cover to stay on. This is essential for making the nozzle wipe work and prevents burnt bits of plastic getting incorporated into the parts leaving brown marks. I had a daft idea of taping it on with Kapton tape. That did not work, but when putting it on I forgot the thermistor wires round back and broke one off.

I had to drill another hole and stick a new thermistor in with Cerastil, a 24 hour job. Worse than that I must have mixed the Cerastil with too little water because it started to come out a day later. Because it was out of sight I did not notice, but the objects started to get very hard to remove from the raft and the raft from the bed. It was only when I broke a hole in the surface of the bed that I realised. So another 24 hours of repairs!

I fixed the PTFE cover with two tiny set screws into indentations in the nozzle.

Other times the heatsink seemed to get too hot for no apparent reason, the hot weather did not help. Generally it failed near the end of a large object, very annoying. In the end I used a mains fan about 1m away to keep the heatsink cool.

Apart from the reliability problems the other issues I had were as follows: -

The corner blocks have hair line cracks through the narrow bits half way up the middle of the vertical edges.

This happened on some of the blocks on my original Darwin and does not seem to matter. I think it was worse this time round because the rafts I used held them down better, leading to less curl up of the bottom corners, so more stress through the edges. I made these with 90% fill, rather than 25%, to ensure they were strong enough. It made absolutely no difference to the cracking but added 8 hours to the print time. It makes the thin bits stronger, but it also increases the warping forces by the same amount.

The rafts I use at the moment are very well bonded. On the up side that reduces warping by holding the object down, but it is quite difficult and time consuming to remove. The only object that pulled away from its raft was the extruder drive block.

This is the worst case in the set because it is both wide and thick. Fortunately it does not need to be flat.

This part came out a bit bockety where it gets thin near the top: -

The problem is the layer is so small it does not have time to cool before the next layer arrives on top. I fixed it by adding some logic which halves the extrusion speed if a layer would take less than 10 seconds at full speed. You can see it completely fixed the problem: -

It was not sufficient for the very thin opto tabs though, so I also cooled them with a fan. Here are the with and without fan versions side by side: -

I won't be printing another set until I get my own Darwin up and running. I hope to double the extrusion speed and reduce the ooze with a stepper driven extruder. The bed is much bigger so perhaps it will only need two batches taking about 1 day each.


  1. Im wondering how would it compare with the worm gear design. If I understand right you adjust the tension of the M5 thread for different materials (abs, hdpe).

    With the worm gear design (if I remember correctly) there were no adjusting possibility.

    I would really like to see your second (more polished) extruder finished. I dont know what is your final conclusion (m5 thread vs. worm gear)...

    Best regards,

    ps: I loved the video interview with you. You got so many equipement in a little room, its impressive.

  2. Hi,

    Just a lurker here but, i love that you are back! One day i might be building my own reprap....

    Idea: this my be silly for you for some ovious reason but when reading about your multi unatended-printing-only so much can fit on the table-i was thinking that you might be able to have some device push your newly printed stuff of the table and into รก bin on the floor??

    also can Khiraly link to the mentioned video interview?? dident find it on a quick scan...

  3. Hi Anon,
    It is not just a matter pushing them off. I have to carefully prize them off with a blunt penknife. It can take a few minutes. Sometimes I have to remove the frame round the bed to get the knife in. The frame is needed to stop the foamex board lifting at the edges.

    A hot wire might be a good way of removing them.

    You can see the two videos by following the link near the start of the the previous article.

  4. Khiraly,
    There are two approaches to pressing the filament against the thing that drives it. Either will work with both worm drive and screw thread. You can either use springs to apply constant pressure, or just fix the gap to be a constant size.

    Either seem to work. The constant gap is quicker and easier to set up, but the constant pressure has the advantage that it can handle changes in filament diameter. Also, with a constant gap, if it slips it will never grip again because the filament has been worn down.

    With constant pressure the gap would close up and still be able to grip the shaved filament.

    Most designs can do both simply by fitting the springs or leaving them off.

  5. I will persue the stainless steel extruder, probably with a worm drive, as soon as I have my new extruder controller working. I needed to upgrade to be able to drive a stepper.

  6. Guys been thinking about the pinch (with worm gear) extruder and my original idea of using O rings as springs and having axles which are pulled in. I have problems with the axles twisting and binding.

    I think a better way is to have the pinch idler (not the worm gear) set up as a wheel with an O ring tyre around it. if the gap between the bottom of the concave face of the worm gear and leading edge for the O ring tyre is about 2mm you get 1mm worth of spring courtesy of the resilience of the O ring rubber. Whilst using fixed axles with no adjustment necessary.

    You can get away with this method using the lathe cut work gears because the worm gear contact face is concave and will seat the filament against the convex surface of the O ring.

    O rings are as cheap as chips and easily replaced as a consumable item.

    BTW the idler wheels can be mounted onto axles reasonably friction free using RC Servo Bearings in their centres.

  7. Could you possibly tell us where we can find the script to print multiple copies of an object at once? Thanks!

  8. I wrote my own, and it is specific to HydraRaptor, which is driven by Python script rather than g-code, so is not much use for another machine. I think Wade Bortz has written one that works with Darwin.

  9. Cyrozap,
    I think Skeinforge can do multiple copies of the same object now with the multiply.py module.