Wednesday, 26 October 2016

Project: Proteus Delta part 2

Building the towers and assembling the frame:

Completed Proteus Delta frame
     For building the towers, the Emmett design calls for 1/2-inch electrical conduit which is fairly rigid on smaller sections, but over a 5-foot length it flexes almost 1/4-inch, more than enough for a motion wheel to slip and come loose, so I needed some method to fix the pipes together. Talking to David Bunch, the Emmett's designer, came up with the idea of gluing some printable spacers between the rods, so they functionally work as one unit and don't have room to flex away from each other.


12 tower gluing spacers, with 400% vertical scaling, freshly printed
     I've used 5-minute epoxy to glue printed parts together before, it gives a very solid bond with PLA, so I got some that's rated for bonding metal and plastic with a precision applicator tip container, makes it much easier to handle.


5-minute epoxy
Jig bracket
     Obviously, holding 19 different pieces in place and aligned needs some sort of jig, and David was nice enough to design a simple clamp for keeping the tubes aligned. I printed about 18 of them and then drew some guide lines on an old 2x6 topped sawhorse and fastened 5 of them to the top, instant jig. One thing I'd do differently if I built a second jig, is to glue the brackets onto the sawhorse instead of using screws, because I ended up with a slight curve in my towers that I had to minimize by cutting them down to 4 feet overall.


Assembled jig with half of a tower clamped for gluing
Clamp in use, 2 inch deck screws used as fasteners
     The process for using the jig is fairly straightforward, put two of the conduit sections in the jig, squaring the factory end, and then use the upper clamps to secure them. Then apply the epoxy to the blocks, placing them about 6-8 inches(15-20 cm) apart, then let things sit for about 15-20 minutes so the epoxy has a chance to set.

Closeup of tower half with tape measure for scale 

     Next, remove the upper clamps, and apply epoxy to the exposed faces of the glue blocks. Put the upper tubes into place, it helps to have two people for this stage, then loosely mount the clamps, square the factory ends to each other, then tighten the clamps until things are just snug, it's very easy to snap a clamp if you over tighten things. Lastly, slide the end clamps on to keep things square, then leave to dry for 2-3 hours. Once dry, unclamp everything and repeat for the other two towers.

End Clamp
Assembled tower drying
Finished frame parts waiting for assembly
     After all the gluing is done, finial assembly is simply a matter of inserting the towers into the corners of the bottom triangle and then putting the upper triangle on top, you might need to use a hammer to 'persuade' things a bit, but after everything is square and leveled, just use some 8-32x0.75 inch or M3x25mm screws and nuts to clamp things down and it's finished. I added a piece of 3/4-inch plywood to the top and bottom for extra strength, rigidity, and so I'd have somewhere to mount the power supply. I fastened the plywood on using half clamp brackets for 3/4-inch electrical conduit, 3 on the top, 6 on the bottom, they just snap into place and one screw is all that's needed to hold things securely. I've also added some light diagonal strapping on 2 sides using a couple pieces of air duct strapping.

Nearly finished frame
half clamp for 3/4-inch electrical conduit












      With the frame finished, next up is building the rod arms and assembling the slider/carriage units.

Tuesday, 18 October 2016

Project: Proteus Delta part 1

Or Building a large Delta from Electrical Conduit part 1:

     A couple of weeks ago, I backed DisTech Automation's Prometheus System on Kickstarter, and decided that rather than refit one of my existing printers, I'd build a new larger delta specifically for it. After building the Micro Kossel and MPCNC, I ran across the incomplete Emmett-Delta on OpenBuilds, which had some interesting ideas for using electrical conduit for the frame, rather than the usual expensive V-slot. I decided to go with a 30cm diameter build plate with 1 meter of build height, so the overall size is about 1.5 meters tall with a 50 cm per side base, making this something of a monster-sized machine.

Emmett-Delta parts waiting for assembly
     For the frame, I'm using 60 feet of 1/2 inch electrical conduit for the towers, and about 12 feet of 3/4 inch electrical conduit for the top and bottom triangles, you can see some of the 3/4 inch pieces in picture with the printed parts. On the 3D printed parts, I got in touch with the original designer, David Bunch, and he finished designing some of the missing parts so I could do a full build. For the controller, I'm using the well reviewed Duet 0.8.5 and pairing it with a 24 volt heat-bed from UltiBots, I'll have more on those in a future post.


Side bar fitted with drilling jigs
Preparing to drill with 3/16 inch bit
     For filament usage, I've gone through just over 1.5 kg so far, half of that in the lower corner brackets that clock in at 240 grams each. Once I'd finished printing the corners, cutting and drilling the electrical conduit to it's final size was next. Cutting was fairly straight forward, since I used this technique with a reciprocating saw, metal blade, and miter box. As for drilling the holes to actually bolt things together, I tried doing it by hand with a power drill and 3 days later, ended up with my holes all over the place. If I did it again, I'd invest in a drill press for faster and more accurate drilling.


