Do you use a bunch of 3.5" sized external hard drives that have their own wall wart power supplies? Don't you just hate that the wall warts take up soooooo much space on your power strip? Me too! That's why I made a 12V power supply to power my external hard drives.
I looked online for an out of the box solution but did not come across any that fit my needs. Most of the search results were people asking the same question. One poster mentioned none are made because that would be a single point of failure but another rebuked that by saying a desktop PSU is essentially what you are looking for but not out of the box useable for our purposes. So I embarked on making my own.
We could just get a 12V power supply that can provide more than enough wattage for the amount of drives in use and slap on a bunch of DC jacks, but we can do a bit better than that and add few features (but not too much where the project becomes unwieldy).
This DIY multi-external hard drive power supply is fuse protected at the mains socket, has an LCD ammeter to monitor current draw, simple LED temperature indicator, and a temperature controlled fan. Fuses are always good so you don't burn things out. The ammeter lets you monitor current draw so you do not inadvertently connect too many devices. The simple LED temperature indicator indicates the temperature of the unit based on brightness. The temperature controlled fan only turns on when the temperature gets too hot so you don't have a noisy fan whirling all the time.
I use a DC step-down buck regulator to power the fan controller. I know that's not the most efficient way since I'm chaining switching power supplies but the ATtiny sips power. I measured under 1 milliamps while the microcontroller slept. For me, the fan was on maybe 10% of the time so there was not much power consumption.
I also made a 3d printed enclosure for this power supply for those that want to print their own enclosure. The 3d model is up on Thingiverse for you to modify. Currently missing from the model is a nice place holder for the temperature LED indicator. The LED was really an after thought but I didn't want to waste more filament and 13 hours of printing so I just stuck my LED close to the vents.
Please take care with this project as it involves working with mains power. Always unplug the power cable before working on it.
Step 1: Bill of Materials & Tools
12V Power Supply Materials
- 1 * 12V 10A Switching Power Supply
- 1 * IEC Socket With Fuse Holder
- 1 * Power cord
- 1 * Fuse 1.5A 5x20mm***
- 8 * 5.5x2.5mm DC Power Female Jack Panel Mount**
- 8 * DC Power Cable 5.5x2.5mm Male to Male**
- 1 * Dual Digital Voltmeter Ammeter
- 2 * Countersink 1/2" 4-40 Screws
- 2 * 4-40 Washers
- 2 * 4-40 Lock Washers
- 2 * 4-40 Nuts
- 8 * 1/4" 4-40 Pan Head Screws
- 1 * 5V Fan
- 1 * Atmel ATtiny85
- 1 * DS18B20 Digital Temperature Sensor
- 1 * LED
- 1 * Logic Level FET N-Channel (IRL3103PBF)
- 1 * 270 ohm Resistor
- 1 * 4.7k Resistor
- 1 * 10k Resistor
- 1 * 1uF Capacitor
- 1 * 0.1uF Capacitor
- 1 * DC-DC LM2596S Step-Down Buck Regulator
- 4 * 3/4" 6-32 Screws
- 4 * 6-32 Washers
- 4 * 6-32 Lock Washers
- 4 * 6-32 Nuts
- Small Tie Wraps
Items To Make Life Easier
- 2.54mm Male Headers
- 2.54mm Male and Female DuPont Connectors
- 8pin IC Socket
- Heat Shrink Tubing
- Red Tape
- Colored Wire
Tools and Other Miscellaneous Stuff
- Hobby Knife
- 4-40 Bottom Tap
- Phillips Screw Driver
- Hobby Files
- Hot Glue
- Hot Glue Gun
- AVR programmer of choice (Atmel-Ice, UsbAsp, Arduino, etc.)
Whichever you use for your AVR programmer.
- Atmel Studio
- Arduino IDE
** Make sure to measure the DC socket's center pin of your external hard drives enclosure. I made the mistake of building my first power supply with 2.1mm only to be bummed out at the very end when the plugs didn't fit. So make sure you measure, double check, then test fit stuff before finishing things up.
*** Thank you to jakane for pointing out the fuse to use in the comments.
Step 2: Fan Controller Flashing & Testing
I wanted a fan in the power supply unit just in case things got hot. I didn't want the fan running constantly so I used an ATtiny with a DS18B20 temperature sensor to turn the fan on and off. Initially, the fan was also PWM speed controlled.
The fan is pretty quiet at full speed so I decided to just have the fan either be fully on or off. Since the PWM code was in place, I thought why not just hook up an LED in the fan's place. The LED would act as a temperature indicator by its brightness and then blink if the unit is past a certain temperature.
Download the PsuFanController source code from GitHub.
Adjust FAN_ON_TEMPERATURE in main.c to the temperature you want the fan to turn on. This will also be the when the LED first turns on and be the dimmest.
Adjust MAX_TEMPERATURE in main.c to the temperature you want the LED to start blinking.
The fan code is in an Atmel Studio project. If you have Atmel Studio, open the project, build and flash to your ATtiny85 chip.
Alternatively, you can transfer the code in main.c, and the files ds18b20.c and ds18b20.h to an Arduino IDE project, compile and flash to your chip.
Follow the schematic and breadboard the fan controller parts. Test that the fan turns on and the LED's brightness indicate the temperature.
Step 3: Fan Controller Perfboarding
After you successfully tested the fan controller on the breadboard, you can follow my PCB schematic that fits to a perfboard. Use header pins so that you can easily disconnect the power, fan, temperature sensor, and LED.
I suggest printing out the schematic and drawing in grid lines. Label the grids the same as your perfboard if your perboard has markings. This makes placing the components much easier.
Cut the perfboard to a board that has 9x18 holes. The 3d printed case has standoffs to match the corner holes. Drill the corner holes with a 1/8" drill bit.
Now place your parts in and solder away.
I suggest cutting tiny bits of red tape and mark the positive header pin. This way, months down the line you know what pin is positive.
Step 4: Fan Controller Parts Wiring
Solder about 4" to 6" of wires to your temperature sensor. Try to stagger the soldering so you don't get an ugly hump with all the three solder blobs in one spot. Use a small diameter shrink wrap on the individual wire/pin. Then use a bigger shrink wrap to cover all three wires/pins and slightly up on the temperature sensor. I go slight over the sensor just to make sure no metal is exposed. Just don't go hog wild and cover the entire sensor as that may interfere with reading the correct temperature.
Do the same for the LED.
If your fan didn't come with a connector, now is a good time to add one. Mine came with a female JST connector but I didn't a matching counterpart. The pin headers works as they are the same pitch as the JST connector that came with the fan.
Make a cable with female connectors on one side for the DC Buck Regulator to the perfboard. Try not to make the cable too long since the boards will be side by side. Solder the cable end without connectors directly to the regulator. I would've made connectors on the regulator too but the positive and negative outputs are far apart. I didn't want just a single male pin sticking up, didn't seem quite as strong and likely bend too easily.
Step 5: Printing a Case
I made a 3d printed case for this project. As mentioned in the intro, the model does not have a mount for the LED status light. The enclosure project on Thingiverse contains the FreeCAD file. Feel free to modify and add an LED mount where you want.
Download the files from Thingiverse - Power Supply Enclosure.
My printer settings were layer height of 0.20mm with 5 perimeter walls (nozzle width of 0.40mm). Took about 13 hours for the bottom and about 2 or so for the top.
Step 6: Tap Time
Use a 4-40 bottom tap to tap the modeled in stand-offs and cover screw mounts in the corner.
Use a hobby knife to trim away run out from tapping.
Mark your tap for the height of the stand-offs. This lets you know when you can stop tapping.
I also found that I have to back off the tap more often than I do for metal. The plastic tends to buildup on the tap and makes cutting new threads harder or worse binds the tap and you strip your previously cut threads.
Step 7: DC Jacks
Use panel mount jacks that have a flat side on its body. The enclosure is made to fit these panel mount DC jacks. The flat side prevent the jack from spinning allowing you to tighten the holding nut easier.
First tin the DC jack leads out of the enclosure. You could do it in the enclosure, but feels like would be a bit harder due to the lack of space once in the enclosure.
My external hard drives use center positive DC power supply plugs. Make sure to wire up your jacks correctly for your hard drives.a
Place the jacks in the enclosure and make sure you line up the leads for polarity. The leads are uneven in length. Either keep all long leads closer to bottom or vice versa. This will make wiring much easier as you won't have crisscross wiring of the jacks.
Cut short pieces of wire to length, strip, tin and solder away.
Step 8: Mount Fan Controller and DC Buck Regulator
Mount the perfboarded fan controller on the 4 stand-offs nearest the DC jacks. Screw the perfboard to the stand-offs with the pin headers for the LED closer to the DC jacks.
Mount the DC buck regulator on the 2 stand-offs to the left of the perfboard's stand-offs. Screw the regulator to the stand-offs with the output facing the perfboard. Do not connect the power from the regulator to the perfboard yet.
Step 9: LCD Voltmeter & Ammeter
The LCD voltmeter & ammeter I used came with its own faceplate. To use the faceplate you first need to remove the LCD circuit board. The circuit board prevents the faceplate's holding tab from moving. The circuit board is held in place by the short side of the faceplate. Push out the short side to release the circuit board. Make take a bit of force but the faceplate is pretty tough. Take note of the orientation of the LCD cover to the circuit board as the cover will fall out.
Insert the faceplate into the right square hole fronting the DC buck regulator stand-offs. The faceplate should snap into place.
Insert the LCD cover and circuit board back into the faceplate. Ensure that you place the LCD cover correctly or else the labels will be incorrect.
Step 10: Wiring the LCD Voltmeter & Ammeter
The LCD voltmeter & ammeter I received has two sets of wires. One set with red/black light gauge wires. The other set with red/black/blue heavier gauge wires. My crude MS Paint drawing shows how the LCD is wired.
First make a red Y cable to connect the DC jacks to the 12V PSU. Keep the split side short so that the wiring in the enclosure will be a bit more tidy. Use shrink tubing to insulate the Y connections.
Tie both positive red (heavy and light) wires from the LCD to the positive output of the 12V PSU. You will also connect the positive input of the DC buck regulator and the positive side of the DC jacks to the positive output of the 12V PSU. Use a ring terminal to crimp all the ends together. I found slipping shrink tubing around all the wires keeps the wires packed together. This makes twisting the bare wires together for crimping on the ring terminal much easier.
Tie the two black wires from the LCD to the negative output of the 12V PSU. Crimp a ring terminal onto the two black wires.
The blue wire from the LCD will connect to the negative input of the DC buck regulator and negative terminals of the DC jacks. Create a Y split on the end of the of the blue wire that will connect to the DC jacks. Before soldering the Y end, attach another wire that faces opposite of the Y that will connect to the negative input of the DC regulator.
Solder the loose power wires ends in place (DC buck regulator and DC jacks positive and negative terminals).
Step 11: Adjust DC Buck Regulator
Now is a good time to do some preliminary testing.
Make sure the DC buck regulator is not connected the fan controller perfboard as the regulator may not be correctly set.
Connect the positive and negative ring terminals made in the previous step to a 12V power supply.
The LCD should light up and display the voltage of the power supply.
Connect a voltmeter to the DC buck regulator and adjust the voltage of the regulator down to 5V.
Use the voltmeter to check the output of the DC jacks.
Move on when everything checks out okay.
Step 12: Wire Power Socket
Mount the 12V PSU onto the two stand-off left. My PSU base was a little bent from shipping or prolly bad manufacturing. I super glued a thin piece of foam on the square risers in the enclosure to prevent the PSU from wobbling. Mount the PSU with the terminals on the side of the power socket and LCD.
Test fit the power socket into the enclosure. This gives you an idea of how short you can make the wires to connect the socket to the power supply.
Follow the wiring of your fused socket. Use colored wires that match your countries standard. The colors used in the pictures are black-live, white-neutral, and green-ground.
Use insulated female disconnects on the power socket. If you solder, make sure you shrink wrap the soldered terminals. I prefer the terminals as they are easier to fix and remove should you need to repair something.
Use ring terminals to connect to the 12V PSU. Try to keep the wires short but not too short because you will need some wiggle room to move wires off to the side to make room for the ring terminals to the PSU.
When the wires are connected. Make sure a 10A fuse is in the power socket fuse holder. Do a quick test by connecting the power cord to the power socket. The LCD should light up displaying the voltage of the PSU. ***If you need to adjust the output of the PSU, use a ceramic screw driver.*** Turn off the power and unplug the power cord.
Fix the power socket into place with screws, washers, lock washers and a nuts. Use hot glue on the screw from the inside of the enclosure for insulation. You will probably have to goop the hot glue onto a thin piece of cardboard to apply the glue since space is tight.
Step 13: Mount Fan
Screw the fan to the enclosure cover.
Make sure the power wires of the fan face the inside of the enclosure.
Use a lock washer to help prevent the nuts from unscrewing.
Use a small amount of hot glue on the screws for insulation.
Step 14: Connect Fan Controller
Connect the temperature and LED cables you made earlier to the fan controller.
Use tie wraps to fix the temperature sensor in place. I placed the sensor between what looked to be the regulators on the PSU. The ICs are bolted to the PSU enclosure so I figure these are the heat critical parts. Make sure the cable is fixed down so that it does not interfere with the fan.
As mentioned earlier, I didn't model an LED mount so I placed my LED next to the side vents of the enclosure. Use the tie wraps to fix the LED in place.
Connect the fan power connector to the fan controller.
Connect the DC buck regulator to the fan controller.
Test the controller again by plugging the power cord and turning on the power supply. Use a hair dryer and gently heat up the temperature sensor. The fan should eventually turn on. If it doesn't, check your wiring. Make sure to unplug the power before rechecking.
If everything tests out okay, remove turn off the power supply and remove the power cord. Place the enclosure cover on. As you do, move the fan power wires off to the side where they won't interfere with the fan.
Test again one more time with a hair dryer to make sure there are no wires that interfere with the fan.
Step 15: Final
Power up the power supply.
Double check the voltage on the DC jacks. Make sure they are 12V and the LCD displays the same.
Use the DC power cables to connect the power supply to hard drives one by one. The LCD ammeter should display the current draw. Do a few read/writes get a feeling of how much the drive will pull. This should give you and idea of the amount drives you can connect to the power supply. Just remember that the PSU is rated for 10A and that you also have a 1.5A fuse** in the power socket.
The initial power on current for my drives ranged from 1A to 1.5A then settle down to 0.5A. Keep in mind the startup power so you don't overload your power supply when the power gets cut and comes back on.
Thank you for reading this Instructable.
** Thank you to jakane for pointing out the fuse to use in the comments.