Osmotic Bubbles

Who knew? Our fancy toilet has been leaking for a while, and at long last I decided to do something about it. Which involved disassembling a bunch of toilet-body parts (remember, fancy), turning off the water and extracting the flush mechanism.

At the bottom of which was a silicone gasket covered in little blisters. After suitable searches and an order for a replacement part, I stumbled across a review by someone who had had a similarly disfigured gasket (and blamed it for their leaks).

Down to my spouse’s sewing supplies for a pin, which I used to puncture every blister and squeeze out the water. More gymnastics getting the flush valve back in and reassembling everything (pro tip: cats should not be allowed to help). Then back to the search engines: why should an ostensibly waterproof gasket develop pockets full of water, even after 15 years of submersion?

Turns out that if there are water-soluble compounds inside an insoluble material that is even infinitesimally permeable, osmotic pressure over the years will force in enough water to dilute the soluble material and open up tiny bubbles. Chemistry!

So why are there water-soluble compounds inside my silicone gasket? Some kind of weird manufacturing flaw? Only sort of. The page I landed on about osmotic bubbles called out soluble metal salts in particular. Anyone remember what silicone uses to catalyze curing? Got in in one. Tin, Platinum, Bismuth… So unless the manufacturer is really careful (and thrifty) there will always be a little bit of excess soluble stuff inside the finished product.

There is one alternative explanation that scares me a bit, though: apparently thermal gradients can also drive water into semi-permeable materials. So maybe every time we might have sorta kinda let the water freeze inside the outside-wall supply lines we were creating a gradient that has now done the terrible damage of costing me $8 every 15 years for a new flapper gasket.

Posted in probably boring | Leave a comment

Thank you, Electronics Goldmine

I admit it, I have an addiction to things that call themselves bargains. Down in the basement are multiple cubic feet of random electronic and mechanical components that looked like a good idea or might be useful someday or just seemed like too good a deal to pass up. 25 Magnets with holes in them. 100 trim pots that almost fit breadboard spacing. 500 sets of 3 green LED in some kind of indicator mounting…

Some of these things I have found a use for, like the hall-effect sensors or the optical interrupters. Others I probably never will, like the 20-watt 10-ohm resistors. But last week my addiction did me proud.

After about 15 years of use, the good kitchen thermometer stopped working. You know, the kind where you poke the tiny tip into meat or bread or sugar syrup and get an instant, accurate reading. The kind that takes a weird battery size that no one used to stock. It just didn’t work any more. Didn’t turn on, even with a fresh battery.

So what the heck, I pulled off the stickers over the screws and opened it up, and found that it occasionally did work when you pushed on the body just right. There’s a sweet cam-and-microswitch arrangement that turns the thermometer on when you rotate the probe away from the body. Oh, and the microswitch had green corrosion coming out of its case. Hmm.

Yep, when I shorted the contacts, the thermometer turned on just fine. But how to repair or replace the switch?

Oh, wait. A tray of 100 of the smallest microswitches you ever saw for $5. So tempting that I forgot about the first tray I bought and got another one a year later. And be careful opening it up, or they go everywhere. Clipped the leads on the old, dead switch so they stood up from the circuit board. Butted the leads on a microswitch against those. Soldered, bent the switch actuator out a bit to meet the cam. Done.

Every now and then all that crap in the basement comes in handy. And if this switch corrodes, I’ve got another 190 where it came from…

Posted in possibly useful, probably boring | Leave a comment

Ok, this is actually useful

And it only took me 9 years to notice. It’s an openscad script for making keyboard feet. Thank you.

Not such a big deal at home, but at a school with donated computers of interesting provenance and a couple dozen energetic kids this might turn out to be really useful. After I get enough different measurements for various keyboard models, I might even post a revision where you just tell the script which keyboard you have and it sets all the dimensions.

Posted in possibly useful | Tagged , , | Leave a comment

Possibly the creepiest Christmas ornament of 2020

Zapped on my glowforge, slightly modified from a design by IconPai at the Noun Project.

