Since moving, the home office area has taken a back seat to other projects. Although it’s been fully functional, there were many unopened boxes filled with books/computers/etc. This weekend we started the process of unpacking and organizing the office stuff with the goal of understanding what kind of storage space and desk space is needed. I’ll use this info to design/build cabinets, hopefully some time in the near future.
One of the boxes contained an Apple IIc. It powered on OK, but the video signal was flaky. The video connector felt a little loose, so I opened it up and found that the connector design relied on a crimped connection that had worked loose over time. With a very hot soldering iron I was able to heat the crimped connection and flow solder into the joint.
This fixed the video problem from the IIc side, but on the monitor side the brightness knob has to be set just right or the picture scrambles. I suspect the brightness potentiometer has oxidized everywhere except where the wiper was sitting for the last 20yrs. If this is the case, then I should be able to fix the monitor by just spending some time turning the adjustment knobs back and forth until it clears up. Either way I’ll be disassembling both the monitor and the IIc (again) to fully clean them and reverse the yellowing of the plastics; I can replace the potentiometer at that time if needed.
I’m planning to set aside a corner of the office for the retro computers (Apple IIc, Macintosh Plus, Commodore 64). As I unpack these I’ll post more details on getting them cleaned up and working again.
The Piano controller will be based around a Raspberry Pi Zero W. I had originally considered using a spare Arduino, however since the project will require a lot of file handling and a web server, having a full general purpose OS is much easier than shoe-horning it all into the Arduino. The Raspberry Pi also has a wifi adapter built-in, simplifying wiring.
Unfortunately the Raspberry Pi doesn’t have the ~90 outputs that are needed to control the piano’s valves. This is a common problem in electronics and micro controllers – it’s assumed that the designer/integrator is going to provide their own output channels that are most suitable for their device. Instead, the Pi has several low voltage/current outputs that can be switched extremely quickly. I’ll connect these outputs to shift registers, clock all 88 valve bits into the shift register’s ‘memory’, and then send a signal to latch these new values to the outputs. This will be repeated quickly enough (~1000 times each second) that for my purposes the ‘remote’ outputs at the shift registers will appear to instantly follow the valve output commands from software.
74HC595 is an extremely common 8-bit shift register that many examples are based on, unfortunately it’s limited to 35mA outputs at 5V. This could still have worked, but would have required adding a transistor switching circuit to each output to achieve the 200mA @ 12V that the valves require. Going that route would have meant half of the design or more would have been dedicated to individual transistors/resistors, leaving a lot of room for errors during the build. To avoid this I found the MIC5891; this is essentially the same device as the 74HC595 but with built-in output drivers that can provide up to 500mA at up to 50V for each channel. The MIC5891 also has built-in protection for switching the valve’s inductive load, so this selection also avoided the need to add external protection diodes. The only minor problem created by the MIC5891 is that its inputs are all 5V and the Pi outputs 3.3V; this is resolved by a simple FET level shifter.
Once the MIC5891’s arrived I did a quick breadboard test with the PI powering a single shift register with some LEDs. In this test the MIC actually accepted the PI’s 3.3V signals, but I wouldn’t trust this to be reliable and will still include the level shifter on the full board.
To finish the design I added a few FET switches which will allow me to eventually route spare outputs on the Pi through this board to a satellite board that will control the vacuum pump (On/Off/Speed). I also added a 12V to 5V DC-DC power supply so that I can bring a single 12V supply into the control board and have it power everything, including 5V back out to the Pi. This was all drawn up in CircuitMaker.
Creating the actual board consisted of printing the circuit design onto toner transfer paper, with scaling 1:1 and with the top layer mirror-imaged. I cut the board blank to size and drilled small holes that I had added to the design as alignment points. The board was then cleaned carefully with fine steel wool and denatured alcohol and then I ironed the transfer paper onto the board. When the board had mostly cooled I pulled off the transfer paper revealing the design. In the past I had used photo paper for transferring toner; this was my first time using purpose-made toner transfer paper and it definitely was much better – the board only required minor touch-up with a fine tip marker prior to etching. After etching in Ferric Chloride, steel wool and denatured alcohol were used to clean the toner/marker from the board.
The next steps are to drill all the pin holes and to fully tin the board to increase the ampacity of the traces and prevent corrosion, I’ll do this prior to populating and testing the board.
This weekend I had a chance to test the completed valve bank.
Testing revealed that some of the keys did not actuate with their corresponding valve open. On these keys when the valve (while turned ON/open) was removed from the manifold the key would strike immediately, pointing to lack of airflow through the valve as the cause. I can’t explain why this occurs on only some of the keys but the piano turns 100yrs old next year, so the inconsistency isn’t surprising. The piano could perhaps be adjusted to make these keys work the same as the rest, but I could more easily just provide more airflow via multiple valves per key – this is the approach I took. To connect multiple valves per key I created a few hollow standoffs that fit inside the valve holes in the manifold . The standoffs then have holes on their sides to allow connecting the extra valves on a 2nd layer above the rest. The end of the hole that was drilled to hollow the standoff was sealed with hot glue. Two valves solved the problem for most of the offending keys, but one extra special key required 4(!) valves in a ‘+’ configuration.
With the mechanical parts complete I’ve taken the first steps to construction of a raspberry-pi based controller that will use shift registers to power the solenoids. The raspberry pi and associated circuitry will be small enough to fit on the back of the valve manifold in the area where the paper roll would normally be. It has wireless connectivity and I plan to have it host a webpage where it can be controlled by phone/tablet. I’m bread boarding this first to prove the concept with one shift register, then once testing is complete I’ll create a circuit board to hold all 11.
I did a quick test tonight to check/confirm the feasibility of using the ebay solenoid valves I got a while back to control the player piano. I connected one of the valves to a 12V battery pack and a push button, and then held it in front of one hole of the piano’s tracker bar while the rest were taped closed. When I pressed the button, the valve opened, and the piano played the key! With this successful test I can move forward with designing an adapter to connect all 88 valves to the tracker bar.
A while back, in anticipation of more log milling, I made a jig for holding the chainsaw level along the length of the cut. This is basically a homemade version of an ‘Alaskan Sawmill’, with a few changes. Since I processed last winter’s log recently it made room for another in the drying area, so I finally had a chance to test out the jig this weekend. For the first cut a ladder is secured to the top of the log to establish a reference surface.
I opted on not tie the reference block into the end of the bar, since I have a limited bar length. Because of this, I also couldn’t make the reference block adjustable without introducing too much flex. Instead, I set it at the maximum board width I may need, and for all thinner boards I’ll add more wood to the block or log to shim it. This also gives me the ability to cut from both sides for a log that’s up to ~2x the bar length.
Altogether this test seemed to work great, the cut was extremely flat compared to the previous log that was cut free-hand. It was fairly slow-going though since I was using a standard chain; I have a ripping chain on order that should cut faster with the grain, I’ll install it before finishing this log.
The oak I cut down last fall and “milled” last winter (this post) seemed to be dry enough to attempt further processing. Since the milling was very crude, there was a lot of thickness variation and therefor a lot of variation in moisture content. It hasn’t been a full year, but it’s also been a hot/dry summer. I measured an average of about 11% moisture content, which is near the lower limit that can be expected for outdoor drying in my area. Turning the log into lumber consisted of a few steps:
#1 – Rip a straight edge along one side of each plank. Since the log doesn’t have any straight reference surface, I created a sled out of some spare 1/2″ MDF and attached the plank to the sled. The sled provided a straight edge to ride along the table saw fence, ensuring a straight cut edge on the plank.
#2 – After the 1st straight edge is cut, the sled is removed and the newly cut straight edge rides against the fence while the other side of the plank is ripped.
#3 – With the sides now flat and parallel, a flat face needed to be established. To do this I put the plank on a long 2×6 and shimmed it until it no longer rocked. I fed the entire stack through the planer with multiple passes until a flat face was established across the entire side.
#4 – With 1 flat face established, the plank was removed from the 2×6 and fed through the planer until a new face was established across the other side.
#5 – The ends were cut on the table saw to be square with the sides.
For this initial test I used the board from the top of the stack. This top board had warped a good bit, so instead of trying to plane the warp out, which would have created a very long/thin board, I cut the plank into sections to create shorter/thicker boards. For future drying stacks I need to add weight on the top to prevent warping of the top planks(s).
After planing the first board I am seeing some cracks form. The normal process is to allow the wood to finish drying inside after the outside drying phase is complete, so this wasn’t necessarily a surprise. I’ll likely leave the rest of the log in the garage to finish drying to ~8%, and then re-process the test pieces with the full log once they’re fully dry and stable.
I’m planning to ‘mill’ the rest of the logs soon and put them in this log’s prior location outside, protected by the eave of the garage roof. These should be ready for initial processing and moving into the garage next fall; by then this initial log should be processed into final lumber and will be out of the way.
After fixing the generator last year (this project) I needed to install it permanently. I pulled the permit last year and it expires soon, so lately I’ve put more work into this to get it done. After a year of on-and-off work it’s finally ready for inspection. Permanent installation consists of 3 main parts: mounting the generator, installing an interlock, and running cable from the generator to the house electrical panel.
#1 – Mounting the generator was relatively easy – I dug out a flat area, made a form, added rebar, and poured concrete. The only tricky part here was keeping the threaded bolts positioned correctly so that they’d line up with the generator mounting holes. After the concrete cured I moved the generator in place and bolted it down, using hockey pucks as vibration dampers. I turned down the upper hockey pucks on the lathe and machined a step into them so that it keeps the generator centered on the mounting bolts.
#2 – The interlock requirement is the most important part of any generator installation since it prevents energy from the generator back-feeding into the utility, which would create a dangerous situation for the linemen that are working to restore power. There are several ways to accomplish the interlock:
– Automatic Transfer Switch: This switch is placed inline between the meter and main panel, during an outage it automatically disconnects the house from the utility, connects to the generator, and sends a signal to start the generator. This capability would be nice but there’s a lot of complexity, expense, and extra work involved.
– Manual Transfer Switch: This switch is placed inline between the meter and main panel and you can manually select which power source the house is using. This is much simpler than the automatic switch, but still requires an additional small panel for the switch.
– Main Breaker Interlock: This is a sliding plate that mounts inside the existing main panel and it prevents the main breaker from being ON at the same time as another nearby breaker (and vice versa). The generator powers the main panel through the nearby breaker.
I opted for the Main Breaker Interlock since it’s allowed where I live and it’s the simplest way.
#3 – Running cable was the toughest part. Since the generator isn’t a residential unit that’s fire-rated to be directly next to the house (it probably would perform better than a residential unit, but the military doesn’t do the residential testing) it had to be at least 2ft away. 2ft away would have made for an awkward placement and it would have been in the way a lot, so instead I took it much farther out near the tree-line; leading to a ~60ft long trench. Code requires either 18″ of cover or 24″ of cover depending upon whether or not conduit is used. I opted to use conduit since the shallower trench saved digging effort and also reduced the chance of encountering any other utilities in the process. Most of the digging was through very dense/hard clay and it was slow-going with a trenching shovel. I welded the shovel back together at least a few times. I also experimented digging with the pressure washer, which mostly made a mess. The last 2ft near the house were through concrete; the technique I used for this was to turn the area into Swiss cheese with a hammer drill, break it out with a small air chisel, and then progress down to the next layer. I had been on and off of this effort over the past year and finally finished this weekend.
(#4) Misc things. Since the generator wasn’t originally intended for residential installation there were a few extra things I did to convert it:
– I added cabinet locks to all of the access doors. This isn’t for security so much as it is to prevent anyone that shouldn’t be in there from getting into danger, especially the front door that has the output terminals directly behind it.
– One of the code requirements is that there must be a way to disconnect the generator outdoors. The generator itself sort-of/kind-of meets this requirement since it has a switch on the operator panel that will open the relay that connects the output power. Since this switch isn’t directly a disconnect though and since there’s a lock on the operator panel that could restrict access I also added a ‘real’ disconnect on the exterior of the house. I used the CNC router to make an engraved sign to mark it.
– Since the interlock completely disconnects the house from the utility it can be tough to know when power is restored. Electrically it would be possible to have a light/buzzer on the utility connections before the main, but since this wouldn’t have a breaker it wouldn’t be safe or code compliant. I found a device that’s made exactly for this problem and installed it. It has it’s own power via a 9V battery and has an antenna that wraps around the line from the utility to monitor power status. The alarm is armed manually when on generator power and as soon as utility power returns its siren sounds.
– I made a step-by-step instruction list with photos so anyone that’s home at the time of a power outage can start the generator and operate the interlock. This list and the key to the generator are held inside the main panel with magnets.
Next step is to get it inspected and then I can backfill the trench and clean the mud off of everything one last time.
It’s not particularly hard to use a window crank, but multiplied by several windows it does take a little bit more time than it could. With this in mind I created an adapter for a cordless drill to more quickly open/close windows, particularly as it’s starting to cool down some and we’re using the windows more.
Construction was relatively straight forward, it’s just a bit of aluminum turned to size and with a hole drilled with the same size as the OD of the splines on the window crank mechanism. The only tricky part was creating the splines since this is the first time I’ve attempted it. The lathe has a built-in index plate that allowed the adapter to be positioned in the 12 evenly divided positions required; once it was in each position I used a small lathe tool to broach a slot, moving the carriage back and forth with the lathe off while slowly raising the tool. I then turned a bit of steel rod to size and pressed it into the back of the adapter.
Overall it turned out OK – the splines aren’t the greatest due to the tool not being very rigid, but it’s plenty good enough for it to engage with the window and hold solidly.