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: Photography & Images

Taking & making images.

  • VFAT Time Zone Offset Correction

    An SJCAM M20 action camera includes the date and time in its file names, but the directory entries appear with the wrong timestamp:

    sudo mount -o uid=ed /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 18:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100830_002.JPG*
    

    I’m in the Eastern US time zone, -5 hr from UTC.

    By definition, FAT directory entries contain the “local time” when the file was created / changed. Because it cannot know which “local time” applies, the Linux VFAT filesystem treats the timestamp as UTC and adjusts it by -5 hr.

    So the camera writes the directory timestamps properly. When mounted, Linux correctly (for a reasonable definition of correctly) regards them as UTC, knocks off five hours to match this time zone, and displays the result.

    Alas, disabling the VFAT timestamp conversion has no effect:

    sudo mount -o uid=ed,tz=UTC /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 18:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 05:08 2018_0126_100830_002.JPG*
    

    I’m not sure why that doesn’t do anything; it doesn’t generate any error messages.

    Although it seems like a reasonable thing, one cannot force a specific time zone with, say, tz=EST or tz=EDT or tz=UTC8 or whatever.

    You can specify an offset in minutes:

    sudo mount -o uid=ed,time_offset=$((-5*60)) /dev/sdc1 /mnt/part
    ll -tr /mnt/part/DCIM/Photo/ | head
    total 4.8G
    drwxr-xr-x 4 ed root  16K Apr  8  2016 ../
    drwxr-xr-x 2 ed root 144K Jan 25 23:52 ./
    -rwxr-xr-x 1 ed root 3.8M Jan 26 10:08 2018_0126_100825_001.JPG*
    -rwxr-xr-x 1 ed root 3.8M Jan 26 10:08 2018_0126_100830_002.JPG*
    

    The time_offset value is subtracted from the directory timestamp, which means you’re feeding in the actual time offset from UTC, including whatever Daylight Saving Time offset may be in order.

    So Linux takes the FAT timestamp, adds (subtracts a negative) 5 hr, and displays the result as my (now correct) local time.

    I suppose I could set the camera to UTC, but then the camera’s on-screen and in-video timestamps would be off by four or five hours, depending on the season. So it goes.

  • Hawk vs. Squirrel Scuffle

    A light overnight snowfall revealed an early morning drama:

    Hawk vs squirrel scuffle - overview
    Hawk vs squirrel scuffle – overview

    I think a hawk stooped on a squirrel, perhaps launching from the utility pole by the garden, scuffled across the driveway to the right, and hauled breakfast off to a nearby tree:

    Hawk vs squirrel scuffle - approach
    Hawk vs squirrel scuffle – approach

    The driveway always shows many tracks, but the ones entering from the center-right don’t continue out the left:

    Hawk vs squirrel scuffle - tracks right
    Hawk vs squirrel scuffle – tracks right

    Another view:

    Hawk vs squirrel scuffle - tracks left
    Hawk vs squirrel scuffle – tracks left

    A pair of squirrel pups appeared in the last week. They’d make a good, easily carried hawk breakfast.

    Go, hawk, go!

  • Monthly Image: Snow-dusted Spider Silk

    The recent bitter cold and gusty winds swirled a dry snowfall around our back patio, where it clung to the (otherwise invisible) spider silk strands on the cedar shakes:

    Snow-dusted spider silk
    Snow-dusted spider silk

    It’d be Art if a human did it!

  • Sundog

    The ice behind this sundog foretold a snowstorm:

    Sundog
    Sundog

    When I first saw it, the contrail bisected the sundog, but we had to walk to a safer spot before I could fumble with the Pixel.

    See? I’m not always searching for treasures amid the roadside trash

  • A Spirograph for Christmas

    Gotta play with my new toy:

    Spirograph - liquid ink - ceramic tip
    Spirograph – liquid ink – ceramic tip

    That’s with a set of liquid ink and ceramic tip plotter pens. They’re unbelievably cranky, but produce wonderfully fine lines:

    Spirograph - liquid ink pen - detail
    Spirograph – liquid ink pen – detail

    Text comes out exactly the way vector lettering should look:

    Spirograph - liquid ink pen text - detail
    Spirograph – liquid ink pen text – detail

    There’s a slight shake visible at 500 mm/min = 8.3 mm/s, but it’s Good Enough.

    All the pen-and-ink traffic around the center produced a ring of damp green fuzz:

    Spirograph - liquid ink - ceramic tip - center detail
    Spirograph – liquid ink – ceramic tip – center detail

    The artsy part of the plot ran at 1800 mm/min = 30 mm/s, with little of the wobbulation at 6000 mm/min = 100 mm/s. None of that would matter with a router, of course.

    It’s a nice, Christmasy design in kinda-red and sorta-green.

    From the stack of plots accumulating near the MPCNC bench:

    This slideshow requires JavaScript.

    Plots 7 and 9 show the tape sutures required to produce a 26×18 inch sheet covering the MPCNC’s full work area. The squat plots fit on B-size sheets and the rest come from 17×14 inch artist’s sketchpad sheets.

    I used Google PhotoScan to capture and rectangularize paper sheets from the floor or atop the bench, then battered the contrast and crushed the file size with a one-liner:

    i=1 ; for f in 1* ; do printf -v dn "Spiro %02d.jpg" $(( i++ )) ; convert $f -level '10,80%' -density 300 -define jpeg:extent=300KB tweaked/"$dn" ; done
    

    The plots look great in person (modulo some incremental software improvements), but the slideshow images look awful because:

    • Google PhotoScan produces surprisingly low-res images
    • I’m overly compressing the results

    They’re not (yet) art and there’s no point in a high-quality workflow.

    Enjoy the day …

  • Critters on the Patio

    A light snowfall revealed plenty of overnight traffic on the patio:

    Small animal tracks in the snow
    Small animal tracks in the snow

    I should set up an IR camera to watch what’s going on out there!

  • Epson R380: Re-re-routed CISS Tubing

    Alas, what seemed like a better tube route didn’t work any better and, in fact, the generous loop snagged crosswise between the print head box and the R380’s frame. So I deployed the big diagonal cutters and a nasty end cutter to chop a channel through the side of the box:

    Epson R380 - modified print head box
    Epson R380 – modified print head box

    As far as I can tell, the thin section above the reinforcing gridwork exists specifically to get in the way of routing CISS tubes, but I suppose it could be just for pretty.

    With the tubes coming directly off the top of the tanks and folding neatly as the print head moves under the frame, I could rearrange the supports to hold the tubes in a nearly straight line throughout their motion:

    Epson R380 - straight CISS tube route
    Epson R380 – straight CISS tube route

    So far, so good.

    Although the yellow ink now feeds properly and all the nozzles appear up on the test page, the printer output has an overall cyan tinge that gave the Annual Christmas Letter a gloomy aspect. Maybe the latest bottle of cheap Light Cyan ink isn’t quite as light as it should be?