CPAP Hose Dryer: Filter Bottle

With the general idea being to dry a CPAP hose by pulling clean air through it, putting laser-cut MDF upwind of the inlet was a known-bad idea:

CPAP Dryer - overview
CPAP Dryer – overview

It did, however, dry the tubing and the construction was Pretty Close™ to being the proper size.

Making the stand from acrylic sheet eliminates the MDF stench:

CPAP Dryer filter - acrylic stand - fitting end
CPAP Dryer filter – acrylic stand – fitting end

Incoming air passes through a dome-style N95 mask:

CPAP Dryer filter - acrylic stand - filter end
CPAP Dryer filter – acrylic stand – filter end

The mask sets the overall size of the stand:

CPAP Dryer - Filter holder - LB layout
CPAP Dryer – Filter holder – LB layout

Given that we’re not talking Level 4 Biohazard, any filter would work equally well. A dome mask has a nicely defined and self-supporting shape with a flange around the edge.

The flange provides a convenient way to build the clamp ring, starting with a scan from the face side:

Demetech Dome Mask - interior scan
Demetech Dome Mask – interior scan

Tracing the flange outline using GIMP’s Scissor Select tool and doing a little cleanup in Quick Mask mode produced a selection suitable for becoming a binary mask of the N95 mask:

Demetech Dome Mask - perimeter mask
Demetech Dome Mask – perimeter mask

Ex post facto, I realized the mask has a sufficiently regular outline to fit a much simpler Beziér spline:

CPAP Dryer - Filter holder - LB splines
CPAP Dryer – Filter holder – LB splines

That began in LightBurn as a circle fitting the lower part of the mask, converted to a path, then tweaked with the Node Editor to fit the top of the nose and add two nodes to pull the path inward on either side. In the unlikely event I make another bottle stand, the cut will be irrelevantly smoother.

The hole in the clamp comes from insetting that path by the flange width of 4 mm, whereupon the N95 mask pretty much self-centers in the hole:

CPAP Dryer filter - acrylic stand - filter clamp
CPAP Dryer filter – acrylic stand – filter clamp

You could draw a face on that thing…

The four small holes fit M3 aluminum rivet nuts:

CPAP Dryer filter - trimmed Rivnuts
CPAP Dryer filter – trimmed Rivnuts

They’re shortened by 1 mm (from the original length shown in the upper right) to fit 1 mm of mask sandwiched inside a pair of 3 mm acrylic sheets:

CPAP Dryer filter - Rivnut installed
CPAP Dryer filter – Rivnut installed

The glowy edge-lit acrylic sheet has 4.8 mm holes for a snug push fit and the white clamp ring has 5.1 mm holes for a loose alignment fit. I drilled out the laser-cut holes for nice smooth sides.

I picked a bottle large enough to also hold the mask’s elbow, so that it would dry in the same stream of clean air. So far, the elbows dry well enough on their own, but the bottle remains a convenient size for fitting the mask on its end.

On the other end of the bottle, the lid gets a hose fitting turned from PVC pipe:

CPAP Dryer - filter hose fitting glue rings
CPAP Dryer – filter hose fitting glue rings

The Official ResMed fittings on the masks and the AirSense 11 machine are about 20 mm long and just over 22 mm OD with a slight taper. The unheated hose has silicone rubber ends fitting very snugly around those cylinders, so I made the pipe fittings 25 mm long and 21 mm OD to ensure a low-effort, but still secure, fit.

The grooves cut into the fitting anchor a generous hot-melt glue blob sealing it to the lid:

CPAP Dryer - filter hose fitting inside
CPAP Dryer – filter hose fitting inside

Yes, the foam disk and the hole through the lid were both laser-cut. Making perfect circles in thin organic material with zero drama is wonderful.

The downstream / mask end of the heated ClimateLine hose (left) is physically identical to the unheated hose ends, but the machine / upstream end (right) sports an electrical connector for the spiral heating element and the thermistor (in the white stud protruding into the mask end lumen):