Side bars waiting for installation. Note the messy holes from hand drilling
The primary assembly tools: a ball-ended hex key, and a 6" crescent wrench
     Once I got the screw holes straightened out, the actual assembly for the triangles is fairly straightforward, line up the holes, insert a bolt, loosely thread a nylock nut onto bolt, repeat at next hole. I did this until all of the sides for each triangle were loosely assembled, then went around the sides tightening each bolt in turn until all of them were snug, then gave each a tiny bit more of a twist to completely lock the frame.

Top triangle fully assembled
First side of lower triangle assembled, note the installation of the bed support bracket
    When assembling the lower triangle, it quickly became apparent that I'd need to install the brackets for the electronics and print bed during the assembly, otherwise I'd need to remove the upper bars to install them and potentially damage the alignment on one or more of the sides.

Lower Triangle fully assembled, including brackets for controller board

Brackets for Duet 0.8.5 controller with space for optional Duex4 expansion board
    Once all of the bolts were tightened, it was time to start work on assembling the towers, which I'll cover next time.

Completed triangles waiting for final assembly

Saturday, 8 October 2016

Delta 3D printer calibration the easy way

Micro Kossel and Mini Kossel
     As most readers will probably have noticed, I use delta mechanics on my 3D printers, they're fun to build, but a pain to get working perfectly. The cause of this difficulty is largely down to the calibration or getting the firmware's model of the machine to match reality. I'm going to demonstrate how to use some simple tools that make this process easy and straightforward.
Escher 3D Delta Calibration Wizard
     The tools I use for calibration are quite simple: a piece of standard printer paper, a laptop, the 3D printer, and the online web calculator created by Escher 3D (Calculator is here). You'll also need a program to control the printer's movements manually, such as Pronterface or its counterpart Repetier-host, I'll be using Pronterface, but all of this is very similar in Repetier as well. If your delta printer has 32-bit electronics (Smoothieboard, Duet variants, etc.) you'll want to log onto the web interface instead.
Pronterface waiting to connect to a printer
     First thing to do is connect your delta to your computer using the usb port, open Pronterface and hit the port button, this tells pronterface to check which port the printer is connected to, usually COM3 or COM4, and then hit the Connect button to link to the printer's electronics.
Pronterface after Connecting to the Printer
     Next, look at the console output on the right, listed near the bottom of the initial connection info will be some of your printer's current calibration data, how much varies depending on which firmware type/version you're using, I'm using the master branch of Rich Cattell's Marlin fork, simply because it implements a very comprehensive model of delta motion mechanics, which simplifies calibration by allowing you to update all of the variables with a single gcode command. The current mainline Marlin uses a couple of different commands to accomplish the same thing, but this really only affects how you send the updated calibration data to your machine.
Parameters for the Micro Kossel entered into the Delta Wizard
     Now that we've connected to the printer, next step is to tell the web calculator what firmware you're using, along with the current calibration settings on the printer, most of this is fairly straightforward, the relevant info is easy to get in RC Marlin by entering 'M666 L' into the command line in Pronterface. In mainline Marlin, the command is 'M503', which dumps all of the current configuration data, along with what commands are used to change things. You might need to look up some of the codes on the RepRap wiki Gcode page. Once all of the relevant info is entered into the web calculator, click on the 'Suggest probe points' button and the grid of boxes below will fill with some numbers, these are points to probe the nozzle height errors on your printer.



    Now it's time to use the piece of paper to actually measure the differences between the firmware's settings and reality. This is a fairly simple routine, first put the piece of paper on the print bed over the spot you want to measure. Then click the 'Home all' button, red arrow in the screenshot below, to zero the printer's coordinate system. Next, use the command line interface, green box/arrow in the screenshot below, and input something like 'G1 X0 Y0 Z 20' and click 'send' or press enter.
Pronterface with key controls highlighted
     The printer should respond by moving the nozzle to 2 cm off the bed at the center point. The reason for sending the nozzle to a point above the bed is simply to avoid damaging the printer by telling it to put the nozzle below the bed, which can happen with an uncalibrated machine. Next, use the manual jog buttons, blue rectangle and arrows in the screenshot, to lower the nozzle down, 1 mm at a time, then 0.1 mm once it's close to the bed, until the nozzle is just touching the piece of paper. It should be possible to drag the paper around with 1 finger, if not, raise the nozzle by 0.1 mm until it is. Once you've got that set, send 'M114' to the printer, it'll respond with the exact current position of the nozzle, the number in the Z column is the nozzle height error and needs to be entered into the web calculator's rightmost column, on the line that corresponds to the point being measured. Now just repeat this process until all of the nozzle error's have been measured, then click on the 'Calculate' button below the point table.
