Skip to the content
PCBKitNew board
4 layers192.5 × 80 mmPlugInDC Load, the printed circuit board in 3D

PlugInDC Load

janni0609/DC-Load

A programmable DC electronic load built on the Raspberry Pi Pico 2 (RP2350). It sinks a user-defined current from a DC source under test and measures voltage, current, power, capacity, and energy in real time on a…

Size
192.5 × 80 mm
Copper layers
4
Thickness
1.6 mm
Parts
525
Nets
226
Pads
1,159
Tracks, vias
1,902, 470
Pours
76
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 May 2026
Updated
10 Jun 2026

Overview

PlugInDC Load is an open-source printed circuit board by janni0609, from the janni0609/DC-Load repository on GitHub. It is a 4-layer board of 192.5 × 80 mm with 525 parts on 226 nets, routed with 1,902 tracks and 470 vias.

It is built around the TLV9152ID, ADS1115IDGS and AP63200WU, with the MCP9700-E/TT, 74LVC1G3157 and LM2776DBV among its other parts. Its parts include 178 resistors, 76 capacitors, 48 diodes, 24 ICs and 18 transistors. It belongs with the RP2040 boards of this library.

Main components

12

README

README.md

DC Electronic Load

A programmable DC electronic load built on the Raspberry Pi Pico 2 (RP2350). It sinks a user-defined current from a DC source under test and measures voltage, current, power, capacity, and energy in real time on a colour TFT display.

Hardware

ComponentPartInterface
MCURaspberry Pi Pico 2 (RP2350)—
DisplayILI9488 TFT 240×320SPI (GPIO 16/18/19/17/20)
DAC (current setpoint)DAC80501 16-bitI2C1 0x48
ADC (V + I measurement)ADS1115 16-bitI2C1 0x49
I/O expander (buttons/encoder)TCAL9539 16-bitI2C1 0x74
Temperature sensors3× MCP9700ADC (GPIO 26/27/28)
Fans2× PWMGPIO 2, 3 (25 kHz)
Beeper—GPIO 22

I2C1 runs on GPIO 14 (SDA) / GPIO 15 (SCL) at 1 MHz.

Board design

KiCad design files live in hardware/:

Each project includes the schematic, PCB layout, a schematic PDF, and a STEP model.

Specifications

ParameterRange
Input voltage0 – 100 V
Set current0 – 100 A
Under-voltage / CV setpoint (UVP)0 – 99.99 V
Max power (beeper threshold)1000 W

The DAC output (0–2.5 V) drives the current-control circuit: 2.5 V = 100 A full scale. The ADS1115 uses auto-ranging PGA for both channels, scaling 2.5 V → 100 V (voltage) and 2.5 V → 100 A (current).

Display Layout

Portrait 240×320, divided into sections:

text
┌──────────────────────────┐
│    DC ELECTRONIC LOAD    │  ← green = load ON, yellow = load OFF
├──────────────────────────┤
│ VOLTAGE          xx.xx V │
├──────────────────────────┤
│ CURRENT         x.xxx A  │
├──────────────────────────┤
│ POWER           xxx.xx W │
├──────────────┬───────────┤
│ CAPACITY x.xxx Ah │ x.xx Wh ENERGY │
├──────────────┬───────────┤
│ SET CURR x.x A │ SET UVP xx.xx V │  ← UVP turns red in CV mode
├──────────────┬───────────┤
│ TEMP  xx.x°C │ HH:MM:SS  │
└──────────────┴───────────┘

Controls

All buttons and the rotary encoder are read via the TCAL9539 I/O expander. Button behaviour is context-sensitive: the main screen, debug screen, and calibration screens each respond differently.

Main screen

InputFunction
Rotary encoderIncrement/decrement the selected digit of the active setpoint
P0.0 (encoder push)Toggle between editing SET CURR and SET UVP
P0.3Move cursor left
P0.4Move cursor right
P0.5Switch to debug screen
P0.6Reset elapsed timer and clear Ah/Wh accumulators
P0.7Toggle internal / external voltage sense
P1.0Load ON / OFF (blocked while OTP is active)

Debug screen

The debug screen is a navigable menu. P0.3/P0.4 move the selection, the encoder adjusts the highlighted item, and P0.0 (encoder push) activates it.

Menu itemFunction
I SENSEToggle internal / external current shunt (persisted to EEPROM)
VOLT CALEnter voltage calibration wizard
CURR CALEnter current calibration wizard
VIEW CALDisplay stored calibration tables
OTP TRIPSet over-temperature protection threshold with encoder (persisted)
UVP KpAdjust UVP PI proportional gain with encoder (persisted)
UVP KiAdjust UVP PI integral gain with encoder (persisted)

