Topic: Making

Outdoor Cat Shelter

2025-11-23 10:49 - Making

I just posted about my stray cat friend Marmalade. It's getting to be winter time and it's really too bad Marmalade has to stay outside in the cold. People sometimes make little shelters, a cathouse, for outdoor cats to stay in over the winter. Last trash day some across-the-street neighbors were throwing out a ruined old chest of drawers. I snagged it to be raw material for making one of my own.

The most common design seems to be based around a plastic storage container. When looking for more inspiration I found a commercial product, the Feralvilla and I like its design. The bottom-entry seems like it will do a great job keeping out the worst of the wind. Of course, using salvaged material means I have to tweak the design to work with what I've got. It's all particleboard, but the top and sides are ⅝" material.

The design for the cat shelter I came up with: mostly salvaged materials plus some 2x4s for the legs.

So here's my design. The Feralvilla's walls go all the way to the ground, with entries cut out and a wind baffle. My material isn't big enough for that, so I put a wind baffle "hallway" inside. All the walls and floor are the mentioned boards. The roof is a frame of 2x2 with two layers of the thin hardboard backer from the drawers. I started breaking down the chest of drawers and coming up with this design Sunday night, and finished that Monday morning, and started building.

First day

The first and second day saw much of the main structure cut and rough assembled, with screws (also salvaged!). You can see that I'm doing my best to cut-to-size, rather than to plan, with the angled sides. They're fit with the screws so I can see how big they really need to be, possibly accounting for minor errors in the other pieces. I'm also using the table and some shims (cut for this purpose) as clamps: this is wider than my 12 inch F clamps. Happily, I got the dado (cut with a router) to line up great, for fitting the "hallway" wall inside. One piece of it is floating in the slot here, to confirm.

Next phase of assembly: sides are cut down to size and the first part of the roof is assembled.

Next on Wednesday I finalized the main structure, mostly cutting the sides to the proper size. Some aggressive sanding and "glue and sawdust" wood filler got those in place pretty well, and things got glued together. Screws functioned as clamps here. Then I got the first part of the roof assembled: Some 2x4s were cut down to 2x2 and half-lapped, then glued to the first layer of ⅛" hardboard. A clamp at each corner and the middle of each long side did great here.

The main structure painted and (partially) insulated.

With the rest of Wednesday and most of Thursday I painted. And painted and painted. Being particleboard, the paint is extra important for weatherproofing. I got five thin layers or so on everything, though I didn't keep count carefully. With the paint dry I started insulating. About the cheapest material I could find was also pretty perfect: ¾" foam boards, precut for 16 inch stud bays, and I needed 13 to 15 inch widths. For this I threw together a hot wire cutter. (I had the wire originally for the plastic bending part of the power supply project, in the back of this picture powering the cutter!) The hot wire goes through the foam quick, and especially important leaves a clean edge without bits going everywhere.

Finishing the roof structure: double insulated one layer inside and one outside between structural layers.

Now we're on to Friday. The main structure is mostly done and I'm finishing the roof. I had the material so I put two layers of insulation on the roof: one inside plus one outside between the two ⅛" structural layers. This came out pleasantly strong; especially because it only needs to hold itself up. For the main structure I let the walls' insulation come ⅛" up above them, with the inner foam layer on the roof this should form a decent seal. Here again, some foam pieces are left rough cut, trimmed to fit after assembly is complete. These layers were all glued together, and you can see traditional clamps working together with gravity clamps in this setup.

The finished and insulated cathouse structure. Another view of the main structure, here you can see the "hallway" and inner doorway.

Also on Friday, here you can see the main structure, finished. Look closely and you'll notice the main floor on the right, with entry hole. On the left you can't see a layer of insulation on the floor, beneath another ⅛" hardboard layer protecting that. All the joints are caulked for air sealing (plus to help hold the insulation in place). A second view reveals the "hallway" and doorway.

The roof, shingled.

Saturday saw final assembly of the roof. First the whole thing was wrapped in a layer of tar paper. I ended up leaving this exposed down the edges of the roof panel. The shingles and tar paper are also both salvaged, this time from the shed. The shingles have a proper starter course, and then are stapled (where covered) and glued (with more caulk) down onto the tar paper, also glued onto the roof. Unfortunately the shingles were only barely wider than the roof itself so I couldn't stagger the joints very much. There's never fewer than two layers anywhere though, so it would probably still be fine even if the joints in the tabs were all aligned.

Finished and installed!