Finished Calibration Wizard
   A new line of text will appear, usually on a green background saying something like: "Success! Calibrated 6 factors using 7 points, deviation before 2.01 after 0.2". This is mostly irrelevant, only the deviation after value is of interest, the closer it is to 0 the closer to perfectly calibrated your machine is. The box at the very bottom will have a line or two of gcode, these are the commands to send to your printer to update the calibration. Simply click and drag over the text in the box until one of the lines is highlighted, then right-click and click 'copy' in the menu that pops up. Next in pronterface, right-click on the command line and click 'paste', this will copy the command from the web browser to the command line, and then click 'send'. Repeat if needed for the other lines of commands, then enter 'm500' and click 'send'. That saves the updated parameters to the printer's memory (EEPROM), otherwise it will just forget the updated calibration the next time you turn it off.
     Congratulations, you've successfully calibrated a delta 3D printer, now it's time to start making things with it.

Friday, 23 September 2016

Amazon.ca PLA Filament Brands comparison

3D Hubs Marvin in 4 brands of PLA from Amazon.ca
     When I was restocking on filament a couple weeks ago, I noticed that Amazon.ca had several other brands of PLA listed, some of which had very different colour ranges from the MG Chemicals PLA that I normally use, so I decided to get a spool of each to do a comparison with. The brands are (in order of Marvins): MG Chemicals Blue, HATCHBOX Purple, AMZ3D Transparent Red, and 3D Solutech Apple Green. Benchmark prints are all done using the exact same files, 3D printer, and temperature settings so any variance is the result of the filament, not the print settings. Test prints are 3D Hubs' Marvin, #3DBenchy, and a customized temperature calibration tower from Thingiverse. Both Marvin and 3D Benchy are printed at 220C on a 50C glass build plate with a light coating of glue stick.

MG Chemicals Label

765 grams of MG Chemicals PLA
     First up is the MG Chemicals PLA that I'm using as a reference point. Filament label is a bit basic, mostly just batch numbers and a brief description of the spool contents. Weight wise, the spool itself is about 190 grams of plastic, so the total weight is roughly 1,190 grams of material out of the box. Printing temperature range is 180C-220C, although it will print at up to 230C with some loss of detail.

HATCHBOX PLA Label
HATCHBOX PLA spool being weighed out of the box
    Next up is the Hatchbox PLA, it comes a plain brown box, nothing special to look at on the outside. On opening it, I was surprised at the level of information included on the label, optimum temperature range, links to the brands social media pages, and the poorly advertized fact that the spool is a Pantone Colour (Purple C). That makes choosing a colour much less of a guessing game than some brands. Spool weight is on the heavier side with 311 grams of deadweight being used just to hold the filament.

AMZ3D filament label
AMZ3D spool being weighed
    For contrast, the AMZ3D is probably the most generic brand of the lot, colour is more of a fiery red/orange than pure red, and it's quite brittle to the touch, making handling a bit tricky. Spool weight is 228 grams with a temperature range of 180C-210C although it seems to work just fine up to 225C.

3D Solutech label
3D Solutech spool being weighed
3D printed Filament Clip

    And lastly is the surprise spool in the group, the 3D Solutech Apple Green PLA. The overall presentation of this filament is the nicest of the bunch, with both a decorated box and brand label on the spool. The real surprise though is the 3D printed filament clip that is used to lock the filament on the spool during packaging, not something you usually see. Spool weight is 180 grams, with a temperature range of 190C-220C, although it prints at 225C without complaints, the 190 is a hard floor, attempting to go below that just resulted in 'air printing' or zero material flow. Amazon's supply of this brand is a bit unstable, the selection of colours seems to vary from time to time.

3DBenchy in MG Chemicals Blue PLA at 220C
3DBenchy in HATCHBOX purple PLA at 220C
3DBenchy in AMZ3D Transparent Red PLA at 220C
3DBenchy in 3D Solutech Apple Green PLA at 220C
    As you can see, all 4 filaments print fairly similarly, with only minor variations due to slightly different temperature tolerances. The 3D Solutech PLA suffered a slight extrusion glitch around layer 6 due to the slight temperature drop caused by the below nozzle cooling fans coming online. As for the temperature towers, here's a 2 minute video showing them in sequence.


    Overall, I'd recommend the both the Hatchbox and MG Chemicals brands as best quality vs cost, and the 3D solutech as a good alternate if you don't mind a slightly random colour selection. I can't recommend the AMZ3D filament at all, since while I was writing this post, it snapped inside the filament tube on the Micro Kossel below the extruder motors' gearing!

Friday, 16 September 2016

Micro Kossel effector upgrade part 4

After about 2 months of heavy usage, the version 4 effector suffered the same bending damage that affected version 3, so I've redone the platform and moved the ducting to a screw-on skirt instead of inside the effector.

