My wife has been asking me to make something to prop up the overladen branches of our dwarf apple tree for a few weeks now. I put it off while I was set up for ABS because I knew I did not have enough to finish my Darwin. Now that I have switched the machine to HDPE it is no problem, but it is now a few days late as one large branch has already snapped off!
We have lots of plastic covered metal poles so all I needed to do was make some Y-shaped end pieces. My first attempt went a bit chaotic while making the arms: -
I wasn't watching it but I figured it got too hot when doing the small pieces so I made the arms thicker.
Better but still very rough, it should look like this :-
I cleaned it up with a penknife and it was functional but it felt more whittled than extruded.
I made a couple more with even thicker arms but I was around to observe what was going wrong this time: -
When building the curved arms Enrique's software switches to 100% fill because it decides part of the layer is two layers from an outer horizontal surface, which a thin sliver down each side is. That would not be a problem in itself but because I have the infill overlap option set it ends up with slightly too much plastic on the 100% layers. As the height increases this excess builds up until the nozzle is actually submerged in the object while it is building it. Amazing that it manages to make anything resembling the correct shape!
What really needs to happen is that if the infill overlap parameter is set then the head needs to lay down the infill slightly faster so that the amount of plastic is still correct. I ran into the same problem with ABS when making an object with 100% fill.
I made a fourth version with the infill overlap set to zero and it was a lot better: -
Still very blobby but all the blobs are down to extruder overrun and easier to carve off. Overrun is worse with HDPE because it seems to be a more non Newtonian liquid than ABS. I.e. it compresses and expands more than ABS does, so when the extruder stops it oozes for longer.
I haven't tried anything to stop ooze yet. Simply stopping the extruder before the end of the line like the RepRap host does should improve it and is easy to do. Reversing the motor drive should also help. Simply stopping causes the extruder flow rate to fall exponentially but backing up a little should stop it completely in a finite time. The shaft encoder can then be used to go back at full speed to where it was before it backed up. There will still be some ooze without a valve but I think it could be a lot better.
Here is the final version cleaned up: -
And here is the tree with four crutches installed although only three are visible from this view though: -
My attempts to make a rapid prototyping machine that I will use to make parts for a machine that will be able to make parts for a copy of itself.
Tuesday, 26 August 2008
Monday, 25 August 2008
Back to black
I have used up all of the 5lbs of ABS that I bought from the RRRF with just a couple of plastic parts left to make to complete my Darwin. I bought 2Kg of ABS from Tempatron but it is too oval to fit my current extruder, so it will have to wait until I build the new extruder for my Darwin. In order to complete that extruder I have had to go back to using HDPE. I always intended to make the filament guide for it out of HDPE anyway, because it is a lot more slippery than ABS, PCL and PLA.
It is quite a while since I did any work with HDPE and I didn't print many modeled objects with it before I switched to ABS, just lots of test blocks. In the meantime I have rebuilt and tweaked my extruder quite a lot and changed the way I do rafts. It took me a few attempts to dial in the parameters to get reasonable print quality.
In the end the result is not bad. The object on the far right is an ABS version, the one next to it is the best HDPE version.
The test piece is an alternative solution to the problem Vik mentions here: new-x-carriage-hot-off-reprap.
It replaces the y-belt clamp that holds a piece of filament (which carries the cables to the extruder) and also provides the bearing surface missing from the "no support" version of the Darwin x-carriage. You can see the gap above the bar created by the teardrop shaped hole below: -
Here is the new HDPE piece installed: -
It also fixes the fact that the screw hole pitch of the belt clamp does not match the holes in the carriage. HDPE is very good for making bearings so I intend to remake all the bearing inserts in it when the ABS ones wear out.
The first thing to do is get the raft temperature correct to make it stick, but still be peelable from the chopping board. I start with the temperature at a value I know will be too low and go up in steps of 10°C until it sticks enough, but not too much.
The next thing I do is get the first layer temperature right so that the object can be separated from the raft. I found that quite hard to control with ABS and much more so with HDPE. I increased the temperature until the outline started sticking properly and found a small test object was still peelable. When I made larger objects they were stuck fast. I normally use a small penknife to separate stubborn objects but after stabbing my fingers three times I resorted to a chisel! I think some of the variability is down to changes in ambient temperature and bed temperature. The XY table of HydraRaptor is made of several Kg of aluminium, which acts as a heatsink for the motors. They run a lot cooler than my Darwin's motors despite having more power through them. The table slowly warms up to about 30°C, about 10°C above ambient. 10°C is enough to make all the difference between sticking and not. I probably need to measure raft surface temperature and adjust the first layer accordingly. Another thing to try would be to do the first layer outline hotter than the infill.
I dropped the build speed from 16mm/s to 8mm/s for three reasons: -
A few things that are different about HDPE:
Here it is cleaned up :-
The large hole for the PTFE barrel is undersized and my PTFE stock is oversized so I think I will have to turn it down to get it to fit. I drilled out the other holes.
Similarly the filament guide is warped on the underside but it is only the top side that needs to be flat.
As predicted it is slippery and my oval ABS glides through it very well.
I just have to make the metal extruder parts now and that completes the mechanical build of my Darwin.
It is quite a while since I did any work with HDPE and I didn't print many modeled objects with it before I switched to ABS, just lots of test blocks. In the meantime I have rebuilt and tweaked my extruder quite a lot and changed the way I do rafts. It took me a few attempts to dial in the parameters to get reasonable print quality.
In the end the result is not bad. The object on the far right is an ABS version, the one next to it is the best HDPE version.
The test piece is an alternative solution to the problem Vik mentions here: new-x-carriage-hot-off-reprap.
It replaces the y-belt clamp that holds a piece of filament (which carries the cables to the extruder) and also provides the bearing surface missing from the "no support" version of the Darwin x-carriage. You can see the gap above the bar created by the teardrop shaped hole below: -
Here is the new HDPE piece installed: -
It also fixes the fact that the screw hole pitch of the belt clamp does not match the holes in the carriage. HDPE is very good for making bearings so I intend to remake all the bearing inserts in it when the ABS ones wear out.
The first thing to do is get the raft temperature correct to make it stick, but still be peelable from the chopping board. I start with the temperature at a value I know will be too low and go up in steps of 10°C until it sticks enough, but not too much.
The next thing I do is get the first layer temperature right so that the object can be separated from the raft. I found that quite hard to control with ABS and much more so with HDPE. I increased the temperature until the outline started sticking properly and found a small test object was still peelable. When I made larger objects they were stuck fast. I normally use a small penknife to separate stubborn objects but after stabbing my fingers three times I resorted to a chisel! I think some of the variability is down to changes in ambient temperature and bed temperature. The XY table of HydraRaptor is made of several Kg of aluminium, which acts as a heatsink for the motors. They run a lot cooler than my Darwin's motors despite having more power through them. The table slowly warms up to about 30°C, about 10°C above ambient. 10°C is enough to make all the difference between sticking and not. I probably need to measure raft surface temperature and adjust the first layer accordingly. Another thing to try would be to do the first layer outline hotter than the infill.
I dropped the build speed from 16mm/s to 8mm/s for three reasons: -
- HDPE puts maximum strain on the extruder because it is the most viscous at extrusion temperature so it is both the hottest and the highest pressure.
- Heat builds up in the object limiting the minimum size that can be made without inter-layer pauses, something I have not implemented yet.
- HDPE likes to cut corners and not go where it should and I think going slower helps the accuracy.
A few things that are different about HDPE:
- Extruder ooze creates blobs rather than strings with my current nozzle. They are harder to remove because they are a lot thicker. Faster head movement on my Darwin should drastically reduce this effect.
- The brush I use to wipe the nozzle works perfectly with HDPE but not very well with other plastics. This is because HDPE extrudes in a straight line and is not very sticky. In contrast ABS tends to curl upwards and sticks well to the nozzle.
- HDPE spans gaps a lot tighter than ABS does because when it is stretched it remains under tension whereas ABS doesn't.
- Holes always come out smaller than they should be, but with HDPE this effect is worse. Dr Bowyer published a correction formula based on there being too much material on the inside of circles but I get contractions an order of magnitude greater. I think it is related to how much I stretch the filament but I need to do some more work on it.
Here it is cleaned up :-
The large hole for the PTFE barrel is undersized and my PTFE stock is oversized so I think I will have to turn it down to get it to fit. I drilled out the other holes.
Similarly the filament guide is warped on the underside but it is only the top side that needs to be flat.
As predicted it is slippery and my oval ABS glides through it very well.
I just have to make the metal extruder parts now and that completes the mechanical build of my Darwin.
Sunday, 24 August 2008
Alternative Z-endstop
I prefer my machine to home the z-axis away from the workpiece so that homing is always a safe operation, regardless of what state the machine is in. The standard endstop bracket allows the opto to be mounted on the horizontal rails but for a bottom endstop it needs to be mounted off one of the vertical posts. I designed a new bracket and tab for this: -
The tab enters the opto from the side which gives the best resolution. Here it is installed :-
It can be mounted anywhere on the vertical post so could be used as a top endstop as well but I don't see the point of stops at both ends.
The way I calibrate HydraRaptor's z-axis for FFF is that I get the head somewhere near the table and measure how far away it is with a rule to get rough calibration. I then instruct it to go to 3mm above the table. I roll a 3mm bright steel rod under the nozzle and jog the axis up and down in s/w until it just touches. This has to be done with the nozzle fully warmed up to the working temperature because the PTFE expands about 0.5mm.
The calibration drifts on HydraRaptor because the frame is made from wood so the weather affects it, something that Darwin should not suffer from.
The files are here: www.thingiverse.com/thing:124.
The tab enters the opto from the side which gives the best resolution. Here it is installed :-
It can be mounted anywhere on the vertical post so could be used as a top endstop as well but I don't see the point of stops at both ends.
The way I calibrate HydraRaptor's z-axis for FFF is that I get the head somewhere near the table and measure how far away it is with a rule to get rough calibration. I then instruct it to go to 3mm above the table. I roll a 3mm bright steel rod under the nozzle and jog the axis up and down in s/w until it just touches. This has to be done with the nozzle fully warmed up to the working temperature because the PTFE expands about 0.5mm.
The calibration drifts on HydraRaptor because the frame is made from wood so the weather affects it, something that Darwin should not suffer from.
The files are here: www.thingiverse.com/thing:124.
Friday, 22 August 2008
Shaft encoder, second attempt
I made a right mess of the first design, not only did I get the angle wrong but the second opto is also at the wrong radial distance, which is why its amplitude was less. So I had to redesign the bracket, here is my second attempt: -
The correct angle for quadrature needs to be (K + 0.5)(180 / n) where n is the number of slots in the wheel and K is an arbitrary integer. The first convenient angle which straddles the bolt through the motor is 45°.
A single coat of BBQ paint seems adequate to block the IR beam.
A bit of a pain to wire up! If it proves to be a useful encoder I will design a pair of PCBs.
The waveforms are now both full amplitude and in quadrature: -
The edges are slow because I am using 4 pin optos, Zach seems to have bought up the world's supply of the five pin ones for the RRRF! The five pin versions have a built in Schmitt trigger to square up the waveform before it goes down the cable. Most micros have Schmitt trigger inputs these days but the disadvantage is that any noise in the cable will advance or delay the edge slightly, giving a timing error. Given the imprecise nature of this encoder I don't think it will make much difference.
The correct angle for quadrature needs to be (K + 0.5)(180 / n) where n is the number of slots in the wheel and K is an arbitrary integer. The first convenient angle which straddles the bolt through the motor is 45°.
A single coat of BBQ paint seems adequate to block the IR beam.
A bit of a pain to wire up! If it proves to be a useful encoder I will design a pair of PCBs.
The waveforms are now both full amplitude and in quadrature: -
The edges are slow because I am using 4 pin optos, Zach seems to have bought up the world's supply of the five pin ones for the RRRF! The five pin versions have a built in Schmitt trigger to square up the waveform before it goes down the cable. Most micros have Schmitt trigger inputs these days but the disadvantage is that any noise in the cable will advance or delay the edge slightly, giving a timing error. Given the imprecise nature of this encoder I don't think it will make much difference.
Monday, 11 August 2008
RepRapped Shaft Encoder
I have started making an extruder for my Darwin but I am running out of ABS. I bought some more from Tempatron but it is very oval, up to 3.5mm, so it wont fit through HydraRaptor's extruder. So it is a race against plastic to make a new one with a bigger bore! I will try making the filament guide out of HDPE as that is the most slippery of the four plastics I have.
One thing I definitely wanted to try in ABS before it ran out was to make a shaft encoder. The latest RepRap V1.1 design has one with a single opto but it needs support material and gears. I am happy with the older design now that I have got it to run reliably, so I needed an encoder that mounts directly on the motor. I also prefer two optos in quadrature to avoid errors from backlash and stopping exactly on the edge of a slot. I want to experiment with backing up the filament as well, so I will make this version reversible.
I knocked up a design which uses a pair of slotted optos in CoCreate : -
The wheel is the same as Ed's design except that I have added a boss which mates with the top shaft of the GM3 gearmotor. It has 18 teeth which gives 72 steps per rev with quadrature encoding. One turn of the extruder feeds 0.8mm of plastic with an M5 drive screw. That will extrude about 0.4mm of filament per step, so not great resolution.
When making the opto flags for my Darwin I realised that quite thin walled objects come out OK and are still reasonably strong. I think the bracket is the thinnest thing I have designed so far, its walls are only 2.4mm thick. Its shape really requires support material for the slots and holes but it came out fine without any. It was particularly hairy though when it came off the machine: -
A bit of whittling with a penknife soon cleaned it up :-
Here it is installed on the motor :-
I wired up to an oscilloscope to test it: -
As you can it is very noisy because I have not made a new suppressor for the GM3 yet. Also the top trace does not go high properly. This is because quite a lot of IR light gets through the ABS when it is so thin. Not surprising as you can see visible light through it. I painted the top surface black with BBQ paint and that improved it a lot.
I think a second coat on the underside will improve it further. The waves are not in quadrature because somehow I managed to get the angle wrong, so I will have to make another bracket. It will function fine at half the resolution so I might press on with the extruder first.
So a cheap and cheerful shaft encoder, but not very high resolution. Since slotted optos are just LEDs and photo transistors in a bit of plastic, I think I will make another one with the raw components that will be even cheaper. I could put some more teeth on but that would make it harder for people to make and I want people to be able to upgrade their machine with their machine. Another way to do it is by printing onto film with a laser printer. There is a good site about that here.
One thing I definitely wanted to try in ABS before it ran out was to make a shaft encoder. The latest RepRap V1.1 design has one with a single opto but it needs support material and gears. I am happy with the older design now that I have got it to run reliably, so I needed an encoder that mounts directly on the motor. I also prefer two optos in quadrature to avoid errors from backlash and stopping exactly on the edge of a slot. I want to experiment with backing up the filament as well, so I will make this version reversible.
I knocked up a design which uses a pair of slotted optos in CoCreate : -
The wheel is the same as Ed's design except that I have added a boss which mates with the top shaft of the GM3 gearmotor. It has 18 teeth which gives 72 steps per rev with quadrature encoding. One turn of the extruder feeds 0.8mm of plastic with an M5 drive screw. That will extrude about 0.4mm of filament per step, so not great resolution.
When making the opto flags for my Darwin I realised that quite thin walled objects come out OK and are still reasonably strong. I think the bracket is the thinnest thing I have designed so far, its walls are only 2.4mm thick. Its shape really requires support material for the slots and holes but it came out fine without any. It was particularly hairy though when it came off the machine: -
A bit of whittling with a penknife soon cleaned it up :-
Here it is installed on the motor :-
I wired up to an oscilloscope to test it: -
As you can it is very noisy because I have not made a new suppressor for the GM3 yet. Also the top trace does not go high properly. This is because quite a lot of IR light gets through the ABS when it is so thin. Not surprising as you can see visible light through it. I painted the top surface black with BBQ paint and that improved it a lot.
I think a second coat on the underside will improve it further. The waves are not in quadrature because somehow I managed to get the angle wrong, so I will have to make another bracket. It will function fine at half the resolution so I might press on with the extruder first.
So a cheap and cheerful shaft encoder, but not very high resolution. Since slotted optos are just LEDs and photo transistors in a bit of plastic, I think I will make another one with the raw components that will be even cheaper. I could put some more teeth on but that would make it harder for people to make and I want people to be able to upgrade their machine with their machine. Another way to do it is by printing onto film with a laser printer. There is a good site about that here.
Tuesday, 5 August 2008
X & Y
I have finished building my Darwin Cartesian bot. It went together fairly easily although I did cheat when it came to making the pulleys. The idea is to cast toothed pulleys in PolyMorph using a mould made from RP components and lined with a piece of belt. I had one go at this and decided it was not going to produce an accurate result: -
The RP mould, when made on my machine, is not round enough and for some reason the diameter of the mould is too small, making the resulting pulley very thin walled and flimsy. It produced a 13 tooth pulley but 16 teeth is the correct number for 0.1mm per motor half step and makes a chunkier pulley. I bought three aluminium ones from Farnell for £5.90 each: -
These are ridiculously expensive for what they are but I think it is worth spending a bit of money in an area that increases accuracy. It is also one of the few places where the accuracy of the parent machine affects the accuracy of the child.
The big problem is that they only have a 4mm hole in them so you have to bore out the x-axis one to 1/4" and the two y-axis ones to 8mm. To do that accurately really requires a lathe. As mine is only a tiny watchmaker's lathe I had to use every drill from 4.5mm to 8mm in 0.5mm steps. I found that dipping the drill bits in Trefolex cutting compound made it much easier to drill. This was recommended to me for tapping but it great for drilling as well. It is a sort of jelly, so not too messy.
When you use a twist drill to make a hole it comes out a little small and not perfectly round. It needs to be finished off with a reamer to get a nice fit onto the motor shaft and the 8mm rod. I happened to have a 1/4" reamer but I had to improvise for the 8mm ones with a piece of emery paper wrapped around a 7mm drill shank. Not ideal, so I ordered an 8mm reamer as I expect I will be making lots of 8mm bearing holes in the future.
I also had to drill and tap M3 set screw holes in the pulleys. Easily done with a drill press and it means I don't have to file a long flat on the y-axis drive shaft.
I tested the axes with a signal generator connected to the step input of my stepper motor drivers to find the pull in step rate, i.e. the maximum rate at which the motor will start with no acceleration. Here is the x-axis running at 150mm/s: -
RepRap Darwin x-axis from Nop Head on Vimeo.
Any jerkiness seen is the video, not the axis, which runs very smoothly. The axis does not have the mass of the extruder on it yet but I have run it at the same speed with a reel of solder on top. I expect with a bit of an acceleration ramp, like I use on HydraRaptor, I will be able to get it to go two or three times faster. This is not too surprising because it is a similar design to a 2D printer carriage but with a much more powerful motor. It will be interesting to see what effect it has on stringing if I speed up the head moves from 32mm/s to 150mm/s or more.
I have the motors wired bi-polar parallel, which is the fastest configuration. The inductance is four times less and the voltage halved so I think that is 8 times faster than bi-polar serial. Added to that I am using a 36V supply instead of 12V and FETs rather than Darlingtons. The voltage on the motor will have gone from about 9V to about 36V, so all in all about 32 times faster current rise rate I think. I am using expensive drives but the only aspect I don't know how to do cheaply is anti-resonance, so unless I am stepping through the resonant frequency I should be able to recreate this performance cheaply.
The rated current in this mode is 3.4A per phase but I am only using 1A per phase at the moment so that they don't get too hot. Given that the average supply current from the 36V rail will be correspondingly less than this, it should be fairly easy to generate the 36V supply from 12V to keep to the original goal of using PC power supplies or car batteries.
It would be good to use electronics that can boost the current while accelerating and decelerating.
Here is the y-axis running at 100mm/s: -
RepRap Darwin y-axis from Nop Head on Vimeo.
A few things I have noticed about the design that I would do differently: -
The RP mould, when made on my machine, is not round enough and for some reason the diameter of the mould is too small, making the resulting pulley very thin walled and flimsy. It produced a 13 tooth pulley but 16 teeth is the correct number for 0.1mm per motor half step and makes a chunkier pulley. I bought three aluminium ones from Farnell for £5.90 each: -
These are ridiculously expensive for what they are but I think it is worth spending a bit of money in an area that increases accuracy. It is also one of the few places where the accuracy of the parent machine affects the accuracy of the child.
The big problem is that they only have a 4mm hole in them so you have to bore out the x-axis one to 1/4" and the two y-axis ones to 8mm. To do that accurately really requires a lathe. As mine is only a tiny watchmaker's lathe I had to use every drill from 4.5mm to 8mm in 0.5mm steps. I found that dipping the drill bits in Trefolex cutting compound made it much easier to drill. This was recommended to me for tapping but it great for drilling as well. It is a sort of jelly, so not too messy.
When you use a twist drill to make a hole it comes out a little small and not perfectly round. It needs to be finished off with a reamer to get a nice fit onto the motor shaft and the 8mm rod. I happened to have a 1/4" reamer but I had to improvise for the 8mm ones with a piece of emery paper wrapped around a 7mm drill shank. Not ideal, so I ordered an 8mm reamer as I expect I will be making lots of 8mm bearing holes in the future.
I also had to drill and tap M3 set screw holes in the pulleys. Easily done with a drill press and it means I don't have to file a long flat on the y-axis drive shaft.
I tested the axes with a signal generator connected to the step input of my stepper motor drivers to find the pull in step rate, i.e. the maximum rate at which the motor will start with no acceleration. Here is the x-axis running at 150mm/s: -
RepRap Darwin x-axis from Nop Head on Vimeo.
Any jerkiness seen is the video, not the axis, which runs very smoothly. The axis does not have the mass of the extruder on it yet but I have run it at the same speed with a reel of solder on top. I expect with a bit of an acceleration ramp, like I use on HydraRaptor, I will be able to get it to go two or three times faster. This is not too surprising because it is a similar design to a 2D printer carriage but with a much more powerful motor. It will be interesting to see what effect it has on stringing if I speed up the head moves from 32mm/s to 150mm/s or more.
I have the motors wired bi-polar parallel, which is the fastest configuration. The inductance is four times less and the voltage halved so I think that is 8 times faster than bi-polar serial. Added to that I am using a 36V supply instead of 12V and FETs rather than Darlingtons. The voltage on the motor will have gone from about 9V to about 36V, so all in all about 32 times faster current rise rate I think. I am using expensive drives but the only aspect I don't know how to do cheaply is anti-resonance, so unless I am stepping through the resonant frequency I should be able to recreate this performance cheaply.
The rated current in this mode is 3.4A per phase but I am only using 1A per phase at the moment so that they don't get too hot. Given that the average supply current from the 36V rail will be correspondingly less than this, it should be fairly easy to generate the 36V supply from 12V to keep to the original goal of using PC power supplies or car batteries.
It would be good to use electronics that can boost the current while accelerating and decelerating.
Here is the y-axis running at 100mm/s: -
RepRap Darwin y-axis from Nop Head on Vimeo.
A few things I have noticed about the design that I would do differently: -
There is a bit of runout on the y-axis motor coupler leading to the shaft wobbling a bit and the motor bracket flexing to accommodate that. I think it would be better to have another bearing at this end of the shaft and a flexible coupling to the motor.I will leave these tweaks until I have the machine up and running. All I have to do now is make a new extruder, hook my stepper drives to a micro and port my firmware. I will then have a Darwin that I can directly compare with HydraRaptor and see how it differs in performance. I will then look at replacing the electronics with something much cheaper.
Several of the bearings are made with an RP insert, in my case ABS. I don't know how long these will last. I will have a go at making them from HDPE some time as that should make a better bearing and possibly replace the y-axis ones with 0608 skate bearings.
The rod that carries the Y-axis idler pulleys is held in place by tight fitting "jam" bearing inserts. I can't see the point of these, other than making all the y bearing housings the same. I would replace two of the bearing housings with a smaller part with an 8mm hole through it to carry the rod and possibly a set screw to lock it in place.
The X and Y axis opto tabs enter from the top. The opto has a 0.8mm vertical slit which is the optical aperture. A tab coming in from the side blocks all the slit at once making its resolution several times better than when the tab enters from the top. This graph, taken from the datasheet illustrates the difference: -
The z-axis opto endstop is at the top whereas I prefer to home away from the workpiece so that homing is always a safe operation when z is homed before x and y.