3D printer build log

Anything not specifically related to NBTV, but at least of some technical nature that might be of interest to NBTV members. Items for sale and links to retailers do not belong here.

Moderators: Dave Moll, Steve Anderson

3D printer build log

Postby Andrew Davie » Mon Oct 20, 2014 12:21 am

I've caught the 3D printing bug!

My work charged me recently with purchasing a 3D printer, and I ended up getting us a FlashForge Dreamer -- which, by and by, I'm very happy with. $1300 including delivery from China. This machine prints small (say, 30cm x 15cm x 15cm) parts using layers of filament. The whole process is fascinating, and out of it comes a usable and strong 3D object. Given that you can design something in a very simple 3D package, then print it out, I thought I might document my build of my own personal 3D printer, as I've found that they are relatively cheap and easy to build.

I'm going with a machine called a "Mini Kossel". This is a marvel to watch in action;


http://www.youtube.com/watch?v=0Ag3jeObNf8

http://www.youtube.com/watch?v=o058GAULZt4

The neat thing is that some of the parts required for my home-built printer can be printed on my work's printer :) so that's what I've done, all in the name of learning how to use the work printer properly. Why waste an opportunity. I've learned a lot about the different materials (generally PLA and ABS) and their characteristcs, the dos and don'ts of printing, and how all of the software works. I thought I'd share all of that here, and show photos of my build in progress as we go along.

Also, I've been on a parts buying frenzy, and will post links and pictures of these as they arrive. Bill of materials so far, with nearly everythign purchased, runs to just under AUS$400, say US$375. That's including shipping! I expect that from here on in, most of the work is just printing things, screwing things together, and adjusting some software parameters.

To start, though, here's a picture of Abraham Lincoln's head that I printed yesterday. Just because I could, but actually was testing large prints and overhangs/scaffolding.

lincoln.jpg
3D Lincoln
lincoln.jpg (121.22 KiB) Viewed 24184 times


Pretty spooky, huh! I'll go through explaining all the parts, what they do and how they work, where to get them, what software to use, how to draw and design your own 3D stuff in a parametric 3D editor (OpenSCAD), how to get it into a format for printing, where to find prebuilt stuff, and finally how to print. Hopefully at the end, using my very own homebuilt printer!

Hope it's a good ride...


PS: Relevance to mechanical TV; it's a mechanical process, and you can print parts for your TV construction :)
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby Andrew Davie » Wed Oct 22, 2014 11:25 pm

Here are the first assembled parts!

printer1.jpg
printer1.jpg (65.43 KiB) Viewed 24261 times



The box holds the LCD and UI electronics. The knob is also pressable, so it selects menu items, etc. The button is a "STOP!" emergency button.
The box an knob were downloaded from the fantastic website "Thingiverse" http://www.thingiverse.comwhere you can find a gazillion 3D models for just about anything. These particular models are available in parametric OpenSCAD format. OpenSCAD is a sort of programming language for 3D solid geometry. Rather than playing with points in a 3D editor and moving those around to get the shapes I want, I just write a little OpenSCAD program to describe the shape. The program is then compiled into a shape/geometry file, which is then exported and printed.

For example (a simple one), to do the little blue insert on top of the knob, here's the actual OpenSCAD program...

Code: Select all
cylinder(r=5,h=1);


Pretty straightforward, sure. But the nice thing is I have additive and differential geometrical capability. To take, for example, a square out of the middle of the cylinder, I could do this...

Code: Select all
difference() {
    cylinder(r=5,h=1);
    cube([3,3,3]);
}


A bit of overkill there, but I subtracted a 3mm cube from the middle of the cylinder. You can translate, scale, and rotate objects very easily, and you can parameterise things, so that by changing simple values at the start of your OpenSCAD program, you can change all sorts of things. The knob, for example, was downloaded from Thingiverse and I set some values to indicate the number of ridges, the height, the width of the skirting, the interior hole size and depth, the pointer size... and that was all I had to to do have a knob exactly the dimensions and shape that I needed. It's a lot of fun and VERY easy.

OK, so the blue box, as I said... that's the control panel. This will sit on the bench, front of the machine and attached to the frame. The LCD is a part of the "RAMPS 1.4" electronics package regularly used for 3D printer projects. These are stock standard and now very cheap. I am sourcing nearly all of my components from AliExpress http://www.aliexpress.com which is a central place for buying from Chinese companies. They seem responsive and reliable so far. And very very cheap. The whole electronics shebang (RAMPS 1.4, Arduino, stepper motor drivers, LCD and assorted cabling) cost me just on US$30 including shipping.

