My Custom (Nintendo) Switch

2020-02-09 12:56 - Gaming

I got a Nintendo switch console just under two years ago. I've been loving it. I've also got a huge collection of other video game consoles, and I've been slowly gathering second spare units as well: nothing lasts forever, and I'd hate to find some time down the road that my (say) Super Nintendo has gone bad and it's really hard to find another replacement.

The extra detail with the Switch is that the original units have a built-in hardware vulnerability which makes them trivially easy to hack and thus run anything you desire. I like to mod all my consoles to run whatever I choose, whenever I can. But these early Switch units are becoming more rare and expensive. I watched eBay for a while and finally caught one at the very end of December.

The front view of my custom Nintendo Switch. The backview of my custom Nintendo Switch.

I knew then that it was used with some minor cosmetic issues. Once I got it in my hands they were even a bit more obvious, so I decided to replace some parts to make it new and pretty again. I replaced the plastic shell with this pictured transparent green version. I'm really happy with it. I also took the time to paint the labels on the buttons in white. The cheap kit came with only nearly invisible embossing on the buttons. That was hard effort but well worth it. I elected to not install the metal plate across the main unit. It serves a minor role in heat dissipation, but I believe things will be fine without it, and it makes the transparent back look extra awesome.

While I had it open anyway, I also installed an internal "RCMX86" chip, which makes the unit automatically boot up in completely open and hackable mode. (Otherwise you need to plug something, like the RCM Loader visible in some of these pictures, in each time you turn it on.)

Installing the mod wires. Continuing to install the mod, tweaking the final wires. RCMX86 mod chip completely installed.

Installing this mod was quite challenging! Look closely next to the mod chip in the final picture and you'll see some tiny gold circles (a group of four is somewhat clear). Those are about one millimeter across. A couple of the connections were to "easy" points like those. Others were to significantly smaller points. Some of the super tiny rectangles you can see on the board are resistors and capacitors. The small ones are probably "0201" or 0.02 by 0.01 inches, 0.6 by 0.3 millimeters -- and the pads on either side are a fraction of that! Somehow I managed to get everything connected and functional, and didn't destroy it along the way!

The worst thing that happened was a slip during re-assembly damaging one of the buttons' (ZL) contacts. It's still functional, but takes a little more force than normal and doesn't "click" like it should. A replacement part is on the way.

My Automatic Heater Controller (Thermostat)

2020-02-05 21:03 - Making

Lots of New York apartments are actually too hot in the winter. Steam radiators are common, and they don't offer much control. There's strict laws about lower temperature bounds, but none for upper bounds. And most significant: the building usually shares one control everywhere, but the heat reaches different parts of it differently, and the cold seeps in differently.

In my current place, it's also too hot in the winter. I think that uneven-across-the-building issue is the real one for me. I've heard that other parts of the building are too cold. My heat comes from a forced hot water system, which the building controls. I suppose I'm closer to the feed than other apartments. I've only got standard plumbing style cut-off valves. I can totally disable the heat, but then it often gets too cold. I can enable it, but then it often gets too hot. For a few years I've been hoping to make something to help fix this. The video above is my solution!

I actually got a "test valve" some time ago to play with, when starting this project. My test valve didn't work at all for the project, but I lucked out: the test valve's handle is permanently attached, but my real valve's handle is attached with a hex nut, it's removable. The first part of the project was the handle replacement. It's the round smoky plastic bit. It has a hole in the center that's just the right shape (an eight millimeter hole, but with two sides squared off at six millimeters) to turn the valve. It's got eight small holes around the edges and one late addition hole for a screw to hit the valve's end stops.

Those eight holes are for screws, to attach to the large black 3D printed gear. This is a 180-tooth monster built to fit a GT2 timing belt, as are commonly used in 3D printers. It's big for mechanical advantage. I started with a 30 and 60 tooth pulley (for three and six times advantage). They weren't enough so I got a 20 and a 16 tooth gear, and ended up with the 16 tooth gear, for a slightly greater than ten times mechanical advantage. A straight GT2 belt section was cut to the right length, and belt clamps and tensioner springs turn that into exactly the right size belt for this contraption. The big gear is these two parts screwed together for two reasons. First, it would take a long time to 3D print the whole thing as one part. More importantly: the quarter-inch acrylic plastic is strong enough to turn the valve, but a 3D printed part is not!

