Skip to the content
PCBKitNew board
2 layers90 × 60 mmCC Load, the printed circuit board in 3D

Flexible programmable DC constant current/power load using Arduin Nano & custom PCB

Size
90 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
105
Nets
85
Pads
311
Tracks, vias
725, 89
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
29 Oct 2023
Updated
27 Jun 2025

Overview

CC Load is an open-source printed circuit board by AleksaHeler, from the AleksaHeler/Programmable-DC-Load repository on GitHub, published under the MIT licence. It is a 2-layer board of 90 × 60 mm with 105 parts on 85 nets, routed with 725 tracks and 89 vias.

It is built around the ATMEGA328P-AU, CH340C and IRLZ44N, with the SS34 among its other parts. Its parts include 43 resistors, 18 capacitors, 14 connectors, 7 ICs and 6 diodes. It belongs with the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

README.md

Programmable DC Load

Flexible programmable DC constant current/power load using Arduin Nano and a custom PCB.

Following some ideas from this YouTube playlist from Scullcom Hobby Electronics.

PCB design and schematic

Finished device in enclosure

Programming the ATmega328P

Setting the fuses

If you just want the same ones as used in a standard Arduino, you can find them in the boards.txt file:

text
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05

We will be using another Arduino as ISP, so we should first program it with given example code, then we can use avrdude option 'avrisp', and use the port number of that device. We can read the fuses, and check if conncections are ok with:

text
.\utils\avrdude-v8.0\avrdude.exe -c avrisp -p m328p -P com23 -b 19200 -U lfuse:r:-:i -U hfuse:r:-:i -U efuse:r:-:i -v

So for these default settings we would use the following command:

text
.\utils\avrdude-v8.0\avrdude.exe -c avrisp -p m328p -P com23 -b 19200 -U lfuse:w:0xFF:m -U hfuse:w:0xDE:m -U efuse:w:0x05:m -v

Where:

text
  -c <programmer>                          Specify programmer type.
  -p <partno>                              Required. Specify AVR device.
  -P <port>                                Specify connection port.
  -b <baudrate>                            Override RS-232 baud rate.
  -U <memtype>:r|w|v:<filename>[:format]   Memory operation specification.
  -v                                       Verbose output. -v -v for more.

More options info can be found here.

Burning the bootloader

To burn the bootloader, we will also be using Arduino as ISP, and in Arduino software just select burn bootloader after we select the board as Arduino Uno.

Flashing the program

???

Parts

105
QtyValueFootprintReferences
13100nCapacitor_SMD:C_1206_3216MetricC1, C2, C6, C7, C8, C9, C10, C11, C12, C15, C16, C17, C18
1010kResistor_SMD:R_1206_3216MetricR8, R10, R12, R15, R16, R21, R34, R35, R39, R42
7100RResistor_SMD:R_1206_3216MetricR22, R23, R24, R25, R26, R28, R36
64k7Resistor_SMD:R_1206_3216MetricR9, R11, R13, R14, R19, R20
50.2RResistor_SMD:R_1206_3216MetricR29, R30, R31, R32, R33
51kResistor_SMD:R_1206_3216MetricR17, R18, R27, R40, R43
5IRLZ44NPackage_TO_SOT_THT:TO-220-3_VerticalQ2, Q3, Q4, Q5, Q6
4MHMountingHole:MountingHole_3.2mm_M3_PadH1, H2, H3, H4
3470RResistor_SMD:R_1206_3216MetricR6, R7, R41
20RResistor_SMD:R_1206_3216MetricR2, R4
220pCapacitor_SMD:C_0805_2012MetricC13, C14
222uCapacitor_SMD:C_0805_2012MetricC4, C5
25VDiode_SMD:D_SOD-123D3, D6
25k1Resistor_SMD:R_0805_2012MetricR1, R3
2REDLED_SMD:LED_1210_3225MetricD2, D4
2SS34Diode_SMD:D_SMAD1, D5
10.1RResistor_THT:R_Axial_Power_L25.0mm_W9.0mm_P27.94mmR37
1100kResistor_SMD:R_1206_3216MetricR38
1100uCapacitor_SMD:CP_Elec_8x10.5C3
110kResistor_SMD:R_0805_2012MetricTH1
116MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
12N7002Package_TO_SOT_SMD:SOT-23Q1
147kResistor_SMD:R_1206_3216MetricR5
1ADC (INA219AIDR)Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU5
1ADC_06TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mmTP1
1ADC_07TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mmTP2
1ADR5040BRTZPackage_TO_SOT_SMD:SOT-23U7
1ATmega328P-APackage_QFP:TQFP-32_7x7mm_P0.8mmU4
1CH340CPackage_SO:SOIC-16_3.9x9.9mm_P1.27mmU3
1CONN_ENCODERConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ8
1CONN_EXT_CURR_SETConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ14
1CONN_FANConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1CONN_ICSP_SPIConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ12
1CONN_LEDConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10
1CONN_LOADConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1CONN_NTCConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ6
1CONN_OLEDConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ9
1CONN_PINSConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ13
1CONN_PWRConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ3
1CONN_PWR_LEDConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ4
1CONN_UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ11
1CONN_USBCConnector_USB:USB_C_Receptacle_G-Switch_GT-USB-7010ASVJ5
1CONN_V_SENSEConnector_PinHeader_2.54mm:PinHeader_1x01_P2.54mm_VerticalJ1
1DAC (MCP4716A0T-E/CH)Package_TO_SOT_SMD:SOT-23-6U6
1LM7805_TO220Package_TO_SOT_THT:TO-220-3_VerticalU1
1OPA4376Package_SO:TSSOP-14_4.4x5mm_P0.65mmU2
1PIN_04TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mmTP3
1RST_BTNButton_Switch_THT:SW_PUSH_6mmSW1
1TP_GNDTestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mmTP4

