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.

Category: Machine Shop

Mechanical widgetry

  • Sony HDR-AS30V Audio: Fake Fur FTW!

    A scrap of fake fur cut to fit the outline of the Sony HDR-AS30V helmet camera and stuck in place with a square of double-stick foam centered above (or below, in the normal orientation) the lens:

    Sony HDR-AS30V - fake fur installed
    Sony HDR-AS30V – fake fur installed

    Snippy remarks about what that looks like will not be tolerated, m’kay?

    It reduces wind noise to an occasional rumble from strong gusts and even those don’t crush the AGC. My side of our radio conversations became clearly audible, as did shifters clicking and gravel crunching. There’s still plenty of noise, but now it comes from actual sound sources that don’t overwhelm the amp.

    A layer of ordinary adhesive tape still covers the mic pores and the fur’s fabric backing extends over the tape, so the combination must muffle the sound at least a little bit. Given the source material and my hearing, it’s Good Enough; Golden Eared Audiophiles need not apply.

    I also cannot detect any difference between the left and right audio channels, so the stereo separation at 15 mm isn’t worth much. I don’t know if the camera swaps the audio channels in video flip mode; that would be a nice touch.

    The hairs extending outward beside the lens occasionally blew into view, so a haircut is in order:

    mah00242-075 - Fake Fur in view
    mah00242-075 – Fake Fur in view

    Perhaps a clip that snaps over the skeleton frame to hold a neat patch of fur in place without adhesive on the camera body would be even better?

  • 3D Printed Chain Mail Again

    Everybody likes chain mail, so I made a few big sheets:

    Chain Mail Sheet
    Chain Mail Sheet

    That’s a nominal 150 mm on the X axis and 200 mm on the Y, which pretty well fills the M2’s 8×10 inch platform after Slic3r lays a few skirt threads around the outside. All 192 links require a bit under four hours to print: all those short movements never let the platform get up to full speed.

    Look no further for a brutal test of platform alignment and adhesion. The platform is slightly too high in the left front corner and, no surprise, slightly too low in the right rear. The skirt thread varies from 0.15 to 0.27 around the loop.

    Hairspray works wonder to glue down all those little tiny links. They pop off the platform quite easily after it cools under 50 °C, with no need for any post-processing.

    This version of the OpenSCAD code correctly figures the number of links to fill a given width & length; the old code didn’t get it quite right.

    Coloring the links makes the whole thing easier to look at:

    Chain Mail Sheet - detail
    Chain Mail Sheet – detail

    The real world version comes out in red PLA that saturates Sony imagers:

    Chain Mail - flexed
    Chain Mail – flexed

    It really is that flexible!

    The OpenSCAD source code:

    // Chain Mail Sheet
    // For Slic3r and M2 printer
    // Ed Nisley KE4ZNU - Apr 2013
    //   Oct 2013 - larger links, better parameterization
    //   Nov 2014 - fix size calculation, add coloration
    
    Layout = "Show";			// Link Build Show
    
    //-------
    //- Extrusion parameters must match reality!
    //  Print with +0 shells and 6 solid layers
    
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    
    HoleWindage = 0.2;
    
    Protrusion = 0.1;			// make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //-------
    // Dimensions
    
    BarThreads = 6;
    BarWidth = BarThreads * ThreadWidth;
    
    BarThick = 4 * ThreadThick;
    
    LinkSquare = IntegerMultiple(2.5*BarThreads,ThreadWidth);
    LinkHeight = 2*BarThick + 4*ThreadThick;           // bars + clearance
    
    echo(str("Link height: ",LinkHeight));
    
    LinkOutDiagonal = LinkSquare*sqrt(2) - BarWidth;
    LinkInDiagonal = LinkSquare*sqrt(2) - 2*(BarWidth/2 + BarWidth*sqrt(2));
    
    echo(str("Outside diagonal: ",LinkOutDiagonal));
    
    LinkSpacing = 0.60 * LinkOutDiagonal;		// totally empirical
    echo(str("Link spacing: ",LinkSpacing));
    
    SheetSizeX = 150;
    SheetSizeY = 200;
    
    NumLinksX = floor((SheetSizeX - LinkOutDiagonal) / LinkSpacing) + 1;
    NumLinksY = floor((SheetSizeY - LinkOutDiagonal) / LinkSpacing) + 1;
    
    echo(str("Links X: ",NumLinksX," Y: ",NumLinksY," Total: ",NumLinksX*NumLinksY));
    
    //-------
    
    module ShowPegGrid(Space = 10.0,Size = 1.0) {
    
      RangeX = floor(95 / Space);
      RangeY = floor(125 / Space);
    
    	for (x=[-RangeX:RangeX])
    	  for (y=[-RangeY:RangeY])
    		translate([x*Space,y*Space,Size/2])
    		  %cube(Size,center=true);
    
    }
    
    //-------
    // Create basic link
    
    module Link() {
        render()
    	rotate(45)
    		difference(convexity=2) {
    			translate([0,0,LinkHeight/2]) {
    				difference(convexity=2) {
    					intersection() {		// outside shape
    						cube([LinkSquare,LinkSquare,LinkHeight],center=true);
    						rotate(45)
    							cube([LinkOutDiagonal,LinkOutDiagonal,LinkHeight],center=true);
    					}
    					intersection() {		// inside shape
    						cube([(LinkSquare - 2*BarWidth),(LinkSquare - 2*BarWidth),(LinkHeight + 2*Protrusion)],center=true);
    						rotate(45)
    							cube([LinkInDiagonal,LinkInDiagonal,(LinkHeight +2*Protrusion)],center=true);
    					}
    				}
    			}
    			for (i=[-1,1]) {				// create bars
    				translate([0,-i*(sqrt(2)*BarWidth/2),BarThick])
    					rotate(45 + 180*(i+1)/2)
    						cube([LinkOutDiagonal,LinkOutDiagonal,LinkHeight]);
    				translate([i*(sqrt(2)*BarWidth/2),0,-BarThick])
    					rotate(135 + 180*(i+1)/2)
    						cube([LinkOutDiagonal,LinkOutDiagonal,LinkHeight]);
    			}
    		}
    }
    
    //-------
    // Build it!
    
    ShowPegGrid();
    
    if (Layout == "Link") {
      Link();
    
    }
    
    if (Layout == "Build" || Layout == "Show") {
    	for (ix=[-(NumLinksX/2 - 0):(NumLinksX/2 - 1)])
    		for (iy=[-(NumLinksY/2 - 0):(NumLinksY/2 - 1)])
    			translate([ix*LinkSpacing + LinkSpacing/2,iy*LinkSpacing + LinkSpacing/2,0])
    				if (Layout == "Show")
    					color([0.5+(ix/NumLinksX),0.5+(iy/NumLinksY),1.0]) Link();
    				else Link();
    }
    
  • Trust Multimedia Mouse: Gummy Rubber

    While looking for something else, I found the old Trust Multimedia Mouse and discovered its nice grippy rubber surfaces had become adhesive slime. Graduated efforts with water, rubbing alcohol, and denatured alcohol being unavailing, I finally hit it with xylene and that did the trick:

    Degummed Trust Mouse
    Degummed Trust Mouse

    Of course, xylene also wiped away the fancy button markings and irretrievably scarred the surface, but at least I can pick the mouse up without having it stick to my hand. Not that I pick it up that often, obviously.

    Several other gadgets have a similar grippy finish, so now I know what to do when it turns gummy: throw the gadgets out…

  • Shimano SPD Pedals: Cleat Oilers

    Here’s the solution to creaking SPD pedals due to hardened shoe cleats gritting on hardened pedal latches:

    Shimano SPD pedal - cleat oiler
    Shimano SPD pedal – cleat oiler

    Those are carefully shaped snippets of open-cell foam tucked around the springs under the movable latches, loaded with a few drops of penetrating oil, and ridden for several months. Nary a squeak or grinding sound has emerged: far better than the results after I added a drop of oil whenever either of us heard that sound.

    Similar snippets tucked under the forward latch fell out without affecting the results, from which I conclude:

    • The front latch doesn’t squeak
    • The foam on the other side is Close Enough
    • Penetrating oil oozes into a thin film over the whole pedal

    The cleats don’t quite touch the ground when we walk, so we’re not leaving oily footprints.

    Should I ever install new pedals, I’ll see if a larger foam block can span the gap between the front latch on the top and the movable latch on the bottom.

  • Eyeglass Temple Spring Repair

    Another of Mary’s glasses snapped at the temple joint:

    Broken eyeglass temple spring
    Broken eyeglass temple spring

    This one has a spring inside the joint that latches the temple on either side of that square inner corner. Obviously, there’s no way to reconnect the broken stub with the spring retracted inside the brazed temple box, so:

    • File off the corner
    • Fill the socket with epoxy
    • Ease the stub in place
    • Wipe off the excess epoxy
    • Align on the workbench
    • Let it cure overnight

    At least the hinge folds again, even if the spring doesn’t work:

    Broken eyeglass temple spring - epoxied
    Broken eyeglass temple spring – epoxied

    She promises to scrap out her oldest glasses after the next eye exam…

  • Sony HDR-AS30V Audio vs. Wind Noise

    With the Sony HDR-AS30V in its skeleton frame atop my bike helmet, the audio track for all my rides consists entirely of horrendous wind noise. You can get an idea of the baseline quality from the sound track of a recent Walkway Over The Hudson crossing.

    The camera has two mics, although I’m not sure 15 mm of separation really produces meaningful stereo sound:

    Sony HDR-AS30V - front view
    Sony HDR-AS30V – front view

    Note that two of the five pores on each side are closed flat-bottom pits. As with earbud vents , it must be a stylin’ thing.

    I added a rounded pad of the same acoustic foam that forms an effective wind noise buffer for the boom mic:

    Sony HDR-AS30V - foam mic cover
    Sony HDR-AS30V – foam mic cover

    That reduced the overall noise load by buffering direct wind impact, but non-radio conversations remained unintelligible; there’s just too much low-frequency energy.

    Surprisingly, closing the mic pores with ordinary adhesive tape didn’t impair the audio in a quiet room:

    Sony HDR-AS30V - closed mic pores
    Sony HDR-AS30V – closed mic pores

    Out on the road that’s even better than foam over open mic pores; I think it reduces the peak volume enough that the internal compression can regain control. Sticking the foam pad over the tape slightly reduced the noise during high-speed (for me, anyhow) parts of the ride, but didn’t make much difference overall.

    The wind noise remains too high for comfort, even if I can now hear cleats clicking into pedals, shifters snapping, and even the horrible background music when I’m stopped next to the Mobil gas station on the corner.

    Next step: raid the cloth scrap box for a flap of faux fur to make a mic mop. This might be an opportunity to recycle some roadkill

  • Poughkeepsie Mini Maker Faire: 3D Printing Status Report

    The Poughkeepsie paper had a short writeup on last Saturday’s Mini Maker Faire, featuring exactly one picture (it’s their Copyrighted Work, so I can’t show it here): my hotrodded M2 with a platform of Tux penguins from the chocolate mold project.

    I passed out samples:

    Tux Gradient 4x4 - milk chocolate detail
    Tux Gradient 4×4 – milk chocolate detail

    Of course, I told the kids that Santa was on their side for getting a 3D printer under the tree…

    Rumors from usually reliable sources indicate the two other 3D printers at the Faire had, shall we say, reliability issues and generally weren’t running. The M2 ran continuously from 10 am through 4 pm, cranking out eight Tuxes at a time, with no trouble at all; perhaps that’s why it got its picture in the paper.

    By and large: It. Just. Works.

    I did a presentation on (my opinion of) the current state of Personal 3D Printing, using jimc’s impeccable projects to show how enough skill can cure the usual striated sidewalls, plus other examples and advice from MakerGear forum members.

    A good time was had by all!

    My voice may return by early next week…