The gadget in the front (the yellow thing) is a real Rube Goldberg contraption, and an absolute pleasure to put together and watch in operation. The yellow parts are printed in a material called ABS. This material has a higher temperature tolerance than the blue stuff, which is PLA. The long rod is in fact an allen key. Around the allen key are two springs from ballpoint pens. The brass thing holding the springs is from a euro-style terminal block. Up top, there is a safety pin which has been cut just so, and it's job is to push the allen key's bend onto a shelf when the whole thing is pushed upwards. When on the shelf, the safety pin/spring holds it there. Now here's how this thing works, and what it does. When the printer needs to perform Z-calibration (figuring out where the print bed is, and how flat it is), it 'deploys' this z-probe by moving the whole print head (the yelllow bit is a partially assemble print head; there's more to be attached) and swiping it along one of the drive belts in the machine, so that the top of the allen key catches and swings sidewards off the shelf holding it. The springs immediately pull it downwards, and the z-probe is deployed. Not added here yet is a microswitch which the allen key small end will engage when it drops down. The printer then proceeds to 'tap' the bottom of the z-probe around the print bed. When the z-probe touches the print bed, it pushes up the allen key a bit, which disengages the microswitch. Thus, the printer knows exactly the z-height of the print bed at each location. Finally, after a number of 'taps' around the printing area has extablished exactly the z-depth of the whole surface, the print head is pushed down, forcing the allen key right up past the safety pin/spring, which forces the top arm of the allen key sidewards back onto its little shelf once again. It's a real clever bit of homebrew engineering, and appears to work really well.

So, that's it for today. That print head has a lot of stuff to be added to it. There's the hot-head which does the actual printing, and the arms to attach to the carriages, which allow it to move around. But, this is a start... and it's a lot of fun so far. I'm waiting for quite a few parts from AliExpress, and as they come in I'll be building more.

For reference, the filament I'm using is 1.75mm diameter, and the resolution of the printer I'm using is 100 microns, with down to 50 microns claimed. Essentially, 20 steps/mm which is really quite accurate. Print speed is very very slow. Imagine building up an object with a cotton thread, going around and around laying the thread down to form your shape. It takes hours; the blue box you see in the picture took about 3 hours or so to print. It's fun to watch, though, and really quite clever.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby AncientBrit » Fri Oct 24, 2014 5:42 pm

Morning Andrew,

Very interesting.

Is the accuracy good enough to 'print' an NBTV scanning disc with say 0.5 mm dia. apertures?

Cheers,

Graham
AncientBrit
Green padded cells are quite homely.
 
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Re: 3D printer build log

Postby Andrew Davie » Fri Oct 24, 2014 6:07 pm

AncientBrit wrote:Morning Andrew,

Very interesting.

Is the accuracy good enough to 'print' an NBTV scanning disc with say 0.5 mm dia. apertures?

Cheers,

Graham



The print area depends on the machine. The one I'm building has a circular area 170mm diameter. As to the accuracy, as good as 50 microns (0.05mm) is possible, but 100 microns (0.1mm) typical.
You could probably print a disc in quarters, with a sort of jigsaw connection for them. It would be interesting. Very easy to design with OpenSCAD.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby AncientBrit » Fri Oct 24, 2014 6:31 pm

Hi Andrew,

170mm is a respectable size for a disc so dividing into quarters might not be necessary.

Are you taking orders!!

Cheers,

Graham
AncientBrit
Green padded cells are quite homely.
 
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Re: 3D printer build log

Postby Andrew Davie » Fri Oct 24, 2014 6:42 pm

AncientBrit wrote:Hi Andrew,

170mm is a respectable size for a disc so dividing into quarters might not be necessary.

Are you taking orders!!

Cheers,

Graham


Just for fun I had a go at a Nipkow disk generator in OpenSCAD. It's easy and elegant. Here's the code...

Code: Select all
// Parametric Nipkow Disk Generator
// Andrew Davie

$fn = 32;                     // smooth curves (bigger=smoother)

DISC_DIAMETER = 150;         // in mm

SCANLINES = 32;               // number of holes!

HOLE_EDGE_OFFSET = 20;         // mm in from outer edge for first hole
HOLE_DIAMETER = 0.5;         // size of scanline pinholes
HOLE_SPACING = 0.6;            // spacing between scanline holes
DISC_THICKNESS = 1;            // mm

MOUNT_HOLES = 5;               // number of holes for mounting screws
MOUNT_HOLE_DIAMETER = 3;      // mm screws
MOUNT_CENTER_HOLE = 10;         // radius of center hole
MOUNT_HOLE_POSITION = 15;      // radius of mounting hole position

