Skip to the content
PCBKitNew board
4 layers56 × 51 mmPsu controller, the printed circuit board in 3D

Digital front-panel mod for Wanptek DC power supplies — replaces analog potentiometers with dual rotary encoders, MCP4725 DACs, and an OLED display.

Size
56 × 51 mm
Copper layers
4
Thickness
1.6 mm
Parts
11
Nets
20
Pads
79
Tracks, vias
102, 16
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
26 Aug 2026
Updated
26 Aug 2026

Overview

Psu controller is an open-source printed circuit board by igorzab-stud, from the igorzab-stud/wanptek_encoder repository on GitHub, published under the MIT licence. It is a 4-layer board of 56 × 51 mm with 11 parts on 20 nets, routed with 102 tracks and 16 vias.

It is built around the LM358P. Its parts include 3 connectors and 1 capacitor. It belongs with the lEDs and displays and audio and music boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

1

README

README.md

Wanptek PSU Digital Encoder & OLED Mod

A drop-in digital control upgrade for Wanptek bench DC power supplies that replace the stock, finicky analog potentiometers with digital rotary encoders, dual 12-bit DACs, and an OLED readout.


⚡ Overview

Stock Wanptek power supplies often ship with single-turn or coarse analog potentiometers that make dialling in exact voltage and current limits tedious and imprecise.

This mod replaces the analog control loop inputs with a microcontroller-driven interface, allowing precision stepping, fine/coarse toggling, quick voltage presets, and automatic EEPROM state recall.

Note on Hardware: This is my first-ever attempt at schematic and PCB design. While the layout might violate lots of standard PCB design rules, it is fully functional and tested on hardware. Contributions and layout improvements are welcome!


✨ Features

  • Dual Rotary Encoder Control: Independent adjustment knobs for voltage and current.
  • Coarse & Fine Modes:
    • Click the encoder buttons to switch between Coarse (1.0 V / 1.0 A) and Fine (0.05 V / 0.05 A) step increments.
    • Current status ([C] or [F]) shown directly on screen.
  • Configurable Voltage Presets:
    • Long-press the voltage encoder to enter the Preset Menu.
    • Cycle through and load or overwrite custom presets saved directly to EEPROM.
  • Auto-Save State: Automatically writes current setpoints to EEPROM 2 seconds after the last adjustment to prevent flash wear while preserving your settings across power cycles.
  • OLED Interface: Clear 1.3" 128×64 display showing setpoints, active modes, and preset menus.
  • Calibrated DAC Output: Linear scaling tailored for 0–32 V and 0–6.2 A output ranges.

🛠️ Hardware & Bill of Materials (BOM)

ComponentDescription / DetailsQuantity
MicrocontrollerArduino Nano (or compatible ATmega328P board)1
Display1.3" SH1106 OLED (128×64, SPI Interface)1
DACsMCP4725 12-Bit I2C DAC Breakout Modules (Address 0x60 and 0x61)2
EncodersStandard EC11 Rotary Encoders with Push Switch2
Passives & MiscPull-up resistors, decoupling capacitors, pin headers/connectors—
PCBCustom front-panel breakout PCB (Gerbers in /hardware)1

📐 Pinout Reference

Display (SPI)

  • D10 ➔ OLED_CS
  • D9 ➔ OLED_DC
  • D8 ➔ OLED_RST
  • D13 ➔ SCK / CLK
  • D11 ➔ MOSI / DIN

I2C DACs

  • A4 ➔ SDA (Shared bus, addresses configured via A0 pin: 0x60 for Voltage, 0x61 for Current)
  • A5 ➔ SCL

Encoders

  • Voltage: CLK ➔ D2, DT ➔ D3, SW ➔ D4
  • Current: CLK ➔ D5, DT ➔ D6, SW ➔ D7

🔧 Software & Dependencies

Compile and flash using the Arduino IDE. Required libraries:

  • Adafruit_GFX
  • Adafruit_SH110X
  • Adafruit_MCP4725
  • Wire (Standard Arduino core)
  • SPI (Standard Arduino core)
  • EEPROM (Standard Arduino core)