ResMed ClimateLine heated hose ends
ResMed ClimateLine heated hose ends

Yes, that does look a lot like a naked USB connector, as does the main power connection on the machine, and you can actually slide a Type A USB connector around it. The ResMed manual pointedly notes:

•Do not insert any USB cable into the AirSense 11 device or attempt to plug the AC adaptor into a USB device. This may cause damage to the AirSense 11 device or USB device.
•The electrical connector end of the heated air tubing is only compatible with the air outlet at the device end and should not be fitted to the mask.

ResMed AirSense 11 Clinical Guide

Protip: When you must carefully explain why T. C. Mits should not mate two obviously compatible and mutually antagonistic devices, your design-fu has failed.

The four ribs inside the upstream end slide over a 23.5 mm cylinder, which is enough larger than the 22 mm cylinder on the machine to wiggle the not-USB connector into place. Without a connector to worry about, I turned a sleeve adapting the smaller fitting to those ribs:

CPAP Dryer filter - heated hose bushing
CPAP Dryer filter – heated hose bushing

It’s 27 mm long to keep the lip of the silicone seal away from the setscrew, 23.5 mm OD to exactly fit between the ribs, and a 21.5 mm ID slip fit over the bottle snout.

The tiny M3 setscrew lives in a hole tapped into the inner tube, because the sleeve is only 1 mm thick:

CPAP Dryer filter - acrylic stand - bushing center drill
CPAP Dryer filter – acrylic stand – bushing center drill

The setscrew turns outward into a clearance hole drilled in the sleeve to lock it in place.

The outer PVC pipe in the vise is a simple cylinder fixture bored to match the sleeve, so I could grab it in the lathe chuck / vise without distortion. Just the force from a normal grip squishes the fixture enough to keep the sleeve from turning / moving / getting annoyed.

Improving the MDF fan box awaits a few parts, but, being downstream, isn’t on the critical path for drying hoses. The only trick is keeping the bottle inlet upstream of the fan exhaust.

Sabin Polio Vaccine Event

A clipping from the Harrisburg Evening News, probably in 1962, shows more enthusiasm for vaccines than we have today:

Sabin Vaccine Doses - 1962
Sabin Vaccine Doses – 1962

It emerged from a fat folder of space exploration articles / maps / booklets / clippings with dates from 1959 through 1962, when I would have been around nine years old. Most likely somebody older collected everything and gave the box to me a few years later. The other side had a hagiographic article about John Glenn, explaining why this side is minus a few paragraphs.

From everything I read about Long Covid, I don’t want to give Short Covid even a little bite at my apple. In particular, fast-forwarding through a decade of neural degeneration isn’t going to put me closer to my Happy Place.

The bonus “Volunteer Fireman Convicted of Arson” article could come from any decade.

Sheath Your Blades!

Trigger warning: gore.

A week ago I milled a stack of cursor blanks, then engraved a test hairline on a scrap cursor to make sure everything was ready:

Cursor V-bit setup
Cursor V-bit setup

After raising the spindle a few inches, I reached across the table, peeled the tape, and, as I pulled my hand back with the finished cursor, snagged the back of my left index finger on the V bit.

So. Much. Blood.

Urgent Care PA: “You may have nicked the tendon. Get thee hence to the Hospital Trauma Center.”

Trauma Center MD: “See that white fiber down in there? That’s the extensor ligament. Looks OK and should heal fine.”

Me: “Urp.”

Trauma Center MD: “Unless you’re one of the 20% who get an infection.”

Me: “Unless I’m one of the few who contract an MRSA infection, then just up and die.”

Trauma Center MD: “Well, yes, there’s that. If the wound swells or smells bad, come back here quickly.”

Dutchess County is now on the trailing edge of the Omicron wave, but the Trauma Center is attached to the Emergency Room and had a steady stream of customers arriving by ambulance. While being entirely content to not be their most urgent case, I had plenty of time to examine the wide variety of instruments parked in the room with me:

Nameless Hospital Cart
Nameless Hospital Cart