And finally here it is, installed on the porch. This is where Marmalade has been having breakfast for some time. With the bottom entry, it looks quite unassuming: just flat white walls on all sides. (The exterior paint was also salvaged. Bright white wouldn't be my first choice, but that's the only exterior paint that was freely available.) All the roof joints are caulked. It's hard to tell in this picture, but they are properly lapping so that water shouldn't run in anyway, but extra sealant can't hurt.

Only time will tell if Marmalade will figure out that there's a nice insulated bedroom to hang out in now! The bedroom ended up around 13x18 inches, and over 12 inches tall at the lowest side. Pretty close to ideal size for a single cat. A small insulated space can be warmed by the cat's own body heat. Not pictured: there's a layer of straw bedding on the floor there. Research strongly suggested straw as the only/best option here. I couldn't find any for a while, but then discovered that Tractor Supply had some nearby and in stock.

Repairing Couch Recliner Footrests

2025-09-25 10:37 - Making

My couch, with footrests in need of repair.

This is my old couch. I got it when I moved into Manhattan and it's followed me here to Maryland. I've already decided it's not going to move with me again. It was cheap when it was new, and it hasn't aged well. I really like the wide arm rests: good for arms, and leaning against, and resting objects on. But since the outside seats are recliners, they don't have a lot to attach to and have sagged after years of that usage. More obviously: the pleather surface of the footrests have worn away. I've wanted to improve this for a while but never got around to it.

A footrest, removed, prepped for repairs. One footrest repaired, one remaining to do.

Yesterday I finally got off my butt. At a local thrift store, I found a brown sheet for only a few bucks. This morning, I started work in earnest. For some reason I started by imagining a sewn cover, and wasted a lot of effort measuring and trying to lay out something that I could sew. I was hoping to leverage the built in elastic (this being a fitted sheet) to make it naturally "stick" to the footrest. Before too long I realized I'm doing upholstery so I simply got out the staple gun, and things went much quicker.

Each footrest got a piece of batting cut just smaller than it (can't add any thickness around the edges, or it won't fold back into the couch correctly) plus a piece of the sheet. This was stapled around the edges, then reattached. Look closely and you can see where I colored in (with black marker) the bright fabric backing, where the pleather part had worn off, a few years ago. And the much wider section of what has worn off now.

Couch with repaired footrests.

Here it is in place. The color certainly isn't a perfect match, but on the other hand it looks way better than the flaking broken surface underneath! The batting helps smooth out that roughness. A simple and cheap repair, but it will probably last as long as I need it to.

Plumbing My (Countertop) Dishwasher

2025-04-24 21:13 - Making

When I moved here, I knew I'd be without a dishwasher — which I had grown accustomed to. It's not really a big deal, but it is an inconvenience. I survived that way just fine for a couple years. I knew about "countertop" dishwashers. But they seemed to all require either a very awkward and probably destructive plumbing-in process, or used awkward sink faucet attachments (which would get in the way, needing to be hooked and unhooked each time). Possibly more hassle than the chore they'd be replacing. But then I learned about the existence of no-plumbing models: A drain hose simply runs towards the sink (or a bucket!), and water supply is simply poured in top, e.g. from a pitcher. I managed to find a cheap used one (~$300 new, $100 for the one I got) and have been enjoying it since.

But it does take four-ish round trips, waiting for the pitcher to fill, then carefully pouring it in without spilling. I've enjoyed the dishwasher enough that I put some thought into plumbing in the supply line. My used appliance didn't come with the original supply line, so it took some creativity. But I got a bit lucky!

The original supply line for the sink.

The supply for the sink is a ⅜" plastic line. After some measuring and research, I was confident I knew the thread (¾" BSP) for the inlet on the appliance. And I found an adapter from that to ⅜" push-in fitting.

My update: teeing the supply to feed both the sink and the dishwasher.

So with that adapter, and a hose and fitting kit I put this together: The existing incoming water supply now goes to a tee, which feeds the sink and also (via a shut off valve) the dishwasher. From there, it only takes two inconspicuous holes through the very back of the cabinet towards the fridge.

The dishwasher supply, hooked up. The dishwasher, in place between the sink and the fridge.

And there it is! Hooked it up with a 90° fitting to ensure there's no stress on the line, and set it back in place. If you look close, you can see the drain hose passing behind and then to the left of the faucet. When the dishwasher turns on, it opens a valve to fill its internal tank (which takes surprisingly long, perhaps it wants a bigger supply line) and from there it's all automatic. Worked first time, no leaks.

Made in December (2024)

2024-12-24 18:31 - Making