difference(){

   // Start with the basic disc
   cylinder(r=DISC_DIAMETER,h=DISC_THICKNESS);


   // ... and remove the following items...

   // Internal shaft/mount hole
   cylinder(r=MOUNT_CENTER_HOLE,h=DISC_THICKNESS);

   // Screw mount holes
   for (i=[0:MOUNT_HOLES-1]) {
      rotate([0,0,360*i/MOUNT_HOLES])
         translate([MOUNT_HOLE_POSITION,0,0])
            cylinder(r=MOUNT_HOLE_DIAMETER/2,h=DISC_THICKNESS);
   }

   // Scanline holes around edge in spiral
   for (i=[0:SCANLINES-1]) {
      rotate([0,0,360*i/SCANLINES])
         translate([DISC_DIAMETER-HOLE_EDGE_OFFSET-i*HOLE_SPACING,0,0])
            cylinder(r=HOLE_SIZE,h=1);
   }


}



Essentially the output of this is a 3D model of a Nipkow disk with the size, number, and spacing of holes that you specify in the constants at the start. Also the center mount hole and screws are parameterised.
From this model you output a STL file which is pretty much an industry standard you can take to any machine shop or print on a 3D printer. I've added the source code (.scad) and the generated 3D model (.stl) for the above parameter configuration.

As to orders -- no, not yet but as a personal favour contact me privately and I'll see what I can do :)

Cheers
A
Attachments
Nipkow.scad
(1.17 KiB) Downloaded 677 times
Nipkow.stl
(809.03 KiB) Downloaded 672 times
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby AncientBrit » Fri Oct 24, 2014 6:45 pm

Thanks Andrew.

Cheers,

Graham
AncientBrit
Green padded cells are quite homely.
 
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Re: 3D printer build log

Postby Andrew Davie » Fri Oct 24, 2014 6:53 pm

AncientBrit wrote:Thanks Andrew.

Cheers,

Graham


Anyone wanting to actually see the above STL file (Nipkow 3D model), save the file to your computer and then visit http://www.3dvieweronline.com/ and load the STL file using the normal viewer.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby gary » Fri Oct 24, 2014 9:44 pm

Whilst the printer may or may not be accurate enough to print apertures of the size required, the mess it is likely to make should be accurately centred on the aperture - assuming that, then I would proffer that it may be ideal for making bead disks using optical acrylic balls of, say 3mm diameter - the printer should have no problem making accurate 3mm holes to seat the beads in.
gary
 

Re: 3D printer build log

Postby AncientBrit » Fri Oct 24, 2014 10:04 pm

Hi Andrew,

That request for orders was made with tongue firmly in cheek!
I didn't expect you to make that kind offer.

I hope you don't think me rude but at the moment I'll decline your offer.
All my NBTV efforts are going into getting my aperture drum monitor up and working.

(BTW I did try to send you a PM but on pressing the 'Submit' button all that happened was that the content was repeated below and your name disappeared from the recipient box. And no record appeared in the Sent log)

Again many thanks,

Graham
AncientBrit
Green padded cells are quite homely.
 
Posts: 858
Joined: Mon Mar 26, 2007 10:15 pm
Location: Billericay, UK

Re: 3D printer build log

Postby Andrew Davie » Sat Nov 01, 2014 5:13 pm

Well I'm deep into 3D printing and building my printer. The parts I have ordered from http://www.aliexpress.com have started to arrive. In particular, the "jhead" has arrived. This is the part that melts the filament and prints it onto the surface you're printing on. How it works is that the filament enters it at the top end, and a heater heats the bottom end. The filament is forced in, and melts, and is extruded at the bottom as a sticky glue type of thing. There's a lot of fine tuning to get everything right as far as melting temperatures, print bed temperatures, fan cooling of the print head, etc. But I'll get to that later. Right now I'm building my own printing head assembly, using the just arrived jhead, and what's called an "effector". The effector is simply a platform which is moved around by the arms of the three carriages. It sits in the middle of your build volume and is moved up/down/left/right by various combinations of the up/down movements of the three carriage arms. And hanging off the effector is the aforementioned print head.

The parts you see in blue materials in the following pictures are things that I've designed (in OpenSCAD - a 3D drawing package) and printed (with a borrowed 3D printer) myself.

6.jpg
The unassembled components of the print head effector
6.jpg (109.35 KiB) Viewed 24184 times