I’m on a ten-day regimen of surprisingly inexpensive Amoxicillin + Clavulanate Potassium capsules, which is apparently what it takes to knock down a potential infection these days.

Five days later, it looks like I should pull through:

Lacerated Left Index Finger
Lacerated Left Index Finger

So I hereby swear a mighty oath on the bones of my ancestors to always sheath my blades. You should, too.

But we all knew that last week, didn’t we?

Google Play Store Ad Bidding Delay

Being that type of guy, I turn my phone off during the night while it’s charging, turn it on for the next day’s adventures, and check the Google Play App Store to see which apps will get updates.

The vast machine learning / AI / whatever analyzing my every move still hasn’t figured out my morning ritual, so it desperately tries to sell me crap:

Google Play Store - app ad delay
Google Play Store – app ad delay

My guess: those blank spots are placeholders for app ads, but, while the phone is busy scanning for malicious apps, the ad bidding process doesn’t complete fast enough to update the display before I see it.

FWIW, I had the Genuine NYS Covid-19 app installed for a while, but I very rarely go anywhere or see anybody, so it seemed to offer no net benefit.

Schauer Solid State Battery Charger: Digital Meter Retrofit

The Forester’s battery has been on life support from an ancient Schauer “Solid State” charger (which may have Come With The House™) for the last year:

Schauer battery charger - analog ammeter
Schauer battery charger – analog ammeter

A remote Squidwrench session provided an opportunity to replace its OEM ammeter with a cheap volt-amp meter:

Schauer battery charger - digital meter
Schauer battery charger – digital meter

The charger is “solid state” because it contains silicon electronics:

Schauer battery charger - solid state components
Schauer battery charger – solid state components

That’s an SCR implanted in the aluminum heatsink. The other side has a Motorola 18356 house number, a date code that might be 523, and the word MEXICO. The company now known as NXP says Motorola opened its Guadalajara plant in 1969, so they could have built the SCR in either 1973 or 1975; it’s not clear who manufactures what these days.

The black tubing contains at least one part with enough value to justify the (presumably) Kovar lead; nowadays, it would be a “gold tone” finish. It’s probably a Zener diode setting the trickle-charging voltage, joined to the resistor lead in the crimped block. I don’t know if the glass diode is soldered to the Zener, but I’m reasonably sure if the third lead came from a transistor tucked inside the sleeve, we’d read about it on the charger’s front cover.

In an ideal world, a digital meter would fit into a matching rectangular hole in the front panel, but that’s not the world we live in. After wrestling my gotta-make-a-solid-model jones to the floor, I got primal on a random slab of soft-ish plastic sheet:

Schauer battery charger - bezel nibbling
Schauer battery charger – bezel nibbling

There’s nothing like some bandsaw / belt sander / nibbler action to jam a square peg into a round hole:

Schauer battery charger - bezel test fit
Schauer battery charger – bezel test fit

It’s actually a firm press fit; whenever something like that happens, you know the project will end well.

Hot melt glue FTW:

Schauer battery charger - digital meter wiring
Schauer battery charger – digital meter wiring

The new meter’s (heavy) red-black leads go to the same terminals as the old meter’s wires, paying attention to the polarity. I splurged with insulated QD terminals on the old wires where a joint was needed.

The meter’s thin red lead expects to see a power supply under 50 V with no particular regulation requirements, so I used the same flying-component design as the rest of the charger:

Schauer battery charger - meter power supply
Schauer battery charger – meter power supply

The meter draws basically no current, at least on the scale of an automotive battery charger, so the 220 µf cap holds pretty nearly the peak 18 V half-wave rectified from the center tap by a 1N5819 Schottky diode.

Those two squares riveted to the back panel are genuine selenium rectifiers, from back in the day when silicon power diodes weren’t cheap and readily available. They also limit the charger’s peak current and have yet to emit their incredibly foul stench upon failure; you always know exactly what died when that happens.

Selenium rectifiers were pretty much obsolete by the early 1970s, agreeing with a 1973 date code. Schauer might have been working through their stockpile of obsolete rectifiers, which would have been sunk-cost-cheap compared to silicon diodes.

