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?
T = 1.000 — Me, neither:
T = 1.500 — Ah!
T = 2.000 — I’m flinching into the right turn required for a sharp left turn:
Less than half a second reaction time: pretty good, sez me.
T = 2.833 — End of the flinch:
T = 3.000 — Now I can lean and turn left:
T = 3.267 — This better be far enough left:
T = 3.333 — The door isn’t moving:
T = 3.567 — So I’ll live to ride another day:
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…
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.
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:
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:
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:
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:
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:
Anyhow, I buttered the snout’s broken end with JB Kwik epoxy, aligned the parts, and clamped them overnight:
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:
The first pass at retrofitting SMD LEDs to light the needle area in Mary’s Model 158 sewing machine worked well enough:
However, she wanted more light on the right side of the needle, so now she has it:
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:
Seen without the glare:
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:
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:
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.
This turned out surprisingly well:
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:
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 …
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:
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:
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.
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:
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:
That’s along the big traffic circle at the Raymond / Collegeview / Forbus intersection.