Every year I take the bottom however many inches have to come off our tree to make it fit the living room ceiling and slice some disks on the miter saw.  Then I zap them into ornaments.  The wood is green as it gets,  so the ornaments usually warp all to heck and get tossed with the tree,  but it’s fun while it lasts.

This one might be a little too Masque of the Red Death tho.

Posted in Uncategorized | Tagged , | Leave a comment

Something actually useful

Our dishwasher is getting to be a certain age. And the plastic parts are showing it. Especially after one of the youth tripped over a cat and onto the bottom rack. When the wheels fall off they have a really unpleasant tendency to lodge against the heating element and melt/char. It stinks up the whole interior.

pegSo I fired up Openscad and my cheap plastic vernier calipers. First, a peg to hold the remaining wheels in place after the old pegs failed. I am kinda proud of the divot that lets the peg bend inwards, because it’s straightforward openscad code (possibly even amenable to turning into a module) rather than something with polygons (I hate polygons). Less proud of the overhang at the top of the peg, which would have been steeper. But with the cheap plastic calipers I wasn’t really sure of my measurement.


For the wheel, I just combined measurements of the existing wheel with the peg design, and presto! The result is a one-piece part that probably would have been hard for the manufacturer to injection-mold cheaply. carousel_dwinplace Speaking of cheaply, the cost estimator on my octoprint installation figured the price of 4 pegs — made out of recycled PETG from the late, semi-lamented Makergeeks — as something like 48 cents. Even factoring in the 20 minutes of design time, I think I may have beaten the $36.98 for an OEM replacement (you can only buy the whole carriage) online.

(And if your dishwasher is suffering similarly, you can check the files at Youmagine.)

Posted in possibly useful | Tagged , | Leave a comment

Posted without comment

No, that’s not a trick of perspective
Posted in things that don't work, Uncategorized | Leave a comment

Failing to fail

I’ve been working on and off with Blinkinlabs’ BlinkyTape and pixels, which means also with their nice little app PatternPaint, which lets you create little light shows to download to their LED strands without all the annoying number-fiddling that is LED images on Arduino.

But when you have an LED strip with controller built in you have a few obvious potential problems. First, each of those LEDs can draw up to 50 milliamps when cranked up full, so about 3 amps for a 60-chip tape. Put the wrong pattern on there, and good luck talking to the controller chip over a standard USB port while it’s trying to draw all that current. Second, you need a really reliable USB protocol that can handle transmitting and receiving data while the microcontroller is running flat out handling the pretty blinky part. Third, some computers’ USB drivers and hardware are rock solid, others (many macs, for instance) are garbage.

So start by splicing extra power connectors onto the back of the blinky tape (extra points for avoiding ground loops) . Then find out that the usb connection still works only a few percent of the time, for various reasons including serial-driver bugs in the version of the Qt framework it’s built with. Here’s where it gets interesting, in the sense of the curse:

The latest version of PatternPaint is supposed to have improvements to the USB stack, including a fixed serial driver and a protocol that is more willing to retry when things go wrong. But the appImage of that latest release segfaults when run on all of the machines I have access to.

Yes, you read that right. The format that’s supposed to have all the bits and pieces its app depends on nicely built in to a custom file system leads to an executable that segfaults. (But not on all machines, because it wouldn’t have passed its release testing.) So it turns out that appimages do rely on a bunch of libraries in the underlying operating system, and in the couple of years since PatternPaint was actively under development some of those libraries have gone away or moved or been altered in some incompatible way.

So it’s time to start building from source. Download a current version of Qt and fire up the compilation script. No luck. Apparently the dependencies on a previous version were real. (or not, as we will later see) The version specified by the Blinkinlabs instructions isn’t even on the list of recently-obsolete versions you can download, but it is in the Qt archives.

Still no luck. But a few searches on the error messages tell me that some libraries that used to be present by default in Debian/Ubuntu are no longer present in recent versions, hence also not in the debian-derived BunsenLabs OS that I’m using here (because it’s what we’ve got at the school where I hope to deploy this insanity at some point.) Download the right version of mesa-dev and jasper, and try again. Still a failure. Turns out I’m supposed to have installed linuxdeployqt in the same directory as I’m compiling from.