Questions

How big is the CC Load PCB?

It measures 90 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the CC Load use?

105 parts, built around the ATMEGA328P-AU, CH340C, IRLZ44N and SS34. 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 CC Load KiCad files?

From the AleksaHeler/Programmable-DC-Load repository on GitHub, at the commit this page was made from: the board is DC_Load_KiCAD/CC_Load.kicad_pcb and its schematic DC_Load_KiCAD/CC_Load.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the CC Load 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 layers204.5 × 113 mmSTM, the printed circuit board in 3D

    STM

    Noraiz963/Mini-PLC-

    Compact industrial mini PLC designed in KiCad

    139 parts1
  • 4 layers86 × 86 mmBMS, the printed circuit board in 3D

    BMS

    vadymtaranenko/ESP32-3S-BMS

    Prosty, niezawodny system zarządzania pakietami Li-Po 3S oparty na mikrokontrolerze ESP32. Układ komunikuje się po magistrali SPI.

    122 parts
  • 2 layers69.1 × 56.6 mmDFPLAYER PCB, the printed circuit board in 3D

    DFPLAYER PCB

    Erolctk/ATmega328P-DFPlayer-PCB

    Custom DFPlayer Mini PCB designed with KiCad.

    62 parts
  • 4 layers64.6 × 55.2 mmWhisker, the printed circuit board in 3D

    Whisker

    HeyPCB/whisker

    Drop-in controller for Petoi's Nybble robot cat running the stock OpenCat firmware: ATmega328P, PCA9685, MPU-6050, USB-C, 3 A buck, protected battery input. 4-layer KiCad 10 board plus printed cradle.

    118 partsCERN-OHL-S-2.0
  • 4 layers60.6 × 100 mmTheremin, the printed circuit board in 3D

    Theremin

    adeboni/eurorack

    This repository stores various eurorack module designs I've made

    110 parts1GPL-3.0
  • 2 layers151 × 118 mmOBQAS, the printed circuit board in 3D

    OBQAS

    diminDDL/OBQAS

    Open Battery Quantification and Analysis System

    204 parts1MIT
  • 2 layers100 × 45 mmDMX PWM LED Driver, the printed circuit board in 3D

    DMX PWM LED Driver

    tpanajott/DMX512_LedDimmer

    Wireless DMX512 controller with remote LED driver boards

    57 parts4
  • 2 layers97 × 50 mmH bridge, the printed circuit board in 3D

    H bridge

    Mohamed-U3/H-bridge-PCB

    H-bridge with MOSFETs and IR2110 designed with KiCAD

    52 partsMIT