Skip to the content
PCBKitNew board
2 layers48.3 × 50.8 mmElectronic load controller, the printed circuit board in 3D

Electronic load controller

ondras12345/electronic-load2

Digital control for XHDZ-FZ-2g electronic load

Size
48.3 × 50.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
63
Nets
53
Pads
175
Tracks, vias
356, 10
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
10 Nov 2024
Updated
14 Mar 2025

Overview

Electronic load controller is an open-source printed circuit board by ondras12345, from the ondras12345/electronic-load repository on GitHub, published under the MIT licence. It is a 2-layer board of 48.3 × 50.8 mm with 63 parts on 53 nets, routed with 356 tracks and 10 vias.

It is built around the ATMEGA8-16PC, H11L1 and ESD5Z5V0, with the BAV99, BCP56 and BSS138 among its other parts. Its parts include 20 resistors, 17 capacitors, 7 connectors, 4 ICs and 4 diodes. It belongs with the power boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

7

README

README.md

Electronic load

This repository contains hardware designs and firmware for my electronic load.

DIY digitally controlled electronic load

Hardware

3D view of assembled PCB 3D view of assembled PCB

This project is based on an analog electronic load PCB from Aliexpress: XHDZ-FZ-2g. Originally, I just put it in a box and used it as-is with a 10-turn potentiometer. However, then the pot failed, and I decided to upgrade it with digital control. The control loop is still analog utilising the original circuitry, but the reference signal is generated by a microcontroller instead of the potentiometer.

My electronic-load-controller PCB contains an ATmega8 microcontroller, a PWM DAC to generate the reference voltage, UART optoisolators for remote control, and circuitry for measuring the load voltage and current. It connects to the analog PCB via the original connectors with just one wire needing to be soldered to a non-standard pad on the board.

The user interface consists of an SSD1306 OLED display and a rotary encoder.

Space for improvement: I didn't spend much time designing the user interface and as a result, I had to use a small font that is hard to read from a distance.

Software

The firmware on the ATmega microcontroller performs several functions. It measures the voltage across the load, the load current, calculates the power loss and implements over-power protection, monitors the heatsink temperature and controls the cooling fan. It uses the DAC to generate the current setpoint signal for the analog board based on the value set by the user via the rotary encoder, and it implements a SCPI interface on the serial port for remote control capability.

SCPI commands

A text-based remote control interface is available on the serial port (9600 baud, 8N1).

The following table explains the individual command (v is a placeholder for an integer argument).

commanddescription
ISET vSet load current. E.g. ISET 1000 sets the current to 1A.
ISET?Get load current setpoint value in mA.
IGAIN vSettings: set conversion coefficient for current measurement.
IGAIN?Settings: get IGAIN value.
VGAIN vSettings: set conversion coefficient for voltage measurement.
VGAIN?Settings: get VGAIN value.
SPGAIN vSettings: set conversion coefficient for current setpoint.
SPGAIN?Settings: get SPGAIN value.
SPOFF vSettings: set conversion offset for current setpoint.
SPOFF?Settings: get SPOFF value.
DUTY?Get PWM DAC duty cycle value. Useful for debugging.
I?Get measured current in A.
V?Get measured voltage in V.
P?Get measured power in W.
TEMP?Get heatsink temperature in degrees C.
*BOOTLOADERJump to bootloader to allow updating firmware.
*SAVSave settings to EEPROM.
*RSTReset the microcontroller.

Calibration

Calibration is performed using SCPI commands on the serial interface. The goal is to make the load current and voltage readings accurate and to make the current setpoint match the actual load current.

TODO document calibration procedure.

Parts

