Showing posts sorted by relevance for query sheets. Sort by date Show all posts
Showing posts sorted by relevance for query sheets. Sort by date Show all posts

Tuesday, 13 March 2012

Mendel90 files

I have put the Mendel90 files on GitHub. There is the OpenScad source code plus some Python scripts that, given a machine configuration, will generate all the STL files for the printed parts,  DXF files for the sheets, SVG drill templates, a master BOM with a matrix showing where the parts are used and sub-assembly BOMs for each of the sub-assemblies.

Two standard configurations are included: Sturdy90 is the MDF version with 10mm rods that I have had running for three months. Mendel90 is an acrylic version with 8mm rods and the same build area as a Mendel that I have assembled but not run yet. The generated files for these two configurations are also on GitHub.

The directory structure is as follows: -

├───imported_stls       The pulleys and gears that I use but don't have OpenScad source for.
├───mendel                 Generated files for the Mendel90 variant.
│   ├───bom
│   ├───sheets
│   └───stls
├───Prusa_retrofit       A Z motor bracket that allows the Mendel90 x-axis to be fitted to a Prusa.
├───scad                    The OpenScad source.
│   ├───conf               OpenScad configuration files.
│   ├───utils                Utility modules for making objects, such as polyholes.
│   └───vitamins          Models of the non-printed parts.
└───sturdy                  Generated files for the Sturdy90 variant

The top level directory contains the build scripts. To make all the files for a machine run: - machine_name

To make just the bom, sheets or stls run, or machine_name.

machine_name can be mendel or sturdy. To make your own variant copy scad\conf\mendel_config.scad or scad\conf\sturdy_config to yourname_config.scad and edit it. Then run make_machine yourname.

To view the model of the whole machine open scad\main.scad. It will take about 8 miniutes to render but after that you can pan and zoom it at reasonable speed and changes takes less time to render.

To view a sub-assembly open the individual scad files. Set the exploded flag in config.scad to make exploded views.

scad\conf\config.scad contains constants that should be independent of machine variant, for example screw clearance hole sizes. It includes machine.scad that is generated by the build scripts to include the configuration for the specified machine variant.

Thanks to sevikkk (Vsevolod Lobko) for making the scripts work on Linux as well as Windows.

I will put the build instructions in the RepRap wiki soon. These will mainly consist of the exploded views of each of the sub-assemblies with the list of parts in it. Unfortunately OpenScad can't export images from the command line at the moment so they have to be made manually in the GUI.

On my todo list is to add scripts to make images of all the STL files, PDFs from the SVG files using inkscape and produce the BOMs in spread sheet format using OpenOffice. I also need to write a script to tile the SVG files to allow them to be printed on A4 sheets and taped together like the Darwin bed template.

Sunday, 25 December 2011


I never understood why Mendel has a triangular prism frame. The way I see it, the frame only has two functions: - To hold the Y bars in a flat plane and to support the tops of the Z bars. It isn't good at doing either:

  • The main forces on the Z bars are in the direction of the X-axis and the frame has no strength in that direction. It wobbles when the X-carriage changes direction. 
  • It also doesn't ensure the Y bars are in a flat plane because there is nothing to ensure one end triangle is not rotated slightly relative to the other. 

After a trip down a cobbled street in Sheffield my Mendel behaves as if one corner of the bed is lower than the other three. This is impossible because it has a flat sheet of glass on it, but it isn't obvious what needs to be adjusted to fix it but it must be the ends of the Y -bars. The bed needs to be level to within about 0.05mm for good results printing 0.3mm layers without a raft. That is difficult to achieve when the Y axis is strung from bars at opposite sides of the machine.

Other problems are: -

  • It gets smaller at the top, so the maximum Z travel is limited by the extruder colliding with the bars. 
  • The sizes of the Z axis and the Y axis are tied together, so you can't change one without the other. 
  • It is difficult to adjust the axes so that they are orthogonal to each other and keep them that way if the machine is moved.

This machine is my attempt answer to these problems. I am calling it Mendel90 as I can't think of a better name at the moment. The 90 is to emphasise that the frame is based on right angles rather than 60 degree triangles.

