Building Project: Shop Expansion

As I mentioned in my previous post I have a furniture project coming up to build a custom convertible sofa bed for our library/guest room. Before that I needed to add some new tools to my shop and give them someplace to live. One important feature is a sliding compound power miter saw station where the front of the bench provides the infeed/outfeed support for the miter saw. The bench will also have a ruler and an adjustable stop for the infeed of the miter saw. Because I was going to build new benches and such I also decided to add more storage. The storage is drawers, shelves, and pegboard to give everything I have a place to live, plus some extra capacity. I’ve never built or installed drawers before so this was also a skills upgrade. See the design drawing below for an idea of what I was shooting for…

Side, top, and front views of new bench design…

The first challenge was ordering all the stock and hardware for the new bench. I had two problems with my order. One was self-inflicted, I ordered the wrong length 2x4s due to clicking on an adjacent item in the online ordering system. The second one was the store’s problem, they omitted half my plywood and that was after a one day delay. The good news is that now I can go in person to the store and so I went and picked up the missing plywood and a bunch of additional 2x4s.

Some of my order…

Some of my order…

I set up a temporary miter saw station and my new table saw in the garage which is attached to the shop. This is probably where the table saw will always be used just for space reasons. I got a folding and roll away table saw so it can be out of the way when I’m not using it. Also, the car needs to go in the garage most of the time.

Temporary miter station and table saw station in the garage

Temporary miter station and table saw station in the garage

The first part of the build was to build the frame of the bench. I actually built it as three independent units and then connected them. Note the lowered section in the middle to allow the deck of the miter saw to line up with the surface of the bench. The miter saw made all the repeated cuts so easy and quick. Also it makes perfect consistent square cuts where I would probably have some “variation” using a hand held circular saw.

One unit of three…

One unit of three…

Three units framed and connected… ooh and my first drawer…

Three units framed and connected… ooh and my first drawer…

You can see my very first drawer in the image above. It was so cool to have a table saw and be able to rip all the sanded maple 1/2” plywood to the right dimension and then to length on the miter saw. I also made the dado in the drawer sides using the table saw, just putting each piece of stock through with the blade set to about 1/4” height and shifting it 1/16” for three passes. I was able to cut the drawer bottoms by just ripping the panels to the right width ( the inside width of the drawer plus 3/8” so it sits inside the dado). I used a very simple butt joint with glue and pre-drilled countersunk 1” screws. The drawer slides are nice 24” full extension slides so it’s easy to get to everything in the drawers. I intentionally set them back from the front of the unit so that there are still clamping surfaces and to protect them from getting sawdust and such into them. You can also see the bench tops which are two layers of 1/2 plywood.

All the drawers installed and the miter saw in it’s new home…

All the drawers installed and the miter saw in it’s new home…

The next part was to add the pegboard on 2/3 of the bench to hang up tools and some shelves on the last 1/3 of the bench to have some open shelf storage. There is also a shelf under the miter saw as well and floor storage under that. I also installed and set up the other tools: drill press and sanding station.

All the tools installed on the bench top, pegboard and shelves as well…

All the tools installed on the bench top, pegboard and shelves as well…

After putting stuff in the drawers and hanging up a bunch of tools, I installed the miter saw adjustable stop and ruler. I built a jig for my router and carefully routed a channel to install it after doing some work to level/flatten the infeed side of the bench. The stop came out great and it largely removes the need to measure and mark when I’m cutting multiple pieces.

Miter saw stop and ruler…

Miter saw stop and ruler…

So that’s the whole saga… It took about five days or so end to end and I think it is a good representation of my original design. I’m very happy with the functionality, the machines, and the storage. I’m reviewing my design for the bed project and I’ll probably get started on that in a week or so.

Miscellaneous projects...

I’m about to start a new construction project and it reminded me that I’ve done a few random projects and not posted about them at all… So, here’s a rundown of the small stuff…

Fixed the dimmer that didn’t work well for 20+ years…

