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.
Friday, 22 August 2008
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.
Subscribe to:
Posts (Atom)