Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
Being the kind of guy who lives under a rock, I thought this thing lying at the end of the driveway might be a USB widget:
Vape cartridge – side
But the contacts are all wrong:
Vape cartridge – contacts
It has an opening on the other end:
Vape cartridge – exhaust port
An easy teardown produces a yard sale of parts:
Vape cartridge – components
The fiber snippet inside the coil carries the same sickly sweet scent as exhaled by passing vapers.
Some casual searching suggests it’s a Juul Vape Pod. The Juul site insists on lower browser armor than I’m willing to grant it; you’re on your own.
The heating coil press-fits into slots cut in the contacts:
Vape cartridge – heater and contacts
It’s about 1 Ω cold, so I foolishly assume there’s a current limiter somewhere in the circuitry.
The little steel tube goes into the Tray o’ Cutoffs, where it might come in handy some day, the debris hits the trash, and I washed my hands up to the elbows.
Ya learn something new every day around here and, obviously, I must get out more …
BLDC Blower – 24 V 1 kHz 50 pct 2600 RPM – 200 mA-div – sample B
The upper trace shows the MOSFET drain voltage, the lower trace is the current at 200 mA/div.
The fan is connected from +24 VDC to the drain, so it’s getting power when the MOSFET is turned on and the drain is at 0 V. When the MOSFET turns off, the drain goes high and the drain current flow stops dead in its tracks.
Of course, the fan current doesn’t drop to zero, because inductance. The drain voltage rises until the MOSFET body diode enters avalanche breakdown, whereupon the energy in the magnetic field burns down across the voltage difference as usual.
Weird current waveforms happen all the time:
BLDC Blower – 24 V 1 kHz 50 pct 2600 RPM – 200 mA-div – sample C
Or like this:
BLDC Blower – 24 V 1 kHz 50 pct 2600 RPM – 200 mA-div – sample A
I think we’re looking at a sensorless BLDC controller trying to figure out the fan RPM from the back EMF after rebooting during each PWM cycle.
In any event, the drain voltage in the upper trace tops out around 120 V, because the IRF530 MOSFET has a 100 V absolute maximum VDS spec: you’re watching avalanche breakdown happen. A transistor rated for 14 A of avalanche current isn’t in much danger quenching only 200 mA, though, so it’s all good, apart from slapping the fan with -100 V across what used to be its +24 V supply.
Eyeballometrically, the drain current decreases at 100 mA / 500 ns = 200 kA/s with the drain voltage clamped at 120 V, during the division just right of center. The other side of the fan sits at +24 VDC, so the effective inductance looks like 480 μH = 96 V / 200 kA/s. I’m unwilling to tear the blower apart just to measure the motor winding inductances.
In any event, because we’re seeing the output of a 24 V three-phase fan controller being reverse-biased at 100 V, I doubt those numbers mean anything, other than that you shouldn’t PWM-chop the current going into a BLDC fan controller, of course.
The faint purple disk dead center in the image comes from the Pixel XL’s IR laser (so they say) rangefinder reflected in 1950-era window glass. Another image, with the Pixel pressed flat against the glass, shows two reflections:
Snowfall – Pixel IR rangefinder reflections – detail
Mary took a similar picture in the morning, standing in the patio just outside the front door:
Snowfall – Front yard – day
The downed branch will require some chainsaw work, but, if past experience is any guide, the sticks will vanish from the end of the driveway within a day. The previous storm dropped a tree on the power lines half a mile northward, leaving us in the dark for about 18 hours.
Funny thing about major snowstorms, though: there’s not much looting in their aftermath.
The DW660 collet grabs a length of 1/8 inch drill rod jammed into a hole positioned to put the switch actuator directly in line with the spindle axis when it trips the switch, so as to measure a known and useful location:
Z Axis Height Probe – MBI endstop – Slic3r
After mulling things over for a while, I fired up the Sherline, drilled a #54 hole in the actuator, and epoxied a 3/32 inch bearing ball in the hole:
MPCNC – Endstop Z probe – bearing
A #54 drill hole is half the diameter of the ball and, with a bit of luck, enough of the ball will stick through into the epoxy on the underside for a good grip:
MPCNC – Endstop Z probe – bearing – detail
The general idea is to convert the stamped steel actuator into a single, albeit not particularly sharp, contact point that can glide over the platform / PCB / sheet-of-whatever to measure the surface. The actuator pivots as it depresses, so the ball must slide horizontally just a bit. I prefer a rod-in-tube probe poking a linear button switch, but those weren’t getting me anywhere.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
NYS DOT’s recent Rt 376 repaving projects improved the road surface, but the infractructure seems to be crumbling apace, as we spotted on a recent walk across the bridge over Wappinger Creek:
Red Oaks Mill bridge – dangling concrete
The ragged edge of the deck shows other slivers have fallen into the creek.
My arms aren’t long enough to get a closer view:
Red Oaks Mill bridge – dangling concrete – detail
The concrete roadway is developing potholes in the right hand southbound lane, so the upper surface has begun crumbling, too.
I think the bridge dates to the mid-1990s, based on the aerial photo history from Dutchess GIS, so it’s a bit over twenty years old. Nothing lasts.
The display started up fine, became encrypted during the next few hours, and remained garbled as the track information changed. This is almost certainly a bad SPI transfer trashing the OLED module’s control registers.
Dropping the clock to the absolute minimum of 0.5 MHz didn’t help, either:
serial = spi(device=0,port=0,bus_speed_hz=500000)
device = sh1106(serial)
This particular display woke up blank after loading the new code, then worked OK after another reset. The other streamers lit up as expected on the first try, so the slower SPI isn’t making the situation instantly worse.
Running the clock at 1 MHz definitely reduced the failure rate, which suggests it’s a glitchy thing.
Good embedded systems practice suggests resetting the entire display from scratch every now and again, but my streamer code has no concept of elapsed time. Opening that particular can o’ worms would almost certainly result in an on-screen clock and I do not want to go there.
I suppose I must get a new oscilloscope with SPI bus decoding to verify all the SPI setup and hold times …