63
QtyValueFootprintReferences
1110kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR4, R6, R7, R10, R11, R13, R14, R15, R18, R19, R20
7100nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C2, C3, C6, C14, C15, C17
510nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC8, C9, C10, C11, C12
41kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R5, R8
3Conn_01x03Connector_Molex:Molex_KK-254_AE-6410-03A_1x03_P2.54mm_VerticalJ4, J7, J8
3MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3
222pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC4, C5
2330Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3, R21
2Conn_01x04Connector_Molex:Molex_KK-254_AE-6410-04A_1x04_P2.54mm_VerticalJ1, J5
2ESD5Z5V0Diode_SMD:D_SOD-523D1, D6
2H11L1Package_DIP:DIP-6_W7.62mm_LongPadsU1, U2
2SolderJumper_2_BridgedResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderJP1, JP2
1100Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR17
110uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC16
116M-49S-SRCrystal:Crystal_HC49-U_VerticalY1
11N4007Diode_SMD:D_SMA_HandsolderingD5
11u / 25VCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC7
122kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR16
1330kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR12
1330nCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC13
1ATmega8-16PPackage_DIP:DIP-28_W7.62mmU3
1BAV99Package_TO_SOT_SMD:SOT-23D3
1BCP56Package_TO_SOT_SMD:SOT-223-3_TabPin2Q3
1BSS138Package_TO_SOT_SMD:SOT-23Q2
1BSS84Package_TO_SOT_SMD:SOT-23Q1
1Conn_01x02Connector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalJ2
1Conn_01x05Connector_Molex:Molex_KK-254_AE-6410-05A_1x05_P2.54mm_VerticalJ3
1LM7805_TO220Package_TO_SOT_THT:TO-220-3_VerticalU4
1SW_PushButton_Switch_THT:SW_PUSH_6mm_H4.3mmSW1
1Thermistor_NTCConnector_Molex:Molex_KK-254_AE-6410-02A_1x02_P2.54mm_VerticalTH1

Questions

How big is the Electronic load controller PCB?

It measures 48.3 × 50.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Electronic load controller use?

63 parts, built around the ATMEGA8-16PC, H11L1, ESD5Z5V0 and BAV99. 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 Electronic load controller KiCad files?

From the ondras12345/electronic-load repository on GitHub, at the commit this page was made from: the board is electronic-load-controller/electronic-load-controller.kicad_pcb and its schematic electronic-load-controller/electronic-load-controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Electronic load 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 layers166 × 105 mmPico synth sandbox, the printed circuit board in 3D

    Pico synth sandbox

    relic-se/PicoSynth_Sandbox-hardware

    Raspberry Pi Pico digital synthesizer board with I2S stereo audio i/o, MEMS microphones, MIDI i/o, a capacitive keybed, 1602 display, 2 rotary encoders, and LiPo battery. Designed for use with CircuitPython and synthio.

    184 parts26GPL-3.0
  • 2 layers24 × 57.8 mmWeather station, the printed circuit board in 3D

    Weather station

    mec-kon/weather_station

    A simple weather station hardware (pcb files) for recording temperature, humidity, pressure and airquality.

    73 parts3GPL-3.0
  • 4 layers100.4 × 83 mmComponent tester, the printed circuit board in 3D

    Component tester

    kitspace/component_tester

    A keychain version of the Mikrontroller.net AVR component tester

    79 parts1
  • 4 layers76.2 × 76.2 mmDodekaedri, the printed circuit board in 3D

    Dodekaedri

    e-xla/dodekaedri

    dodekaedrin muotoinen radio ":D" / dodecahedron shaped radio ":D"

    227 parts2
  • 2 layers90.2 × 61 mmElectricity meter, the printed circuit board in 3D

    Electricity meter

    ondras12345/electricity-meter

    An STM32-based datalogger for electricity meters with pulse LED

    95 partsMIT
  • 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 layers25.4 × 25.4 mmMidi in module, the printed circuit board in 3D

    Midi in module

    FrankBuss/riscv-challenge

    MIDI synthesizer for the RISC-V Design Challenge

    10 parts2BSD-2-Clause
  • 2 layers124.5 × 99.1 mmVetrnik power, the printed circuit board in 3D

    Vetrnik power

    ondras12345/vetrnik

    Electronics for heating water with power from a 2 kW wind turbine

    138 parts