That's all connecting my big gear to the small pulley on the end of a stepper motor. This is the first real motorized project I've put together myself, and I was not at all confident. When I spotted the uStepper S product on Kickstarter, I knew it was perfect for this. It's a clever combination of stepper driver, Arduino, and hall effect sensor (which uses a simple magnet stuck to the stepper motor's shaft!) to give it closed-loop control abilities.

The stepper is screwed into another acrylic sheet. It's in slotted holes, which gives me some room to adjust the length. This mounting sheet is mostly zip-tied to the copper heating pipes. But it's also screwed down into the floor, through a brace piece of scrap plywood, to keep it in place left/right. Otherwise the tension of the belt would pull it loose!

So there's a simple control loop running on the uStepper, which accepts commands over serial. It's wired into an ESP8266, which has WiFi connectivity. It monitors the temperature sensors I've already got, and sends commands to open and close the valve based on the current temperature. Simple, now that the mechanicals are all there to support it!

I've gotten this working reliably only recently. My problem is the end stops. Even though I have closed loop control, that only gives me relative data about motion, none about absolute position. The uStepper libraries have a convenient "move to end" feature, but it turns out my system is too mushy. I've got tensioner springs on the belt, which can thus stretch a bit. And worse (I think!) the end stop I've got is just a screw in some plastic, and it's longer than the original steel handle part. It flexes a bit when it reaches the end stop, before it pushes hard enough to actually stop the stepper. When it closes (clockwise motion), you can see a big jump backwards as it stops. (There's a smaller one when it stops going the other direction, I believe this to just be the slack from the springs. I never actually open the valve all the way, it's not necessary and why stress the system more than necessary?) The built in "move to end" feature sees that as constant motion: some of it forwards, some of it backwards, but it doesn't distinguish! I had to write my own routine to detect both a lack of forward motion or backwards motion as the end condition, and then the stepper stops turning.

Now I should finally be able to keep myself comfy over the winter! But even more so in the late fall and early spring, when the building has the heat on, but it's not nearly as necessary.

My Modded Dreamcast

2020-01-26 15:45 - Gaming

I've got a large collection of video game consoles. Building it is something I enjoy. I also both enjoy getting great deals and have great patience. In late 2018 I got a Framemeister device, as part of a lot with other video game stuff. I hardly have any Sega systems but this lot came with a Saturn, in addition to the Genesis (and Sega CD) I already have. So I've been monitoring eBay for some time to get a Dreamcast. Late last month I grabbed a deal: two systems, several games, four controllers (two OEM, two third party) and two VMUs.

One of the two systems works fine, and I've left it as-is. The other was missing its disc cover, and the GD-ROM drive didn't hold (and thus didn't spin) discs correctly. I've modded this second one.

The case of my modded Dreamcast.  The SD card and button for the GDEMU are visible where the GD-ROM should be, with a 3D printed insert to hold them, and fill the hole. The insides of my modded Dreamcast.  The replacement power supply (Pico PSU) is visible on the left.  The black board in the middle is the GDEMU drive replacement, and the 3D printed bracket and insert sits atop that.

It was only the disc drive that was bad on this second unit. I've replaced it with a GDEMU drive emulator. To that I added a 3D printed bracket. This fills the hole left by removing the original drive, and makes the SD card and "eject button" easily accessible. In addition, I replaced the internal power supply with a Pico PSU. I've heard that GDEMU modded consoles have an extra tendency to overheat, and this helps.

This system still looks a little funny without the disc lid, but seeing as that was the only broken part, the GDEMU (which I wanted to add anyway) was a perfect replacement!

Farewell, Tegs

2019-12-11 21:40 - General

Back in late 2004, just after renewing the lease to my apartment (and even though it did not permit cats), I adopted a very fine cat, named Tegs. She's a wonderful pet. Almost exactly two years ago, we (my Mom really, when we were visiting for Thanksgiving) noticed that she was very thin. She's been slowly losing weight, with some periods of stability since then. A few vet visits generally gave me no useful information or treatment. This October I tried a new vet who diagnosed her with nasal cancer, which was described to me as being common for cats. Since then her weight continued to drop and her face swelled terribly. This morning, I cleaned up a particularly goopy face, with pus gathered in both eyes and nostrils.

Tonight I came home, and she was peacefully resting on the floor, not a foot away from her (also, separately adopted) sister. Cold and still. She's passed on, at a few days shy of sixteen years and three months of age.

Below is a gallery of all her best photos, going way back to 2004, with no further comment.

You'll be missed.

Cord Cutting Experiments: Antenna

2019-09-16 23:31 - General

I've been a TiVo user for almost exactly a decade. It's pretty great, but as is it's tied to cable service, because a few years back (and before my most recent (and I'm pretty sure only) upgrade) they split their product line so that the device only supports cable or OTA broadcast, not both. More things are going online only (I'm looking at you, "CBS All Access" locking the new Star Trek behind a $6/mo charge that certainly isn't worth it for one show!) and I'm hearing more and more about "cord cutting". Might it be for me?

