Skip to the content
PCBKitNew board
4 layers49.4 × 21.9 mmLuz, the printed circuit board in 3D

An ESPHome-capable USB-C Power Delivery trigger board prototype

Size
49.4 × 21.9 mm
Copper layers
4
Thickness
1.57 mm
Parts
65
Nets
78
Pads
205
Tracks, vias
250, 63
Pours
10
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
14 Nov 2023
Updated
26 Dec 2023

Overview

Luz is an open-source printed circuit board by rbaron, from the rbaron/luz repository on GitHub. It is a 4-layer board of 49.4 × 21.9 mm with 65 parts on 78 nets, routed with 250 tracks and 63 vias.

It is built around the ESP32-WROOM-32D, SI4909DY-VB and TPS54302, with the U261-241N-4BS2SS and AO3400A among its other parts. Its parts include 18 resistors, 13 capacitors, 5 ICs, 3 diodes and 2 transistors. It belongs with the power boards and the ESP32 boards of this library.

Main components

5

README

README.md

luz

An experiment in USB-C power delivery.

PCB render front

This repo contains printed circuit board fabrication files and firmware sample for a basic USB-C power delivery "trigger board" with an accompanying ESP32.

Hardware

The CYPD3177 IC is used to negotiate power contracts with USB-C power supplies, and communicates with the onboard ESP32 via I2C for control and monitoring.

Once the required power delivery contract is successfully negotiated, the ESP32 may control two MOSFET channels to switch power to two different loads. The original use case is to deliver 12 V @ 3 A to LED strips, but any load up to 3A and 20V may be used in principle.

Main Components

  • CYPD3177 USB-C PD controller
  • ESP32-WROOM-32
    • For this prototype I used this older module since I still have a bunch of them around.

Software

The CYPD3177 is configured during runtime via I2C. I implemented the cypd3177 component in an ESPHome fork (at rbaron/esphome/cypd3177).

In this repo there are sample yaml files under ./code/esphome that uses the cypd3177 as an external component.

To configure a power delivery contract, set up the cypd3177 component in ESPHome as for example:

yaml
cypd3177:
  interrupt_pin: GPIO23
  voltage: 9000 mV
  current: 1000 mA

USB-C Power Delivery Support & Maximum Power

The CYPD3177 supports USB-C PD 3.0, but unfortunately does not support Programmable Power Supply (PPS) contracts. The board is a prototype, mostly for learning, designed to handle a maximum of only 3 A.

USB-C PD 3.0 mandates support for a few standard fixed power profiles, namely providing 5 V, 9 V, 15 V and 20 V. Some USB-C PD sources may also support 12 V. Enabling logging for the cypd3177 component in ESPHome will show the power profiles supported by the source. For example:

text
16:08:41.416 -> [I][cypd3177.pdo:059]: Fixed PDO: 5000 mV, 3000 mA
16:08:41.416 -> [I][cypd3177.pdo:059]: Fixed PDO: 9000 mV, 3000 mA
16:08:41.416 -> [I][cypd3177.pdo:059]: Fixed PDO: 12000 mV, 2000 mA
16:08:41.416 -> [I][cypd3177.pdo:059]: Fixed PDO: 15000 mV, 2000 mA
16:08:41.416 -> [I][cypd3177.pdo:059]: Fixed PDO: 20000 mV, 1500 mA
16:08:41.416 -> [I][cypd3177.pdo:066]: Augmented SPR_PPS PDO: 3300 - 11000 mV, 3000 mA

Parts

