
Smu front
PaulBichl/vibepcb-smu
VibePCB example: 4-quadrant SMU (+-30 V / +-1 A, USB-C PD, Ethernet) designed with an LLM

This project is my attempt at designing a fully programmable bench power supply from the ground up.
Custom PSU 2 is an open-source printed circuit board by GodOfStrategy, from the GodOfStrategy/Custom-PSU repository on GitHub. It is a 2-layer board of 85.4 × 91.9 mm with 14 parts on 47 nets, routed with 233 tracks and 12 vias.
It is built around the SR420561N and EC11E15244B2. Its parts include 6 connectors, 3 diodes and 2 switches. It belongs with the power boards of this library.
This project is my attempt at designing a fully programmable bench power supply from the ground up.
Most hobbyist power supplies are either simple fixed-voltage supplies or rely heavily on pre-built modules. I wanted to understand the entire system myself, from power conversion and feedback control to measurement, user interface, and digital regulation. The result is a custom-designed power supply capable of generating an adjustable output of approximately 0V to 30V at up to 5A from a standard 12V DC adapter.
The design combines modern switching power electronics with digital control, allowing the power supply to behave more like a commercial laboratory instrument than a traditional adjustable supply.
I love watching ElectroBOOM and he loves to blow up capacitors so I got some FOMO and needed a way to safely blow some capacitors up! (jk) During electronics prototyping, I often found myself needing different voltages and current limits depending on the project being tested. Instead of purchasing a commercial bench supply, I decided to design one myself.
The primary objectives were:
This project was intended not only as a practical tool but also as a way to gain hands-on experience with high-power DC-DC converter design.
| Parameter | Target |
|---|---|
| Input Voltage | 12V DC |
| Output Voltage | ~0V - 30V |
| Maximum Current | 5A |
| Maximum Power | 150W |
| Regulation Method | Digital |
| User Interface | Rotary Encoders |
| Display | LED 7-Segment Displays |
| Communication | USB |
The power supply can be divided into several major sections:
The overall concept is shown below:
12V Adapter
│
▼
Input Protection
│
▼
Buck / Boost Power Stage
│
▼
Current & Voltage Measurement
│
▼
Microcontroller Control Loop
│
├── DAC Voltage Control
├── Display Interface
├── USB Communication
└── User Input
│
▼
Adjustable Output
0V - 30V @ 5AOne of the biggest challenges in the project is that the output voltage can be significantly higher than the input voltage.
Since the system is powered from a 12V adapter but needs to produce up to 30V at the output, a boost-capable power architecture is required.
The power stage is built around:
These components allow efficient conversion while minimizing heat generation.
The theoretical maximum output power was designed around:
30V × 5A = 150Wmaking the supply suitable for most low- and medium-power electronics projects.
Rather than using traditional potentiometers for voltage adjustment, this design uses a digital control system.
At the center of the project is an:
The microcontroller is responsible for:
This allows settings to be consistent, repeatable, and expandable through software.
Output voltage adjustment is performed using an MCP4725 12-bit DAC.
Instead of physically changing a potentiometer, the microcontroller generates a precise reference voltage that controls the converter feedback loop.
This approach enables:
A bench power supply is only useful if the user can see exactly what is happening at the output.
To achieve this, the design includes an INA260 power monitor.
The INA260 measures:
These measurements are available digitally through I²C and can be displayed directly to the user.
This reduces complexity while improving overall measurement accuracy.
The user interface was designed to feel similar to a commercial bench power supply.
Two EC11 rotary encoders are used for:
Rotary encoders were chosen because they allow precise control without requiring multiple buttons or large potentiometers.
The display system uses:
The intended display arrangement is:
Output Voltage
Output Current
Additional information such as:
The large displays were selected for visibility and ease of use from across a workbench.
USB support is provided through a CH340G USB-to-UART converter.
This opens possibilities for:
While not essential for operation, USB greatly expands the potential capabilities of the power supply.
Reliability and safety were important considerations throughout the design.
The PSU includes:
These features help protect both the power supply and any connected loads.
This project exposed me to several advanced engineering topics, including:
This project was designed as much for learning as it was for practicality. The goal was not simply to build another adjustable power supply, but to understand how a modern digitally controlled laboratory PSU is designed from the component level upward.
From the switching converters and measurement circuitry to the display system and firmware-controlled regulation, every major subsystem was intentionally designed and integrated into a single platform. The result is a custom programmable bench power supply capable of delivering up to 30V and 5A while providing a user experience similar to that of commercial laboratory equipment.
This is what my Schematics are:
This is how my assembled PCB is supposed to look like:
My PCB 2 Schematics:
My second PCB design:
My second PCB assembled Look:
How my Case and the finished product is supposed to look:
BOM:
| Designator(s) | Component | Quantity | Description | Source |
|---|---|---|---|---|
| U1 | ATmega328P | 1 | Main microcontroller | Robu.in |
| U2 | CH340G | 1 | USB-to-UART interface | JLCPCB |
| U3 | MCP4725A0T-E/CH | 1 | 12-bit DAC for voltage control | Robu.in |
| U4 | INA260 | 1 | Voltage, current, and power monitor | JLCPCB |
| U5 | LM5116MHX | 1 | Synchronous buck controller | JLCPCB |
| U6 | LM51231QRGRRQ1 | 1 | Synchronous boost controller | JLCPCB |
| U11 | TPS54202DDCR | 1 | Auxiliary buck regulator | Robu.in |
| U8, U9, U10 | MAX7219M/TR | 3 | LED display drivers | JLCPCB |
| Q1, Q2, Q5, Q6 | SI7850DP | 4 | Power MOSFETs | Robu.in |
| Q3, Q4 | BSC014N06NS | 2 | Boost stage power MOSFETs | JLCPCB |
| L1 | 10 µH Inductor | 1 | Power filtering inductor | JLCPCB |
| L2 | 8.2 µH Inductor | 1 | Main buck converter inductor | JLCPCB |
| L3 | 6 µH Inductor | 1 | Boost converter inductor | JLCPCB |
| D1, D2 | SMBJ33A | 2 | TVS surge protection diodes | JLCPCB |
| D3 | CMPD2003 | 1 | Signal diode | JLCPCB |
| U7 | 2920L500/30GR | 1 | Resettable polyfuse | JLCPCB |
| DC1 | DC-005-A200 | 1 | DC barrel jack input | JLCPCB |
| J1 | USB Type-C Receptacle | 1 | USB connectivity | JLCPCB |
| J2, J4, J5 | 2×6 Pin Header | 3 | Expansion/programming headers | JLCPCB |
| J3 | 2-Pin Screw Terminal | 1 | PSU output connector | JLCPCB |
| J6, J7 | 1×3 Pin Header | 2 | Auxiliary headers | JLCPCB |
| Y1 | 16 MHz Crystal | 1 | ATmega328P clock source | JLCPCB |
| Y2 | 12 MHz Crystal | 1 | CH340G clock source | JLCPCB |
| SW1, SW2 | EC11 Rotary Encoder | 2 | User input controls | JLCPCB |
| SW3 | RS601A-1020013BB | 1 | Power/control switch | JLCPCB |
| LED1, LED2, LED3 | SR420561N | 3 | Seven-segment LED displays | JLCPCB |
| FB1 | Ferrite Bead | 1 | EMI suppression | JLCPCB |
| FID1, FID2, FID3 | Fiducials | 3 | PCB assembly alignment markers | JLCPCB |
| All Capacitors (C1–C41) | Mixed Values | 41 | Decoupling, filtering, compensation, and bulk storage capacitors | JLCPCB |
| All Resistors (R1–R31) | Mixed Values | 31 | Feedback, sensing, compensation, pull-ups, and current measurement | JLCPCB |
| Component | Quantity | Source | Product Link |
|---|---|---|---|
| SI7850DP MOSFET | 4 | Robu.in | https://robu.in/product/si7850dp-xblw-60v-30a-34-7w-25m%CF%8910v15a-1-2v250ua-1-n-channel-dfn-8l5x6-mosfets-rohs/ |
| ATmega328-PU | 2 | Robu.in | https://robu.in/product/atmega328-pu-microchip-8-bit-microcontroller-avr-atmega-family-atmega328-series-microcontrollers-20-mhz-1-kb-32-kb/ |
| TPS54202DDCR | 2 | Robu.in | https://robu.in/product/tps54202ddcr-texas-instruments-step-down-type-adjustable-2a-4-5v28v-sot-23-6-dc-dc-converters-rohs/ |
| MCP4725A0T-E/CH | 2 | Robu.in | https://robu.in/product/mcp4725a0t-e-ch-microchip-tech-6us-i2c-2lsb-2-7v5-5v-12-sot-23-6-digital-to-analog-converters-dac-rohs/ |
| 24V Adapter DC | 1 |
| Item | Cost |
|---|---|
| PCB Fabrication | $4.00 |
| PCB Assembly (PCBA) | $165.19 |
| Shipping | $18.54 |
| Total JLCPCB Cost | $187.73 |
| Source | Cost |
|---|---|
| Robu.in Components | $17.69 |
| Amazon.in |
| Category | Quantity |
|---|---|
| Integrated Circuits | 10 |
| MOSFETs | 6 |
| Diodes | 3 |
| Inductors | 3 |
| Crystals | 2 |
| Connectors | 7 |
| Displays | 3 |
| Rotary Encoders | 2 |
| Switches | 1 |
| Capacitors | 41 |
| Resistors | 31 |
| Protection Devices | 3 |
| Cost Component | Total |
|---|---|
| JLCPCB Manufacturing (PCB + PCBA + Shipping) | $187.73 |
| Robu.in Components | $17.69 |
| Amazon.in | |
| Total Project Cost | $210.02 |
| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | Conn_02x06_Counter_Clockwise | Connector_PinHeader_2.54mm:PinHeader_2x06_P2.54mm_Vertical | J1, J2, J3 |
| 3 | MountingHole | MountingHole:MountingHole_3.2mm_M3_ISO7380 | H1, H3, H4 |
| 3 | SR420561N | easy2kcd:LED-SEG-TH_12P-L50.3-W19.0-P2.54-S15.24-BL | LED1, LED2, LED3 |
| 2 | Conn_01x03_Pin | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J4, J5 |
| 2 | EC11E15244B2 | easy2kcd:SW-TH_EC11XXXXXXXX | SW1, SW2 |
| 1 | Conn_01x01_Pin | Connector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_Vertical | J6 |
It measures 85.4 × 91.9 mm and has 2 copper layers, 1.6 mm thick.
14 parts, built around the SR420561N and EC11E15244B2. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the GodOfStrategy/Custom-PSU repository on GitHub, at the commit this page was made from: the board is Production/PCB 2/Custom_PSU_2.kicad_pcb and its schematic Production/PCB 2/Custom_PSU_2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask GodOfStrategy before reusing the design.

PaulBichl/vibepcb-smu
VibePCB example: 4-quadrant SMU (+-30 V / +-1 A, USB-C PD, Ethernet) designed with an LLM

Fefe-Nayz/kbhe-monorepo
TIPE 2026 - 75% Hall effect keyboard ISO layout - Monorepo: Firmware, PCB, 3D Models, PC Software

DCentralTech/HashHacker-Multi-Hashboard-Tester
HashHacker Multi-Hashboard Tester from D-Central, the ultimate open-source tool for repairing and testing your ASIC miners.



PaulBichl/VibePCB-bench-psu
USB-C PD (20 V) powered bench supply, 2 independent channels, 1.6-16.6 V / 3 A each, constant voltage / constant current, designed with VibePCB.

gustavorubim/field13-macropad
FIELD 13: DIY programmable macropad with joystick, rotary encoder, editable CAD, electronics, firmware, and visual build documentation.

Gutsplatt/Gutsplatt-Super-Selector
A super cool DIY custom macropad with OLED display!