Spotted behind a mall undergoing renovation:

Perhaps they were loading it from the end and didn’t notice the instructions:

Protip: Always get the biggest dumpster available!
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.
If it used to work, it can work again

Spotted behind a mall undergoing renovation:

Perhaps they were loading it from the end and didn’t notice the instructions:

Protip: Always get the biggest dumpster available!

With the Bafang BBS02 and all its gimcrackery on the Terry Symmetry buttoned up and ready to go, I took a few closeout pictures for future reference.
The motor has a sheaf of wires sticking out of the bottom crying out for a protective covering:

Although cameras tell only the truth they’re allowed to see and can be made to lie by omission, sometimes their latent truth was completely invisible to eyewitnesses in real time.
I only noticed the mis-routed shift cable when I looked through the last set of pictures.
It should pass through the plastic channel under the metal tab holding the cable guide to the bottom bracket shell:

Normally, aiming the cable into the channel is no big deal. In this case, I had to undo the shift cable, remove the left crank, loosen the motor and rotate it out of the way, nudge the cable with a small screwdriver, then reinstall in reverse order.
Dang, that was close …

A gusty thunderstorm knocked out power across Dutchess County, including half the service to our house. Being glad the refrigerator and freezer were on the live phase, I shut off the affected breakers on the dead phase, as well as all the 240 V breakers, and, with the living room darkened, we skipped our evening storytime.
By the next morning, a quick lamp test showed the recloser out on the pole had worked its magic, so I flipped all the breakers back on. The living room remained dark, prompting an investigation of the fuse box feeding the original house wiring:

Yup, another blown fuse.
Given what happens while wind and falling branches knock power lines askew, anything is possible. I have no idea where the fault current went, but replacing the fuse brought the living room back to normal.
None of the various UPS / lamps / phones seem damaged; I admit not peering inside the outlets to check for arc damage.

Plotting current against voltage for the amber truck side marker lights produces the expected straight-ish line:

The slope suggests a 330 Ω resistor, but the internal PCB sports a pair of 150 Ω SMD resistors.
I don’t believe the X-axis intercept for a moment, but 1.5 V seems about right for an amber LED.
Oh, and the DMM fuse doesn’t have a ceramic body. You’re seeing the vaporized remains of a 315 mA fuse neatly deposited over the inside of the glass tube after being shorted across a 3 A bench supply.
I hate it when that happens. Replacing it emptied the little bag of those meter fuses; next time it’ll get a half amp fuse.

The tip of the much-battered stylus useful for websites presenting tiny phone-hostile buttons appeared in the laundry basket, narrowly avoiding a trip through the washer. The shell’s original all-around swaging had evidently loosened enough to release the tip, so I applied a hammer and punch:

The punch mark (with another on the opposite side) is barely visible, but holds the tip securely in place. Next time I may need more hammer.

A winning entry in the “The Bigger the Blob, the Better the Job” category:

Buried under the epoxy is the flimsy tab with the pivot around which the handle moves. Any sideways force will did snap the tab off flush with the body. I had previously repaired it with solvent adhesive, so something more substantial seemed appropriate.
A closer look shows the edges of the brass flange I formed around the tab to absorb the stress:

It’s pretty much fully depreciated, but if I don’t use the epoxy it will go bad on the shelf, so …

A Bafang BBS02 (for a friend’s upright bike) arrived with a deformed speed sensor nut:

It traveled halfway around the planet while trapped underneath the motor and, if it rode in the top layer or two of containers, the combination of pressure and heat would be irresistible.
The plastic was stiff and I couldn’t force the nut over the connector using as much force as seemed reasonable:

On the upside, the nut just compresses the silicone washer between the connector and the sensor to make a waterproof joint, so it need not have perfect threads or a uniform shape. Once the nut is in place, it will likely never be removed and should never bother anyone else.
Being unwilling to apply a hot-air gun near the cable, I decided to try slowly cold-forming the nut inside a mold:

The gap isn’t a kerf: the two halves meet to form a cylindrical pocket. The smaller holes fit a pair of brass tubes keeping the halves lined up while I arrange things:

A pair of swivel-pad clamps apply the pressure:

A few days of squashing made it round-er, whereupon I applied the clamp directly against the remaining high point with the other side cradled in the mold. It still doesn’t slide over the connector body, but I’m not in a rush.
Bafang tech support generously sent a speed sensor extension cable from which I can extract a good nut, which will require cutting and splicing the cable from the motor.
I’m still hoping gentle suasion will prevail.
The OpenSCAD source code tucks into the overall file producing various useful bits:
// Mold to reshape speed sensor nut
SensorNut = [0,14.4,13.0];
SensorMold = [SensorNut[OD] + 2*WallThick,SensorNut[OD] + 2*WallThick,SensorNut[LENGTH] + WallThick];
MoldSides = 20;
RodOD = 1.6;
module NutMoldBlock() {
difference() {
translate([0,0,SensorMold.z/2])
cube(SensorMold,center=true);
translate([0,0,WallThick])
rotate(180/MoldSides)
PolyCyl(SensorNut[OD],2*SensorNut[LENGTH],MoldSides);
translate([0,0,-Protrusion])
rotate(180/8)
PolyCyl(SpeedOD,2*SensorMold.z,8);
for (i=[-1,1])
translate([i*(SensorMold.x/2 - WallThick/2),SensorMold.y,SensorMold.z/2])
rotate([90,0,0])
PolyCyl(RodOD,2*SensorMold.y,6);
}
}
module NutMold() {
gap = 1.0;
for (j=[-1,1])
translate([0,j*gap,0])
intersection() {
translate([0,j*SensorMold.y,0])
cube(2*SensorMold,center=true);
NutMoldBlock();
}
}
… snippage …
if (Layout == "NutMold")
NutMold();