Bicycle-Hostile Design: Raymond Avenue

I generally ride somewhat further into the travel lane than some folks would prefer, but I have good reason for that. Here’s how bicycling along Raymond Avenue at 14 mph = 20 ft/s on a pleasant summer morning works out…

T = 0.000 — Notice anything out of the ordinary?

Raymond Ave - Door Near Miss - 2016-08-03 - 0018

Raymond Ave – Door Near Miss – 2016-08-03 – 0018

T = 1.000 — Me, neither:

Raymond Ave - Door Near Miss - 2016-08-03 - 0078

Raymond Ave – Door Near Miss – 2016-08-03 – 0078

T = 1.500 — Ah!

Raymond Ave - Door Near Miss - 2016-08-03 - 0108

Raymond Ave – Door Near Miss – 2016-08-03 – 0108

T = 2.000 — I’m flinching into the right turn required for a sharp left turn:

Raymond Ave - Door Near Miss - 2016-08-03 - 0138

Raymond Ave – Door Near Miss – 2016-08-03 – 0138

Less than half a second reaction time: pretty good, sez me.

T = 2.833 — End of the flinch:

Raymond Ave - Door Near Miss - 2016-08-03 - 0183

Raymond Ave – Door Near Miss – 2016-08-03 – 0183

T = 3.000 — Now I can lean and turn left:

Raymond Ave - Door Near Miss - 2016-08-03 - 0198

Raymond Ave – Door Near Miss – 2016-08-03 – 0198

T = 3.267 — This better be far enough left:

Raymond Ave - Door Near Miss - 2016-08-03 - 0214

Raymond Ave – Door Near Miss – 2016-08-03 – 0214

T = 3.333 — The door isn’t moving:

Raymond Ave - Door Near Miss - 2016-08-03 - 0218

Raymond Ave – Door Near Miss – 2016-08-03 – 0218

T = 3.567 — So I’ll live to ride another day:

Raymond Ave - Door Near Miss - 2016-08-03 - 0232

Raymond Ave – Door Near Miss – 2016-08-03 – 0232

I carry a spectacular scar from slashing my arm on a frameless car window, back in my college days: the driver flipped the door open as I passed his gas cap at a good clip. The collision wrecked the window, the door, and my bike, but didn’t break my arm, sever any nerves, or cut any arteries. I did discover human fatty tissue, neatly scooped from under my arm onto the window, is yellowish, which wasn’t something I needed to know.

Searching for Raymond Avenue will bring up other examples of bicycle-hostile features along this stretch of NYSDOT’s trendy, traffic-calmed design…



Random LED Dots: Entropy Library for Moah Speed with Less Gimcrackery

A discussion over the Squidwrench Operating Table about injecting entropy into VMs before / during their boot sequence reminded me that I wanted to try the Entropy library with my 8×8 RGB LED matrix:

8x8 RGB LED Matrix - board overview

8×8 RGB LED Matrix – board overview

The original version trundled along with random numbers produced by timing Geiger counter ticks. The second version, digitizing the amplified noise from a reverse-biased PN junction, ran much faster.

What’s new & different: the Entropy library measures the jitter between the ATmega328 watchdog timer’s RC oscillator and the ceramic resonator (on Pro Mini boards) driving the CPU. It cranks out four bytes of uncorrelated bits every half-second, which isn’t quite fast enough for a sparkly display, but re-seeding the Arduino PRNG whenever enough entropy arrives works well enough.

One could, of course, re-seed the PRNG with Geiger bits or junction noise to the same effect. The key advantage of the Entropy library: no external hardware required. The downside: no external hardware required, so, minus those techie transistors / resistors / op amps, it will look like Just Another Arduino Project.

Reverse-bias noise amplifier - detail

Reverse-bias noise amplifier – detail

Le sigh.

In any event, the Entropy library has excellent documentation and works perfectly.

The Arduino PRNG can produce results fast enough for wonderfully twinkly output that’s visually indistinguishable from the “true” random numbers from the Geiger counter or PN junction. I dialed it back to one update every 5 ms, because letting it free-run turned the display into an unattractive blur.

