DIY ATX/Dell Proprietary Power Supply Tester
491 Views, 4 Favorites, 0 Comments
DIY ATX/Dell Proprietary Power Supply Tester
Hello there and welcome to my Instructable. In this tutorial, I'll walk you through the steps for how to build my DIY ATX power supply tester that also has the capability to test many of Dell's proprietary SFF power supplies. Being able to quickly and accurately test a computer's power supply can be an invaluable resource when troubleshooting a computer that's malfunctioning, and this tool will let you do it. Do be warned, this PSU tester is really best suited for people who are looking for an awesome project that they can utilize in their IT work. If you really just want a simple, easy power supply tester that's cheap, I might advise you purchase a commercially available one. However, if you're like me and enjoy a good project, let's get started with building this one!
Disclaimer: This is a project developed by a random guy who likes electronics. This device has not passed any safety tests/standards and could theoretically cause harm or damage to the user/user's property. Build this at your own risk.
Supplies
This build is anything but light on supplies, so buckle up for this part.
Electronic components:
6x 10K
1x 5.6K
2x 2.2K
12x 1K
2x 470
11x 330
9x 10K
4x 3.3K
5x 2.2K
9x 1 Ohm 5-Watt Power Resistors
1x 1N4007 Diode - Optional, protects against connecting the battery backwards when the tester is on and frying it. If you make sure to not accidentally reverse the battery's polarity temporarily without this diode, the tester's function will not be impaired. I'd recommend putting it in, though, as it's cheap insurance.
6x LM358 OpAmps
2x/1x 2N3904/2N3906 Transistors
1x Power Switch
1x RGB LED
1x Green LED
The Teensy 4.1 NE is sufficient for this project as ethernet is not required.
Molex Connector Numbers:
Motherboard 24 Pin: 39300240
CPU 8 Pin: 39300080
PCIe 8 Pin: 455860005
Dell 8 Pin Motherboard (Same as a straight up facing 8 pin EPS): 39288080
Buy these parts from your favorite electronics components dealer, they should have them in stock. If you want, you can also cut and wire up a set of old cable extensions instead of buying the connectors.
Mechanical Components:
1x M3x6
1x M3x25
4x M3x30
6x M3 Nut
You could technically make this project without the PCB if you were brave enough, but I'd highly recommend just buying the PCB. I got my PCB from PCBWay (the sponsor of my YouTube channel), and I host the Gerber files on their site, so check them out for the PCB.
I provide the STL file for the 9V battery holder so that if you have a 3D printer of your own, you can print it yourself. If you don't, you can order it alongside the PCB from PCBWay.
Code:
Code is provided in a later step.
To use a Teensy with Arduino IDE: Teensyduino Install Info
Downloads
Watch the YouTube Video!!
I highly recommend watching the YouTube video I made on this project before going any further with building it. The video will give you a better understanding of the build process and what the final product will be like. There are also some important details included in the video that are very important to the build process. I'll be hitting all of those details here as well, but the video is a good way to make yourself aware of them as well.
Of course, if the video sent you here, you can skip this step :)
Solder the SMD Resistors
The first step to building this tester is getting all of the SMD resistors out of the way while you still have space to move tools around on the board. There are several SMD resistors that need to be soldered to the board, so go ahead and solder all of them EXCEPT for resistors 35 and 36.
When you get to 35 and 36, you should try to measure the exact values of the resistors that you're putting into the circuit before you solder them down. There will be spots in the code for these resistor values, and if you can put the exact values of the two resistors in your circuit, the measurement for the -12V rail will be more accurate. You can skip this and just plug in the advertised values of the resistors but be aware that this will likely come at the cost of accuracy.
One more note on the SMD resistors - if you want to change the amount of power that the load circuitry draws from each rail of the power supply, you can change that by altering the voltage divider resistor values that provide the reference voltage for that load channel's op-amp. Only do this if you understand what you're doing and reference the schematic (attached PDF) for more information on how things are hooked up. Also, don't raise the current draw to more than 1.5A, as you risk frying the decently thin traces in the board (If you want to do 1.5A, I recommend ordering the board as a 2oz/ft2 board for extra copper thickness in the traces).
Downloads
Solder Most of the THT Components
Now that the SMD components are done, we can solder nearly all of the through-hole components to the board. I could list all the components that you should solder to the board, but I think it will work better if I list the ones that you shouldn't. Do not solder any of the through-hole resistors to the board, we will cover those in the next step as there are some important measurements that we need to take of them before we solder them down.
Other than those, there aren't any components that you shouldn't be soldering to the board now, though I do have some information on a couple of components that is important. The connector for the proprietary Dell ATX power supply is wired up slightly wrong, and so soldering it to the front of the board doesn't work. Though the silkscreen is on the front of the board, solder the connector to the back of the board for it to work. I've provided some silkscreened text near the connector to guide you into putting it on correctly. The MOSFETs for the load are all on the back of the board, this time properly, and are pretty easy to solder. However, do your best to ensure that they stay relatively straight up and down when being soldered in, this will make mounting the heatsink much easier. Also, ensure that they are even in terms of the height of their mounting hole.
Final note, make sure to solder the 9V clip to the back of the board, as that's where the battery will be going.
Measure and Solder THT Resistors
Now it's time to work on the through-hole resistors in this build. To correctly install these onto the board, you need to take a measurement of each exact resistor and record it before soldering it in place. These resistor measurements are absolutely critical to having an accurate PSU tester. These resistor measurements cannot be skipped, unlike the -12V resistor measurements. The -12V rail is held to a much looser voltage tolerance compared to the other rails of the power supply, as per the ATX spec. These through-hole resistors are directly used to measure the voltages of all the other rails of the power supply and therefore must be accurate.
Each resistor's label (ex. R40) is written next to its place on the board, along with its specified value. Before placing a resistor of the correct value into each spot on the board, measure them with a multimeter. Write down the resistance that you measured, then place it into the spot and mark down the resistor label next to the measured value. For example, I measured the first 10K ohm resistor that I was going to put on my board, and it actually measured at 9.97K. I wrote that down, and then put the resistor into a spot, which happened to be R40's spot. I now have on my notes that R40 measures at 9.97K ohms. You need to have this written down for all 18 through-hole resistors. You'll use these values in the code to make sure that your tester will be accurate.
Make the Heatsink for the MOSFETs
Next, with all of the components soldered to the board, it's time to make the heatsink for the MOSFETs that dissipate the power drawn by the load. This part is quite tricky, so be ready to need one or two tries to get it right.
There are a few tools that you will need to make this. I highly recommend using a drill press if you're lucky enough to have one. However, if you do not have a drill press (like me), you can still make this part, it'll just be a bit harder. The tools I used to make this part were an electric drill, a 1/8" drill bit (if your tools are metric, you should use a 3mm), a vise, some clamps, and a drill bit alignment tool.
The following steps will describe each part of making this piece in more detail. The video has a solid explanation of how to make the heatsink, so I'd watch that part of the video if you haven't.
Mark Length of Bar
The heatsink will be made out of an 8cm length of the 3/4" by 3/4" aluminum bar (yes I'm mixing units deal with it). I would mark this length of bar off; however, I wouldn't cut it just yet. It can help to have the rest of the bar still attached to hold it in the vise.
Mark Drill Locations and Drill
Next, mark a line along a side of the heatsink that's approximately 5mm away from one of the sides of the heatsink's sides (picture 1 - yes, my bar is cut in these pictures, I cut mine before drilling but realize now that not cutting it works better). Then, hold the bar in between the two rows of MOSFETs, and mark the centers of the mounting holes of the 5 MOSFETs on the side that has 5 MOSFETs (picture 2). With the centers marked, you can use a ruler to transfer the hole locations down to the line we drew previously to make several intersection points, which are where we'll drill (picture 3).
Then, use your tools to drill the holes through the aluminum bar at each of these drill locations. It's critical that these holes are drilled perfectly straight through the heatsink, otherwise it will not align with both rows of MOSFETs at the same time. To do this, I held my bar in a vise, then used the previously mentioned drill bit alignment tool to keep the drill bit straight when drilling (I clamped the guide to the aluminum bar to keep it from moving).
Clean Up the Heatsink
After the previous steps have been executed, you can use a hacksaw to cut along the 8cm mark we made before. Then, use a file to clean up sharp edges and burrs, and I used a large drill bit to remove the burrs created by the drill on the holes made by the drill bit.
Upload the Code to the Tester and Be Done!
Now all that's left for you to do is to download the code, set up your resistor values, and upload it to the tester!
Download the .cpp (C++) file that contains the code for the tester (txt was having issues, don't know why), open it with Notepad, and copy/paste the code into your Arduino IDE. After ensuring you have Teensyduino installed correctly (linked in materials section), scroll down just a little bit to find the section of the code with comments that guide you on how to set up the values in the code based on the resistor values you measured and wrote down. Several of the variables will require you do some calculations to the resistor values before plugging them in, for simplicity's sake, so run the calculations that are specified in the comments and set the variables to that value.
One more note, near the top of the code (also commented), is the I2C address for the OLED screen. My screens have the address of 0x3C. If your screens have a different address, change the address to their address or they won't display anything. If you don't know the address of your screens, look up a I2C scanner code online and find out the address that way.
Downloads
You're Done! Here's How to Use It
The power supply tester should be done! And, if everything was done correctly, it should be very accurate with at most, less than 0.02V of error on its readouts. I would recommend double checking this with a multimeter, though, just to make sure that it's measuring correctly.
Moving on, here's a bit of a "User Manual" on this device.
This tester is designed to be capable of testing three different kinds of power supplies: an ATX power supply, an ATX power supply with a PCIe cable, and several different Dell SFF power supplies. I believe that all Dell power supplies that share the same pinout as the pinout used on the OptiPlex 7020's power supply should work with this tester. As long as they share the same connector/pinout, and don't have an unconventional standby state (like the OptiPlex 7070's supply - which doesn't share the same connector, for the record), they should work fine.
Tester Features:
Voltage measurement of all rails
Ripple measurement of all rails
Automatic spec detection
Failure detection and classification - All failure bounds are based on the ATX spec.
Failure Reasons:
- Failure of all voltages, excluding standby (failure to turn on)
- Motherboard voltage failure (failure of any rail on motherboard connector due to voltage)
- Standby voltage failure (out of spec standby voltage)
- CPU voltage failure (out of spec CPU voltage)
- PCIe voltage failure (out of spec PCIe voltage)
- Multiple voltage failures (failures of more than one voltage, but not every single voltage (i.e. CPU and PCIe fail, mobo voltage is fine))
- Extreme ripple (out of spec ripple detected on any rail)
- Inconsistency (see rail fluctuation detection description below)
- Undeterminable spec (tester was unable to figure out the type of power supply connected to it)
Rail fluctuation detection - Ensures no rails change between passing voltages and failing voltages throughout the multiple test samples taken.
High accuracy - Expected less than 0.02V of error on all rails except -12V.
PSU Loading - 1.2A load for every rail of the PSU except -12V.
Ability to read voltages and ripple measurements even after a PSU has failed
Load auto shutoff - Load will shut off after 25 seconds of being on and will be barred from being reenabled for 45 seconds after being automatically shut off. This is NOT an excuse to not monitor the temperature of the load, and 45 seconds is not enough of a cooldown time. This is a safety feature designed to hopefully stop the load from being left on indefinitely on accident - BUT DON'T RELY ON IT.
Testing a PSU:
- Turn on the PSU tester, then plug in your PSU.
- Follow the prompt on screen and press the PSU I/O button to turn on the unit and begin testing.
- Wait for testing to complete.
- Observe result.
- Use "Menu" button to cycle through the voltage and ripple measurements after the result is given. This will work not matter if the unit fails or passes. If the unit fails for inconsistency, pressing the PSU I/O button will restart the test.
- Note that the PSU and load will automatically turn off after the test has been completed and the result has been displayed. In order to measure voltages and ripple you will need to turn on the power supply again and if you want, the load too using the buttons for those functions.
- To finish testing a PSU, turn off the load if it's on, then turn off the PSU if it's on. Then, disconnect the PSU, and turn off the tester.
Hopefully this has been a fun project to try out, and hopefully your power supply tester is working well for you! I hope to see you next time, goodbye.