In our dining room there was a weird dimmer switch that had a touch plate that was supposed to adjust by sliding your finger on it or something. It didn’t work right for two reasons. First, if you tapped it it was supposed to just turn on the light, it would often fail at this or leave the light flickering on and off. Second, I could find no reliable way to control the dimming with it, it either went full on suddenly or off to flickering… We lived with it since we moved into the house and I kept meaning to have and electrician replace it. Finally I got the courage together to replace the damn thing. It was actually very easy and the instructions for the new dimmer were very clear. The new dimmer is the proper rating for the LED lights in the fixture and had a normal on-off switch and slider for dimming. The hardest part was finding the circuit that this light was on, it wasn’t on anything labeled in our box as “dining room” and turned out to be on the circuit with the basement and some of the outlets in the kitchen ( wtf? ).

A normal functioning dimmer for the dining room…

A normal functioning dimmer for the dining room…

Fix the split in the front foyer door

Our front foyer door developed a split in the wood near the door knob a few ( 10, 15, who knows… ) years ago. And I attempted to glue it in the past and failed and had since just had some masking tape over it to prevent it catching on things. Don’t judge me. Recently, I cut out the damaged wood, made a patch and glued and fastened the patch in place with brads and sanded it flush with the original door. I even painted it to mostly match.

PXL_20210616_124547453.jpg

Got the paper towel off the counter

For a couple of decades our paper towel in the kitchen has been on a vertical dispenser on the counter. I’ve always regretted that dispenser since it was always in the way or behind something. Also, it would move when you tried to pull paper towel off of it. I built a dispenser that could mount to the underside of the cabinet to solve this problem. It is better ( not perfect ) for one handed use, and it solves all the other problems. I used some old book shelf material I had in the scrap pile to build it and I painted it to match the cabinets.

PXL_20210616_124636446.jpg

Converted Dana’s bike to grip shift

Even after the complete overhaul and rebuild last year, the shifters on Dana’s bike weren’t working correctly and they were making it hard for her to ride. I got some off the shelf grip shifters and replacement brake levers and replaced the original Shimano stuff. They work great and I was also able to adjust the pull on the brakes to make them a lot more aggressive. The shifters work with any Shimano drivetrain as long as it is a 3x7 setup. I also finally understood derailleur adjustment and was able to dial in the shifting. I got these cool purple grips as well that match the bike frame.

PXL_20210616_140803172.jpg

Converted all of the lights in the basement to LED from fluorescent and added a bunch

I have wanted to add more lighting to the basement ( where my workshop is ) and had been dreading trying to lure an electrician out here to do a small job. One day I noticed that there was an old dead fixture up in the joist bay and it was still wired in to the main light switch in the basement. I removed it and got rid of it and converted that wiring to be a switched outlet. I then got these cool four foot LED shop lights that can daisy chain. I was able to add a bunch of them with no issues. Now I can see what I’m doing in the workshop which is wonderful.

I also replaced the old fluorescent bulbs in the existing fixtures with LED conversion bulbs

I also replaced the old fluorescent bulbs in the existing fixtures with LED conversion bulbs

Next project, shop expansion to do the next next project

After the hall cabinet project I realized that I needed some additional tools to do nicer and more precise projects more easily. I said that I would wait until I came up with a plan for another “upstairs quality” project and then I would expand the shop to do that one. The next next project that came up was to build a custom folding bed/couch for the guest room/library upstairs. It will have a storage chest as the headboard to store bedding and other linens and such. I’ve got the design drawn up and it will allow us to move from a “full” size futon bed to a “queen” size bed in our library. This will be nice for guests and for us since sometimes when one of us has a cold we sleep in there to let the other one get some rest. I’m also going to build some storage into the base as well.

But first I need to expand the shop so I got a nice sliding compound miter saw, a table saw on a folding rolling stand, a drill press, and a belt and disk sanding station. I’m going to build a miter saw bench that will also support the drill press and sanding station. The table saw folds up and gets stored across the room and most likely used in my garage since it won’t be much use in my shop space.

Picture a bench under these tools with a pegboard behind them and eight drawers underneath them ( I really need the storage ) and a nice 30x30 work surface at the end. The front edge of the bench will be kept clear and the miter saw recessed so that it’s deck is flush with the bench top and thus will form the infeed and outfeed for the miter saw. I’m even going to put T-track into the bench top with a removable stop and an embedded ruler on the infeed side for quick measuring and repeated cuts.

Ok, that’s the update, I’ll post about the shop project soon… I’m waiting for materials to be delivered today!

Robot Project: Acrylic treat dispenser

Over the holidays, after evaluating alternatives for cutting the acrylic and aluminum, I got a bench top band saw.