The top trace shows the update actually happens every 6 ms:

Entropy TRNG - LED update vs refresh

Entropy TRNG – LED update vs refresh

The lower trace shows that each matrix row refresh takes about a millisecond. Refreshes occur on every main loop iteration and interfere with the update, not that that makes any difference. Should it matter, subtract one from the update period and it’ll be all good.

The Arduino source code as a GitHub Gist:


Leave a comment

Kenmore Progressive Vacuum Tool Adapters: First Failure

I picked up a horsehair dust brush from eBay as a lightweight substitute for the Electrolux aluminum ball, discovered that an adapter I’d already made fit perfectly, did the happy dance, and printed one for the brush. That worked perfectly for half a year, whereupon:

Dust Brush Adapter - broken parts

Dust Brush Adapter – broken parts

It broke about where I expected, along the layer lines at the cross section where the snout joins the fitting. You can see the three perimeter shells I hoped would strengthen the part:

Dust Brush Adapter - layer separation

Dust Brush Adapter – layer separation

That has the usual 15% 3D Honeycomb infill, although there’s not a lot area for infill.

There’s obviously a stress concentration there and making the wall somewhat thicker (to get more plastic-to-plastic area) might suffice. I’m not convinced the layer bonding would be good enough, even with more wall area, to resist the stress; that’s pretty much a textbook example of how & where 3D printed parts fail.

That cross section should look like this:

Dust Brush Adapter - Snout infill - Slic3r preview

Dust Brush Adapter – Snout infill – Slic3r preview

Anyhow, I buttered the snout’s broken end with JB Kwik epoxy, aligned the parts, and clamped them overnight:

Dust Brush Adapter - clamping

Dust Brush Adapter – clamping

The source code now has a separate solid model for the dust brush featuring a slightly shorter snout; if when the epoxy fails, we’ll see how that changes the results. I could add ribs and suchlike along the outside, none of which seem worth the effort right now. Fairing the joint between those two straight sections would achieve the same end, with even more effort, because OpenSCAD.

The OpenSCAD source code as a GitHub Gist:


, , ,


Kenmore Model 158: Needle Lights, Now With Moah LEDs

The first pass at retrofitting SMD LEDs to light the needle area in Mary’s Model 158 sewing machine worked well enough:

Kenmore 158 Needle Light - heatsink

Kenmore 158 Needle Light – heatsink

However, she wanted more light on the right side of the needle, so now she has it:

Needle LEDs - front

Needle LEDs – front

That’s without any LEDs along the front and back of the arm, hence the dark pool beyond the sewing machine’s base.

Those are the same 5050 warm white LEDs I used on the other side:

Needle LEDs - lower right

Needle LEDs – lower right

Seen without the glare:

Needle LEDs - bottom

Needle LEDs – bottom

They’re mounted on a 32 mil brass strip from the shimstock stash, carefully hand-bent and twisted to match the curvature of the arm, and held in place with JB Kwik steel-filled epoxy for good heat conduction to the aluminum arm. One can argue with the epoxy oozing out from under the brass, but it’s invisible from above.

No construction photos, alas, because I made this in a white-hot frenzy one afternoon and managed to not take any pix during the entire session. Call it working in the flow, OK?

All four SMD LEDs sit in epoxy blobs that isolate them from the brass strip, with 26 AWG solid wire “bus bars” soldered to the top of their terminals and a length of that lovely PTFE-insulated miniature coax leading off into the endcap. More epoxy encloses all the wiring & connections to provide a surprisingly smooth surface that shouldn’t snag the fabric.

The power supply uses an 18 W 120 VAC to 12 VDC brick intended for small LED installations:

Needle LEDs power supply - exterior

Needle LEDs power supply – exterior

The AC comes from the same zip cord that formerly supplied the original 15 W incandescent bulb in the endcap, so the new lights behave the same way: push the power button to turn on the machine and the LEDs pop on just like they should. I put quick-disconnect terminals in the AC line to make it removable, although those need some sort of insulated plug to cover the exposed blades inside their housing.

