Skip to the content
PCBKitNew board
2 layers151.2 × 89.3 mmLoadShed, the printed circuit board in 3D

Off-grid 4-channel PWM load controller with regulated 12 V output from any 12–32 V battery. Sunrise/sunset + RTC scheduling, LiFePO₄ battery protection, dimming pots and an OLED. ATtiny3216 firmware + KiCad hardware. No WiFi, no cloud, no app.

Size
151.2 × 89.3 mm
Copper layers
2
Thickness
2 mm
Parts
94
Nets
56
Pads
257
Tracks, vias
345, 72
Pours
5
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
11 Jul 2026
Updated
26 Oct 2026

Overview

LoadShed is an open-source printed circuit board by DJM0, from the DJM0/LoadShed repository on GitHub, published under the MIT licence. It is a 2-layer board of 151.2 × 89.3 mm with 94 parts on 56 nets, routed with 345 tracks and 72 vias.

It is built around the ATTINY3216-SF, DS3231MZ/V+ and AO3400A, with the BS-06-B4AA002 among its other parts. Its parts include 24 resistors, 18 capacitors, 14 connectors, 7 diodes and 6 fuses. It belongs with the power and radio and wireless boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

4

README

hardware/README.md

LoadShed hardware

KiCad 9 project for the LoadShed PCB. Licensed under CERN-OHL-P v2.

PCB render

Files

text
loadshed.kicad_pro / .kicad_sch / .kicad_pcb   KiCad 9 project
loadshed-schematic.pdf                         Schematic export (browse without KiCad)
sym-lib-table / fp-lib-table                   Project library tables (see JLCImport note)
fabrication-toolkit-options.json               Fabrication Toolkit settings (JLCPCB)
production/
  gerbers_v1.2.zip                             Gerbers as fabricated (v1.2)
  bom.csv                                      BOM with LCSC part numbers
  positions.csv / designators.csv              Pick-and-place files
  netlist.ipc                                  IPC netlist
bom/ibom.html                                  Interactive HTML BOM

Component libraries (JLCImport)

Several parts (regulators, inductors, polyfuses, battery holder, buttons…) were pulled from JLCPCB/LCSC using the kicad-jlcimport plugin, which converts EasyEDA CAD data into a project-local JLCImport library. Because that converted data comes from EasyEDA/LCSC, its redistribution licence is unclear, so the JLCImport symbol/footprint/3D-model libraries are not included in this repo.

This matters less than it sounds:

  • KiCad embeds copies of every used symbol in the .kicad_sch and every footprint in the .kicad_pcb, so the project opens, edits, and fabricates fine without the libraries. Expect harmless "library not found" / "footprint not found in library" warnings in ERC/DRC, and missing 3D models for those parts in the 3D viewer.
  • To restore the libraries (for placing new instances or 3D rendering): install JLC Import from KiCad's Plugin and Content Manager, open this project, and import each LCSC part number from production/bom.csv. The plugin recreates JLCImport.kicad_sym, JLCImport.pretty/ and JLCImport.3dshapes/ in the project directory, where the committed sym-lib-table / fp-lib-table already point. (easyeda2kicad is a CLI alternative that does the same conversion.)

