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: Improvements

Making the world a better place, one piece at a time

  • Zire 71 Printed Button Shield

    After fixing that old plate, I just had to do this:

    Zire 71 protector - solid model
    Zire 71 protector – solid model

    Which pretty much fills up the build platform:

    Zire 71 protector - on build platform
    Zire 71 protector – on build platform

    And fits perfectly:

    Zire 71 protector in place
    Zire 71 protector in place

    It’s printed with 100% infill to produce a solid plastic plate.

    In retrospect, I think it’d work better if I put the notch on the bottom side with a bit of support, so that the glass-smooth surface faced the Zire. Maybe next time?

    The OpenSCAD source code:

    // Protector plate for Zire 71 PDA
    // Ed Nisley KE4ZNU - Jan 2012
    
    //-------
    //- Extrusion parameters must match reality!
    //  Print with +0 shells, 3 solid layers, 0.2 infill
    
    ThreadThick = 0.25;
    ThreadWidth = 2.0 * ThreadThick;
    
    Protrusion = 0.1;           // make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    function IntegerMultipleMin(Size,Unit) = Unit * floor(Size / Unit);
    
    //-------
    // Dimensions
    
    $fn=8*4;
    
    Length = 110;
    Width = 73;
    Thickness = IntegerMultiple(2.0,ThreadThick);
    CornerRadius = 5.0;
    
    NotchLength = 20;
    
    PocketWidth = 22;
    PocketLength = 12;
    PocketRadius = 3.0;
    PocketOffsetX = -1;
    PocketOffsetY = 10;
    
    SlotLength = 20;
    SlotWidth = IntegerMultiple(8.0,ThreadWidth);
    SlotDepth = IntegerMultiple(0.75,ThreadThick);
    
    //-------
    
    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);
    }
    
    //-------
    // Outer section of plate
    //  with nice rounded edges
    
    module PlateHalf() {
    
      translate([0,0,Thickness/2])
        difference() {
          minkowski(convexity=3) {
            cube([(Width - SlotWidth)/2 - 2*CornerRadius,(Length - 2*CornerRadius),(Thickness - 2*Protrusion)],center=true);
            cylinder(r=CornerRadius,h=Protrusion);
          }
          translate([PocketOffsetX,PocketOffsetY - Length/2,0])
            minkowski() {
              cube([PocketWidth - 2*PocketRadius,PocketLength - 2*PocketRadius,Thickness],center=true);
              cylinder(r=PocketRadius,h=Protrusion);
            }
        }
    }
    
    //-------
    
    ShowPegGrid();
    
    translate([(Width - SlotWidth)/4 + SlotWidth/2,0,0])
      PlateHalf();
    
    translate([-(Width - SlotWidth)/4 - SlotWidth/2,0,0])
      mirror([1,0,0])
        PlateHalf();
    
    difference() {
      translate([0,0,(Thickness - SlotDepth)/2])
        cube([SlotWidth + 2*Protrusion,Length - 2*SlotLength + SlotWidth,(Thickness - SlotDepth)],center=true);
      for (Index=[-1,1])
        translate([0,(Index*(Length/2 - SlotLength + SlotWidth/2)),-Protrusion])
          cylinder(r=SlotWidth/2,h=Thickness + 2*Protrusion);
    }
    
  • Thing-O-Matic: HBP Rebuild

    The basic problem with the heater on the Heated Build Platform is that the SMD pads must both make electrical contact to the Molex-style connector and withstand mechanical stress from the dangling wires & cables as the platform moves along the X and Y axes. Rather than replace the entire heater, I attached pigtail leads to the PCB, anchored those leads to the wood platform under the heater, and routed the cables through the deck under the Y axis stage a bit differently.

    However, attaching pigtail leads to the PCB poses a problem, because ordinary electronic hookup wire has thermoplastic insulation that melts or deforms at temperatures well under my usual 110 °C platform heat setting; shorting the heater wires would be a Very Bad Thing.

    Some concerted rummaging in the Big Box o’ Multiconductor Cable turned up a hank of Teflon-insulated shielded two-wire cable that, as nearly as I can tell, has pure silver conductors and shield braid: the ends were tarnished like silver and there’s nary a trace of copper in the fresh cuts. It must be military surplus and, based on a vague recollection, was most likely cough salvaged by my father, who worked as an avionics tech at Olmstead AFB in the mid-60s. Ya gotta have stuff, right?

    [Update: Alas, it’s not pure silver, as shown in the comments.]

    The general idea is to scuff up the shiny PCB surface enough to anchor blobs of JB Industro Weld epoxy that surround brass tubes holding the cables. A pair of tubes secure each cable and provide strain relief; the cable is free to move, but not by very much. The thermistor cable has a long arch that will, I hope, keep the cable at the platform temperature and reduce its cooling effect on the thermistor:

    Thermistor rewiring - heat cure
    Thermistor rewiring – heat cure

    The alligator clips connect to a bench power supply that delivered 4 V @ 2 A = 8 W that heated the PCB to about 40 °C in the rather chilly Basement Laboratory and encouraged the epoxy to cure in less time than forever.

    The final result looked like this, with Anderson Powerpoles now attached to the heater cable:

    Rewired HBP
    Rewired HBP

    The 24 AWG conductors in the cable may seem scanty for 6 A of heater current, but, hey, they’re silver.

    The three-pin connector on the end of the thermistor cable is a pure kludge, built from a 4-pin header to match the CD-ROM audio pinout on the new cable from the Extruder Controller. I kept the default pinout on this end to provide some protection against plugging it in backwards:

    Kludged HBP thermistor connector
    Kludged HBP thermistor connector

    With all that in hand, I screwed the PCB to the aluminum sub-plate, bolted it to the plywood platform, and stuck the cables onto the platform with adhesive clamps:

    Rewired HBP - front
    Rewired HBP – front

    Reaming out the hole between the red and black Powerpole shells provided just enough room for an M3 screw to anchor them to the HBP: they won’t flop around under acceleration.

    The thermistor cable exits to the left, the rest to the right, and I’m unhappy with the overall routing. I added a small bumper (made from bent steel shim stock) to keep the thermistor cable out of the gap between the Y axis stage and the left side wall:

    Y Axis gap filler
    Y Axis gap filler

    So, yes, it works, but it sure ain’t elegant.

    The first object was the revised platform level test pattern:

    Rewired HBP with level test pattern
    Rewired HBP with level test pattern

    The platform is holding level within ±0.05 mm across build plates 1 and 2, somewhat better than before. On the other paw, the whole thing doesn’t have many hours on it…

  • Thing-O-Matic: HBP Heat Shield

    With the heater off for repair, I added a strip of self-adhesive stainless steel tape to the top of the plywood platform, directly under the heater. This should reduce the wood temperature and maybe, just maybe, reduce the thermal expansion that shifts the X axis location of the Z-minimum platform height switch.

    HBP heat shield
    HBP heat shield

    It’s stainless steel because that’s what was in the Tape Lookaside Buffer; a hunk of aluminum tape, even a pair of 2 inch / 50 mm strips would work just fine.

    Not shown here is the M3 screw through the front-center hole (invisible under the tape) that will eventually anchor the new heater connector.

  • Thing-O-Matic: Heated Build Platform Center Screw

    While I was rebuilding the HPB heater wiring, I drilled / countersunk / tapped a 4-40 hole in the middle of the aluminum sub-plate for a screw to secure the middle of the heater PCB:

    HBP center attachement screw - top
    HBP center attachement screw – top

    Remember: this plate is firmly secured to the plywood build platform with three leveling screws over springs. Another aluminum plate, with Kapton tape as the build surface, sits on top, providing an absolutely flat build platform. If you’re using a single plate, you could backfill the hole with a dab of JB Industro Weld epoxy atop a lightly greased screw, then file the top flush with the plate.

    A flat-head screw harvested from a chunk of electronic junk came from the Drawer o’ Short 4-40 Screws and fit perfectly:

    HBP center attachment screw - bottom
    HBP center attachment screw – bottom

    Mirabile dictu, the screw was short enough that it didn’t require any trimming to stay below the top surface.

    Securing the center of the PCB to the aluminum plate cuts the heater’s free span in half: the PCB originally had screws only along the left and right edges. Its thermal expansion visibly bowed it away from the plate and I hope this will reduce that problem. Of course, now the PCB’s expansion has nowhere to go and those thermal stresses will probably begin chewing up the mounting holes.

    While I was at it, I removed the MBI “heat spreader” tape from the PCB. I’d been reluctant to do that, for fear of peeling the traces right off the board, but the surface was in fine shape. Whew!

    More on the wiring and epoxy blobbed brass tube later…

  • Platform Level Test Pattern

    Unlike that pattern, this OpenSCAD program produces an STL file that gets sliced in the usual manner, so that the end result shows exactly how the first layer of all other objects gets laid down.

    Thread Thickness Test - solid model
    Thread Thickness Test – solid model

    It’s two threads wide and one thread thick: customize the OpenSCAD code to match the settings in Skeinforge (or Slic3r or whatever you’re using) to make it build properly.

    The two tabs mark the +X and +Y directions. The bottom surface will be wonderfully shiny from the build plate, so the symmetry along the diagonal shouldn’t pose a problem.

    Should the thickness vary more-or-less linearly along any of the bars, then you know which way to level the platform. If it varies non-uniformly, then either the build plate isn’t flat or the printer has other problems.

    The actual width depends on the actual thickness, of course: a too-low nozzle will create a too-wide pattern regardless of the extrusion settings. The thickness should be uniform across the entire pattern, so you can still adjust the platform leveling screws.

    If you’re using a Z-minimum platform height sensor, now’s the time to adjust the switch touch-off height to make the thread thickness come out right.

    When the thread thickness comes out right, then the width should match the extrusion settings: the bottom layer will be exactly like all the others. That’s the ideal situation, anyway.

    A thickness snap gauge comes in handy for this sort of thing.

    The OpenSCAD source code:

    // Platform Level test pattern
    // Ed Nisley KE4ZNU - Dec 2011
    
    //-------
    //- Extrusion parameters must match reality!
    
    ThreadThick = 0.25;
    ThreadWidth = 2.0 * ThreadThick;
    
    //-------
    // Dimensions
    
    BoxSize = 80;
    
    //-------
    
    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();
    
    for (Index=[0:3])
      rotate(Index*90)
        translate([0,BoxSize/2,ThreadThick/2])
          cube([BoxSize,2*ThreadWidth,ThreadThick],center=true);
    
    for (Index=[-1,1])
      rotate(Index*45)
        translate([0,0,ThreadThick/2])
          cube([sqrt(2)*BoxSize,2*ThreadWidth,ThreadThick],center=true);
    
    translate([BoxSize/2,0,ThreadThick/2])
      cube([BoxSize/6,2*ThreadWidth,ThreadThick],center=true);
    
    translate([0,BoxSize/2,ThreadThick/2])
      rotate(90)
        cube([BoxSize/6,2*ThreadWidth,ThreadThick],center=true);
    
  • Thing-O-Matic: Improved EC Thermistor Connector Orientation

    Given that the SMD pads fell off the HBP circuit board and I must replace the connector, I figured I may as well also replace the remarkably stiff MBI thermistor cable with a much more flexible CD-ROM audio cable. Although the EC end of the MBI cable looks like a standard CD-ROM audio connector, it’s been rewired. No problem: this is not an audio application and I’m going to do exactly the same thing.

    The Extruder Controller, however, doesn’t have a matching connector and the recommended attachment involves simply jamming the connector onto the pin header, per this detail cropped from that photo in the MBI assembly instructions:

    MBI EC HBP Thermistor Connector Alignment - Detail
    MBI EC HBP Thermistor Connector Alignment – Detail

    Here’s a better closeup of my EC, taken from the other side:

    MBI Extruder Controller - HBP thermistor connector
    MBI Extruder Controller – HBP thermistor connector

    The header block breaks out the Arduino’s Analog Input pins, with A6 in the front of that photo. From left to right, the pins under the HBP connector are A6 / +5 V / Gnd. Unfortunately, the connector wiring and alignment puts the thermistor signal on the cable shield, with the Gnd and +5 V wires safely tucked inside. This is, shall we say, suboptimal.

    The Gnd connection provides a low-impedance connection to the least-noisy part of the circuit, so putting it on the shield tends to prevent the relatively high-impedance signals within from picking up noise. This isn’t always successful, for a number of reasons, but it’s a Good Idea.

    Although probably doesn’t make much difference (it’d just add a bit of noise to the HBP temperature signal), but if I’m going to be rewiring it anyway, the cable shield will be at ground potential with the signal  wire inside. Here’s my cable & connector, rearranged to make that so:

    EC HBP thermistor connector - revised
    EC HBP thermistor connector – revised

    The analog audio connector on the back of old-school CD-ROM drives, back before digital audio output from the drives actually worked, had four pins:

    • Left (white) and Right (red) audio channels on the outer pair
    • Ground (black) on at least one of the central pair

    So the red wire will be in the far right-hand socket of the connector shell; depress its locking tab, slide it out of the shell, poke it into the socket between the other two wires, push to click, and you’re set. Conveniently, this puts the +5 V supply on the red wire, which is sorta-kinda standard. Your cable colors may vary; pay attention to the actual wiring and ignore the color code!

    Tape the connector in place (with the empty socket now toward the board edge) to prevent the tangle of wires in the Thing-O-Matic’s electronics bay from dislodging it at an inopportune moment:

    EC HBP thermistor connector - secured
    EC HBP thermistor connector – secured

    Admittedly, that arrangement still tucks the +5V wire right next to the signal wire inside the shield, but it’s a step in the right direction.

    You could flip the MBI cable around, too, as long as you also rearranged the pins at the HBP end to match.

  • Cleaning 3D Printed Recesses

    Having used screwdrivers and other improvised tools to clean out various 3D printed recesses, it finally penetrated my thick consciousness that a boring bar is exactly the right hammer for the job:

    Cleaning screw head recesses with a boring bar
    Cleaning screw head recesses with a boring bar

    In normal use, a boring bar’s head cuts mainly on its end surface, with the side cleaning up the hole’s periphery. Those edges remove droopy threads and Reversal zittage around a hole’s interior; an end mill works better to make the recess uniformly deeper.

    I have a few sets of these things, with larger & smaller cutting ends and longer & shorter shanks, that I occasionally use for lathe boring and rarely for mill boring (in the manual mill, not the Sherline!). The smallest head in the collection is maybe 4 mm across, so there’s a definite lower limit on the size of the hole they’ll clear.

    Hand-held while cutting plastic? They’ll last forever!

    I should probably print up some handles…