processed_PXL_20201230_204526609.jpg

It has allowed me to make all the parts for the feeder quickly and reasonably straight. I even figured out how to make the treat ramp inside to keep them from getting stuck. I used CA glue to bond everything. That was a little learning curve. My new clamping surface plus some masking tape to avoid gluing the parts to the bench worked great. So, here is the assembled unit:

processed_PXL_20210101_210739393.jpg
processed_PXL_20210101_210757998.jpg

I'm very happy with how it came out. Next is installing the servos and getting it running under power. The placement is going to be tricky.

Robot Project: Adding pi camera and making a mounting bracket

I’ve started hacking away on a prototype program to have the robot drive around the room and investigate the objects it finds with the ultrasound sensor. Part of that was to take a picture, so I needed to get a camera. Raspberry Pi makes a nice add on camera which just comes with a ribbon cable and the camera card. You can just let the ribbon cable anchor the camera to the upper deck of the GoPiGo robot, but it seemed to be too low so that you’d always take pictures of the ultrasound sensor and also not well anchored so when the robot drove around it would flop back and forth. So I needed to fabricate a bracket.

I decided to make it in two parts, a lower right angle made out of .032” aluminum and an upper mounting plate made of the same 1/8” acrylic sheet that the rest of the body parts are made of. I made the cuts in both the acrylic and the aluminum using my Dremel tool and a cutting disk. It worked pretty well just needing to take my time and not heat the acrylic up too much. The only downside is that there isn’t a way to use a guide ( or shall I say I haven’t figured that out yet ) so the cut edges are a bit erratic. The resulting bracket is charmingly imperfect, but completely functional. I secured it to the upper deck with 8x3mm screws, nuts and a compression washer, the mounting plate is attached to the aluminum angle in a similar manner. I almost had an issue because unlike everything else on the GoPiGo the camera board has 2mm holes. Fortunately I had a couple of 8x2mm screws and nuts and I was able to use them to attach the board to the mounting plate. Because of the inaccuracies of my fabrication I had resigned myself to crooked pictures, but due to a happy accident, my inaccuracies canceled out and the camera ends up quite level.

CameraMount.jpg

Now back to debugging my patrol code and adding in the image captures.

Cooking...

I’ve been getting back into cooking now that I feel like I have more time and mental bandwidth. I used to experiment a lot more and try new recipes and ingredients, but when my work life got to a certain level of intensity I fell back to more of a rotation of greatest hits and familiar things. Without a work life anymore, I find that it’s easier to take my time and look at a bunch of the cook books I’ve accumulated or search the interwebs for something interesting to cook.

It is also farm share season and the constant influx of a box of vegetables from Appleton Farm helps to drive cooking activities and planning for the week. Making dishes or food products that can be frozen or preserved is a part of this too, we can’t eat all those vegetables in one week, but over the rest of the year we do. Pickles and sauerkraut are also great things to make and enjoy later. I also have a fish share from Cape Ann Fresh Catch and this means that I'll be cooking at least one fish dish every week.

I also like classic dishes done in a classic way, they became classics for a reason, they became cliches due to overuse and losing focus on what was great about them. For example I made a classic Caesar Salad a little while ago from scratch, it was amazing especially with ultra fresh romaine lettuce from the farm. It was nothing like the watery bland stuff that you get in most restaurants nowadays… The umami from the anchovies and egg yolks against the bite of the garlic and the acid from the lemon is just amazing.

Cooking, when you can do it in a relaxed way, is extremely satisfying, the process is engaging, the result happens in a finite time, and it is something you can share and so it is also gratifying beyond just consuming the food. When I was much younger I cooked in restaurants as a short order cook, turning and burning as it were, and I learned how to relate to food, how to prep, how to be confident about the process, and how to multi-task to get things out at the same time. I remember closing the restaurant and feeling completely drained and yet calm after an especially intense shift. It also formed bonds with the rest of the team in the kitchen even if you were very different people, the intensity that you shared drove you together for that time and when you were flowing together and it worked it was a great experience.

Software Project: slides-sound v1.0.0 shipped...