So now everything chugs through endless pages of messages, and success is announced! I even get the request to post my appimage so that everyone else can use it. But no. right after that there’s an error message that tar cannot stat something for some reason and the whole process has failed. And the only way to figure it out is to start digging into the guts of the linuxdeployqt appimage or its source.

I’m about to declare defeat — or at least post an issue — when I decide to look into the build directory and see if I can at least figure out what tar was trying to package up. There’s a PattenrPaint.blah.blah.tar that’s empty — sad! — and there’s a file called PatternPaint.2.4.1.blahblah.appimage.

What the heck. Yes, I click on it and it’s a perfectly good appimage. Doesn’t segfault, brings up the splash screen. Talks to blinkytape on machines where the previous version wouldn’t. I have what I need, I just have this really uncomfortable feeling that that final error message is really supposed to mean something and I should find out what.

Posted in probably boring, things that don't work | Tagged , , | Leave a comment

Lasercar Lives!

I know it’s not much, but the new version is ready for coding. It knows how far it is from obstacles (in front), it steers, it goes forward and backward. And it does it all in python. Code and current SVGs on Github any day now.

About half of the solderless breadboard is still available for more sensors, servos, motors and so forth. Also for a level-shifting chip if there’s a 5-volt part that absolutely won’t talk to a 3v3 controlller otherwise.

Almost all of the parts are laser-cut (I stole the front wheels and axle from a copy of the earlier 3D-printed version. Cutting time on a Glowforge is about 10 minutes.

Yes, this is as boring a video as you would expect
Posted in possibly useful, toys | Tagged , , | Leave a comment

In praise of useless information

About a year ago, back when we were still doing laser night at Local64, C did a nice backlit laser-cut sign for me to put in the door downstairs, using a font that wasn’t properly speaking a stencil but still kept all the interior bits of letters attached. About a month ago I started thinking about getting around to making a similar sign for the maker space at Pacem, so I asked him if he could remember what font he’d used.

No clue. And thanks to the move it wasn’t on any of our machines any more. So how to find it? (Remember that when you upload a file for zapping by the Glowforge you have to convert all your text to paths, because the servers don’t know anything about fonts.) No likely sites in browser histories. No luck at all with font-comparison sites (which basically image-processed away the single-stroke feature that made this font so distinguishable).

OK, so the title probably gave it away. I looked inside the original SVG file with a text editor, and when Inkscape converted the text to a path way back when, it obligingly left style information for that path telling what font it had once been rendered in, and a “label” property with the original text. Gosh all hemlock. I don’t know if that stuff was there to support undo, or because it’s simpler to leave it there than to delete it from the nodes in the file, but that’s what the software does.

Oh, and the font: Library 3AM, by designer Igor Kosinsky , to whom my thanks. I think for the next sign I’m going to use the “soft” version. If only there were italics…

Posted in possibly useful, probably boring | Tagged , | Leave a comment

Let There Be Light

I remixed an old openscad christmas tree design to include space for a coin cell and an LED. Coincidentally I have a bunch of green LEDs lying around — their light gets through the plastic a lot better than the white ones.

I made one with space for a regular 2032 coin cell, and one with space for a rechargeable 2450 (which doesn’t last nearly as long). You could remix again for AA or AAA, but then you’d need a real circuit instead of just sliding the cell into the space between the two leads of the LED.

(Caution: the space between the LED  and the battery has to be longer than you think, or else the negative lead will bend so that it creates a short between the negative face of the coin cell and the rim of the positive face. Good thing coin cells can’t deliver much current.)

You’ll also need to put sticky tape on the back side of the coin cell to pull it out or use pliers with some kind of insulation, because it turns out those little so-and-so’s are slick and hard to pull out by hand. Or maybe I’ll fab some nonconductive tweezers…

Posted in making, possibly useful, toys, Uncategorized | Tagged , | Leave a comment