Design overview

  • Input: 12–32 V DC screw terminal, master fuse (F1), power switch. Sized for 12 V or 24 V battery banks; silkscreen says LiFePO₄ because that's what it was built for, but chemistry doesn't matter; set the voltage thresholds in the config tool to suit.
  • 12 V load rail: AP64502 synchronous buck (rated 5 A; run here at 3.5 A). All four output channels switch loads powered from this rail, so loads see a constant 12 V regardless of battery voltage. This regulator is the hottest part on the board (the silkscreen says so).
  • 3.3 V logic rail: AP63203 buck for the MCU, RTC, sensor and OLED.
  • Outputs: 4 × AO3400A N-channel MOSFETs, low-side switching, gate driven directly from the MCU (3.3 V logic-level), 100 kΩ pull-downs, 100 Ω gate resistors, 3 A polyfuse and indicator LED per channel. Screw terminals carry +12 V and the switched return.
  • MCU: ATtiny3216 (SOIC-20), UPDI on a 3-pin header, 20 MHz internal, no crystal needed.
  • RTC: DS3231MZ (SOIC-8, integrated MEMS resonator, ±5 ppm) with CR2032 backup holder.
  • Sensor: SHT4x on the I2C bus.
  • Front panel: 4 push buttons, 4 pots (3.3 V–GND, wiper to ADC), header for the 128×32 SSD1306 OLED.
  • Sensing: battery and 12 V rail via 100k/27k dividers into the ADC.

Input voltage

The silkscreen says LiFePO₄ IN (12–32 V). The technical ceiling is set by the smaller regulator: the AP63203 3.3 V buck accepts 3.8–32 V (the AP64502 12 V buck is good to 40 V). Two caveats above ~15 V:

  • The battery-sense divider (100k/27k) full-scales at ≈ 15.5 V, so voltage readout and battery-protection thresholds only work meaningfully on a 12 V bank as built. For 24 V, change the divider ratio and update VBAT_DIVIDER in the firmware's config.h.
  • The indicator LEDs use simple series resistors sized for 12 V-ish rails. Check their dissipation before running high input voltages continuously.

Known shortcomings (v1.2)

Candid notes for anyone considering a respin:

  • No relay channels. All four outputs are MOSFET/PWM. One or two dry-contact relays would have covered loads that don't share ground or need galvanic isolation.
  • No output clamping. There are no on-board flyback diodes or TVS on the MOSFET drains, so external flyback diodes are mandatory for inductive loads, including external relay coils (fit them at the load). A respin should add clamping per channel.
  • SOT-23 MOSFETs. The AO3400A is fine at a couple of amps but has no thermal headroom for sustained high-current PWM into long cable runs.
  • No reverse-polarity protection. The input fuse covers overcurrent only. A reversed battery would push a large fault current through the regulators' internal body diodes; the fuse should open quickly, but the regulators surviving the event is not guaranteed (and hasn't been tested). Connect it correctly.

For the record, v1.2 fits all of its designer's needs and there was never a reason for a second spin. A v2 wishlist, should anyone take one on: one or two dry-contact relay channels, per-channel clamping, input reverse-polarity protection, and selectable output sourcing (unregulated battery through the MOSFETs, or additional regulated rails such as 5 V routable to a channel).

Fabrication

Costs, assembly details and the offer of at-cost boards live in the main README. The mechanics:

  • Production files in production/ were generated with the Fabrication Toolkit KiCad plugin (settings committed in fabrication-toolkit-options.json).
  • bom.csv carries LCSC part numbers for every placed part; JLCPCB economic assembly places all SMD parts from it.
  • Hand-solder after assembly: screw terminals, buttons, pots, headers, power switch, OLED. Nothing fine-pitch.
  • Open bom/ibom.html in a browser for an interactive placement view.

Parts

