Ok, this is a quick post to index the previous posts relating to my Home Theater controller build for later reference.
- Mostly to use the CNC machine to make something new, with materials other than wood. Learn in the process.
- Fix a previous project that broke. I had a power strip that turned on my amps sequentially but the voltage regulator burned up (no heatsink)
- Address the problem that my cable modem is behind my theater equipment rack, and when it needs to be reset it’s a pain to get to.
With that in mind, here are the posts covering the basic steps – in order:
- Learning to make a circuit board. Isolation routing one and two.
- Cutting the front/back panels out of acrylic.
- Assembling the innards of the controller, and connecting input/outputs.
- Troubleshooting the things that went wrong.
- Final pics and video of completed project.
I got the controller installed in my media cabinet. Connected the cable modem and router to the outlets on the back, and the db9 over to the powerstrip all the theater amplifiers are plugged into. Pretty happy with the fit, and it will be nice not having to pull my equipment rack out to reboot the cable modem.
Besides, it seems to add a little flair when firing up the system to watch a movie.
—-=== VIDEO ===—
So I had some issues when putting the final product into use. Which is to be expected, but this bugger had me opening the case at least 6 seperate times..
Issue 1 : when the 5v relays would kick in, it my 7805 voltage regulators didn’t have the reserver to engage them both at the same time. I needed to add a capacitor. I did it the easy way, and just screwed it into the terminals. The +5v is wired in parallel so both relays benefit.
Issue 2 : I used digital pins 0 and 1 on the arduino to control the relays. Turns out those pins are used for serial communications. So when updating the board the relays woudl clickclickclickclick like no tomorrow. No good, had to use different pins. Obviously I didn’t account for that on the board creation, so they got solder to the pins directly. Picture is a little out of focus, but it is the orange/yellow leads in the foreground.
Issue 3 : In the external power strip where 6 seperate relays live and are controlled by the arduino here, I made a mistake in that I didn’t have any 10k pull-down resistors on the 6 control lines. I should have put them in my original circuit, and instead I added them via a little ‘daughter’ board I added to my original circuit board. Oh, and if you actually jump to read about the external power strip know I took the power supply and arduino out as they are replaced by this build. All that is left is the transistors and relays.
Ribbon cable removed, and ‘riser’ pins installed:
Daughter board freshly machined:
Lessions Learned :
* Patience. I had to keep telling myself that there was no way I would get everything right on the first try.
* That a 7805 regulator needs a headsink in most cases.
* That a 7805 also needs filter capacitors. You can’t just plop it in a circuit and expect clean output.
Installing the various components to get the HT controller to work was probably my favorite part of the build. Something satisfying about seeing everything coming together. At a high level these are the key components:
Arduino : Brains of the operation
Custom circuit board : Connections out from arduino and 5v power regulation
Relays : control each of the 2 outlets (cable modem and router)
Scavanged switching power supply : 120v ac to 12v dc
DB9 : connection out to the power strip where a relay controls each of 6 outlets/amps
So everything was installed on nylon spacers, with small machine bolts coming up through the bottom. That can be seen well on the relay installation:
And here is the custom circuit board I created in my isolation routing tutorial. All wired up to the front panel, buttons, db9, and relays:
Overall unit in early assembly:
And (almost) final:
Primary lesson learned on this assembly was when routing a circuit board that you are going to attach ribbon cables to, ensure the holes are lined up straight. Do not stagger them as I did, it makes it very difficult.
I also learned that when soldering to plain copper boards you really need Flux – more than than what is in your solder. I had good luck with some acid-based plumbers flux I had laying around. I put that on the board where the pads where, and then tinned them. Don’t forget to clean it of with rubbing alchohol or acetone.
So for my home theater controllers I needed front/back panels. I knew I wanted to make these out of acrylic sheet, and that I wanted to use the CNC to cut them out. One of my drivers was that in the past button layout was always a bit tricky, using the drill/dremel it was difficult to get everything lined up right. So with that said, here is where I ended up:
Getting the actual panel cutout was pretty straighforward. Measured the case, and setup the outside dimensions and then measured out where the controls would be. The biggest challenge was the cutout for the outlet. For that I traced an outlet cover plate, scanned it in, and imported the scan into my cad software. This is the backplage all coutout.
This chassis has been used in previous projects.. so never mind all the fan cutouts! Used to hold 4 500gb drives which was a HUGE storage array (in its time). I didn’t quite get the speed/feed for cutting the acrylic down – so that is a continuing learning opportunity.
Same panel painted with spraypaint (on the inside):
and installed using clear silicone as an adhesive:
The front panel had some text v-carved around the buttons as labels. This was done with a 60 degree v-carve bit, then filled in with white crayon. Worked out quite well! Again, the back is painted black and the text is engraved in the front. Only the right button is crayoned at this point:
Only other task I had that was panel-related was to route a spacer out of 1/8″ hardboard for mounting the LCD panel. This got sandwiched between the LCD and the front panel (with clear silicone) to make the LCD be flush with the front.
Primary lesson learned : When cutting thin 1/8″ material (acrylic in this instance) do NOT use an upcut bit. It will pull the material up off the table and into the route. This would be a use case for a downcut!