Fuvaly Bucked Lithium AA Cells

Behold lithium battery technology, a USB charger, and a buck voltage converter mashed into an AA alkaline package:

Fuvaly Bucked Lithium AA - label
Fuvaly Bucked Lithium AA – label

Those are two of a quartet bought from a randomly named Amazon seller to appease my ancient venerable classic Sony DSC-H5’s need for more voltage than new and freshly charged NiMH AA cells can provide for more than a few tens of minutes.

The label claims 1500 mA·h, not the 1120 mA·h I measured:

Fuvaly Bucked Li AA - mAh - 2021-02
Fuvaly Bucked Li AA – mAh – 2021-02

My numbers would be higher with a load less than 500 mA. I doubt the 2.5 A maximum current rating.

The claim of 2.25 W·h is rather optimistic:

Fuvaly Bucked Li AA - 2021-02
Fuvaly Bucked Li AA – 2021-02

Back of the envelope: 2.25 W·h at 1.5 V equals 1.5 A·h, all right. If you squint carefully, though, the output voltages run around 1.4 V, some of which is surely IR drop in my battery holder & test wiring, but it still knocks nearly 10% off the wattage and doesn’t seem to add to the runtime.

The camera’s battery charge indicator will obviously show Full right up until it shuts off, but I’ve always carried a spare pair of cells in my pocket anyway.

Recharging them with a USB meter in series required 425 to 600 mA·h at about 4.8 V, so about 2.5 W·h.

Enlarging the instructions from the back of the box, should they become useful:

Fuvaly Bucked Lithium AA - Instructions
Fuvaly Bucked Lithium AA – Instructions

Nowhere does the package mention the “brand name”, manufacturer, specifications, or much of anything substantial. I suppose anybody selling white-label products appreciates this level of detail.

Rust Never Sleeps

Spotted at the corner gas station on a recent walk:

Gas pump barrier - smashed
Gas pump barrier – smashed

Judging from the tire tracks and extrapolating from recent weather, a snowplow driver misjudged the truck’s right-side clearance while backing.

That big steel tube didn’t put up nearly as much resistance as the architect figured after consulting the relevant building codes:

Gas pump barrier - right base
Gas pump barrier – right base

The paint seems to have been the only thing holding the other side together:

Gas pump barrier - left base
Gas pump barrier – left base

Google Streetview suggests the barriers were new-ish in May 2009:

Gas pump barrier - newish 2009-05
Gas pump barrier – newish 2009-05

Steel is a great construction material, but it doesn’t fare well when installed at grade (or above) where it’s exposed to water and salt. On the other paw, they got over a decade out of it, so maybe it’s as good as it needs to be.

Snow Flow

The recent snowfall arrived on a stiff north wind layering it atop the garage roof and sculpting the corner:

Snow - roof wave
Snow – roof wave

The retaining wall along the driveway accumulated a thick coat that gradually peeled off as the weather warmed:

Snow - wall wave A
Snow – wall wave A

The wave crashed to the driveway in slow motion:

Snow - wall wave B
Snow – wall wave B

It seems to rebound from the wall, even though we know it’s been there all along:

Snow - wall wave C
Snow – wall wave C

This winter has more snow in store for us, but so far it’s been more decorative than disastrous.

One difference between deep snow and strong hurricanes: not much looting after the snow stops falling…

Photo Backdrop Clamp Pad Embiggening

We got a photo backdrop stand to hold Mary’s show-n-tell quilts during her quilting club meetings, but the clamps intended to hold the backdrop from the top bar don’t work quite the way one might expect. These photos snagged from the listing shows their intended use:

Emart Photo Backdrop - clamp examples
Emart Photo Backdrop – clamp examples

The clamp closes on the top bar with the jaws about 15 mm apart, so you must wrap the backdrop around the bar, thereby concealing the top few inches of whatever you intended to show. This doesn’t matter for a preprinted generic backdrop or a green screen, but quilt borders have interesting detail.

The clamps need thicker jaws, which I promptly conjured from the vasty digital deep:

Spring Clamp Pads - PS preview
Spring Clamp Pads – PS preview

The original jaws fit neatly into those recesses, atop a snippet of carpet tape to prevent them from wandering off:

Spring Clamp pads - detail
Spring Clamp pads – detail

They’re thick enough to meet in the middle and make the clamp’s serrated round-ish opening fit around the bar:

Spring Clamp pads - compared
Spring Clamp pads – compared

With a quilt in place, the clamps slide freely along the bar:

Spring Clamp pads - fit test
Spring Clamp pads – fit test

That’s a recreation based on actual events, mostly because erecting the stand wasn’t going to happen for one photo.

To level set your expectations, the “Convenient Carry Bag” is more of a wrap than a bag, without enough fabric to completely surround its contents:

Emart photo backdrop bag
Emart photo backdrop bag

I put all the clamps / hooks / doodads in a quart Ziploc baggie, which seemed like a better idea than letting them rattle around loose inside the wrap. The flimsy pair (!) of hook-n-loop straps don’t reach across the gap and, even extended with a few inches of double-sided Velcro, lack enough mojo to hold it closed against all the contents.

It’ll suffice for our simple needs, but …

The OpenSCAD source code as a GitHub Gist:

