The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Tag: M2

Using and tweaking a Makergear M2 3D printer

  • Makergear M2: Bridging Test Object

    The overhang quality is on the low side of OK, but that’s without any particular configuration tweaking:

    M2 - Overhang test - overhang view
    M2 – Overhang test – overhang view

    A few strands didn’t quite anchor to the far side of the overhang opening and hang down inside:

    M2 - Overhang test - overhang detail
    M2 – Overhang test – overhang detail

    Curiously, the slab on the other side transitioned from the usual 0.10 honeycomb fill to completely solid about half way up:

    M2 - Overhang test - slab view
    M2 – Overhang test – slab view

    As with all the other objects, there’s no stringing or oozing. Looks good to me!

    The slic3r configuration, which doesn’t show the bridge speed of 100 mm/s:

    ; generated by Slic3r 0.9.8 on 2013-04-08 at 19:55:09
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.10
    ; perimeter_speed = 100
    ; infill_speed = 200
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    The OpenSCAD source came directly from Starno’s object on Thingiverse.

  • Makergear M2: Post and Hole Calibration Test Objects

    Despite the profusion of surface-finish and print quality test objects, I really care about the dimensions of a 3D printed object, because I tend to build widgets rather than art objects. These two objects, from walter’s Hole and Column Test Print, produce calibrated holes and columns from 0.20 mm to 10.00 mm in diameter, incrementing by 0.20 mm, that should slip neatly together:

    M2 - walter hole-column test
    M2 – walter hole-column test

    Of course, they didn’t, but they came surprisingly close for a first attempt.

    The 0.20 and 0.40 posts simply aren’t there, because they’re too small to print with a 0.35 mm diameter nozzle. The 0.60 through 1.40 mm posts were present, albeit fugly, and posts larger than that looked increasingly better.

    Although all the holes were present, in the sense that you could see a disturbance in the top and bottom infill pattern, the first visibly open hole appeared at the 0.80 mm spot… and it was immeasurably small. Some holes had misplaced perimeter strands stretching across the openings, which is probably due to excessive speed from my fiddling around with the numbers.

    Measuring them with a digital caliper, with no effort at finding the best orientation, then slapping the data into a Libreoffice spreadsheet, produces an interesting graph:

    M2 - Initial Hole and Post Diameter Calibration
    M2 – Initial Hole and Post Diameter Calibration

    Above about 3 mm diameter: posts are 0.1 mm too small and holes are 0.3 mm too small. Around 2 mm, posts are too big and holes are way too small. What’s important: above maybe 2.5 mm, the error is essentially constant and does not scale with diameter, so a simple Finagle Constant (or two) can solve (most of) the problem.

    Some experiments involving slic3r’s small-perimeter speed seem in order; it was 25 mm/s for these pieces.

    More care in measurement would produce better answers, but the real question is whether you can produce holes and columns with known sizes; the answer (as expected) remains “with some care”. That’s not surprising; I expect to have an M2 + PLA version of the small hole diameter Finagle Constant that I’ve been using with Skeinforge + Thing-O-Matic; the correction will certainly fall in the same ballpark.

    The slic3r configuration:

    ; generated by Slic3r 0.9.8 on 2013-04-01 at 16:20:49
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.10
    ; perimeter_speed = 100
    ; infill_speed = 300
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    The source code comes from the Thingiverse customizer as bare G-Code, so there’s not much point in reproducing it here.

  • Makergear M2: Deprime Test Object

    This object from whpthomas’s collection exercises the deprime operation in Sailfish, but it seemed like it’d be useful to verify the Marlin settings in the M2:

    M2 - whpthomas deprime test
    M2 – whpthomas deprime test

    From the other side:

    M2 - whpthomas deprime test - view 2
    M2 – whpthomas deprime test – view 2

    Yes, that was rather anticlimactic. No ooze, no stringing, no surface finish blemishes, just the finished object on the build platform’s glass sheet.

    I like that!

    The slight bumps on the sharp corner edges seem to be due to the crazy-high perimeter and infill speeds I’ve been playing with, although (I think) those are also where layer changes occurred. The first layer height came out a bit short, so there’s a small flange around the object’s bottom edge; I was figuring out how to get a precise level across the entire surface and stabilize the Z-min switch operation.

    The slic3r configuration:

    ; generated by Slic3r 0.9.8 on 2013-03-29 at 20:51:15
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.10
    ; perimeter_speed = 100
    ; infill_speed = 300
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    No source code, as it’s directly from the STL on Thingiverse; I have no idea which modeling program he used.

  • Makergear M2: Pink Panther Woman

    To set the background, here’s what the Thing-O-Matic and Skeinforge did to the Pink Panther Woman nearly two years ago:

    PPW - outie zits
    PPW – outie zits

    On the other side:

    PPW - Clip gaps
    PPW – Clip gaps

    The M2 and slic3r produced this, with the conspicuous vertical bars coming from the 0.10 infill:

    M2 - Pink Panther Woman - front
    M2 – Pink Panther Woman – front

    From the rear:

    M2 - Pink Panther Woman - rear
    M2 – Pink Panther Woman – rear

    A detail of the left hip shows that slic3r distributes the reversal zits, rather than lining them up in neat columns, and the M2 does a much better job of not depositing blobs at reversals:

    M2 - Pink Panther Woman - hip detail
    M2 – Pink Panther Woman – hip detail

    I picked 1.0 mm retraction at either 100 or 300 mm/s, pretty much out of thin air, but even some fine tuning can’t improve that very much. The zits are recessed, so the retraction may be slightly too enthusiastic.

    The slic3r configuration:

    ; generated by Slic3r 0.9.8 on 2013-03-29 at 19:38:15
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.10
    ; perimeter_speed = 100
    ; infill_speed = 300
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    No source, as it’s direct from the STL on Thingiverse.

  • Makergear M2: Cushwa Owl

    You’ve seen the overview pictures of the half-scale cushwa Owl earlier, so here are some details…

    The front view:

    M2 - cushwa Owl - half scale
    M2 – cushwa Owl – half scale

    The left side view:

    Owl - half size - left
    Owl – half size – left

    The conspicuous vertical lines come from the 0.10 infill honeycomb; there are no visible retraction zippers and the surface is smooth to the touch.

    A closeup of the beak shows the crystal-clear drooping filament; a similar effect happened on the downward-pointing feather tips. Generally, this is a sign of too-hot extrusion, but at 165 °C I’m not convinced that’s applicable. It may simply be too much overhang at this scale:

    M2 - cushwa Owl - beak detail
    M2 – cushwa Owl – beak detail

    Overall, it’s pretty good. The config info doesn’t include the external perimeter speed, which I’ve been dialing back from an insanely high value. I think it was 75 for this one, which might be flinging the filament off the edge of the beak below that steep overhang.

    The slic3r configuration:

    ; generated by Slic3r 0.9.8 on 2013-03-28 at 10:28:53
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.10
    ; perimeter_speed = 100
    ; infill_speed = 300
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    No source code, as it’s directly from the STL on Thingiverse.

  • Makergear M2: MAKE Magazine Torture Test

    This was the second object I printed, immediately after getting that good thinwall box:

    MAKE test object - arch anchor fail
    MAKE test object – arch anchor fail

    The arch foot broke loose from the platform after it grew to about 8 mm, but that seems to happen with most of the DIY printers. Apart from the tangle produced by that flaw, the rest of the object came out essentially perfect:

    M2 - MAKE Magazine Torture Test - box and pillars
    M2 – MAKE Magazine Torture Test – box and pillars

    The surface finish is rougher than I think it should be, but the dense zigzag infill on the two thicker solid walls of the box seems to disturb their outer finish; the two thinner walls have linear fill and are fine.

    The slic3r header:

    ; generated by Slic3r 0.9.8 on 2013-03-26 at 11:15:34
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.20
    ; perimeter_speed = 100
    ; infill_speed = 150
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    There’s no source code, as I used the original STL from Thingiverse.

  • Makergear M2: Fundamental Test Object

    Building these things seems to be the simplest and best way to figure out whether you have all the pieces flying in formation:

    Thinwall box - first success
    Thinwall box – first success

    I took that picture after cracking them off the glass plate, then putting them back: the box really does line up with the skirt while printing. There’s another object visible in the background; that little box really was the first completely successful object.

    It’s adapted from Coasterman’s classic calibration set, redone in OpenSCAD so it’s easy to modify. A pair of Minkowski sums produce two shapes that ensure the wall remains exactly one thread wide all the way around the perimeter.

    [Update: The revised version works better.]

    When your printer can print one of these, then you can move on to more complex objects, secure in the knowledge that you’ve established:

    • Proper bed leveling and height setting: measure the skirt thickness
    • Both the layer thickness and width match your settings
    • Extrusion temperature: not too hot, not too cold
    • Printing speed / acceleration for all layers
    • First layer adhesion to platform
    • Minimum layer time to prevent melting / slumping
    • Filament diameter
    • Extrusion “packing density” multiplier: the fundamental fudge factor
    • Accurate steps/mm for all axes to get exact XYZ dimensions
    • Mechanical stability and rigidity

    Basically, this object leaves no place for errors to hide. It doesn’t check infill, the various perimeter speeds, solid layers, and suchlike, but all the fundamentals must be correct or you’ll see painfully obvious flaws.

    For example, there’s a bit of a zipper at the layer changes. It’s better than the Thing-O-Matic ever was, but it improved as I twiddled the Retraction settings on later objects.

    No, the first few didn’t work quite that well:

    M2 - Thinwall box with previous attempts
    M2 – Thinwall box with previous attempts

    For what it’s worth, the last problem turned out to be a loose setscrew in the X axis motor pulley that produced a layer shift that closely resembled a stepper motor losing steps. All of the setscrews now sport a dab of low-strength Loctite, so that problem shouldn’t happen again.

    Yes, I did the happy dance…

    The slic3r header:

    ; generated by Slic3r 0.9.8 on 2013-03-26 at 11:01:10
    
    ; layer_height = 0.25
    ; perimeters = 1
    ; top_solid_layers = 3
    ; bottom_solid_layers = 3
    ; fill_density = 0.20
    ; perimeter_speed = 100
    ; infill_speed = 150
    ; travel_speed = 500
    ; scale = 1
    ; nozzle_diameter = 0.35
    ; filament_diameter = 1.70
    ; extrusion_multiplier = 0.9
    ; perimeters extrusion width = 0.40mm
    ; infill extrusion width = 0.40mm
    ; first layer extrusion width = 0.39mm
    

    The solid model has no surprises:

    Thinwall Open Box - solid model
    Thinwall Open Box – solid model

    The OpenSCAD source code:

    // Thin wall open box calibration piece
    // Adapted from Coasterman's Calibration set
    // Ed Nisley - KE4ZNU - Dec 2011
    // Adjust for Slic3r/M2 - March 2013
    
    //-------
    //- Extrusion parameters must match reality!
    //  None of the fill parameters matter
    
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    
    Protrusion = 0.1;           // make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //-------
    // Dimensions
    
    Height = IntegerMultiple(5.0,ThreadThick);
    
    WallThick = ThreadWidth;
    
    CornerRadius = 2.0;
    CornerSides = 4*8;
    
    SideLen = 20.0 - 2*CornerRadius;
    
    Rotation = 45;
    
    //-------
    
    module ShowPegGrid(Space = 10.0,Size = 1.0) {
    
    Range = floor(50 / Space);
    
    for (x=[-Range:Range])
    for (y=[-Range:Range])
    translate([x*Space,y*Space,Size/2])
    %cube(Size,center=true);
    }
    
    //-------
    
    ShowPegGrid();
    
    rotate(Rotation)
    translate([0,0,Height/2])
    intersection() {
    difference() {
    minkowski() {
    cube([SideLen,SideLen,Height],center=true);
    cylinder(r=CornerRadius,h=Protrusion,$fn=CornerSides);
    }
    minkowski() {
    cube([(SideLen - 2*WallThick),(SideLen - 2*WallThick),2*Height],center=true);
    cylinder(r=CornerRadius,h=Protrusion,$fn=CornerSides);
    }
    }
    cube([2*SideLen,2*SideLen,Height],center=true);
    }
    

    [Update: You should use the code from the revised version.]