My new OTA TV antenna, taped up in the best place I've found so far. The antenna is currently angled off of pure vertical, by resting on a bit of packaging material.

So I got an antenna. Broadcast TV is legitimately free, after all. Free over-the-air TV plus a streaming package or two should be more content than I need, for less than I'm paying now, right?. This is a "Channel Master FLATenna" which is probably just like all the similar "sheet of paper" looking modern digital antennas, but was reviewed well and only costs $10 (plus $10 shipping). I live in Manhattan, so signal coverage should be great, right?

I put it at the very top of my window at first, which was mostly fine, but I couldn't get ABC. I summoned distant memories from my childhood of playing with TV antennas, and started playing with positions. I first tried the wall above the TV because it's an easy location and 90 degrees offset from the window. Then I tried a couple others, including an awkward compound angle hanging across the corner and pointed up, and lots of other similar variations. Blue painters tape and shipping bubbles certainly isn't an awesome permanent solution, but for now it's been useful to be able to move it around for easy experimentation.

Of course with this small indoor antenna, across various locations I can receive more channels than I can get in any one of them. This is the best compromise I've found so far. Here I get all the big national stations (CBS, NBC, FOX, and ABC), plus some more local stations, plus one of the two local PBSes (WLIW yes, WNET no). I spent quite a bit of the weekend popping the antenna into various places, then running scans and checking the signal strength across the dial. Of course the evangelical stations are the only ones that come in super strong regardless of location.

And since we're in the digital broadcast era, each of them come with a couple to several substations. My favorite discovery, which I was previously unaware of, is Quest TV. With shows like Modern Marvels and Factory Made it should be a good stand-in for losing Discovery and Science.

Along the way I've also discovered that my TV has basic PVR functionality built in! It's disabled in the USA (why?) but that can be fixed. It's basic and seems to only work while the TV is on, but it helps evaluate things.

It will require being happy with more SD content, but I can live with that. There appears to be a rather inconsistent handling of 4:3 content, though. Some of it is letterboxed, so should be zoomed. Some is pillar-barred, so should probably be left as is. Some others appear to be anamorphic and require stretching to 16:9. And my Samsung TV at least can't figure this out automatically.

Another pleasantly surprising detail is the availability of program guide data. I've never hooked this TV to the internet. Especially since it sometimes blanks out the video preview, the guide data is clearly coming over the air. I assume there's a standard tied in to digital broadcasting. I'm curious about it but haven't managed to find any clear information about this online yet.

Right now I'm looking at 39 non-junk channels, which is pretty good. What remains is to experiment with some sort of DVR for broadcast TV, and streaming solutions.


New Bed Light

2019-08-01 22:24 - Making

The prototype light above my bed.

After I built the bedsofa, I rearranged the bed and sleeping area around it. It had to go up against a wall to avoid tipping over when I lean on it. But the head of the bed was previously in open space. When I turned the bed, this made the light there, hanging from the wall, end up at the foot. Not a great way to illuminate the area, like for reading.

For a while, I pointed it at the ceiling and lived with the indirect light. The existing fixture won't work well in the new space that I've got. I've looked for fixtures that would work better, and found nothing pleasing. But I also have this strip of LED lights, which I intended to install in my 3D printer. (And, of course, never quite got around to doing.) It puts out a ton of efficient light, even just a small part of the reel I've got. The picture above is the "prototype", just taped to the wall. It's intended to run from 12V (and I picked that because the 3D printer has ample 12V power available).

