top of page

Lab Bench Power Supply Revision 2

Lab PSU v2

2021

This is new PSU for which I designed a custom PCB design which I ordered from JLCPCB. I got all my parts from either LCSC or from Alliexpress (the BOM is the last two photos above).

 

One of the above schematics may not have all the connections and such, as I switched to the optimized PCB version later on for which I changed a lot (the former schematic photo is this one).

​

For the BOM I would be cautious of the part footprints, I have two schematics for this project, the former being for the circuit and the ladder being optimized for the PCB. For example, things like potentiometers which I made connectors for are represented as the pot symbol in the former, but as a connector symbol for the ladder.

This PSU utilizes an old X-Box 360 power supply (from a repair job that was too far gone to repair). Said power supply can deliver 12V at 16A! I thought this was optimal potential for a high power PSU, which I have been looking to build for a while. This is a 4 channel high Power PSU with current limiting, a touch screen large TFT display, Bluetooth logging and connectivity and a few other features. 

​

Power source

As stated above, the power source I used was an old 12V/5V 16A/1A power supply which plugs into the mains. This supply also has an enable (EN) pin, for which when it is pulled high to the 5V rail, it enables the high power 12V rail. I pulled this pin normally low through a 10k resistor to ensure the high power rail didn't randomly turn on and blow something up.

​

I connected the enable to a general purpose 2N222 transistor and the base of that to one of the digital pins of the ESP32 which I discuss more later. The ESP32 is powered from the 5V rail, which was originally used for USB, which I also connected it to. The ESP32 draws very low current so I figured this was a good source for it, allowing it to be alive while the high power rail is not.

Brains

As stated above, the microcontroller for this project is an ESP32 Dev board. I decided to use this for the many GPIO's it has and the fast clock speed it has (like 10x that of an Arduino). I also selected the ESP32 for it's ADC accuracy. This might not be very good in general, but relative to an Arduino nano it is much better. I also wanted to keep price low and use what I had on hand. I needed this clock speed mainly for the voltage measurements and connectivity because the Arduino was terribly slow in this regard.

--The code can be found on my Github: https://github.com/TheJadeRabbit1/XBox_PSU

​

Regulators

I used two MC33167TVG, one LM317, and one 5V(7805)/3.3V(1117) regulators. The formers were used for channels one and two, with an LM317 being used as a constant current regulator on each. The LM317 is used on the third channel, with a respective LM317 as a CC regulator as well. I used an NPN and a PNP transistor on this third channel LM317 to give it a boost of current. These power transistors allow this channel to get up to about 8A now, with the two former channels being a nominal 5A. The fourth channel is a simple 5V or 3.3V regulator in series which is changed with a toggle switch. This is just a low-power channel for digital logic circuits. The first two channels can do 0V-30V at a few amps, the third channel can do 0V-11V at ~8A, and the fourth channel can do whatever a 5V regulator can withstand (about 1A). 

​

Inverting rail

The MC33167TVG has a feature of an inverting voltage regulator among its other features, which was very handy in generating my -12V rail. I have no idea why, but the best I could get this to do is -5V, which ended up working in the end. I used this rail for the LM317 regulator to get down to 0V, which I didn't realize could simply work with my CC setup at the time. This is also useful for other components and possibly IC's if I want to add them later.

​

Display

The Display is a TFT LCD touch screen (2.8" ILI9341 Driver). This screen allowed me to make a large and colorful GUI for this project, with is being touch screen and about $10 from Alliexpress. As you can see in the images above, this GUI has a few different screens to get different data. I did this by just clearing the screen and drawing over a new menu if anyone was interested, of course this is in the code though. The display is also in a 3D printed case which I designed and printed on the DaVinci Jr I hacked. Sadly this print got stretched out for whatever reason, but it still works. 

​

GUI

The GUI was an entire programming project in it of itself. I created it from scratch, using only the libraries and a couple examples that came with the touchscreen display. I designed and programmed every page you could go to in the multi-level interface. The multi-levelness of the interface refers to how one could click on a button on the home screen and it would take them to a different page, etc. etc.. The buttons, layout, text, Bluetooth connection, charting function and all the other functions were hand coded by me to make it as usable of an interface as I could make it.

​

Aesthetics

Yes that is a piece of cardboard used as a front panel. I'm currently working on making a much fancier 3D printed or possibly CNC'd front panel, but cardboard works so I'm not in a huge rush. I also will print some front panel knobs to attach onto the potentiometers and such. 

​

To-do's

  • LCD brightness setting, I think the LCD has PWM backlight control

  • If overcurrent occurs (short circuit, etc.), ESP pull enable LOW

  • Fix amps measurement and display

  • Add multiplexer and temperature sensors for each regulator on each channel and add to GUI

  • Add side covers to the Xbox case

​

bottom of page