Candles that I

I find something cozy and pleasant about having a candle burning, during the winter. I've managed to find old partially used bits of various candles from a few places. So for a while I've been remelting these into the containers for other candles. Over time I've figured it out and can generally produce a candle that burns nicely and consistently. Or at least I can fix it part way. (When necessary, which is getting more rare.) The hardest part is getting the wick nicely centered. My most preferred method now is to stick a metal rod down the middle, with some paper card at the top to keep that end centered. When I remove it, the wick has the perfect spot to go to. Since the wax shrinks as it cools I usually want to add a top-up anyway, and this fills the remainder of the hole.

Christmas cookies.

I also prepared some christmas cookies. These are "M&M Magic Bars". They didn't come out as pretty as the pictures, but they sure look scrumptions!

Ingredients and equipment gathered for my first all-grain brew. Reaching the "mash in" step. Boiling the wort. Wort and yeast in the fermenter.  Beer soon!

I took up home brewing this summer. I started with a very basic kit, then I tried making a hard cider (both turned out well), I made a mead (just bottled, haven't tried it yet besides tiny sips, seems good but strong), and then most recently I did an "all grain" brew. Above is the gathered ingredients and equipment, then the "mash in" step, where the grains are steeped in hot water to convert the starches to sugars. After these are carefully removed the "wort" as it's now called is boiled. Finally, it all goes in a vessel with some yeast to ferment. Since it was my first time with the full process, I had some learning opportunities, but I'm cautiously optimistic that it will turn out well. The yeast are definitely doing their work.

Dance Pad Adapter

2024-11-14 23:02 - Making

The History

Years ago there was justin.tv (with an interesting history, read the linked WikiPedia page!). The very short version is that it was focused on transmitting live video across the internet when this was very novel, generated success primarily around live streaming of video game play, and eventually became twitch.tv. I watch there somewhat regularly. Since it's live, it's possible and typical for viewers to interact with the streamer (typically viewers text chat and streamers speak/reply out loud).

One of my favorite streamers features a gimmick of using a dance pad to play games that were not intended for it. This is, to put it mildly, quite an impediment to the game play (and thus a source of extra challenge and entertainment). Situations (i.e. too difficult parts) arise where it becomes necessary to change to a regular controller and then back. To do this, the system menus must be opened and closed, and the game resumed. Often, the in-game settings must also be tweaked. A tedious process. At some point, I realized I could probably do something about this. And a useful project to hack on would be nice. So...

The Thing

More specifically, this situation involves a Nintendo GameCube Action Pad plus a GameCube Controller Adapter, to allow the GameCube native dance pad to be connected (via USB) to the Nintendo Switch console.

First just like the commercial product (though I'm not providing four ports) my project also allows a (any, but intended for the dance pad) wired GameCube controller to be plugged in, adapting this controller to instead act like a wired USB controller for the Nintendo Switch. To this we add the ability to configure button mappings — choosing which pressed button triggers which virtual output button. Specifically, the way some games expect the face (A/B/X/Y) buttons to be used on a typical controller don't mix well with the dance pad (which has A and B, but not X nor Y). There is a physical switch on the adapter, to choose between two of these custom mappings, for example one tweaked to work with a specific game but another that passes buttons through by default (the most direct possible translation).

Next, it also allows a wired Super Nintendo controller to be plugged in at the same time. Both of these controllers are always active, and either one (or technically both, though this would be confusing) can be used at any time. This allows switching to a more standard controller for more difficult game play sections, with no need to tweak any settings. It's the real "killer feature" that makes this adapter specifically better for this unusual situation.

At some point I realized I could build this with almost only parts I already have in stock, spares from previous projects. So I ended up doing no formal hardware design like I otherwise might have. Rather I simply planned out the wiring and built a single instance of it by hand. Since the spare parts I already had available were small, this turned out to be quite a challenge.

The tiny hand-wired hardware for my Dance Pad Adapter.

Here's that hardware. On the back side of what you can see is a (clone) Arduino Pro Micro. Added between its two rows of pins are a voltage regulator (the largest chip at the left) and a single transistor (the smaller chip to the right of that) perfboard — all the holes you can see are one tenth of one inch away from each other. This picture has the (green, black, and red) wires for the GameCube controller already present, near the top left. Later the wires for the Super Nintendo controller and switch were added. Towards the end of assembly, heaps of hot melt glue were added to keep everything in place.

The Dance pad adapter, in its 3D printed case.

These were installed into a 3D printed case, designed for the purpose. The Arduino's USB port is exposed on the back (not visible in this picture) while the front side has the two extension cords that serve as the ports to plug the controllers into. (These extensions are all I had to buy to build this. No better way to add a standard game console "controller port" to a small hobby project.) On the face is the switch to select which of the two customized button mappings are active.

The Process

This took around a month of spare time, beginning to finish. I learned a lot! A whole lot of open source already existed to take care of the more standard parts of this (reading the controller inputs, emulating the USB controller for signal outputs). Along the way I discovered the LUFA (Lightweight USB Framework for AVRs) library. Very impressive, it supports a significant amount of functionality all on a tiny (32kB flash, 2.5kB RAM) microcontroller. Specifically I use USB HID (for the joystick) and Mass Storage (to allow a computer to reconfigure the button mappings).

My First Homebrew

2024-07-26 11:56 - Making

The two fermenters are ready at the sides, the wort is cooling in an ice bath in the sink. Close up of the wort cooling in the sink.

I don't drink a lot, but some. Recently I got it into my head to try home brewing. After a while I picked up some cheap used equipment, and supplies including an easy ingredient kit at a local home brew shop. I've just barely completed the steps for my first brew, here's how it went. Above was the result of brew day: After boiling the malt extract and hops I had the wort, here pictured cooling down in the sink. Beside that are two fermenters: a pail and a jug style. I started with the jug. (Which is capable of a 5 gallon brew, but for my first go I did a one gallon batch.) In the first picture you can see it full of foam. That's the no rinse sanitizer. Brewing is all about convincing some yeast to work for you, and just about the most important part of that is keeping out the bacteria that want to ruin things. You don't rinse the sanitizer because if you did, it would introduce more new bacteria!

The wort in the fermenter, day one. The wort in the fermenter, day two.

Once the wort was cooled down enough to not kill it, I pitched the yeast in and set up the airlock. The yeast will "fart" out a bunch of CO2, which needs to escape the fermenter (or otherwise the pressure will eventually explode). The airlock lets the CO2 out without letting anything else (bacteria!) in. Above you can see day one: some of the sanitizer foam is sitting on top of the wort. By the next day plenty of yeast has grown, and has bubbled some sanitizer out of the airlock. For this first go I was trying to follow the kit's instructions as closely as possible, but here's where it went wrong.

It takes a fair deal of time for the yeast to do their work. I had read up ahead of time, and had it in my head that about one week was the right time for this fermentation step to take. The instructions want me to do a secondary fermentation (which per my reading is not terribly common), but I did it. However I missed a detail: the instructions wanted primary fermentation to be 4-6 days and (emphasis theirs) before it completes — but it only said that in a note on the side, which I missed. I had been checking more or less daily, and ended up switching to secondary on day 5, but I believe it was too late. The instructions told me to wait "about two weeks" for secondary fermentation, but daily monitoring showed absolutely no activity. So I cut it short after just one week.

So after carefully sanitizing everything involved again, I transferred the beer (I think it is indeed beer now, not just wort) to the bottling pail. (It's got a narrower outlet, which the hose fits on, and more of a siphon inlet. The fermenter pail simply has a hole, a bit above the bottom, to facilitate transferring the liquid but not the sediment.) And bottled! The

My first home brew beer, bottled.

Here's bottling day, complete. I planned to use a couple capped bottles (for longer term storage/comparison) but focused on my flip-tops. But did the math in my head wrong so I had extra bottles, which is better than too few! One of the more subtle steps of bottling day is to actually add a bit of sugar to the beer. The remaining yeast processes this, in the bottles, to add carbonation. So although I'm "done", the instructions say I should wait two weeks (and up to an extra week!) for this bottle conditioning to complete. Almost there!

My one gallon kit filled about ten and a half bottles. Or, a bit less than two six packs. This does not excite me, but a five gallon brew can be done easily for the price of two or three (quality) six packs, and if I shop carefully, for less than a (cheap) 15 or 18 pack. Assuming my first results here are good, I'll be aiming in that direction. Though, I'm still figuring out how/whether I can handle boiling five gallons all at once. (I think you can get away with boiling less, then topping up with more water after.) Also: five gallons is a lot of beer to drink!

Laptop Arm Stand

2024-04-22 16:51 - Making

My laptop computer, on the fold out table in the sofa.

For a bit over a year, I've had my laptop sitting on this fold out table built into the middle seat of my sofa. It's okay, but it's not great. It's a bit too far to the side and too far back to make usage really comfortable and practical. For a while I've thought about mounting an arm that would hold the laptop in a more adjustable and flexible place. I finally did something about it, with the commercial arm arriving just yesterday. With it in hand I saw exactly how it worked and what size it is, so this morning I started drafting plans for how to mount it. Something made of wood, attached to and/or wedged under the structure of the sofa. I simplified through a few revisions.

The wooden stand I designed and built to hold my laptop arm.

This is what I came up with. It's an L shape, with the arm mounted to the top of the vertical leg, and the horizontal leg fitting under the front of the sofa. The horizontal leg prevents side-to-side tipping by pressing against either the floor or the sofa. A triangular brace makes that reliably strong, and a second prevents the vertical leg from tipping away from the sofa. The L part was designed somewhat carefully, while the rest was just made to fit. Everything was material already available in the basement. A C clamp is hidden by the triangular brace, holding the horizontal leg of the L to the sofa's metal frame.

The laptop now resting on a flexible arm, letting me position it just where I like.

And here it is. I can pull the laptop almost down into my lap and push it further away from me, with very little effort. I've got pretty much exactly what I was hoping for.

Air Conditioner Support Bracket

2023-05-22 09:33 - Making

When I moved in here, the house still had the original single pane windows from the 40s installed. Not only did that merit attention, there was historically only a single air conditioner in the whole house — installed in the one window that had been replaced with a more traditional double-hung arrangement, to fit the A/C. And since it was responsible for the whole house, it is a big unit! Very early this year, we had all the windows replaced. That means they're "replacement" windows. Rather than being built into the house (i.e. "new construction" windows) they're designed to fit into the existing opening. Which means some of the structure of the window moves inward, to what used to be window opening. So, this one important window opening is now in a slightly different place, and the existing support structure won't hold up the existing A/C correctly. Given that it's such a big one, I wanted to be sure that we can hold it up well. So I came up with a design.

My design, in SketchUp, for a wooden bracket to hold the existing air conditioner in the new window opening.

It starts with a 2x4 cut into a complex shape to fit around all the bumps and tabs in the window frame plus a bit at the bottom of the A/C which sticks down. Attached to that is another which sticks straight out, two to brace it, and then another which sticks down. This final one has both a triangle brace and an extra foot to reach around the brick window sill down to the main exterior wall of the house.

Newly built A/C support bracket, exterior view. Newly built A/C support bracket, interior view.

Here it is. It was built from reclaimed wood which used to be a bench. It's not the prettiest, but it will be underneath the air conditioner, so it doesn't need to be. It's full of extra holes, but that's OK. It's also wood from a product meant to be outside. I'm not sure what kind of wood, but it's reddish. I could believe cedar, either way it should stand up to the elements OK. Some of the building was done a bit freehand, but with the key sizes measured it came out extremely close to my original design. I can pretty well hang myself off it, so I'm sure it will hold the A/C up just fine.

Weekend Project: Wireless Power Control

2023-04-16 19:51 - Making

An X10 PalmPad remote. An X10 CM19A RF signal transceiver. A Sonoff S31 WiFi enabled power switch.

As I mentioned recently, I'm working on "smarting up" power control at home. Back in my co-op apartment I had a fully X10 based system, and I still have many of the parts for it. An important one is the HR12A PalmPad Remote Control. For those I've looked at, remote controls are either missing or terribly expensive for modern "smart" home systems. The link shows that a still brand new one from X10 is only $17, and it has both on and off buttons for eight devices, plus a switch to control another eight, plus a dim/bright control. The closest thing I can find (they're hard to find!) is an YoLink Remote which only controls five devices and costs $30 (and probably only works with their proprietary system).

This pairs with the CM19A USB PC Transceiver which can both receive and send RF X10 signals. I previously used this to send X10 signals, via my home server. I've reworked that now: it's only receiving. The PalmPad remote sends signals when I press buttons and the server receives them via the CM19A. It then generates network requests. So far to the fan/light control I mentioned earlier and to the last thing pictured: A Sonoff S31 "smart switch".

Since they're cheap and I already have several: now it's easy to leave one PalmPad by the couch, one by the desktop computer, and one near my bed. If I'm planning to head to bed? I can turn the light and/or fan off in the living room, and the light on in the bedroom. Without extra trips back and forth, and without fumbling around in the dark. And I've got five more buttons to assign, without even flipping the switch! I can send the same controls from a computer/tablet/phone through the little web app running on my home server. I've barely had it a day and I already greatly appreciate being able to easily turn the ceiling fan on or off as I please, without getting up.