In bed, I actually want very subdued lighting. A half meter of that LED strip running at 12V is really brighter than I want. I've got plenty of spare AC adapters lying about, but they're all too high or too low. But I also have some spare DC/DC buck converters! So now I've got a 12V AC adapter, into a buck converter that's infinitely variable, with its output powering the lights. I can tune it to the exact brightness I want. Perfect.

Some aluminum channel turns an LED strip into a nifty light fixture on the cheap.

I recently found this ultra-cheap extruded aluminum channel. Pop an LED strip into it and instant light fixture. I got this V shaped version which mounts at a 45 degree angle. I intend to point it towards the ceiling for primarily indirect light.

3D Printer: Fixed

2019-07-30 18:27 - Making

I got a 3D printer just over 3 years ago. Some months back it stopped working. I've got an OrangePi running OctoPrint to control it. I did a system update of that, and it stopped working. I unhooked everything and tried to figure out why, and failed. And gave up for quite a while.

I've got a thing I want to 3D print, now. So I took another stab. First day, same result: I was trying to set up everything from scratch, but I couldn't get the thing to boot. After switching out every spare power supply and SD card I had, still no dice. Of course, the whole time I wasn't thinking about the cable that carries the power. Turns out that was it. Once I swapped in a different cable, everything was working again. Set up OctoPrint again from scratch, and it's all great.

I just completed a 10mm cube test print, which worked fine. The machine needs a little TLC, it's squeaking a bit as it moves. But it works! Unfortunately, my desired object is too big to produce on my machine. So I'll need to find another way.

One Month, Three Games

2019-07-25 00:23 - Gaming

As I'm wont to tell most people that will listen, I've got a deep backlog of video games lined up to play. It's been growing deeper recently, as I let some new games jump to the front of the line. I played Stardew Valley recently (it's new to me!) and loved it. A bit earlier, Mini Metro. Some Smash Bros, Baba is You, Steamworld Dig. I was having fun with the Switch.

For the Fourth of July week, I got right down to the backlog though. A PS1 game had been sitting eagerly at the front of the line for some time: Chrono Cross. The sequel to the amazing action RPG Chrono Trigger. I was so underwhelmed that, after thirty hours or so in, I just stopped. This one is a standard turn-based JRPG, which I've played plenty of. But it's not a good one. The battle mechanics were very slow and repetitive, lots of superfluous animations taking up time. A battle mechanic that's a bit clever, but tedious and time consuming. And the story didn't grab me, so I couldn't maintain enthusiasm.

Next on the list was BioShock Infinite. I've played the previous two in the series. Simply put: it's more of the same, with little to recommend it, and continues the downward trend of the series, in my opinion. It's just yet another FPS game, with a strange companion bolted on, who adds little. This one only took a couple weeks, beginning to end.

Which brings me to my third game this month: Assassin's Creed: Brotherhood. Again the third in a series. This time, the first game was the worst. The second got better. The third so far adds little to nothing, it feels like a cookie cutter copy of the second. Like I said I "never" do this, but I'm already thinking of giving up on it (rather than playing to the end), again.

Could I, should I, hope that the next game on the list is better?

The Bedsofa

2019-04-21 13:07 - Making

I posted about this project just over two months (!) ago, around when I was getting started in earnest. That was starting the cushions, which were the "scariest" part, where I've got the least relevant experience. Since then in my weekends and evenings (on and off), with some time for shipping delays and generally enjoying myself otherwise, I've completed the rest.

This post is the story version of how that all went! It will be a little bit out of order so that the story goes well. If you're truly curious, look at the un-adjusted file names in all the images, the dates and times are burned in there and generally represent when the pictured step happened.

Plans

The very first paper plans for the bedsofa.

I just wanted to call out this original paper sketch that I did at the very beginning of the project. I've changed a few things, and it's not to scale, but most of the idea was there from the very beginning.

Cushions

The first bit of cushion piping, and the section of fabric they were cut out from. A closer image of the piping. The first assembled zipper panel, uneven stitches and all.