Inside the black box, a small boost supply steps the voltage up to just under the nominal operating level of 21 VDC:

Needle LEDs power supply - interior

Needle LEDs power supply – interior

You can just see the adjusting screw hole in front of the AC brick in the overall view.

The DC output exits in the middle of the far side, through a coax jack epoxied to the base.

As before, all six LEDs run in parallel at (for now) 18.5 VDC and maybe 50 mA each, for a total of 300 mA, and seem fearsomely bright even at that. We can now tune for best light as needed.

This is a major major major improvement over the previous tangle of wires stuck on the outside of the machine, with all the wiring internal to the arm and the power supply out of sight under the sewing table.

After an hour, the arm above the four LEDs runs 13 °C above ambient and the endcap over the two LED heatsink is 6 °C over ambient. The AC supply runs at 104 °C and its plastic case offers no provision for heatsinking. All in all, things are warm and not hazardous.

I haven’t retrofit this machine with LED strips along the front & back of the arm, as those may not be needed with the intense needle lighting; the NisLite desk lamp may suffice for area illumination.



Vacuum Tube LEDs: 500 W Frosted Incandescent Bulb

This turned out surprisingly well:

500 W Incandescent - backlit dark

500 W Incandescent – backlit dark

In the harsh light of the Electronics Workbench, you can see there’s less than meets the eye: a single knockoff Neopixel taped to the back side of the bulb just below the equator and a knockoff Arduino Pro Mini taped to the Mogul lamp socket:

500 W Incandescent - backlit light

500 W Incandescent – backlit light

The electrical box serves as a base and the cord doesn’t do anything in this incarnation.

The 5050 SMD LED package (inside an ugly 3D printed plate cap) looks enough like a point source to shadow the filament & support structure against the frosted bulb. The blurry upper part of the filament is closer to the LED, which isn’t really a point source and must fight its way through the frosting.

The Pro Mini runs the same firmware as the Bowl o’ Fire floodlamp, of course, dialed back for slow fades.

It lights up the room something wonderful …



The Curious Incident of the Dog in the Night-time

We are not dog people, so being awakened at 12:45 one morning by a large dog barking directly under the bedroom windows wasn’t expected. After a bit of flailing around, I discovered the dog parked under the windows on the other end of the bedroom:

Dog on patio

Dog on patio

That’s entirely enough dog that I was unwilling to venture outside and attempt to affix it to, say, the patio railing, where it could await the town’s animal control officer in the morning:

Dog upright

Dog upright

It’s not a stray, because it wears two collars: one with leash D-rings and the other carrying a black electronics box that could be anything from a GPS tracker to a shock box that’s supposed to keep it inside one of those electronic fences. If the latter, a battery change seems past due.

Being a dog, it spent the next two hours in power-save mode on the patio, intermittently moaning / growling / barking at every state change in the back yard: scurrying rodents, falling leaves, far-distant sirens, neighborhood dogs, you name it. We would be dog people to want that level of launch-on-warning, but we’re not.

If parvovirus were available through Amazon Prime, I’d be on it like static cling. By the kilogram on Alibaba, perhaps?

Grainy photos taken in Nightshot IR mode with the DSC-F717, which works well enough after I (remember to) jiggle the Memory Stick to re-seat the ribbon cable connections.

Hat tip to Sherlock in Silver Blaze.



Glass Bead Retroreflection

NYSDOT re-striped Rt 376 using paint with sprayed-on glass beads, rather than plastic strips, which produces lovely rainbows when the sun comes from directly behind. Alas, my helmet camera can’t resolve faint colors against the background glare and doesn’t show the circular reflection cutoff:

Glass Bead Retroreflection - 2016-07-20

Glass Bead Retroreflection – 2016-07-20

However, the scattered beads light up the pavement’s cracks and crevices.

Four days later, the drifts of beads have dissipated to leave bright reflections anywhere the tires don’t reach:

Glass Bead Retroreflection - 0219

Glass Bead Retroreflection – 0219

That’s along the big traffic circle at the Raymond / Collegeview / Forbus intersection.