Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
The parameter order matters: the -ss must come before the -i input file name and the -t must come after it. Otherwise, avconv will copy the entire file before extracting the clip, which can be tedious.
The Fly6 camera produced a video file containing ten minutes of variations on this theme:
Fly6 – 0842001.AVI – Video compression failure
The top of the image looked pretty good, but then the decompression stalls and smears a single, slowly degenerating, line down the rest of the frame. The other files from that trip looked just fine.
As it turned out, extracting a few seconds with avconv or binary-copying the first few megabytes with dd produced playable copies: the original file tripped vlc’s decompression, but the source data was in the file and the copies worked.
Soooo, I could recover the video. Not that it was particularly important, but knowing how might matter some day.
Video is weird.
The Cycliq tech support folks recommend regularly formatting the MicroSD card using the Official SD Association Program (Windows-only, of course), not erasing any video files, and generally letting the camera handle the card. This whole affair seems remarkably fragile.
A sampling of the various Y connectors and manifolds that water Mary’s gardens:
Y valve 1
Y valve 2
Garden hose manifold
Those little handles don’t turn nearly as easily as they should and some require far more finger pressure than Mary can exert. Lubrication being unavailing, the solution is to apply torque through a wrench, rather than fingertips, but fiddling around to match the proper wrench with the valve in hand isn’t acceptable.
The first pass at a Universal Wrench:
Hose Valve Knob – with measurements
The embossed sheet (the back of my Geek Scratch Paper) carried the knob shapes & dimensions from the garden to the desk, where I measured & laid out the wrench:
Hose Connector Knob – Build layout
I filched the knob design from the OXO Can Opener Handle, made it somewhat taller, and applied a scale() operation to mash it into an ellipse aligned with the wrench slot. That huge hexagonal socket in the middle bridged just fine, even though the threads came out as distinct cylinders:
Adding one thread width of clearance around the stem to form the socket produced a slip fit, with a dollop of fast-cure epoxy holding the pieces together.
The wrench fits the largest valve knob with enough clearance to eliminate fiddling. A cylinder punched into the middle of the slot accommodates those teardrop handles:
Hose Connector Knob – Show layout – bottom view
It’s oversized for the smallest “knob”, a vicious triangular stalk that’s murder on the fingers (and not shown here), but fits well enough that, should we deploy any of those, she’ll be ready.
The stem diameter can’t be any larger, because the knobs on Valve 1 don’t allow any clearance. It could be more circular, but I doubt that buys anything. The open ends of the slot won’t let mulch pack into the recesses.
I expect a wrench jaw will eventually snap off as the layers delaminate. In that case I’ll either sink a pair of steel pins into each jaw or, more likely, combine the handle & stem into one object, split the whole affair across the jaws, print the two halves, and glue them together so that the threads run in the proper direction to meet the stress.
Be that as it may, as of right now this is The Best Thing I’ve Ever Built…
The OpenSCAD source code:
// Hose connector knob
// Ed Nisley KE4ZNU - June 2015
Layout = "Build"; // Show Build Knob Stem
//- Extrusion parameters - must match reality!
ThreadThick = 0.25;
ThreadWidth = 0.40;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
Protrusion = 0.1;
HoleWindage = 0.2;
//------
// Dimensions
StemOD = 30.0; // max OD for valve-to-valve clearance
BossOD = 16.0; // single-ended handle boss
SlotWidth = 13.0;
SlotHeight = 10.0;
StemInset = 10.0;
StemLength = StemInset + SlotHeight + 25.0;
StemSides = 2*4;
KnobOD1 = 70; // maximum dia without chamfer
KnobOD2 = 60; // top dia
KnobSides = 4*4;
DomeHeight = 12; // dome shape above lobes
KnobHeight = DomeHeight + 2*SlotHeight;
DomeOD = KnobOD2 + (KnobOD1 - KnobOD2)*(DomeHeight/KnobHeight);
DomeArcRad = (pow(KnobHeight,2) + pow(DomeOD,2)/4) / (2*DomeHeight);
//- Adjust hole diameter to make the size come out right
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides);
}
//-- Stem for valve handles
module Stem() {
difference() {
rotate(0*180/StemSides)
cylinder(d=StemOD,h=StemLength,$fn=StemSides);
translate([0,0,SlotHeight/2 - Protrusion/2])
cube([2*StemOD,SlotWidth,(SlotHeight + Protrusion)],center=true);
translate([0,0,-Protrusion])
cylinder(d=BossOD,h=SlotHeight,$fn=2*StemSides);
}
}
//-- Hand-friendly knob
module KnobCap() {
difference() {
scale([1.0,0.75,1.0])
intersection() {
translate([0,0,(KnobHeight-DomeArcRad)])
rotate(180/KnobSides)
sphere(r=DomeArcRad,$fa=180/KnobSides);
rotate(180/KnobSides)
cylinder(r1=KnobOD1/2,r2=KnobOD2/2,h=KnobHeight,$fn=KnobSides);
rotate(180/KnobSides)
cylinder(r1=KnobOD2/2,r2=KnobOD1/2,h=KnobHeight,$fn=KnobSides);
}
translate([0,0,-Protrusion])
rotate(0*180/StemSides)
cylinder(d=(StemOD + 2*ThreadWidth),h=(StemInset + Protrusion),$fn=StemSides);
}
}
//- Build it
if (Layout == "Knob")
KnobCap();
if (Layout == "Stem")
Stem();
if (Layout == "Build") {
translate([-KnobOD1/2,0,0])
KnobCap();
translate([StemOD/2,0,StemLength])
rotate([180,0,0])
Stem();
}
if (Layout == "Show") {
translate([0,0,0])
Stem();
translate([0,0,StemLength - StemInset])
KnobCap();
}
So I stuck a snippet of ordinary “transparent” (it’s actually translucent) adhesive tape across the top of the Cycliq Fly6 camera lens:
Cycliq Fly6 Camera – blur tape
That smoothly blurs the top third of the frame:
Fly6 – Tape-blurred frame
The motivation for using translucent tape: it should maintain roughly the same brightness and color balance across the whole image. Opaque tape would burn out the remaining image as the camera desperately tries to maintain an average gray level.
Fast-forwarding VLC with the video stopped forces it to display the inter-frame compression blocks spanning several seconds of video:
Fly6 – Forced compression artifacts
The upper third of the frame has big, simple blocks that pegged the files at a uniform 475 MB per ten minute file, somewhat lower than the un-blurred 500 to 700 MB. So the compression definitely isn’t working nearly as hard.
I hoped that simplifying the uninteresting part of the image would leave more bits for license plates and other interesting details, which might be the case. New York has two main licence plate color schemes (the obsolete high-contrast blue-on-white and the current low-contrast blue-on-orange “Empire Gold”) and both the Fly6 and the Sony AS30V cameras do much better with white plates in full sun.
Some samples at full size:
Fly6 – License Plates
Those were chosen based on:
Similar range / angle: just over the center line
Same-size crop box: 350 x 197
Sun vs. shade
I think those are somewhat sharper than the plates from un-blurred frames, but it’s not like the camera suddenly woke up smarter and started paying attention to the important stuff.
I’d say the air temperature in the pit got close to freezing, but surely a stream of cold air falling through the vent hole would wash over the logger and depress the results.
Should I get powerfully motivated, I’ll strap the logger onto one of the pipes, wrap insulation around it, and have it take data from early December through late March in one session; lifting the concrete slab requires enough effort that I’m not going to do it, ah, lightly during the snow season.
There’s no obvious mechanical damage at the center of the orange blotch, so it must be something internal to the LCD panel going bad. The fading along the left edge might be part of the same QC glitch.
Confidence-inspiring, this is not, even though it has nothing to do with the credit union itself…
Just south of Lake Walton on the Dutchess Rail Trail, I encountered a barred owl with wings spread around something yummy in its talons (clicky for more dots):
MAH00389-0548 – Barred Owl on DCRT – 1
The owl acquired weapons lock on me, just in case I might try to steal its fresh-killed meal:
MAH00389-0548 – Barred Owl on DCRT – 2
My neck doesn’t turn nearly that far, so I lost the staring contest:
MAH00389-0548 – Barred Owl on DCRT – 3
Owls being good folks to have around, we wish ’em well: may they raise many owlets!
The pictures were extracted from the Sony HDR-AS30V helmet camera with this incantation:
The -q 1 parameter should produce an image with the same dots as the original, but that really doesn’t mean much in the face of the camera’s relentless video compression.
Here’s a dot-for-dot crop (at 100% JPEG quality = uncompressed) showing the tradeoff between wide field-of-view, detail, and compression:
MAH00389-0548 – Barred Owl on DCRT – 2 – detail
Makes me appreciate my eyesight: I spotted that owl when it covered just a few image pixels. Of course, at first I thought somebody dropped a hoodie on the trail, then maybe it was a chunk of debris, so I eased off the asphalt onto the gravel Just In Case.