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.

Author: Ed

  • Monthly Image: Cross-striped Cabbageworm

    In the normal course of events, this critter would become an undistinguished brown moth:

    This slideshow requires JavaScript.

    Right now, it’s a two-day-old cross-striped cabbageworm. Its kin are voracious consumers of Brassicacae out in the garden and Mary’s raising it as a show-n-tell exhibit for her Master Gardener compadres; she advised it to not start any long novels.

    Taken hand-held with the Pixel XL through a clip-on 10x macro lens.

  • J5 V2 Flashlight: Switch Tightening

    From the start, the (second) J5 V2 flashlight had an erratic switch that flickered the LED at the slightest pressure. Not enough to switch modes, as it does with a half press, but enough to show something’s not quite right inside.

    Taking it apart requires a pin wrench, which I have, but the deeply recessed ring required more reach than any of the tips I’ve made over the years. Introducing a pair of stainless steel 10-32 screws to Mr Grinder added two more pins to the collection:

    J5V2 Flashlight - custom pin wrench
    J5V2 Flashlight – custom pin wrench

    The lock ring in the flashlight cap turned out to be finger-loose, certainly contributing to the problem. Removing the lock ring, peeling the rubber dome out of the cap, and poking with a punch sufficed to drive out the guts of the switch assembly:

    J5V2 Flashlight - switch parts
    J5V2 Flashlight – switch parts

    Which consists of, as you’d expect, the cheapest possible parts that don’t immediately fail.

    The (steel) tab sticking out of the actual switch (in the upper right) contacts the inside of the (aluminum) cap. I bent it slightly outward, added a trace of DeoxIT Red, reassembled everything in reverse order, and it’s all good for the first time in its brief life.

    I’d rate J5’s QC as Below Average, given that the first light arrived with built-in dirt and its replacement (this one) had an alien egg next to the LED, plus this loose switch lock ring + crappy tab contact.

    The J5 V2 light claims 750 lumen output, but the spot is nowhere near twice as bright as the LC40 lights on the bikes and much dimmer than the LC90 light (which is too big for the bikes), all tweaked for equivalent-size illuminated areas. Given that lumens measure total output and candela measure lumen/steradian, there’s some wiggle room for misinterpretation.

    Won’t buy another, for sure.

  • Amazon Packaging: Lindt Chocolate

    Amazon may toss lithium cells into a cardboad box without much care, but chocolate requires attention to detail:

    Amazon - Lindt Chocolate packaging
    Amazon – Lindt Chocolate packaging

    An ice pack, with a lump of ice in the middle, snuggled under the chocolate carton. The box arrived UPS Next Day from Amazon’s Kentucky distribution center, with the carton inside still cold to the touch.

    On the average, I suppose, Amazon’s packaging averages out, but I’d rather they paid more attention to protecting hazardous material.

    The picture shows a reenactment of actual events, because we were in the middle of something else when the UPS truck arrived.

  • Monarch Caterpillar Windshield

    The Monarch Butterfly egg produced a teeny caterpillar:

    Monarch caterpillar - 3 mm - 2017-08-02
    Monarch caterpillar – 3 mm – 2017-08-02

    Each time it molts, it eats all of its skin except for the transparent cap over the first body segment:

    Monarch Windshield - 2017-08-09
    Monarch Windshield – 2017-08-09

    If the rest of the caterpillar were behind the windshield, it’d be feet-upward with its “face” at the top.

    The picture comes from a focus-stacked set of microscope images captured with VLC; I turned the positioner’s elevation knob the smallest possible amount between each of 16 images along the 1 mm (-ish) height of the capsule. This magic incantation applies more weight to high-contrast and high-entropy regions:

    align_image_stack -C -a monarch vlcsnap-2017-08-09-18h4*
    enfuse --contrast-weight=0.8 --entropy-weight=0.8 -o Monarch_Windshield.jpg monarch00*
    # empty line to reveal underscores in previous line
    

    That came out pretty well.

  • Tour Easy Daytime Running Light: Improved Ball Mount

    The original ball around the flashlight consisted of two identical parts joined with 2 mm screws and brass inserts:

    Flashlight Ball Mount - flattening fins
    Flashlight Ball Mount – flattening fins

    Providing enough space for the inserts made the ball bigger than it really ought be, so I designed a one-piece ball with “expansion joints” between the fingers:

    Fairing Flashlight Mount - Finger Ball - solid model
    Fairing Flashlight Mount – Finger Ball – solid model

    Having Slic3r put a 3 mm brim around the bottom almost worked. Adding a little support flange, then building with a brim, kept each segment upright and the whole affair firmly anchored.

    Fairing Flashlight Mount - Finger Ball - solid model - support fins
    Fairing Flashlight Mount – Finger Ball – solid model – support fins

    Those had to be part of the model, because I also wanted to anchor the perimeter threads to prevent upward warping. Worked great and cleanup was surprisingly easy: apply the flush cutter, introduce the ball to Mr Belt Sander, then rotate the ball around the flashlight wrapped with fine sandpaper to wear off the nubs.

    The joints between the fingers provide enough flexibility to expand slightly around the flashlight body:

    Flashlight Mount - finger ball
    Flashlight Mount – finger ball

    I made that one the same size as the original screw + insert balls to fit the original clamp, where it worked fine. The clamp ring applies enough pressure to the ball to secure the flashlight and prevent the ball from rotating unless you (well, I) apply more-than-incidental force.

    Then I shrank the ball to the flashlight diameter + 10 mm (= 5 mm thick at the equator) and reduced the size of the clamp ring accordingly, which made the whole mount much more compact:

    Flashlight Mount - LC40 - finger ball - side
    Flashlight Mount – LC40 – finger ball – side

    Here’s what the larger mount looks like in action:

    The flashlights allegedly puts out 400 lumen in a fairly tight beam. The fairings produce a much larger and brighter glint in full sunlight than the flashlights, so I think they’re about the right brightness.

    The OpenSCAD source code for the new ball as a GitHub Gist:

    //- Slotted ball around flashlight
    // Print with brim to ensure adhesion!
    module SlotBall() {
    NumSlots = 8*2; // must be even, half cut from each end
    SlotWidth = 2*ThreadWidth;
    SlotBaseThick = 10*ThreadThick; // enough to hold finger ends together
    RibLength = (BallOD – LightBodies[FlashIndex][F_GRIPOD])/2;
    translate([0,0,BallLength/2])
    difference() {
    intersection() {
    sphere(d=BallOD,$fn=2*BallSides); // basic ball
    cube([2*BallOD,2*BallOD,BallLength],center=true); // trim to length
    }
    translate([0,0,-LightBodies[FlashIndex][F_GRIPOD]])
    rotate(180/BallSides)
    PolyCyl(LightBodies[FlashIndex][F_GRIPOD],2*BallOD,BallSides); // remove flashlight body
    for (i=[0:NumSlots/2 – 1]) { // cut slots
    a=i*(2*360/NumSlots);
    SlotCutterLength = LightBodies[FlashIndex][F_GRIPOD];
    rotate(a)
    translate([SlotCutterLength/2,0,SlotBaseThick])
    cube([SlotCutterLength,SlotWidth,BallLength],center=true);
    rotate(a + 360/NumSlots)
    translate([SlotCutterLength/2,0,-SlotBaseThick])
    cube([SlotCutterLength,SlotWidth,BallLength],center=true);
    }
    }
    color("Yellow")
    if (Support) {
    for (i=[0:NumSlots-1]) {
    a = i*360/NumSlots;
    rotate(a + 180/NumSlots)
    translate([(LightBodies[FlashIndex][F_GRIPOD] + RibLength)/2 + ThreadWidth,0,BallLength/(2*4)])
    cube([RibLength,2*ThreadWidth,BallLength/4],center=true);
    }
    }
    }
  • Canon NB-5L Battery Status

    My pocket camera has begun kvetching about a low battery rather more often than before, which suggests the batteries I’ve been using since 2014 have gone beyond their best-used-by date.

    This came as no surprise:

    Canon NB-5L - 2017-08-05
    Canon NB-5L – 2017-08-05

    I re-ran a couple of the batteries to make sure they hadn’t faded away from disuse, which didn’t materially change the results. The lightly used Canon OEM battery continues to lead the, ah, pack.

    The camera’s lens capsule accumulated a fair bit of dust from many years in my pocket, which lowers its overall contrast and wrecks the high f/ images produced with the microscope adapter.

  • Sandisk 64 GB High Endurance Video Monitoring Card: Verification

    The Sandisk Extreme Pro 64 GB MicroSDXC (whew) card in the Sony HDR-AS30V had been working fine, but recently the camera crashed in mid-ride after spitting out an unreadable video file. I reformatting the card, which seemed to restore its good humor, and preemptively dropped $36 on a fancy Sandisk High Endurance Video Monitoring Card from a Nominally Reputable Amazon seller:

    Sandisk - 64 GB MicroSDXC cards
    Sandisk – 64 GB MicroSDXC cards

    The package & card production values seem high enough to make me think it’s genuine, despite the white-label thing SanDisk has goin’ on; it matches their website pix closely enough.

    Popping it into a USB 3.0 adapter, plugging that into the new-to-me Dell Optiplex 9010’s front-panel USB 3.0 port, and unleashing f3probe produced encouraging results:

    sudo f3probe -t /dev/sde
    [sudo] password for ed: 
    F3 probe 6.0
    Copyright (C) 2010 Digirati Internet LTDA.
    This is free software; see the source for copying conditions.
    
    WARNING: Probing normally takes from a few seconds to 15 minutes, but
             it can take longer. Please be patient.
    
    Probe finished, recovering blocks... Done
    
    Good news: The device `/dev/sde' is the real thing
    
    Device geometry:
    	         *Usable* size: 59.48 GB (124735488 blocks)
    	        Announced size: 59.48 GB (124735488 blocks)
    	                Module: 64.00 GB (2^36 Bytes)
    	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
    	   Physical block size: 512.00 Byte (2^9 Bytes)
    
    Probe time: 4'26"
     Operation: total time / count = avg time
          Read: 2'42" / 4197135 = 38us
         Write: 1'41" / 4192321 = 24us
         Reset: 1.00s / 1 = 1.00s
    

    Just for completeness, I unleashed f3write to fill it with pseudorandom data:

    time f3write /mnt/part
    Free space: 59.46 GB
    Creating file 1.h2w ... OK!                          
    Creating file 2.h2w ... OK!                          
    … snippage …                      
    Creating file 59.h2w ... OK!                        
    Creating file 60.h2w ... 99.99% -- 5.40 MB/s -- 1sf3write: Write to file /mnt/part/60.h2w failed: Input/output error
    
    real	180m36.861s
    user	0m40.520s
    sys	6m44.024s
    

    Dividing 64 GB by 180 minutes says the write speed works out to 5.9 MB/s, about a third of the “up to 20 MB/s” in the card’s specs. Huh.

    Reading & comparing the data goes faster:

    time f3read /mnt/part
                      SECTORS      ok/corrupted/changed/overwritten
    Validating file 1.h2w ... 2097152/        0/      0/      0
    Validating file 2.h2w ... 2097152/        0/      0/      0
    … snippage …
    Validating file 59.h2w ... 2097152/        0/      0/      0
    Validating file 60.h2w ...  965376/        0/      0/      0
    
      Data OK: 59.46 GB (124697344 sectors)
    Data LOST: 0.00 Byte (0 sectors)
    	       Corrupted: 0.00 Byte (0 sectors)
    	Slightly changed: 0.00 Byte (0 sectors)
    	     Overwritten: 0.00 Byte (0 sectors)
    Average reading speed: 23.87 MB/s
    
    real	42m31.288s
    user	0m47.444s
    sys	0m30.232s
    

    So it reads lickety-split, but writes much more slowly. Fortunately, the HDR-AS30 camera pops out a 4 GB file every 22.75 minute = 2.9 MB/s, so the card has a smidge of headroom while writing.

    The specs claim “up to 10,000 hours” of Full HD recording. If so, I’m looking at a card good for “up to 40 years of riding at 1 hour/ride and 250 ride/year. For 36 bucks, how can ya go wrong?

    I’ll take it for a few rides to see what happens …

    The packaging includes a link to a Windows / Mac data recovery program, plus the serial number required to activate the download. I’ll continue to eke out a miserable existence with ordinary Linux disk / file maintenance tools, as I’m no longer enthused about “free” programs requiring secret handshakes for activation on a single computer with an OS I no longer use, particularly a program that auto-pumpkinates after a year:

    Please fill in the data accurately as this information will be needed to reactivate the software if you ever need to move the software to a different computer.

    Your expectations & preconceptions may vary.