// Clamp pads for Emart photo backdrop clamps
// Ed Nisley KE4ZNU Jan 2021
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
}
//----------------------
// Dimensions
OEMpad = [24.0,16.0,3.0]; // original pad
Pad = [35.0,25.0,8.0 + OEMpad.z]; // pad extension
PadOffset = [0,-3.0,0];
CornerRad = 3.0; // corner rounding
Gap = 3.0;
//----------------------
// Shape the pad
module BigPad() {
difference() {
hull()
for (i=[-1,1],j=[-1,1],k=[-1,1])
translate([i*(Pad.x/2 - CornerRad),j*(Pad.y/2 - CornerRad),k*(Pad.z/2 - CornerRad) + Pad.z/2])
sphere(r=CornerRad,$fn=6);
translate(PadOffset + [0,0,Pad.z - (OEMpad.z + Protrusion)/2])
cube(OEMpad + [HoleWindage,HoleWindage,Protrusion],center=true);
}
}
//----------------------
// Build a pair
translate([0,(Pad.y + Gap)/2,0])
BigPad();
translate([0,-(Pad.y + Gap)/2,0])
rotate(180)
BigPad();

Monthly Science: Batmax NP-BX1 Status

After powering my Sony HDR-AS30V helmet camera for nearly all of this year’s riding, the Batmax NP-BX1 lithium batteries still have roughly 90% of their original capacity:

Batmax NP-BX1 - 2020-11
Batmax NP-BX1 – 2020-11

Those are hot off the Official Batmax charger, which appears identical to other randomly named chargers available on Amazon.

They’re holding up much better after a riding season than the DOT-01 batteries I used two years ago:

Sony DOT-01 NP-BX1 - 2019-10-29
Sony DOT-01 NP-BX1 – 2019-10-29

Empirically, they power the camera for about 75 minutes, barely enough for our typical rides. I should top off the battery sitting in the camera unused for a few days, although that hasn’t happened yet.

Of course, the Batmax NP-BX1 batteries I might order early next year for the new riding season have little relation to the ones you see here.

Bicycling For The Fun of It All

Somewhere out there, you’ll find his video:

Photo Op - 2020-11-09 - 287
Photo Op – 2020-11-09 – 287

Everybody needs a reason to smile!

Bonus: enough vehicles to keep the signal at Burnett green.

In the unlikely event you were wondering, 287 is the frame number from the video-to-still conversion:

ffmpeg -ss 00:03:30 -i /mnt/video/AS30V/2020-11-09/MAH07624.mp4 -t 20 -f image2 -q 1 'Photo Op - 2020-11-09 - '%03d.jpg

All in all, a fine day for a ride …

Raspberry Pi Camera vs. RTSP Streaming

It Would Be Nice to turn the various Raspberry Pi camera boxen around here into more-or-less full-automatic IP streaming cameras, perhaps using RTSP, so as to avoid having to start everything manually, then restart the machinery after a trivial interruption. I naively thought video streaming was a solved problem, especially on an RPi, particularly with an Official RPi Camera, given the number of solutions found by casual searching with the obvious keywords.

As far as I can tell, however, all of the recommended setups fail in glorious / amusing / tragic ways. Some failures may be due to old configurations no longer applicable to new software, but I’m nowhere near expert experienced enough to figure out what’s broken and how to fix anything in particular.

Doing RTSP evidently requires the live555.com Streaming Media libraries & test suite. Compiling requires adding -DNO_SSL=1 to the COMPILE_OPTS line in the Makefile, then letting it bake it for a while.

The v4l2rtspserver code fetches & cleanly compiles its version of the live555 code, then emits various buffer overflow errors while streaming; the partial buffers clearly show how the compression works on small blocks in successive lines. Increasing various buffer sizes from 60 kB to 100 kB to 300 kB had little effect. This may have to do with the stream’s encoding / compression methods / bit rates, none of which seem amenable to random futzing.

Another straightforward configuration compiled fine, but VLC failed to actually show the stream, perhaps due to differences between the old version of Raspbian (“Stretch”) and the new version of Raspberry Pi OS (“Buster”).

Running the RPi camera through the Video4Linux2 interface to create a /dev/video0 device seems to work, but controlling the camera’s exposure (and suchlike) with v4l2_ctl behaves erratically. Obvious effects, like rotation & flipping, work fine, but not the fine details along the lines of auto exposure and color modes.

Attempting to fire raspivid through cvlc to produce an RTSP stream required installing VLC on a headless Raspberry Pi, plus enough co-requisite packages to outfit world+dog+kitchenSink. After all the huffing & puffing wound down, the recommended VLC parameters failed to produce an output stream. The VLC doc regarding streaming is, to me, impenetrable, so I have no idea how to improve the situation; I assume RTSP streaming is possible, just not by me.

Whenever any of those lashups produced any video whatsoever, the images suffered from tens-of-seconds latency, dropped frames, out-of-order video updates, and generally poor behavior. Some maladies certainly came from the aforementioned inappropriate encoding / compression methods / bit rates.

The least horrible alternative seems to be some variation on the original theme of using raspivid to directly create a tcp stream or firing raspivid into netcat to the same effect, then re-encoding it on a beefier PC as needed. I’m sure systemd can automagically restart raspivid (or, surely, a script with all the parameters) after it shuts down.

So far, this has been an … unsatisfactory … experience, but now I can close a dozen browser tabs.