Many/most 3D printers rely on you calibrating the print surface vertical position, so that the software knows where "zero" is. Otherwise you can get a "head crash" where your print head ploughs into the print surface. Anyway, this particular printer does an automatic calibration. I posted earlier the delightful "Rube Goldberg-esque" device with the mechanical z-depth probe. It's elegant, but there are better ways. One of those is to embed "FSR"s (force sensitive resistors) under the glass build plate. The idea being that the software can lower the print head and automatically detect when it contacts the glass surface (through change in resistance of the FSRs). That, too, works... but it has disadvantages; if you want a heated build plate (and you do, to print with ABS material), then the FSRs are a problem as they can't handle heat very effectively.

4.jpg
4.jpg (73.64 KiB) Viewed 24186 times
3.jpg
3.jpg (75.18 KiB) Viewed 24186 times
2.jpg
2.jpg (76.2 KiB) Viewed 24186 times
1.jpg
1.jpg (112.84 KiB) Viewed 24186 times


SO, I got to thinking about putting the FSRs in the print head assembly, instead of under the build plate. I've designed in 3D (OpenSCAD) a prototype mechanism to work with this idea; the print head is mounted on some springs (scavenged from ballpoint pens) which normally push it downwards onto the effector. However, when the print head touches the print plate, it is forced upwards and the springs give, and the embedded FSRs which are normally pushed down upon by the print head carriage are no longer engaged, and so the system should be able to work in detecting contact between head and print bed. The really nice thing about this new way of doing it is that this provides inbuilt safety for "head crash". The springs give a couple of centimetres of "give" allowing the whole head assembly some leeway in accidental collisions.

Anyway, this thing is up on "thingiverse" -- another site I'm enamoured with (see http://www.thingiverse.com/thing:520580 ). As I write, 72 people have downloaded the files to enable them to print this for themselves. That's kind of interesting; thinking that what I'm doing is actually being used/reviewed by other people for their own experiments/printers.

Now as you can see from the short video and attached images this is a quite effective mechanism and I'm quite pleased with how "manufactured" (as opposed to homebrew) it all looks. 3D printing is lots of fun. But I suspect this is just a step on the way, because I have a much better way to do this (I think). Instead of using 3x FSR for the detection of contact, I plan to put in a microswitch to detect the upward movement of the head mount. This should be significantly cheaper and allow a much smaller head to be designed.


5.jpg
5.jpg (75.55 KiB) Viewed 24186 times


Also shown in one picture are the 6 carbon fibre arms I built. These are shown in approximate configuration giving some idea how the whole print head assembly is moved. I cut hollow carbon fibre tubing (inner diameter 4mm, outer 6mm) into 180mm lengths. Then I tapped a 4mm thread inside. The loops on the end are purchased, and I also tapped these with 4mm thread. Then I purchased twelve M4 x 40mm threaded screws and cut the heads off. I covered these with araldite (glue) and then screwed them into the carbon rods, and then screwed on the looped heads. The end result are 6 "arms" which are pretty darn close to exactly the same length.

So, that's it so far. I am waiting for a bunch of screws/nuts so that I can begin putting the frame together. Recent arrivals are the rubber drive belt for moving things, the aluminium tubing for the frame, the push-fit connector for guiding the filament (you can see that at the top of the head assembly in the accompanying pictures), and various sundries such as cork inserts to dampen vibration on the stepper motors.

MUTE_20141101_161912.mp4
(8.73 MiB) Downloaded 715 times


See you next time.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby Andrew Davie » Tue Nov 11, 2014 9:27 pm

Well, enough parts have started arriving that I can begin the build. I put the frame together today; my first indication of how big this thing is going to be. Perhaps a little smaller than I thought, but still, at 600mm tall it's a pleasing size. I got the frame together after a bit of cussin', as they say - some of the screws and nuts are difficult to engage. It looks pretty good. Even so, there is a bit of flex in the design so I can understand why the bigger printers need sturdier frames. The heated bed arrived today, too, so I've put it on the base in these mockup pictures. I have also hung (using wire!) the effector and hotend assembly where it will be in the final thing. I could only find 5 of the 6 arms I built; how did that happen? I will have to hunt for the other, though I thought I was careful putting components in safe places. Also in this mockup, the blue electronics box holding the LCD. I haven't placed the RAMPS electronics bits in the picture.

IMG_20141111_211302.jpg
IMG_20141111_211302.jpg (73.6 KiB) Viewed 24077 times


IMG_20141111_211343.jpg
IMG_20141111_211343.jpg (82.03 KiB) Viewed 24077 times


What comes next is building some carriages; those attach to the tops of the arms, and ride along the vertical posts. The carriages have to be fairly rigid in their positioning, so I need a good mechanism for wheels/bearings to travel and be held in the grooves of the vertical aluminium tubes.