Version 5 assembled 
     Another issue that cropped up with version 4 was part of the upper fan mounts had a tendency to catch against the rod arms when printing near the outer edges of the printbed, so I've moved them upward by a couple of centimeters for version 5.

Version 5 being used to print 'Marvin'
    I've printed a few things with the version 5 effector so far, and it's much better than the old version 4. The STL's are available on Thingiverse (thing:1726397), and you'll need a couple of M3x10mm screws to attach the skirt after printing.

Friday, 9 September 2016

Fine Tuning the Mostly Printed CNC

After the last meetup at RPL, I decided to try and reduce the backlash issue that I'd been getting, about 3-4mm on the central junction. I eventually traced it to a combination of a fault in my Mini Kossel's calibration data and an offset in the STLs that made things a bit loose on one end of the brackets. My solution was to print some PLA tires for the 608 bearings and make up the gap that was causing the backlash.

608ZZ bearing and PLA tire/washer
     After installing the tires, the observable backlash is reduced to less than 1 mm, hopefully fixing the problem.
 
Bearings with tires installed on centre block
     The STL for the tire is here, it takes about 1 gram of filament, and 5 minutes to print one at 0.2mm layer height with a 0.4mm nozzle. As for installing them, you need to apply even pressure across the entire rim or the part will snap, so I'd recommend printing a few extras. Overall, probably one of the simplest fixes to a problem I've made so far.

Monday, 29 August 2016

3D printer tips and tricks

One of the constants of designing and building kit or custom 3D printers is the continuous 
exploration of ideas and changes to make things work more effectively or more robust and reliable. I started my 3D printing journey last september with a basic Kossel kit printer, and I've been reworking and refining parts of it ever since. I've compiled some of the better and current modifications below, along with some tricks that I've found that make working with the printers easier.


Micro Kossel Extruder
Mini Kossel Extruder
     First up on my tour of modifications is the extruder module, probably one of the most critical parts of a 3D printer. There are literally hundreds of different designs available online, both DIY and commercial, but the one I'm using is the Prusa/Makerbot MK8, which is available online as an aluminum kit. I've modified mine with a stainless steel MK8 drive gear and a M6 pneumatic fitting that I've drilled out with a 5/32 inch bit to allow the 4mm bowden tube to reach the drive gear, it makes loading the filament much easier and allows for the use of flexible filaments as well. The other change I've made is to add a M5x10mm bolt(found at the local hardware store) to the spring to allow for higher compression, this helps grip the filament better and makes handling some of the cheaper brands easer.


Masking tape, BuildTak, UHU glue and a palette knife on my Mini Kossel build plate
     Next is bed adhesion techniques. I've only worked with PLA, so most of this probably doesn't apply to the more unusual filaments. For printing without a heat-bed, I've used masking tape, plain and with glue stick on top, works fairly well but degrades quickly and doesn't work for parts with small footprints. Best unheated surface I've used to date is 'Buildtak', a branded PEI film sheet material, it comes in 3-packs in a variety different sizes, and according to the literature, most types of filament will adhere to it without any difficulty. For heated beds, I'm currently using lightly applied UHU glue stick on 3mm glass at 45 Celsius for PLA, provides good adhesion and lets go easily if you put the glass and print in the freezer for about 10 minutes to let things cool, just remember to wash the glass every 10 prints or so, otherwise the glue will eventually build up to the point that the print gets nearly permanently stuck on the build plate. If a print does get stuck, clamping the glass firmly to a solid anchor and applying a 5-inch putty knife to the bottom of the print with a hammer can usually fix the problem.

     Last up are a couple of Delta specific tips, a simple way to measure delta rod arm length and a simple add on that drastically reduces the noise generated by the printer. 



Measuring delta rod arms for exact length step 1
Measuring Rod arms step 2
     I recently had to rebuild the rod arms on my Mini Kossel, turns out that carbon fiber tubing will strip out over time if threaded ends are used. Regardless, I had to make a quick jig to get the lengths mostly the same, and I had a bunch of Lego bricks laying around, so I drilled a couple of holes for some M3 screws, and built the jig using one arm dry assembled to set the approximate length. After the jig was finished, I used some five-minute epoxy to lightly coat the threaded parts of the rod ends and used the jig to get them to approximately 
the correct length. After everything had dried, I rejigged each rod and used a spare Lego brick and my 6" calipers to measure the exact length of each arm. The spare Lego brick acts as a marking block, providing a point of reference for the calipers, since the arms are roughly 8.5" long. 


Vibration damping feet
     And lastly, I found these useful little vibration damping feet while browsing Thingiverse. They're quick to print and easy to install, and the difference was immediately noticeable when starting my next print after installing them on the Micro Kossel, it's now very quiet and bumping the table doesn't disturb things at all.