Calibration Note

The DAC transfer functions inside updatePSU() are mapped to linear curves based on measured output data:

$$\text{DAC}V = 129.15 \times V{\text{target}} + 27.0$$ $$\text{DAC}A = 594.10 \times I{\text{target}} + 424.4$$

Adjust these constants in the sketch if your specific Wanptek model or reference voltages differ.


📂 Repository Structure

text
├── firmware/
│   └── psu_controller/
│       └── psu_controller.ino
├── hardware/
│   ├── gerbers/
│   ├── psu_controller.kicad_pro
│   ├── psu_controller.kicad_sch
│   └── psu_controller.kicad_pcb
└── README.md

Parts

11
QtyValueFootprintReferences
2KY-040KY-040:KY-040-PORTEncoders, U4
2Screw_Terminal_01x02TerminalBlock:TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mmJ2, J3
2ZC576300ZC576300:MODULE_ZC576300A, V
1100nCapacitor_THT:C_Disc_D3.0mm_W1.6mm_P2.50mmC1
1Arduino_Nano_v3.xModule:Arduino_NanoA1
1Conn_01x07_PinConnector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalDisplay
1LM358PLM358P:DIP794W45P254L959H508Q8LM358
1outTerminalBlock:TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mmJ4

Questions

How big is the Psu controller PCB?

It measures 56 × 51 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Psu controller use?

11 parts, built around the LM358P. 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.

Where can I download the Psu controller KiCad files?

From the igorzab-stud/wanptek_encoder repository on GitHub, at the commit this page was made from: the board is hardware/psu_controller.kicad_pcb and its schematic hardware/psu_controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Psu controller design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers76.4 × 63.3 mmInfraRedGelUniversalDispenser, the printed circuit board in 3D

    InfraRedGelUniversalDispenser

    abdontroche/InfraRed_Gel_Universal_Dispenser

    This project pretends to be a open source device that could help people fighting against the COVID-19.

    20 parts5CC0-1.0
  • 4 layers186.9 × 129.8 mmBLDC 4, the printed circuit board in 3D

    BLDC 4

    ansh1113/e-bike-conversion-kit

    A 4-layer PCB-based e-bike conversion kit featuring an STM32-based VESC ESC, power management circuits, wireless throttle, GSM, GPS, and more.

    179 parts1
  • 2 layers81.3 × 85.7 mmCNCFia, the printed circuit board in 3D

    CNCFia

    coredump/CNCFia

    CNC Daughte Card for MCU based CNC controllers

    57 parts1
  • 2 layers94.1 × 121.9 mmSCH PowerSupply, the printed circuit board in 3D

    SCH PowerSupply

    UAA-F14/PCBs-Design

    Power electronics PCB coursework — SCR controller, buck converter, Class D amplifier, DC-AC inverter, and a protected power supply Resources

    47 parts1
  • 2 layers80 × 104.5 mmEKG generator, the printed circuit board in 3D

    EKG generator

    asliwaa/ECG-Simulator

    A custom hardware ECG/EKG simulator built with the XIAO ESP32-C6 and an MCP4725 DAC, designed to generate physiologically accurate heart signals.

    18 parts
  • 2 layers100 × 100 mmPCB Tester, the printed circuit board in 3D

    PCB Tester

    hschack/PCB_Tester_2side

    122 parts
  • 2 layers86.5 × 57.1 mmCONTROL PowerSupply, the printed circuit board in 3D

    CONTROL PowerSupply

    IKGB105/PCBs-POWER-ELECTRONICS

    Power electronics PCB coursework — SCR controller, buck converter, Class D amplifier, DC-AC inverter, and a protected power supply Resources

    27 parts
  • 2 layers99.5 × 85 mmWhistle synth, the printed circuit board in 3D

    Whistle synth

    jeffkaufman/emh-pcb

    138 parts