As previously mentioned, I started by experimenting just a bit with the piping. When I was happy that would work, I did them for real: four long single sections to go around the edges. (Here was one of my first big mistakes: they weren't quite long enough. Three of them got extended; one was already stitched in when I realized, so I've got a small gap. Thankfully at the bottom where it doesn't show much.) Next up was the zipper panels. I'm not sure what exactly I did wrong, but they came out very uneven. Not so much of a mistake as an "apprentice mark", here. You can also see the extreme degree of raveling at the edges of the zipper panel, which plagued the sewing part of this project.

Stitching together the first cushion shell.  Plenty of pins to keep things aligned. All four sides stitched to the front, from the wrong side.
More stitches complete, from the right side things are looking great! The first cushion shell is complete, turned right side out.  Some of the issues become visible.

As hinted in the piping failure, the next step was stitching up the shells for the cushions. This went almost completely as intended. A couple pieces were a bit small, not really enough spare material to hem. I think this is because (or, worse because) upholstery fabric is stronger, with thicker threads. Which don't weave so tightly as a result, and unravel easily. The second issue was sewing up the corners: with that quarter-inch-thick piping in the way, those were very difficult stitches to make. More apprentice marks here: a few corners are perfect, but most are uneven in random directions, just a bit.

To insure against raveling, the seams all got binding tape stitched in. Both cushion shells completed.

Due to the unraveling, I took the time to (order, and) sew in binding tape around all the seams inside the cushions. Things would probably be fine without this extra layer, but it adds peace of mind at least. And another mistake: when stitching them in, I got a bit of the side panel across the top of one cushion. So it's a little narrower, and has an extra unnecessary stitch visible. Ah, well.

A hot-wire cutter jig, to get the cushion foam cut exactly right. The hot-wire cutter makes perfectly straight cuts!
The first cushion, stuffed with the just-cut foam and batting (which is visible behind the cushion). While stuffing, one of the cushion

With only spare material for this project and "junk drawer" items, I put together this hot wire cutter jig. You can see the very rough edge that I hacked out of the foam with a knife, just to get close to the proper size -- my wire cutter has only a few inches of throat. Then, the wire-cut edge: perfectly straight and smooth. With the foam cut out to just the right shape and size, stuffing the cushion shells went very well! Except for one ripped seam I had to repair, a raveled edge which caused a weak stitch. This was repaired with some "fusible bonding web" because I didn't want to re-make the whole thing! You can see one piece of binding material in the corner of this picture, where I knew the edge (and thus stitch) was weak. Apparently I needed a bit more! I ripped out most of this seam, bonded the extra material to it, then re-stitched it.

Structure

The first pass of structure pieces, cut from two by fours. Since these were cut at the office workshop, I had to get creative to transport them home!

With the cushion shells completed, I was confident that I could make this project really work. So I bought a bunch of two-by-fours. These were cut up at the workshop in the office -- a great perk. And then bunched up to roll home by hand cart. Since they were smaller in their cut-up form, this was easier than rolling the raw stock from the store to the office -- thankfully that was only a few blocks.

Scribe, don

I was overconfident. The complex angled pieces did not come out right in that first batch of cuts, going only by measurements. I got lucky here in that I planned for eight foot boards, but ended up with ten footers. Each had just enough extra slack that I got my four main five-foot-long boards cut out of only two of them. This left an extra unused board, just enough material to re-cut these pieces.

For this second try, instead of cutting the piece to fixed measurements, I clamped up the rest of the pieces in place and scribed out the exact shape I needed, then cut from that template. These didn't end up perfect, but A) good enough and B) that's a small theme of this project.

The first step in assembling the structure was the frame of the very back edge. Second, the front-to-back pieces at the bottom edge are attached.
The rest of the front edge is attached, with some face screws and some pocket screws. Finally the angled uprights span the front to back, and present the recline angle for the seat backs.

At home, the structure is all screwed together. Pocket holes are used liberally where possible, and some simple butt joints as well. The back was assembled first, then pieces were screwed into that. Then the shorter front section onto that. This was the main shape that was templated above, so the angled sections, support for the back rest, were added and the main structure was complete!

The first seat back is clamped into place, to scribe exactly where it needs to be cut to match the structure. With both seat backs cut to fit, they The extra batting material covers the (now completed) structure.  This adds a little strength to the open sections and a little softness to the hard edges..

With the main structure complete, the next task was to attach the seat backs. These were rough cut from plywood, then marked and clamped in place. The cuts were scribed to the actual structure: nothing came out perfectly square or perfectly to plan, but this let me get the pieces cut to match! The top and bottom cut are angled to match the recline, so they end up with "flat" edges relative to everything else, which is nice.

On recommendation of a coworker that I've been chatting with about the project, especially the sewing bits, I got some batting to wrap the cushion foam in. The smallest unit was quite large. I had been considering some sort of foam layer to soften the edges of the structure with. All that spare batting took the role! In hindsight, I should have chamfered a few of the wooden corners before this, but it's worked out well enough overall.

Upholstery

The bottom was upholstered first.

The upholstery step was also a new skill to execute. It's done with the same exact fabric as the cushions. My original idea was a solid color, to make both the cushions and the upholstery easier: no opportunity for mistakes laying out the pattern. I ended up with a pattern. It went almost completely fine. The entire lower section, beneath the seats, is one wide piece. This went well, except that the sides stretched a bit unevenly, leaving some warp to the pattern there. There's also a little spare material wrapped around the spots I expected to be tricky: in case I completely miss something, this lower layer (rather than the white batting) is what will peek through.

A cardboard strip ensures a crisp upholstered edge at the bottom of the seat back. A metal tack strip helps bridge the otherwise empty gap between wooden structure, when crossing from front to back.

Next was the seat backs. They went quite well overall, except due to the recline angle, the pattern is angled next to them. That's fine. The bottom edge is tacked in with a cardboard strip which keeps that edge nice and straight. Some metal tack strips bridge the empty space front to back over a gap where there's no wood structure, holding a clean edge. The material is folded up over that, then wrapped around the structure and stapled from the back, leaving a nice surface on the front and sides.

The bulk of the upholstery is complete, and looks snazzy! Upholstery complete, side view.

Clean. The last piece to upholster is the bridge across the top. I took two tries at this, not pictured. The first was only tacked at the bottom and wrapped around, a bit too loose. So I took the folding metal clamps from my upholstery tack set: with the inside tacked across the bottom, this holds the left and right edges in place by being tacked in underneath, folding the material over, then bending the metal down to hold it all in place. With the remaining edge tacked again from the bottom.

Preparing to upholster the back (and bottom) with dust cover material. One side and the middle back is now upholstered. Dust cover upholstery completed.

The back will be slightly visible, as the wall it will be resting against is only partial, with the sleeping loft looking out from above on both sides. So the back (and bottom) is being covered in a black cambric dust cover fabric. It's got a small corner folded back, for the electrical cord (read ahead!) to stick out of. Like the rest of this project, it's got small issues. Not very visible in the far side of this low-lighting picture is a fair deal of bunching (at the left side when looking at the back). Which of course ended up being the more visible side. I might go back and re-touch that.

Shelves

Fitting the lower shelf on its supports, not yet finished.

With the main upholstery done, the shelves were the only significant remaining piece. Like with the seat backs, nothing is perfectly square here. I used "story sticks" to measure the front and back widths, they were a sixteenth to an eighth of an inch different. Then I cut out blanks, with the front edge angled again to match the recline, too deep on purpose. Once they generally fit, with the front edge lined up nicely, the back edge was marked to match the structure and cut square.

Installing the upper shelf, with plenty of clamps and wedges.

Both shelves are held in place with half-wide two by four pieces screwed into the main structure, which they're also screwed into from below. The top shelf was cut a little wide, so I used some scraps of wood to stretch the opening a bit. This made it easier to insert the shelf without stretching the fabric too much. For the bottom and top, it was a tricky operation of putting the shelf in the right place, so the support pieces could be clamped in place. With those clamps holding, verify the placement is good with a level. Then screw in the support pieces, and screw the shelf to the supports from underneath.

The lower shelf is flush with the main structure so its bottom side and supports are invisible. The upper shelf of course is visible from all sides, as are its support pieces. So when finishing, the top shelf was finished on all sides, as were its support pieces to match. Both the two by fours and the plywood were near paper white, which didn't look super nice next to the relatively dark blue fabric. I used some Minwax "Polyshades" which I already had from a project a few years ago. This is a stain and (polyurethane) finish in one. I probably would have done separate if I was buying specific for this project, but this worked out pretty well. I couldn't choose the color, because I was using the spare I already had: "Mission Oak", which is quite dark.

Both shelves, after finishing, are installed.

I'd change one thing if I could go back, though: I did the smaller top shelf first, and I brushed on the finish (like the instructions said to!). This gave a very thick and dark coat. For the second shelf, I wiped the finish on on with a rag. This gave much thinner and finer coats, and a lighter color I would have likely preferred. It took eight hours for each coat to dry, but I ended up putting four coats on the lower shelf, to get it to a depth of color to match the already finished top shelf. I'd have done only two or three wiped-on coats on both, if I knew how that would end up ahead of time.

Electrical

The kitchen hutch which inspired the electrical outlet. Notice the electrical outlet at the back corner of this hutch.

This is going up in my sleeping loft. There's only two sides of this loft which have walls this can rest against (for support), and both of them have electrical outlets. Whichever one this goes in front of I'd like to use: I plug in various eBook readers, tablets, game systems, etc. to charge. In my first apartment, I had a nice table/hutch in the kitchen: It had a small shelf above and more importantly an electrical outlet built into the surface, with a cord to plug into the wall. It made a convenient place to plug in a mixer or other appliance, while cooking. Above you can see a crowded/messy picture from when I was near packed up to move out, and a closer in picture of the outlet in the surface. I decided to do something similar to that for this project.

Wiring up the electrical outlets and switch. The outlets are installed in the junction box, with a matching hole cut in the shelf.

The bedsofa will block my outlet, but it will have its own replacement outlet built in. I splurged here and I got an outlet with USB ports also built-in, and a switch to control things. The electrical box I got was designed (as far as I can tell) to fit through half inch drywall, but I'm putting it through three quarter inch plywood, so I made up some shims from some old quarter inch wood stock to fill the gap, which helped everything screw down tightly and line up nicely.

I made a small accident here: I've got a two-gang box. The first gang is a switch/single outlet, while the second gang is two outlets plus two USB charging ports. I wired it up with the intention to have the switch disable everything (and any possible vampire power). But what I actually did is just switch the second outlet. The single outlet with the switch is permanently on. It wasn't intentional, but this is nice and flexible, so I'm keeping it.

The Glamour

Completed, close up. Installed! Installed, as viewed from the stairs when approaching.

Here it is, completely in place. When it was being assembled on my coffee table, err...work bench, I realized it wasn't quite square, it would wobble a bit. I got adjustable screw in feet, to make it possible to leave it perfectly stable and flat. In addition, there's two of these feet sticking out the back of the top. These rest against the wall, so that it remains stable and upright when I sit back on it.

Cost

Look at this as either a passion project or explanation of why furniture is expensive. Or both. Some of this, especially the wood, is down to Manhattan prices. I've rounded things to the nearest dollar after tax, just to make the accounting easier. Either way, I spent:

Item Cost Where
Structure
Two by fours (six, 10 foot each) $58 Prince Lumber (Local)
Baltic birch plywood (3/4 inch, 5 by 5 foot) $57 Prince Lumber (Local)
Stain/Finish $0 the "junk" pile
Subtotal $115
Upholstery and Cushions
Fabric (55" by 7 yards) $56 eBay
Zipper $13 Jet
Cambric (dust cover) $12 Jet
Welt cord (too big, too short) $7 eBay
Welt cord (3mm x 50yd) $9 Jet
Cushion foam (3x24x72") $40 Amazon
Dacron Batting (48" x 5yd) $24 Amazon
Binding Tape $10 Amazon
Tack Strip Bundle $25 Amazon
Subtotal $196
Misc
Furniture levelers $11 Amazon
Screws $9 Home Depot
#000 Steel Wool $5 Home Depot
Subtotal $25
Electrical
Power strip (for cord only) $5 Home Depot
Electrical box $7 Home Depot
Face plate $3 Home Depot
Switch/outlet $13 Home Depot
Outlet w/ USB $25 Home Depot
Wire nuts $0 the "junk" pile
Electrical cable $0 the "junk" pile
Subtotal $53
Tools
Countersink bits $12 Jet
Bar Clamp Set $22 Home Depot
Subtotal $34

For a grand total of $389, $423 if you include the tools that I bought specifically for this project. Phew.

I did a lot more impulse buying and splurging than I normally would, while working on this. But not only is it a useful durable piece of furniture that I'll keep, it was also essentially entertainment budget: I got to flex several old and new making skills.

I used most of the screws. Several of the upholstery pieces were mostly used. The zipper was just barely, as was the welt cord. In both cases, these were the most economical choices, anyway. I used only a tiny bit of the batting (around the foam, in the cushions). I've also got almost half of the baltic birch plywood left, which should easily turn into some new project in the future!