Calibration screen

InputFunction
Rotary encoderAdjust the entered reference value
P0.3 / P0.4Move digit cursor left / right
P0.0 (encoder push)Confirm step and advance
P0.5Cancel and return to debug screen

UVP / Constant-Voltage Mode

When SET UVP is non-zero and the load is on, a software PI controller monitors the measured voltage. If it drops below the UVP setpoint, the controller reduces the sink current to regulate voltage at that level (constant-voltage / CV mode). The SET UVP field turns red while CV mode is active.

CV mode exits with 0.5 V hysteresis to avoid chattering. The PI gains (Kp, Ki) are tunable from the debug screen and stored in EEPROM.

Over-Temperature Protection (OTP)

The OTP threshold (default 70 °C, adjustable 30–120 °C) is compared against the highest reading across all three MCP9700 sensors. When the threshold is exceeded:

  • The load is turned off immediately.
  • Five 500 ms beeps are sounded.
  • The load ON button is blocked until the temperature drops 5 °C below the threshold.

Fan Control

Fan speed is temperature-controlled using the highest reading across all three MCP9700 sensors:

  • Off below 30 °C
  • Linear ramp from 0–100 % between 30 °C and 50 °C
  • Full speed above 50 °C

Calibration

Both voltage and current channels support piecewise-linear calibration (4 points for voltage, 5 for current). The calibration wizard drives the load to each reference point, reads the raw ADC value, and prompts for the reference meter reading. Calibration data is stored in EEPROM and applied on every measurement via piecewiseLerp.

EEPROM layout

AddressContent
0Current shunt select (0x01 = external)
1Current cal valid marker (0xCA)
2Voltage cal valid marker (0xCA)
3–42Current cal: 5× raw + 5× user (10 floats)
43–74Voltage cal: 4× raw + 4× user (8 floats)
75OTP valid marker (0xCA)
76–79OTP threshold (float)
80UVP PI valid marker (0xCA)
81–84UVP Kp (float)
85–88UVP Ki (float)

Building

The project uses PlatformIO with the Arduino framework.

bash
# Build
pio run

# Upload
pio run --target upload

# Serial monitor
pio device monitor --baud 115200

Target board: rpipico2. Dependencies are fetched automatically (Bodmer/TFT_eSPI).

Parts