Two flat sheets are mounted at right angles to form the XY and XZ planes. Two buttresses maintain them at right angles to each other. This relies on the sheets being cut at perfect right angles but in the UK you can buy sheet materials such as MDF or acrylic cut to size and they have good right angles. The only cutting I had to do was to cut the arch out with a jig saw. It doesn't need to be accurate and it could be done with a hand saw. The piece removed could be used to make the Y carriage, depending on the material.

The buttresses are bigger than they need to be. I took them all the way back to give me plenty of room  to mount my non-standard electronics, but it also has the advantage that the machine will sit on five of the six faces, making it easy to work on.

If the anti-backlash springs are fitted to the Z-axis it should print in all those orientations as well, which would be interesting to try. When printing directly on glass, parts come loose when the bed cools. If the machine was on its back they would fall out the bottom. Who needs an ABP? It might also solve the PLA ooze during warm up problem.

The gantry could be unscrewed and laid on its back over the top of the Y axis to make the machine more compact for travelling. In this case the buttresses could be slimmer to allow it to become even more compact.

I used B&Q style fixing blocks to fasten the sheets together.

I bought some of these and I printed some. They are a lot faster to print than Mendel frame vertexes! The economics are interesting: they are cheaper to print than buy, but while my machines are fully occupied making parts to sell, it is more economical for me to buy them. The printed ones are actually more accurate than the injection moulded ones! The holes are all over the place. I think they must be formed by removable cores and the tool must be worn allowing them to move.

I drilled pilot holes using a paper template. I did this by exporting DXF files of the sheets from OpenScad. I then hacked together a Python DXF reader and an SVG writer to make a program that generated drill centres. I printed them on a large plotter but it could be done with A4 sheets tiled together like the Darwin bed template.

The design is modelled in Openscad, down to the nut and bolt level, and is fully parametric so you can make any size machine and scale the rod diameters and motor sizes if necessary. The only limits are that eventually belts would need to be replaced by rack and pinion above a certain length. It also automatically generates a complete bill of materials for anything in the model.

See also: mendel90-extrudermendel90-axes and mendel90-finishing-touches.

Merry Christmas!

Friday, 2 October 2015

No More Mendel90 kits

We sold our last Mendel90 kit today. We found it increasingly difficult to get Dibond that wasn't scratched and after going through four different suppliers we eventually gave up and synchronised the rest of our stock to the number of good Dibond sheets we had managed to get.

The problem is we don't have room for an 8' x 4' router, so we get the sheets cut into smaller blanks that fit on my A2 router. The sawyers that cut them keep forgetting that, unlike other materials like wood and acrylic, the aluminium chips that come off Dibond are sharp enough to cut through the protective film and damage the surface. That means that all the chips need to be cleaned off the cut pieces before they are stacked. You would think that companies whose main business is selling cut to size sheets for decorative use would know this, but they all seem to make the same mistakes over and over again, wasting my time and their money.

Many thanks to all our customers for all their kind words and recommendations.

Back to experimenting and blogging ...

Thursday, 16 February 2012

Mendel90 finishing touches

I have tweaked a lot of things since building the prototype. The design is fully parametric meaning each part works out how big it should be from basic parameters like the desired build volume, rod diameter, the motor sizes and the layer height used to print it. That means any little modification can change everything slightly, which is why I won't release the files until it is finished. For example, if I increase a screw hole clearance then the brackets might get a bit bigger and that will knock on to moving the holes in the sheets and may increase the sheet size slightly. I also want the drill templates to be accurate so every part that needs a mounting hole had to be modelled, even the cable clips and wire holes.

The cable clips are designed to keep the limit switch wires away from the motor wires to prevent crosstalk. The hole sizes are calculated from the wire size and the number of wires using circle packing rules and so are the holes through the frame for the wires.

The printed holes that need to be accurate sizes are polyholes if they are vertical, truncated teardrops if they are horizontal. I added on half the layer height to all the horizontal teardrops and nut traps to allow for the staircase effect of the layer sampling.