94
QtyValueFootprintReferences
7100nFCapacitor_SMD:C_0603_1608MetricC1, C3, C4, C7, C11, C13, C14
7LEDLED_SMD:LED_0603_1608MetricD1, D2, D3, D4, D5, D6, D7
6100KResistor_SMD:R_0603_1608MetricR4, R8, R11, R14, R17, R20
51KResistor_SMD:R_0603_1608MetricR7, R10, R13, R16, R19
5PolyfuseJLCImport:1812L300_24SLERF2, F3, F4, F5, F6
4100RResistor_SMD:R_0603_1608MetricR9, R12, R15, R18
410uFCapacitor_SMD:C_1206_3216MetricC2, C12, C15, C21
447uFCapacitor_SMD:C_1210_3225MetricC16, C17, C18, C19
4AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4
4Conn_01x03_SocketConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ10, J11, J12, J13
4MountingHoleMountingHole:MountingHole_3.2mm_M3_DIN965_PadH1, H2, H3, H4
4R_PotentiometerPotentiometer_THT:Potentiometer_Alpha_RD901F-40-00D_Single_VerticalRV1, RV2, RV3, RV4
4SW_PushButton_Switch_THT:SW_PUSH_6mmSW3, SW4, SW5, SW6
222uFCapacitor_SMD:C_1206_3216MetricC5, C6
227KResistor_SMD:R_0603_1608MetricR5, R21
24K7Resistor_SMD:R_0603_1608MetricR2, R3
26K8Resistor_SMD:R_0603_1608MetricR1, R6
2OUT4TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ5, J7
110KResistor_SMD:R_0603_1608MetricR23
110nFCapacitor_SMD:C_0603_1608MetricC20
1140KResistor_SMD:R_0603_1608MetricR22
1200KResistor_SMD:R_0603_1608MetricR24
14.7µHJLCImport:0630CDMCCDS-4R7MCL1
15AFuse:Fuseholder_Blade_Mini_Keystone_3568F1
16.8µHJLCImport:0630CDMCCDS-6R8MCL3
1AP63203WU-7JLCImport:AP63203WU-7U1
1AP64502QSP-13JLCImport:AP64502QSP-13U6
1ATtiny3216-SPackage_SO:SOIC-20W_7.5x12.8mm_P1.27mmU3
1BATTTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ1
1BS-06-B4AA002JLCImport:BS-06-B4AA002BT2
1DS3231MZPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1OLEDConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ6
1OLED2Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ14
1OUT1TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ2
1OUT2TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ3
1OUT3TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalJ4
1PB3Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ9
1POWER SWCustom:T8013_ToggleSwitch_SPDT_1SW1
1SHT4xSensor_Humidity:Sensirion_DFN-4_1.5x1.5mm_P0.8mm_SHT4x_NoCentralPadU5
1UPDIConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ8

Questions

How big is the LoadShed PCB?

It measures 151.2 × 89.3 mm and has 2 copper layers, 2 mm thick.

What parts does the LoadShed use?

94 parts, built around the ATTINY3216-SF, DS3231MZ/V+, AO3400A and BS-06-B4AA002. 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 LoadShed KiCad files?

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

Can I use the LoadShed 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

  • 4 layers53 × 39 mmAvclan mockingboard rounded, the printed circuit board in 3D

    Avclan mockingboard rounded

    halleysfifthinc/AVCLAN-Mockingboard

    Emulate a CD Changer on a Toyota AVC LAN network

    43 parts65GPL-3.0
  • 2 layers30.7 × 34.3 mmModbusRtuSensorHub, the printed circuit board in 3D

    ModbusRtuSensorHub

    MichielVanwelsenaere/HomeAutomation.ModbusRtuSensorHub

    PCB with small footprint designed to act as a Modbus RTU slave.

    23 parts7MIT
  • 2 layers31.5 × 23.3 mmBLE thingy, the printed circuit board in 3D

    BLE thingy

    MarcelMG/BLE_thingy

    31 parts2
  • 2 layers50.8 × 38.1 mmEngine monitor, the printed circuit board in 3D

    Engine monitor

    alexanderenrique/smart_tbird

    Smart Thunderbird vehicle electronics — ESP32 nodes, alternator delay, display, and tooling.

    63 parts
  • 2 layers60 × 94 mmMcu, the printed circuit board in 3D

    Mcu

    gugray/InterGalacticReceiver

    Tune in to alien transmissions on a CRT screen! Shaders are involved.

    35 parts
  • 2 layers20 × 50.4 mmKoeklok Main, the printed circuit board in 3D

    Koeklok Main

    koenk/koeklok

    Simple modular clock (firmware, schematics, PCBs)

    25 parts