525
QtyValueFootprintReferences
731kResistor_SMD:R_0603_1608MetricR10, R11, R100, R101, R102, R108, R109, R111, R112, R113, R119, R120, R122, R123, R124, R130 +57
41100nCapacitor_SMD:C_0603_1608MetricC1, C3, C15, C16, C22, C23, C25, C26, C28, C29, C31, C32, C34, C35, C37, C38 +25
34M3MountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H10, H11, H12, H13, H14, H15, H16, H17, H18, H19, H20, H21, H22, H23 +18
281N4148WXDiode_SMD:D_SOD-323D1, D2, D15, D16, D17, D18, D19, D20, D21, D22, D23, D24, D25, D26, D27, D28 +12
2862kResistor_SMD:R_0603_1608MetricR28, R30, R39, R41, R105, R107, R116, R118, R127, R129, R138, R140, R149, R151, R160, R162 +12
1710kResistor_SMD:R_0603_1608MetricR6, R27, R38, R49, R60, R71, R82, R104, R115, R126, R137, R148, R159, R170, R172, R180 +1
16TPTestPoint:TestPoint_Pad_D1.0mmTP92, TP93, TP94, TP95, TP96, TP97, TP99, TP100, TP101, TP102, TP107, TP108, TP109, TP110, TP111, TP113
140,005Resistor_SMD:R_2512_6332MetricR12, R33, R44, R55, R66, R77, R88, R99, R110, R121, R132, R143, R154, R165
1410AFuse:Fuse_1206_3216MetricF1, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16
1410nCapacitor_SMD:C_0603_1608MetricC2, C24, C27, C30, C33, C36, C39, C42, C45, C48, C51, C54, C57, C60
14150Resistor_SMD:R_1206_3216MetricR8, R29, R40, R51, R62, R73, R84, R95, R106, R117, R128, R139, R150, R161
145.0SMDJ_1Diode_SMD:D_SMCD10, D11, D12, D13, D14, D44, D45, D46, D47, D48, D49, D50, D51, D52
14500Resistor_SMD:R_0603_1608MetricR5, R26, R37, R48, R59, R70, R81, R92, R103, R114, R125, R136, R147, R158
14BTestPoint:TestPoint_Pad_D1.0mmTP4, TP10, TP16, TP22, TP28, TP34, TP40, TP46, TP52, TP58, TP64, TP70, TP76, TP82
14CrrHTestPoint:TestPoint_Pad_D1.0mmTP5, TP11, TP17, TP23, TP29, TP35, TP41, TP47, TP53, TP59, TP65, TP71, TP77, TP83
14CurrLTestPoint:TestPoint_Pad_D1.0mmTP6, TP12, TP18, TP24, TP30, TP36, TP42, TP48, TP54, TP60, TP66, TP72, TP78, TP84
14CurrOTestPoint:TestPoint_Pad_D1.0mmTP2, TP8, TP14, TP20, TP26, TP32, TP38, TP44, TP50, TP56, TP62, TP68, TP74, TP80
14Int-TestPoint:TestPoint_Pad_D1.0mmTP1, TP7, TP13, TP19, TP25, TP31, TP37, TP43, TP49, TP55, TP61, TP67, TP73, TP79
14IntOTestPoint:TestPoint_Pad_D1.0mmTP3, TP9, TP15, TP21, TP27, TP33, TP39, TP45, TP51, TP57, TP63, TP69, TP75, TP81
14MJH6284LibEigen:MR30Q1, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15
14TLV9152Package_TO_SOT_SMD:SOT-23-8U3, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20
1110uCapacitor_SMD:C_0805_2012MetricC9, C10, C11, C13, C18, C19, C20, C21, C64, C77, C78
6RResistor_SMD:R_0603_1608MetricR166, R167, R173, R174, R177, R178
4TPTestPoint:TestPoint_Keystone_5005-5009_CompactTP103, TP104, TP105, TP106
310uCapacitor_SMD:C_1206_3216MetricC14, C62, C63
3DMG6968UPackage_TO_SOT_SMD:SOT-23-3Q16, Q17, Q18
3GNDTestPoint:TestPoint_Keystone_5005-5009_CompactTP85, TP89, TP90
3TEMPConnector_Wire:SolderWirePad_1x01_SMD_1.5x3mmJ9, J10, J11
2120Resistor_SMD:R_0603_1608MetricR19, R175
21N4007Diode_SMD:D_SOD-123FD41, D42
2300kResistor_SMD:R_0805_2012MetricR14, R15
27,5kResistor_SMD:R_0805_2012MetricR16, R17
2?Capacitor_SMD:C_0603_1608MetricC75, C79
2BAV99Package_TO_SOT_SMD:SOT-23-3D4, D5
2FANConnector:FanPinHeader_1x04_P2.54mm_VerticalJ6, J7
2LD1086D2TTRPackage_TO_SOT_SMD:TO-263-2U4, U5
2MCP9700Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ8, J14
1+12VTestPoint:TestPoint_Keystone_5005-5009_CompactTP86
1+3,3VTestPoint:TestPoint_Keystone_5005-5009_CompactTP116
1+5VTestPoint:TestPoint_Keystone_5005-5009_CompactTP88
1+6,8VTestPoint:TestPoint_Keystone_5005-5009_CompactTP87
1-5VTestPoint:TestPoint_Keystone_5005-5009_CompactTP115
1100kResistor_SMD:R_0603_1608MetricR168
1100pCapacitor_SMD:C_0603_1608MetricC17
1100uCapacitor_SMD:CP_Elec_8x10.5C8
110kPotentiometer_SMD:Potentiometer_Bourns_TC33X_VerticalRV1
110uInductor_SMD:L_APV_ANR8040L1
1150kResistor_SMD:R_0603_1608MetricR21
11N4148WSDiode_SMD:D_SOD-323D43
11uCapacitor_SMD:C_0603_1608MetricC67
11uCapacitor_SMD:C_0805_2012MetricC12
1200Resistor_SMD:R_0603_1608MetricR176
120kResistor_SMD:R_0603_1608MetricR22
13,5AFuse:Fuse_1206_3216MetricF3
1360Resistor_SMD:R_0603_1608MetricR20
174LVC1G3157Package_TO_SOT_SMD:SOT-363_SC-70-6U22
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU25
1AP63200WUPackage_TO_SOT_SMD:TSOT-23-6U7
1BSS138Package_TO_SOT_SMD:SOT-23-3Q2
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1CCapacitor_SMD:C_1206_3216MetricC7
1Conn_02x08_Odd_EvenConnector_IDC:IDC-Header_2x08_P2.54mm_VerticalJ13
1DAC80501Package_SO:VSSOP-10_3x3mm_P0.5mmU2
1Ex_Curr_SenseConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ1
1Heatsink_PadHeatsink:Heatsink_AAVID_573300D00010G_TO-263HS1
1INA290A2xDCKPackage_TO_SOT_SMD:SOT-353_SC-70-5U21
1Input+MountingHole:MountingHole_4.3mm_M4_DIN965_PadH3
1Input-MountingHole:MountingHole_4.3mm_M4_DIN965_PadH4
1LM2776Package_TO_SOT_SMD:SOT-23-6U6
1LMV331Package_TO_SOT_SMD:SOT-23-5U26
1NetTie_2NetTie:NetTie-2_SMD_Pad2.0mmNT1
1Power InputConnector_Phoenix_MC:PhoenixContact_MC_1,5_2-G-3.81_1x02_P3.81mm_HorizontalJ5
1RResistor_SMD:R_1206_3216MetricR18
1RaspberryPi_PicoModule:RaspberryPi_Pico_Common_UnspecifiedA1
1SMBJ12ADiode_SMD:D_SMBD3
1TLV9302xDPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU27
1TestPointTestPoint:TestPoint_Pad_D1.0mmTP91
1XT30Connector_AMASS:AMASS_XT30PW-M_1x02_P2.50mm_HorizontalJ12