Another change that had a lot of little knock on effects was to allow thin sheets to be used for the vertical parts of the frame, requiring nuts on the back. That necessitated moving the buttresses and fixing blocks to avoid clashes. The net result is that you can specify the thicknesses of the sheets and whether to use nuts. If using nuts it will calculate the the screw length just long enough to work with a Nyloc nut and generates a clearance hole in the sheet. When not using nuts it calculates a screw short enough to not go right through, generates a pilot hole and adds a star washer under the screw. If the sheet is hard it generates machine screws and a hole to be tapped, otherwise it generates a wood screw.

In order to standardise the screw lengths I made all the parts of the brackets that take a screw the same thickness.

I want the BOM to be accurate and remain that way, so the model includes everything apart from the hot end and the electronics. I haven't used any libraries so there are no dependencies apart from OpenScad itself.

I modelled the belt twists and the tension loop to get an accurate assembly diagram and length on the BOM (hopefully I haven't tested that yet). I also modelled the cable strips to get their lengths. The one to the extruder was tricky as it is completely free-form and the ends differ in X, Y and Z. I modelled it as half an ellipse with a shear transform to gets the ends in the right place. It is probably not mathematically accurate but looks about right. Interestingly there isn't a simple formula for the circumference of an ellipse as there is for a circle, only numerical approximations.

I redesigned my fixing blocks to have slotted holes to allow a bit of adjustment. I also changed the hole depth to allow the same screws to be used as elsewhere and cut away some plastic that wasn't adding much to the strength.

RepRap firmware uses a bottom limit switch that needs a fine adjustment. It also needs a coarse adjustment to allow for different nozzle lengths. I found this difficult to accommodate because of limited space at the bottom of the z-axis. This is the design I arrived at after much deliberation: -

The switch is mounted on a lever that is hinged at the bottom by a thin section of plastic and sprung against a screw adjustment by two rubber washers. An extra type of vitamin but I am not impressed by printed springs.

I developed exploded diagrams to make the build instructions. A picture like this with its bill of materials should be self explanatory.

The z-couplings don't need as much clamping strength as the ones I designed for the Prusa (they only need to rotate the screw and not hold the weight of the x-axis) so I was able the make them slimmer, which was necessary to avoid a clash with the z-motor bracket when using NEMA14 motors on the Huxley sized machine.

As you can see two pictures above I also added some pointers on the lead screws. These can be set to face the rods when Z is homed and can then be used to observe if the two motors have got out of step and whether the z-limit switch is repeatable.

This is what the Mendel size machine with 8mm rods looks like with a 6mm acrylic frame and a 10mm base (without the bed).

Note that to make transparency work in OpenScad you have to draw the transparent objects after all the things you might be able see through them.

The hole cut through the gantry is just big enough to make the Y-carriage. I prefer to make my Y carriages from DiBond as I think they are a bit lighter and handle heat better, but acrylic should be OK and it seems a shame to waste such a big bit. I wouldn't recommend it on the MDF version as that is thicker and so even heavier. I have seen people mount PCB beds directly on MDF but I found that even when spaced off and insulated it warps enough to keep throwing the bed out of level.

I offset the Y-axis to allow the ribbon cable for the bed power to be central. That makes it easier to attach the wires to the PCB. I don't think there is any problem with the belt being nearer to the two bearing side, in fact it is probably better.

I had to slim down the back of the Y-idler bracket to prevent a clash with the bar clamp on the Huxley90. The overly long bolt is simply to reduce the number of unique fasteners. Similarly the cable clips could use smaller screws but I kept them the same as the other base screws. On the Mendel90 the base screws are M4 or No6, on Huxley90 they are M3 or No4.

I used a hacked up D connector shell on the prototype with hexagonal posts for locking. To remove those as vitamins and I designed a printed version that uses normal M3 nuts and screws for the locking. It also has a cable clamp optimised for the ribbon cable and its supporting plastic strip.

Again an exploded view makes it clear how the captive parts fit.

I also crudely modelled the tie-wraps because the 10mm bearings require longer ones to be on the BOM.

Modelling the wing nuts showed that one can clash with the X-end if it is oriented in some directions. Fortunately the bolts are captive hex heads so you can rotate the head and try again if the nut happens to stop where you don't want it. I am currently using M4 extruder mounting screws but I see the Prusa2 has moved to M3. I think that would solve the clash with smaller wing nuts but there are a lot of extruders and hot end designs using M4 I think, so I am not sure if I will follow. In any case it is simply a configuration parameter if you are printing your own.

You can see that I added a small part to the belt tensioner. It works a lot better than the Nyloc I had in the design before.

I also added some more nut traps to make assembly easier. Even a pair of "flying" ones inside the X-motor bracket. You can just see one here:

I have done a lot of changes the make things scale correctly for a Huxley sized version. This uses 6mm rods and NEMA14 motors.

I need to make a smaller extruder though as a Wade's is way too big. I plan to do a mini Wade's with a NEMA11 motor for 1.75mm filament. That will make the carriage smaller and reduce the width of the machine.

I also want to make a parametric PCB heater design to allow arbitrary machine sizes.

So as you can see I have put a lot of work into this since Christmas. In fact nearly all my spare time, until 2am a lot of evenings. I get really ticked off when people demand that I release the files before it is finished. Unlike a lot of people I don't put half baked things on Thingiverse, only tried and tested designs.

As all the parts have changed a little bit I am in the process of printing all the Mendel sized 8mm ones to check them. I will then release the design on GitHub. I had wanted to release it with make files to generate all the STLs automatically but it seems the command line option of OpenScad is currently broken so people will have to make their own if they change any of the parameters.

Monday, 7 August 2017

Will it burn

I always intended to put lots of different tool heads on HydraRaptor but after being a milling machine for a while it got stuck as a 3D printer until I started making Mendel90 kits and then it sat gathering dust.

Back in 2009 I bought a 1W 808nm infra red laser diode to experiment with but I never got around to trying it out until recently.

I bought it on eBay for £292, which seems very expensive now, but the seller claimed it has a spot size of only 13um x 120um. That would give a power density of 640 W/mm2, assuming a rectangular spot. In comparison a 40W CO2 laser with a round spot of say 0.25mm would give a power density of 815 W/mm2, so I expected to be able to cut through wood and plastic a few mm thick with it.

Inconveniently, the anode of the diode is connected to the case. 

It came with a driver board that takes 11-18V and a TTL enable signal and produces a constant current drive.

It is all a bit last century with through hole components and a relay. I looked at the switching waveform and found that the relay added an 8.2ms delay and there was a 2.95ms rise time.

The blue trace is the enable signal and the yellow trace the output voltage.

The two TO220 devices had their markings ground off but it was trivial to trace the circuit and work out what they are: a 7810 10V regulator and an LM317 variable regulator wired as a 1.25A constant current source.

Laser didoes are very easily destroyed by overshoot transients of even a few micro seconds duration, so most of the circuit seems to be to avoid those. R2 and C3 seem to be to stop inductive spikes from the relay getting onto the 10V rail. R4 and C6 are probably to filter any relay contact bounce but they also make the rise and fall times very slow. D1 is a mystery because it can never be forward biased, so might as well not be there.

I hacked the PCB and reconfigured the circuit to replace the relay with a MOSFET, speed up the edge rate and added a big red LED to warn me when it was on. I have a pair of Thorlabs LG9 safety glasses to protect my eyes.
Here is the new switching waveform: -

This time the yellow trace is the enable signal. The blue trace is the current waveform measured with the hall effect current sensor mentioned in my last post. The small delay turning on is while the output capacitor charges enough for the diode to start conducting. The rise and fall times are now less than 1ms which seems more reasonable.

The forward voltage of the diode is about 2.2V at 1.25A giving a power dissipation of 2.75W and an efficiency of 36% assuming the output is 1W. I mounted it on an old PC CPU cooler which was complete overkill.

I made a rough estimate of the thermal resistance of the heatsink with the fan on by attaching a 50W resistor that has the same case style as the laser. The heatsink itself is about 0.23°C/W and the case of the resistor a little more, 0.48°C/W in total. So the temperature of the diode casing will rise by less than 1°C.

These dashes were made by waving a random piece of black plastic (most likely ABS) in front of it while the 100 Hz test waveform above was driving it.

With continuous power it makes deep scars.

Holding it steady I was able to slowly drill all the way through the 1.75mm thickness but it left a ring on the surface. The exit hole was clean though. By all accounts ABS doesn't laser very well.

With these rough manual tests I established the focus length was about 35mm, which I needed to know to be able to design a mount for HydraRaptor, so that I could position it relative to the Z probe to give me auto focus.

I also established it has no effect at all on white paper because that reflects red light and this is near IR, so it will behave mostly the same as red light. It also had no effect on some Kapton (polyimide) film because that is transparent to red light. With near IR you can only cut materials that absorb the red end of the spectrum. If they are transparent or reflective to red they are unaffected. In contrast, CO2 laser light is far infra red with a much longer wavelength and that is absorbed by most things including optically transparent materials like glass and clear acrylic and white materials like paper.

I designed HydraRaptor in 2D and that was all it needed at the time because it was made from flat sheets of MDF and had no 3D printed parts. In order to be able to add new parts to it I decided to re-model it in 3D in OpenSCAD.

I mounted the heatsink on a printed bracket that aligns the laser with the centre of the table and also supports a radial blower and duct for air assist. That is a jet of air that blows the smoke away from the cut and the lens.

I made a steel plate bed to protect the XY table and allow me to hold down the work piece with magnets. An L shaped bracket made from DiBond allows repeatable alignment with the back left corner of the bed. I used that corner to allow oversized sheets to hang over the front right where there is maximum clearance.

The hole in the corner of the L is needed because an internal corner would otherwise have a radius equal to the tool radius that cut it.

The first task was to find the exact focal point and I did that by burning a line of spots from different heights into the paint surface of an off-cut of DiBond and looked for the smallest one. I have hundreds of these off-cuts from making Mendel90 kits and because the paint is a thin layer on top of aluminum it seems like a good way to measure the spot size.

After I had established the focal point I then needed to establish how big the spot is. I have a microscope and a graticule slide but it was too hard to align it by hand. The alternative method I came up with was to make a line of spots 0.1mm apart so that I could compare the spot size with their pitch and use the ratio to work out the size.

As you can see the spot isn't quite aligned with the outer case of the laser. The size works out at 0.16mm by 0.07mm. This is a lot bigger than the 0.12mm x 0.013mm advertised and only gives a power density of 90 W/mm2. The bright area in the middle where it looks to have cut to full depth is 0.036mm wide.

Laser spots don't have well defined sharp edges. An ideal laser has a Gaussian intensity distribution which falls off  away from the centre asymptotically to zero. The beam diameter is sometimes defined as where the intensity drops to half the maximum and other times where the intensity drops to 1/e2 ≈ 13.5%. So my power density calculations are somewhat naive.

The beam starts off long and thin because it comes out of the edge of the chip die. The cleaved edges form the two parallel mirrors. Whereas I think of lasers having a parallel beam, the beam from a diode laser diverges at tens of degrees. And it diverges faster in the axis at right angles to the die than it does in the axis parallel to the die. So although it starts out wide and short it ends up tall and thin.

Not only that, but the beam also has astigmatism. That is: the point that the beam diverges horizontally from is further back then the point it diverges vertically from. So focusing it to a round spot requires tricky anamorphic optics. Mine just has a plain lens that is rotated in a screw thread to adjust the focus, so it can't correct the elliptical beam shape.

My next experiment was to work out what travel speed I can engrave at. This will be different horizontally and vertically because the energy density applied to the material will depend on the area swept out as well as the power and time. This will make motion planning interesting as the speed will need to vary depending on the slope of a line and so will the kerf compensation. Alternatively the laser could be mounted on a rotary axis to keep it pointing along the axis of travel for maximum detail. That would need a very accurately aligned axis though to avoid the spot wandering as it rotates. A round spot would be a lot easier to deal with!

I engraved a 5x5mm crosshatch with each line at a different speed. Speed reduces from left to right and bottom to top. The speeds are 5mm/s, 5/2mm/s, 5/3mm/s. ... 5/13mm/s.

By looking at the cross over points one can tell if the maximum engraving depth has been reached or not. So it needs go as slow as about 0.5mm/s horizontally to not show the vertical lines.

Note that it never goes deep enough to reach the aluminium skin. It looks bright but when I check for conductivity with a mulitmeter I have to scratch away the white layer to get contact. I think there must be white primer underneath the black paint and that reflects the laser, stopping further ablation.

Here is a 5x5mm rectangle engraved with a raster of lines overlapping 50%.

I don't know what gives it an apparent texture.

While doing these tests it soon became apparent that I needed fume extraction because removing even a tiny amount of paint smelt unpleasant. I thought I might get away without it for shallow engraving as there are many open frame laser engraving machines on the market. My first attempt was to add an 80cfm fan close to the edge of the bed that sucks air and blows it down a 1" pipe that I hang out of the window.

It produces quite a powerful suction and this reduced the smell but not enough. I switched to tests on balsa wood because I thought it would be less toxic. I have a lot of 2mm sheets left over from the early days of RepRap when it was used as a bed material for PLA before better options were discovered.

It still smelt very smokey, so I decided to make an enclosure. I had always intended to do this. Way back when I bought the laser, I also bought some brushed aluminum DiBond sheets big enough to make a cover but ended up using most of them for other things. I did have two left to make the front and top and some black off-cuts from Mendel90 production long enough to make the sides.

The width of HydraRaptor is 511mm and that is bigger than the X axis of my CNC router, which is 450mm. By hanging it over the side of the bed so it just cleared the gantry I was able to route one side at a time. I made some tooling holes in the corners of the door cutout that allowed me to turn it around 180° but maintain accurate registration. If it had been 1mm wider it would not have fit the router!

The door is an acrylic one I recycled from my Mendel case. I might replace it with DiBond to remove the need to wear safety glasses. It is sealed around the edges with rubber sealing strip tape. The enclosure isn't airtight because there are holes for wires to the z-axis driver, etc, but it is under significant negative pressure when the fan is running, so they are not a problem. I cut an 80mm hole opposite the extractor fan to get a good stream of air across the bed.

The enclosure removes any smell in the room while it is engraving wood but the smokey smell remains inside the machine even after a couple of weeks.

I did a larger grid test (50mm x 50mm) to see what speed I could cut through 2mm thick balsa wood but found it didn't matter how slow I went it did not go right through but it did give a wider charred area. The speed is 5 / n mm/s, where n is the line's index.

Here is the underside: -

Just a few pin prick holes and some surrounding char where the slowest lines cross.

I did another test where instead of reducing the speed by the line's index I kept the speed constant at 3mm/s (5 mm/s for y) but repeated the line n times. I found this gave far less char and actually cut all the way through.

So horizontally it took 4 passes at 3mm/s to cut through and vertically 6 passes at 5mm/s. Working out the power energy density as passes * power / speed these are more or less the same, which is odd considering the big difference in beam width.

The next test I tried was to cut out a square using four passes at 3mm/s in both directions.

I was disappointed to find it didn't cut all the way through so I re-ran the grid test above and the laser power dropped to zero and it never lased again. The left edge of the wood was not very straight where I cut it with a knife and it left a small gap that allowed the laser beam to hit the steel plate below. What seems to have happened is the reflection was enough to destroy the diode's mirrors. It still takes the same power but gives no output. This is known as Catastrophical Optical Damage.

Where the beam had previously gone all the way though to the steel it had created black stains so that stopped any reflection. So it looks like I should have painted my steel plate black. I was also lucky that the DiBond didn't engrave down to the aluminium surface as I expect that would be an even better mirror.

So a disastrous end to the experiment!

I have ordered a 2.3W blue laser from China so I will continue experimenting with that when it arrives. I also have a 12W IR fiber laser to play with but that requires a serious power supply and cooling system, so I will get more experience with lower power lasers before I attempt to power that up.

Sunday, 21 March 2010

Making Mendel

I aimed to build my Mendel in time to show it at the Makerfaire in Newcastle but completely failed. I had two weeks to build it, which I thought was plenty. In actual fact it took closer to three weeks before I got it printing successfully. I had no major problems, just a few snags here and there and a severe underestimation of how long it would take on my part.

Printed Parts

Unlike when I printed two sets of Darwin parts, printing the parts was the easy bit. This was due to three breakthroughs I had at the beginning of the year: -
  • The heated Kapton bed removed the need for rafts, which not only take a significant time to print, but also can take a lot of manual work to remove.
  • The extruder fast reverse got rid of all the strings, which also took a long time to clean up, especially from inside the Darwin corner blocks.
  • The "no compromise" extruder is so reliable that I have the confidence to do multi-part, layer by layer builds, which gets a lot more on the table, allowing longer unattended operation.

I printed the parts with 0.4mm or 0.375mm filament and with 25% infill. For the larger parts I used two outlines for strength. Since the large parts don't need fine detail, I think printing them with 0.5mm filament and one outline would be quicker, but that would need a bigger nozzle.

The weight of the parts, not including the extruder, was only 730g. I printed the outlines at 16mm/s and the infill at 32mm/s, so it's hard to say the total time. Assuming an average speed of 24mm/s at 0.4mm diameter gives about 3 mm3/s. That would put the total time at about 65 hours. I did it as a background task over a few weeks. A lot of the parts were printed as experiments with heated beds.


I took me an evening to cut all the rods. The method I used was to nail a stop to my workbench to line up the rod against a metre rule.

I then lined a piece of masking tape up with the correct measurement and wrapped it round the rod to mark the place to cut. I also wrote the name of the rod on the tape to make it easy to identify later.

A Black & Decker workmate makes an ideal vice to hold the rods while sawing. I rotate the studding until the thread lines up with the edge of the masking tape. That guides the saw to start in exactly the right place.

I used BZP for all the studding except the z-leadscrews, for which I used A2 stainless steel because it is smoother and generally straighter. I bought the rods from Farnell and even the BZP studding was very straight, a lot better than the stuff you get in B&Q. I also used A2 for all the bars.

It was very hard work sawing the A2 until I switched to a new blade and used Trefolex cutting compound. I am not sure which made the most difference, but I could then cut the A2 much easier than I had been previously cutting the BZP. I wish I had done that earlier, it would have saved a few hours.

Thick Sheets

The thick sheet parts are not really suitable for making by hand, particularly the squashed frog. They have lots of slots, which are hard to make without a milling machine or a laser cutter, etc.

I am not sure exactly what the hole in the bed and the purge plate are for, so I made the bed a simple rectangle with four holes. I am using my own electronics, so I made the two circuit board plates to suite. I simply cut rectangles and I marked the holes and drilled them in the right place, so no need for slots. That just left the squashed frog.

I made a much simpler design with drill centres on it. There is no need for the bulging legs and sloping shoulders. I think they must be just to make it look more like a frog. Fine if you you are CNCing it, but a PITA if you have to make it by hand. Also the holes for the opto tab and the purge plate are mirrored for no apparent reason, so I made it chiral.

This just starts as a rectangle with some holes in it. Then the large slots are made with a saw thin enough to turn in the holes. The outer holes that mount the bearings can be round because they are in a a fixed place, dictated by the holes in the bed. The inner holes need to be slots because the bearings are adjustable. I just left them off the template and marked them with the bearings adjusted and in place.

I made the sheets from 3mm Dibond, which is below the recommended thickness, but seems stiff enough. It is also light weight and very easy to machine.

Thin Sheet

I didn't have any optos, so I used micro switches for my end stops, hence didn't need any thin sheet parts. I simply attached them to the bars of each axis with P-clips. A little RepRapped bracket would be better but I was building this in a hurry, so had gone into bodging mode at this point!

They seem to have sufficient repeatability and certainly will when I replace the electronics with my new design, which will know the motor phase, reducing the uncertainty by a factor of 32. It is the same switch that I have used on the z-axis of HydraRaptor, which has proven totally reliable. They seem to be this one from RS, not cheap.


These were easy enough to split but, because the reinforcing wires run in a spiral, the blade tends to follow one for a while before managing to cut through it. That leaves a ragged edge with a bit of wire sticking out.

I didn't understand the rationale for slackening the belts until you just don't see backlash when moving one motor detent. I am microstepping anyway, so a motor detent is not significant. I made my belts good and tight.


I had a few snags with the mechanical assembly: -

The x-axis spacers are too short. The STL files are 5mm shorter than the parts in the STEP assembly. That caused the motor to clash with the nuts on the 360 bearing.

The 180 bearing at the other end was about 10mm from where it should be.

A simple fix was to slide the axis along leaving a 10mm gap to the spacer, the only problem remaining is that the spacers rattle at certain step rates.

The STEP model shows this gap should be only 5mm, but I have been unable to find the discrepancy. My rods and inspection distances are correct and the ends of the rods are flush with the clamps, as they are in the model.

The bed springs seemed to be too long to compress to the length of the bed-height-spacer-31mm_1off, which is not actually 31mm, but 29mm, so I don't know what gives there, I just spaced them a bit higher.

The bolts in the z-bar clamps are too long to allow the bearing to be inserted. I replaced them with shorter ones.

Similarly the bolts in the x-carriage get in the way of the extruder I fitted.

The J3 jigged distance did not seem correct. The distance between the y-bars is set by the J2 distance and the 3 nut spacers.


I used Wade's extruder design as I didn't have time to adapt any of my own.

The gears work well, with very little backlash, but the small one has some movement on the motor shaft. It is just a press fit with a flat on the shaft. I need to redesign it with a captive nut and grub screw.

I didn't have a suitable M8 shoulder bolt so I made one from brass by attaching a nut with a pin through it.

I hobbed it with an M3.5 tap. I haven't measured the grip, but I get the impression it is not as high as Wade gets, I am not sure why.

For the bottom half of the extruder I used some parts that Brian was looking for volunteers to test for him.

The insulator is made from PEEK with a PTFE liner. The idea being to get the strength of the PEEK and the slipperiness of the PTFE. It seems to work well with PLA, which is all I have run through it so far.

The barrel is long because it is designed to take nichrome, but I just screwed it into a block of aluminium with a vitreous enamel resistor in it.

This was left over from a previous experiment. I have now moved onto a smaller resistor size, so this block could be smaller. The barrel could be a lot shorter with this arrangement and that would give less ooze and less viscous resistance.

The extruder works well with PLA. The main problem with it is that it mounts at right angles to the x-axis, so the motor severely restricts the maximum height of the z-axis. Another issue is that to remove it you have to remove the motor to get at the bolts. To remove the motor you have to remove the big pulley to get at the motor's bolts, to do that you have to remove the pinch wheel assembly. I.e. to remove the extruder you have to completely disassemble it!


To get up and running quickly I used the same electronics that I use on HydraRaptor. The only difference being that I used MakerBot V3 stepper drivers. These use the A3977 chip and give x8 microstepping. That gives an axis resolution of 0.025mm, but more importantly gives nice smooth running.

When the weather was exceptionally dry I found they are very sensitive to static. A discharge to any part of the machine would cause the A3977 to shut down its outputs and draw enough current from the 5V rail to cause the 100mA regulator to current limit. The red LED on the power rail goes dim. Powering off and on again fixes it and there doesn't seem to be lasting damage. I suspect that might not be the case if the 5V rail was not current limited. Apparently the only way to fix it is to add external Schottky diodes. That is very disappointing as one of the nice features of the chip is that it is supposed not to need them. I will investigate further to see if all eight diodes are needed before making my own board.


I used the same firmware as HydraRaptor. I just added some compile time conditionals to cope with two pin outs and a different IP and MAC address for each machine. I also had to change from 16bit to 32 bit positional commands because the axes are bigger.


I used the same Python software as HydraRaptor but I had to re-factor it quite a lot to support both machines. I added a class to represent the Cartesian bot which holds the axis resolution, direction, maximum speed and acceleration plus the IP address. I also added a class to represent the extruder controller as I have calibration values unique to each board. I already had classes to represent thermistors and extruders.

I can run both machines at the same time from one PC and, because I only use the Skeinforge output for the toolpath, I can use the same sliced files for either machine. This is despite the fact that they run at different speeds and are loaded with different plastic.


So here is the finished machine: -

And here is a video showing it being tested: -

I am running the X & Y motors at about 0.75A and Z at about 1A. I have set the maximum XY speed to 100mm/s, but I think it could go a lot faster. Z only goes at about 5mm/s because not only is it a threaded rod drive, but it is geared down by the belt and pulleys!

I haven't printed a lot yet, but so far the results look as good as they do from HydraRaptor. The next thing to do is add a heated bed and try ABS.