When I migrated several servers into a new server rack, I put my Arduino Uno based fan controller into a new enclosure. Not a great solution, but good recycling of this existing project and way better than the built-in, on/off temperature controller.
Now, when the rack’s space got low, I had to find a better solution, fitting in one single height unit. Obviously, I had to create something new; just buying an existing controller would have been boring. 😄
The New Enclosure
Distrelec has a wide range of affordable enclosures of its own brand RND. I found the enclosure “RND 455-00114” would fit all my requirements, and with the price of ~16€, my solution could get even cheaper than a good off-the-shelf solution.
The enclosure is made from ABS and looks robust for plastic, and there are already venting slots on both sides.
It is a smart design, with the brackets inserted into slots, so its weight is distributed along the top and bottom part of the enclosure. The top and bottom parts of the case are fastened using four screws.
This design will obviously does not work for a heavy device, but it is robust enough for the few components I will add to it.
At the front and the back, there are two covers. You can easily drill holes into it, or even better, use your 3d printer to print your own covers. The covers are inserted into a slot that runs around the two shells. Therefore you can easily print many small panels and line them up in this slot. This is what I will do. 😄
Rotary Encoder for Input
To display additional information or reconfigure the temperatures, I like to add a rotary encoder to the controller. I use one of the cheap Bourns rotary encoders:
For the filters and connections, I cut a prototype board to approximate the right size.
I add two 3mm holes for the fins of the encoder.
Now, the encoder sits perfectly on the board.
Adding a Filter Circuit
I solder a ribbon cable to this board and add three filter circuits for the switches in the rotary encoder.
If you look closely, you can see the embedded SMD resistors and capacitors. There are no components and only some wires on the top side of the board. I added two 3.5mm holes on both sides to fasten the board to the panel. The solder blobs around these holes are there to get some distance between the screw nut and the board.
I use the filter circuit from the spec sheet with the suggested values:
Testing the Circuit
Before I continue, I do a quick test of the filters.
I use my Saleae logic analyser for this task, recoding the signals I get from the board while I rotate and press the rotary encoder.
On the left side, you see a slow rotation by one step, and on the right side, there is a fast rotation. The signals are perfectly clean, with no visible noise. It should be easy to use these inputs with no software filters.
Printing the Panel
Next, I print a small section of the panel for the rotary encoder.
The panel is made for two M3 screws. I also printed two spacer to keep the right distance between the board and the panel.
Here, I assembled the panel and the board using two M3 screws. I had to drill out the hole of the printed part to the exact diameter.
On the front, you can see the shaft of the rotary encoder. Now, I have to add a nice knob.
There is a wide range of Knobs of the RND brand from Distrelec. Some of them are looking really nice; many look outdated. If you design a device that should look like from 1970, have a look at the knob
RND 210-00283. 😂
Building a Connector
Now, I build a simple connector using a one pin header.
First, I stick the header into a small breadboard. I form small loops with the wires and “hook” them on the pins. That way, I can easily solder these thin wires to the header.
Next, I print a small enclosure for the header.
This enclosure is designed like a small cup.
It has small holes for the pins at the bottom, where the thickness is just 0.4mm.
I insert the header and align the pins with the holes at the bottom. To lock the pins in place, I add some tape to the pins. This will hold the pins at the bottom of the enclosure, so they have more or less the same length at the end.
First, I put some hot glue into the enclosure, to fasten the header at the bottom and seal everything up. Next, I mix 10-minute epoxy and add black colour to it.
Now, I fill the enclosure with the epoxy and let it cure. If some of the epoxy is leaking into the tape, you can remove it with a knife, when it is almost cured.
Print the Panel Section for the Display
I use the old version of the Adafruit Monochrome 1.3″ OLED display I had lying around for some time to display the current time and temperatures. It fits perfectly into this enclosure.
One problem with using this board is the location of the mounting holes. I cannot mount the display using screws from the front because the heads of the screws would touch the enclosure.
Instead of mounting it from the front, I place it deeper in the enclosure and use the holes just for alignment.
I print two parts, the front plate and a shell that sits behind it. The four inner small knobs fit into the mounting holes of the display, the larger knobs align the shell with the front plate – which has four matching holes on the back.
The large space behind the display is not just for the components on the board, I will add a small sponge in this space, which firmly presses the display to the front. This is not necessary, but prevent any rattling noises if the enclosure is moved.
Here you can see the display in the shell, top-down. There is almost no clearance in mounting holes, but the display height is not perfectly flush with the front panel, because of the fixed layer height while printing the shell.
Adding the front panel fastens the display between the two parts, but puts no pressure on the glass of the OLED display.
It is not well visible in the image above, but the orange thing under the ribbon cable is a small sponge, covered in Kapton tape, pressing the display flush to the front panel. The pressure is just enough to hold it securely in place.
Now I cut a 140mm section from the middle of the existing front panel of the enclosure and assemble the four parts.
This already looks very neat.
Download the STL files shown in this build here:
This work by Lucky Resistor is licensed under a Creative Commons Attribution 4.0 International License.
Hopefully, you got some inspiration from the first part of this build. Next is the back panel, where I attach the fans and temperature sensors. I had no spare fan connector sockets, so I had to order them. Therefore I will continue this build at a later time in a second part.
If you have any questions, missed information, or simply want to provide feedback, feel free to comment below or contact me on Twitter. 😄
The Importance of Wall Profiles in 3D Printing
Stronger 3D Printed Parts with Vertical Perimeter Linking
Build a Sustainable Refillable Active Coal Filter
Update to the Storage Boxes System
Candlelight Emulation – Complexity with Layering
Get Blog Updates With the New Mailinglist
3 thoughts on “19″ Rack Fan Controller [1/2]”
Would it work better to use hot glue from the outside of the connector, to hold the pins, instead of the tape? I suppose it should be easy to remove it afterwards from the metal pins and the smooth bottom surface of the print, and the epoxy shouldn’t leak out that much either?
I never tried it this way around, I will try next time. 😄
In my experience, the hot glue on the inside seals the bottom of the connector in most cases completely. Leakage depends also on the viscosity of the epoxy. If I wait until the end of the pot time, the viscosity is already very high and it does not flow through these small openings.
Building this connector, I actually had a leak and had to remove some epoxy from the pins. 😆 It’s why I mentioned it.
I see. I have little experience with epoxy, but would like to try it more. Also, I love the idea of custom connectors, and have a plan to make a custom board edge socket for debugging some time 😁.
Thanks for sharing your work, I get plenty of ideas and insight from your posts!