When the 4x NEMA 17 stepper motors arrive, they will be attached in the bottom inside corners of the frame. You can see in the background of one of the pictures a bag of cork vibration dampeners I will install between the stepper motor and the mounts. The stepper motors will drive rubber toothed belts which will be just inside the vertical mounts, and attached to the aforementioned carriages. So, stepper motor turns, drives the belt, moves the carriage, which pushes/pulls the attached arms, which in turn moves the effector, changing the position of the hot-end printing head. Do that with three stepper motors at a time, and you control the print head fairly precisely in X, Y and Z planes. Can't wait.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby Andrew Davie » Sat Nov 15, 2014 10:14 pm

Today I installed the filament spool holder on top of the frame. The really nice thing about this whole 3D printing thing is that you can mix and match the stuff you want, typically with a single download from someone who had made their component freely available. As noted earlier, http://www.thingiverse.com is a fantastic place to find stuff to download and print. This spool holder is one that I've chosen as the ideal way to do it; there are dozens of variants. This one comes with a printable planetary gear that sits on top of the triangular frame (and what an eye-pleasing design it is, too), and allows the spool of filament to sit on top and rotate freely. I haven't put on the planetary gear yet, as I'm going to rework it to allow it to adapt to the different spool hole sizes; there is not much standardisation yet in this area. Creating an adaptor is a pretty simple task, so I'll get to that sometime in the next week or so. This spool holder also provides additional rigidity to the top of the frame, so it's quite solid there. An interesting side-note about lots of these 3D designs; most printers have a very small build area, so designers cleverly make things in parts that either snap together, glue together or screw together. In this case, the arms are designed with a bit of a sliding mechanism to allow for minor variations in the widths of the top part. Without the sliding parts, it would have been too big to print on the printer I was using, so there's that. You tend to think "how can I print this in smaller parts that fit together".

IMG_20141115_215951.jpg
IMG_20141115_215951.jpg (63.07 KiB) Viewed 24025 times


IMG_20141115_215946.jpg
IMG_20141115_215946.jpg (81.33 KiB) Viewed 24025 times


These pictures taken with a pretty crappy camera on my new cheapo ($90) Android phone. I guess you get what you pay for :)
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby Andrew Davie » Sat Nov 15, 2014 10:40 pm

IMG_20141115_222732.jpg
IMG_20141115_222732.jpg (71.91 KiB) Viewed 24024 times


The force sensitive resistors (FSR) have arrived. There are three, one shown in the picture perfectly fitting into the little inset I designed in the base of the "effector" shown in earlier posts. It's occurred to me that by putting the FSR in the base of the effector, when the effector is used for z-depth sensing and the middle bit travels up/down, then the FSR is still on the base (the non-moving bit). So the FSR wires are going to have some slack to allow for this movement. This is not ideal, so I don't see any real reason why I can't flip the FSR mechanism and put the FSR "upside down" on the moving part of the effector, and then the wires will not need any slack. So, expect to see the new design sometime soon -- and I get to print another effector assembly :)
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Re: 3D printer build log

Postby Andrew Davie » Sat Nov 15, 2014 11:02 pm

rails.jpg
rails.jpg (43.28 KiB) Viewed 24024 times


Here's an image from OpenSCAD of my design for a system to allow smooth movement of the carriages (and hence the arms and head mechanism). The original Kossel design used linear rails bolted to the vertical 1515 aluminium beams, but these are expensive ($75/set of 3). My first idea was to ditch those altogether and use some sort of bearing moving along the middle groove of the aluminium beams, which has been done in one form or another by many people. My concern with that mechanism, though, is looseness in the movement allowing for inaccuracy in the prints. And then I came up with the above. What you're looking at is the top frame piece (from the original design) with two vertical rails added, and blocks around those representing the items I've just purchased. Basically I have two 6mm rails, 300mm long. Along these travel 6mm bearing blocks, and these two rails/blocks are connected via the carriage, so the blocks move in usinson and are held firmly in horizontal movement plane by the bearings/rails. I think this will work nicely. I found 6x300mm rails (6mm) and 6x bearings (see http://www.aliexpress.com/item/Free-Shi ... 15682.html ) for just US$30 including shipping. Some of these sellers on AliExpress are very willing to haggle and negotiate. With this solution I'm saving roughly $50 on the build, and improving the precision.
User avatar
Andrew Davie
"Gomez!", "Oh Morticia."
 
Posts: 1590
Joined: Wed Jan 24, 2007 4:42 pm
Location: Queensland, Australia

Next

Return to Off Topic

Who is online

Users browsing this forum: No registered users and 18 guests