So, the final project that I’m going to convert to Python 3 has shipped. I restructured it to a standard python project, converted it to Python 3, fixed a bunch of bugs and things that just weren’t good… added packaging and did some manual testing. It is here on github (https://github.com/jpfxgood/slides-sound) and from pypi by doing python3 -m pip install slides-sound.

This is really an experiment if anything and I intend to keep iterating on it, so possibly massive changes will come. I’m not doing formal tests for this one because honestly it doesn’t warrant it yet. If it ever stabilizes then I’ll dig in and do that.

There were more changes than I expected because some of the packages I used had changed in unexpected ways, some of the way I was doing things was completely inefficient, and stuff was broken because it was just hacked together ;-). So now it is a lot cleaner and less hacked…

You can check out the readme and the doc for further information…

This is the end of the Python 2 to Python 3 saga for now, there are a few other things that I haven’t published that I may convert in the future, but these are the ones I use most often and they’re published.

Here’s a parting video generated using the slides and music scripts:

Pictures from my several years commuting to Berlin.


Software Project: ped-editor v1.2.0 shipped!

A new feature release of the editor. The feature is that either when you pipe content into the editor like “find ~ | ped” or you use the F10 shell command dialog the buffer will update in the background for as long as the command produces output. You can press Ctrl-F in that buffer and toggle following, i.e. the screen will automatically show you the end of the stream and the latest content. If you want to follow a file on disk you can use “tail -f filename.log” as the command and the resulting buffer can be used to view this information. All of the regular read only buffer commands are available, copying content, searching with regular expressions, etc…

There are new tests since the underlying StreamEditor class is used in the StreamSelect component and so the existing tests caught a lot of side-effects that I had to clean up as I did this. I have to say having sensitive tests has made this whole thing a lot safer, I probably would have pushed my first cut on this in the past and then discovered the problems later. Now, it all works and is covered with regression tests.

I’ve also updated the wiki usage documentation with up to date screen shots and more information about how the editor works.

Software Project: ped v1.1.2, pypi and packaging

I finally built a standard python package for ped and released it to pypi which means it can be installed now by doing: pip install ped-editor ( just make sure that ~/.local/bin is on your path ). It is a sign of my brain recovering from years of being a manager ( and by definition very distracted all the time ) that I figured out the packaging stuff in a few hours. I have to say I looked at it many times over the years and I just didn’t get it so I put it off.

I’ve even started following a software development process, running and adding tests, building documentation, pushing releases. I’ve been the one making other folks do those things, but I haven’t had to do them myself for a while. There was considerable grinding and screeching as those old wheels started to turn again in my head.

Now that I have this project in shape I’m going to shift my attention to the backup software ( https://github.com/jpfxgood/bkp ) and do all these things there. Hopefully it’ll go a bit quicker since it won’t include the learning/relearning that I did on this project.

Also, I need to rehab a bike for my wife, but that is a different thread…

pedscreeen.png

Software Project Python 2to3 continued... 66% coverage, >75% in the core editor...

This has been a very healthy process for the editor code, as I’ve been writing tests I’ve also rewritten code to make it much better than when I originally hacked it up. That is the thing when you’re in a hurry, often you’ll stay on a bad implementation track because you’re “close” to getting it to work. It is nice to go back and have the time and focus to reconsider a bunch of things. The tests themselves are interesting, for example I had to figure out how to resize the terminal window to test the code that resizes all the editor panes in response. That code always annoyed me and had a lot of bugs, now it is rewritten and it is very stable.

I’ve been using the python coverage tool to measure the coverage and it has also helped point out a few modules that aren’t used anymore so I’ve been improving coverage through deletion as well. I’m going to try and get the overall coverage over 70% and I need to make another pass over the minimal redraw logic as well… It still has some odd behaviors…

Then on to the backup and sync scripts that I wrote, it’s going to be interesting to create valid tests for those…

Software Project Python 2to3 continued... 47% coverage, 70% on the core editor...

Whoo… a lot of bug fixing, a lot of test cases, and getting all the test cases to work in both non-wrapping and line-wrapped mode… The cool part is that now when I’ve made some minor improvements, the tests are showing me areas that are impacted by the changes and catching side effects. I should have done this a long time ago. I’m done with the core editor module and I’m going to do the module that manages windows and switches between files and such at a high level next. I’m hoping to get the overall coverage over 60% with this one… we’ll see…

Here’s the latest video capture with the coverage report at the end:

This gets me up to about 47% coverage but 70% coverage of the core editor.