The meter’s thin black lead goes to the power supply common point, which turns out to be where those rectifiers meet. The larger black wire goes off to the meter’s fat black lead on the other side of the aluminum heatsink, joining it in a new insulated QD terminal.

The meter’s thin yellow wire is its voltage sense input, which gets soldered directly to the hot lead of the SCR.

The meter indicates DC voltages and currents, which definitely isn’t the situation in the 100 Ω power resistor shown in the second picture.

The voltage:

Schauer battery charger - voltage waveform
Schauer battery charger – voltage waveform

And the current at 20 mA/div, showing why silicon replaced selenium:

Schauer battery charger - current waveform
Schauer battery charger – current waveform

Yes, the current does go negative while the rectifiers figure out what to do next.

The charger seems a little happier out in the garage:

Schauer battery charger - in use
Schauer battery charger – in use

The battery holds the voltage steady at 13.7 V, with the charger producing 85 mV blips every second or so:

Schauer battery charger - float V pulse
Schauer battery charger – float V pulse

Those blips correspond to 3 A pulses rammed into the battery:

Schauer battery charger - float A pulse - 1 A-div
Schauer battery charger – float A pulse – 1 A-div

They’re measured across a 1 Ω series resistor that’s surely limiting the maximum current: 18 V from the transformer minus 13.7 V on the battery minus other IR losses doesn’t leave room for anything more than 3 V across the resistor. I wasn’t going to haul the Tek current probes out to the garage just for the occasion.

Opening the Forester’s door to turn on all its LED interior lights bumps the meter to about 1 A, although the truth is more complicated:

Schauer battery charger - loaded A pulse - 1 A-div
Schauer battery charger – loaded A pulse – 1 A-div

The average current is, indeed, just under 1 A, but in this situation the meter’s cool blue number seems more like a comfort indicator than anything particularly reliable.

All I really wanted from the meter was an indication that the trickle charger was trickling, so I disconnected Tiny Scope, declared victory, and closed the garage door.

Ed’s Low-Effort High Traction Bread

Being that type of guy, perhaps I snug the plastic film over the top of the mixing bowl a bit too securely:

Yeast at work
Yeast at work

The dough descends from my High-Traction Bread, prepared with my low-effort version of the NY Times no-knead recipe.

The current dramatis personae:

  • 2 cups whole wheat flour (coarse grind OK)
  • 1 cup bread flour
  • ½ cup rye flour
  • ½ cup whey protein (dry milk powder OK)
  • 1 tsp yeast
  • 1 tsp salt
  • 1-½ cup warmish water

Let the mixer work on the dry ingredients for a while, then slowly pour the water into the bowl. The dough will (probably) become a thick batter, which is perfectly OK. Cover with plastic wrap as above, let it sit from afternoon until the next morning, plop the dough / batter on a floured silicone sheet, chivvy it into a lump, cover with the wrap, let it sit for a couple more hours.

Fire the oven to 450 °F, get the pot crazy hot, plop the lump inside, cook 25 minutes covered and 10 more uncovered, dump on a rack, slice off a QC sample, slather with butter, enjoy.

Makes a 700 gram = 24 ounce loaf lump: 1600 kcal, 320 g carb, 90 g protein. A serving might be a scant two ounces: 135 kcal, 26 g carb, 7 g protein.

Not keto-oid, but it’ll keep you warm in the Basement Laboratory.

You may safely ignore all recommendations concerning exact times, temperatures, and suchlike; this ain’t no damn fainting-flower souffle.

You could get used to it …

Handle With Care – FRAGILE – Thank You

I wonder if somebody took careful aim at this particular corner:

FRAGILE package damage
FRAGILE package damage

Well, it arrived in a more-or-less timely manner, unlike some packages and letters we’ve both sent and received of late. Tracking data suggests packages can vanish for days at a time, teleport to distant sorting centers, and sometimes loop between centers.

The USPS may simply have run out of people willing to work under the current conditions.