Questions

How big is the PlugInDC Load PCB?

It measures 192.5 × 80 mm and has 4 copper layers, 1.6 mm thick.

What parts does the PlugInDC Load use?

525 parts, built around the TLV9152ID, ADS1115IDGS, AP63200WU and MCP9700-E/TT. 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 PlugInDC Load KiCad files?

From the janni0609/DC-Load repository on GitHub, at the commit this page was made from: the board is hardware/PlugInDC Load/PlugInDC Load.kicad_pcb and its schematic hardware/Front Panel/Front Panel.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PlugInDC Load design in my own project?

Its repository states no licence, so its author keeps all rights: ask janni0609 before reusing the design.

More from janni0609/DC-Load

1
  • 2 layers63.4 × 91.5 mmFront Panel, the printed circuit board in 3D

    Front Panel

    janni0609/DC-Load

    A programmable DC electronic load built on the Raspberry Pi Pico 2 (RP2350). It sinks a user-defined current from a DC source under test and measures voltage, current, power, capacity, and energy in real time on a…

    40 parts

Similar boards

  • 2 layers110 × 60 mmArduino Spot Welder, the printed circuit board in 3D

    Arduino Spot Welder

    KaeptnBalu/Arduino_Spot_Welder_V3

    This is the Kicad project for V3.1 The Arduino Board was not changed, only the Mosfet Board got a updgrade.

    74 parts207GPL-3.0
  • 2 layers35 × 20 mmT3pa loadcell mod v2, the printed circuit board in 3D

    T3pa loadcell mod v2

    foriequal0/t3pa-loadcell-mod

    Thrustmaster T3PA pedal load cell mod without a dead zone

    23 parts5
  • 4 layers230 × 152 mmSENTINEL TRM, the printed circuit board in 3D

    SENTINEL TRM

    ajisrawi/sentinel-uhf-radar

    Reference design of a two-face UHF early-warning phased-array radar: system sizing, MoM antenna simulation, seven KiCad PCB projects, Blender site model

    144 parts
  • 4 layers99.6 × 100 mmDualPreRegPowerSupply, the printed circuit board in 3D

    DualPreRegPowerSupply

    janni0609/2-Channel-PreReg-Powersupply

    A two-channel laboratory bench power supply, 0–36 V / 0–2 A per channel, fully isolated between channels. Each channel pairs a tracking switch-mode pre-regulator with a linear post-regulator, so it has the low output…

    379 parts
  • 2 layersOpenPowerDistribution, the printed circuit board in 3D

    OpenPowerDistribution

    ulikoehler/OpenPowerDistributor

    Open-hardware PCB to distribute DC 12V power to 12V / 5V / 9V & 24V consumers

    537 partsCC0-1.0
  • 4 layers82.8 × 47.3 mmBEEWATCH MK2, the printed circuit board in 3D

    BEEWATCH MK2

    Krishnawa/BEEWATCH

    ESP32 S3 Based smartwatch

    136 parts1
  • 2 layers95.9 × 90.2 mmEPS PCB Prototyping, the printed circuit board in 3D

    EPS PCB Prototyping

    mar5hvet/hs2-eps-pds

    Repository for EPS KiCad design files, including schematics, PCB layouts, and documentation.

    91 parts
  • 4 layersTrackball ball, the printed circuit board in 3D

    Trackball ball

    ntindle/trackball

    Ultimate Mouse: fully custom trackball with a free-spinning active ball (capacitive touch ring, nRF52810, inductive charging) and a dual-PMW3360 base (nRF52840, USB-C, HID + custom driver). No mechanical wheel.

    92 parts1