65
QtyValueFootprintReferences
51kResistor_SMD:R_0402_1005MetricR1, R3, R5, R6, R15
51uCapacitor_SMD:C_0402_1005MetricC1, C4, C7, C10, C11
4100nCapacitor_SMD:C_0402_1005MetricC5, C6, C8, C22
410kResistor_SMD:R_0402_1005MetricR2, R12, R21, R22
410uCapacitor_SMD:C_0603_1608MetricC2, C3, C9, C12
4TestPointTestPoint:TestPoint_Pad_D1.5mmTP2, TP3, TP4, TP5
34.7kResistor_SMD:R_0402_1005MetricR7, R8, R9
2100kResistor_SMD:R_0402_1005MetricR10, R11
2470Resistor_SMD:R_0402_1005MetricR13, R14
2AO3400APackage_TO_SOT_SMD:SOT-23Q1, Q4
2PO3LED_SMD:LED_0603_1608MetricD1, D4
1
115VDiode_SMD:D_SOD-323D3
122kResistor_SMD:R_0402_1005MetricR16
147kResistor_SMD:R_0402_1005MetricR4
147uHfootprint:IND-SMD_L4.0-W4.0_SLS3DXXL1
1BOOTSnapeda:SW_B3U-1000PS1
1CYPD3177-24LQXQ_C2959321footprint:TQFN-24_L4.0-W4.0-P0.50-TL-EP2.8U2
1ESP32-WROOM-32DRF_Module:ESP32-WROOM-32DU5
1G***kibuzzard-655BB076kibuzzard-655BB076
1G***kibuzzard-658ADB24kibuzzard-658ADB24
1G***kibuzzard-655BB0B1kibuzzard-655BB0B1
1G***kibuzzard-655BBA49kibuzzard-655BBA49
1G***kibuzzard-655BBA6Dkibuzzard-655BBA6D
1G***kibuzzard-655BB485kibuzzard-655BB485
1G***kibuzzard-655BB98Bkibuzzard-655BB98B
1G***kibuzzard-655BB0BFkibuzzard-655BB0BF
1G***kibuzzard-658AE32Dkibuzzard-658AE32D
1G***kibuzzard-655BB97Ekibuzzard-655BB97E
1G***kibuzzard-658AE3F9kibuzzard-658AE3F9
1G***kibuzzard-655BB458kibuzzard-655BB458
1G***kibuzzard-655BB09Ekibuzzard-655BB09E
1G***kibuzzard-655BBA1Ekibuzzard-655BBA1E
1RSTSnapeda:SW_B3U-1000PS2
1SI4909DY-VBfootprint:SO-8_L4.9-W3.9-P1.27-LS5.9-BLU3
1Screw_Terminal_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4_1x04_P5.00mm_HorizontalJ2
1TPS54302Package_TO_SOT_SMD:SOT-23-6U4
1U261-241N-4BS2SSfootprint:USB-C-SMD_U261-241N-4BS2SSU1

The 64 most common of 65 parts.

Questions

How big is the Luz PCB?

It measures 49.4 × 21.9 mm and has 4 copper layers, 1.57 mm thick.

What parts does the Luz use?

65 parts, built around the ESP32-WROOM-32D, SI4909DY-VB, TPS54302 and U261-241N-4BS2SS. 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 Luz KiCad files?

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

Can I use the Luz design in my own project?

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

Similar boards

  • 2 layers78 × 44 mmEsp32lcd, the printed circuit board in 3D

    Esp32lcd

    cjheath/esp32lcd

    A development board for the ESP32 with a 2.4" touchscreen LCD

    30 parts3
  • 4 layers66.4 × 163.6 mmDucker Charger, the printed circuit board in 3D

    Ducker Charger

    Angelussss/Ducker-Charger

    an open source custom power bank

    278 parts20
  • 4 layers65.9 × 52.9 mmMotor shield, the printed circuit board in 3D

    Motor shield

    DCC-EX/EX-MotorShield8874

    Design files for the open source 5A Motor Shield

    114 parts12
  • 4 layers65 × 30 mmGripper hat, the printed circuit board in 3D

    Gripper hat

    nhnifong/stringman-pcbs

    PCBs used in the Stringman robot

    56 parts3
  • 2 layers50 × 67 mmCar, the printed circuit board in 3D

    Car

    le-flav-b/VEMAR

    Vehicle for Exploration, Mapping & Air-quality Recon 🪖

    94 parts1
  • 2 layersProt2, the printed circuit board in 3D

    Prot2

    serega3453/STM32_Init

    28 parts1
  • 4 layers40 × 40 mmShiroFPV Flight Controller, the printed circuit board in 3D

    ShiroFPV Flight Controller

    ShiroFPV/ShiroFPV_Flight_Controller_Collection

    Official repository for public ShiroFPV flight controller designs, encompassing fully verified productions as well as ongoing, untested hardware revisions.

    116 parts1CERN-OHL-S-2.0
  • 2 layers100 × 100 mmHydroponics reservoir controller, the printed circuit board in 3D

    Hydroponics reservoir controller

    bookofthefuture/hydroponics-pcb

    KiCad PCB designs for the two-tier IKEA hydroponics monitoring/control system

    82 parts