UsbSourceMeasure

BerkeleyHCI·PolymorphicBlocks·examples/UsbSourceMeasure/UsbSourceMeasure.kicad_pcb

UsbSourceMeasure PCB layout, top view — open source ESP32 board by BerkeleyHCI
Simulate this board

About the UsbSourceMeasure PCB

UsbSourceMeasure is an open source ESP32 PCB design by BerkeleyHCI, published on GitHub under the BSD-3-Clause license. It is a 4-layer board measuring 168 × 52 mm, with 310 components from 310 distinct parts.

Its main chip is the mcu.ic, from the ESP32 family. Other key parts include the vusb_sense.ic, reg_v5.ic, reg_3v3.ic, reg_v12.ic and convin_sense.ic. By type, the board carries 111 capacitors, 84 resistors, 41 ICs, 20 diodes, 15 connectors and 14 transistors.

From the project

A Python-based hardware description language for PCBs for higher-level (block-diagram / system-architecture level) PCB design through libraries of directly reusable subcircuit generators.

First unit: - J1: Molex 217179-0001 - J2: GCT USB4105-GF-A - High side transistor: ~NPN PHPT60410NYX~, NMOS SIR172ADP-T1-GE3 - Low side transistor: ~PNP PHPT60410PYX (exploded at ~3A)~, PMOS SQJ433EP-T1_GE3

Second unit: - D1, D2: white LEDs - U15, U16: CPC1106N - U20, U14, U18 (HV opamp): MC33171DT - U4, U6, U8, U10, U12: MCP6001T-I/OT

Main components on the UsbSourceMeasure

UsbSourceMeasure bill of materials (BOM)

310 components, 310 distinct parts.

QtyPartRefs
1
vusb_sense.ic
U1
1
reg_v5.ic
U2
1
reg_3v3.ic
U3
1
reg_v12.ic
U4
1
convin_sense.ic
U5
1
conv.buck_sw.driver.ic
U6
1
conv.boost_sw.driver.ic
U7
1
reg_analog.ic
U8
1
reg_vref.ic
U9
1
reg_vcontrol.ic
U10
1
reg_vcontroln.ic
U11
1
control.comp_source.ic
U12
1
control.comp_sink.ic
U13
1
control.off_sw.ic
U14
1
control.driver.high_gate.ic
U15
1
control.driver.low_gate.ic
U16
1
control.isense.ranges[0].sense_sw.ic
U17
1
control.isense.ranges[0].pwr_sw.ic
U18
1
control.isense.ranges[1].sense_sw.ic
U19
1
control.isense.ranges[1].pwr_sw.ic
U20
Show 290 more
QtyPartRefs
1
control.isense.ranges[2].sense_sw.ic
U21
1
control.isense.ranges[2].pwr_sw.ic
U22
1
control.vmeas.ic
U23
1
control.imeas.ic
U24
1
pd.ic
U25
1
mcu.ic
U26
1
usb_esd
U27
1
oled.lcd
U28
1
ioe_ctl.ic
U29
1
conv_ovp.comp.ic
U30
1
conv_latch.ic
U31
1
pass_temp.ic
U32
1
conv_temp.ic
U33
1
ioe_ui.ic
U34
1
spk_drv.ic
U36
1
dac.ic
U37
1
adc.ic
U38
1
vimeas_amps.ic
U39
1
cv_amps.ic
U40
1
ci_amps.ic
U41
1
cintref_amps.ic
U42
1
ramp.drv
Q1
1
ramp.ctl_fet
Q2
1
conv.buck_sw.low_fet
Q3
1
conv.buck_sw.high_fet
Q4
1
conv.boost_sw.low_fet
Q5
1
conv.boost_sw.high_fet
Q6
1
control.driver.high_fet
Q7
1
control.driver.low_fet
Q8
1
control.vclamp.Q1
Q9
1
control.vclamp.Q2
Q10
1
control.iclamp.Q1
Q11
1
control.iclamp.Q2
Q12
1
fan_drv.pre
Q13
1
fan_drv.drv
Q14
1
usb
J1
1
tp_err
J2
1
tp_int
J3
1
mcu.prog
J4
1
oled.device
J5
1
qwiic
J6
1
dutio
J7
1
fan
J8
1
spk
J9
1
tp_vcen
J10
1
tp_mv
J11
1
tp_mi
J12
1
outn
J13
1
outp
J14
1
outd
J15
1
fuse_vusb
F1
1
jlc_th.th1
H1
1
jlc_th.th2
H2
1
jlc_th.th3
H3
1
enc
SW1
1
dir
SW2
1
gnd
TP1
1
vusb_ramp
TP2
1
v5
TP3
1
v3v3
TP4
1
vconv
TP5
1
va
TP6
1
vref
TP7
1
vc+
TP8
1
vc-
TP9
1
i2c.scl
TP10
1
i2c.sda
TP11
1
prot_vusb
D1
1
prot_3v3
D2
1
reg_v12.rect
D3
1
conv.buck_sw.driver.boot
D4
1
conv.boost_sw.driver.boot
D5
1
prot_conv
D6
1
reg_vcontrol.rect
D7
1
control.err_source.diode
D8
1
control.err_sink.diode
D9
1
control.driver.clamp1
D10
1
control.driver.clamp2
D11
1
control.tvs_p
D12
1
control.tvs_n
D13
1
led.package
D14
1
rgbs.led[0].device
D15
1
rgbs.led[1].device
D16
1
rgbs.led[2].device
D17
1
rgbs.led[3].device
D18
1
rgbs.led[4].device
D19
1
rgbs.led[5].device
D20
1
filt_vusb
FB1
1
filt_vcontroln
FB2
1
dac_ferrite
FB3
1
reg_v5.power_path.inductor
L1
1
reg_3v3.power_path.inductor
L2
1
reg_v12.power_path.inductor
L3
1
conv.power_path.inductor
L4
1
reg_vcontrol.power_path.inductor
L5
1
vusb_sense.vs_cap
C1
1
ramp.cap_gd
C2
1
ramp.cap_gs
C3
1
cap_conv
C4
1
reg_v5.hf_in_cap
C5
1
reg_v5.boot_cap
C6
1
reg_v5.power_path.in_cap
C7
1
reg_v5.power_path.out_cap
C8
1
reg_3v3.hf_in_cap
C9
1
reg_3v3.boot_cap
C10
1
reg_3v3.power_path.in_cap.c[0]
C11
1
reg_3v3.power_path.in_cap.c[1]
C12
1
reg_3v3.power_path.out_cap
C13
1
reg_v12.power_path.in_cap
C14
1
reg_v12.power_path.out_cap
C15
1
reg_v12.cf
C16
1
convin_sense.vs_cap
C17
1
conv.power_path.in_cap.c[0]
C18
1
conv.power_path.in_cap.c[1]
C19
1
conv.power_path.in_cap.c[2]
C20
1
conv.power_path.in_cap.c[3]
C21
1
conv.power_path.in_cap.c[4]
C22
1
conv.power_path.in_cap.c[5]
C23
1
conv.power_path.in_cap.c[6]
C24
1
conv.power_path.out_cap.c[0]
C25
1
conv.power_path.out_cap.c[1]
C26
1
conv.power_path.out_cap.c[2]
C27
1
conv.power_path.out_cap.c[3]
C28
1
conv.power_path.out_cap.c[4]
C29
1
conv.power_path.out_cap.c[5]
C30
1
conv.power_path.out_cap.c[6]
C31
1
conv.power_path.out_cap.c[7]
C32
1
conv.buck_sw.driver.cap
C33
1
conv.buck_sw.driver.high_cap
C34
1
conv.boost_sw.driver.cap
C35
1
conv.boost_sw.driver.high_cap
C36
1
reg_analog.in_cap
C37
1
reg_analog.out_cap
C38
1
reg_vref.in_cap
C39
1
ref_rc.c
C40
1
reg_vcontrol.power_path.in_cap
C41
1
reg_vcontrol.power_path.out_cap
C42
1
reg_vcontrol.cf
C43
1
reg_vcontroln.cf
C44
1
reg_vcontroln.cout
C45
1
control.err_volt.cin
C46
1
control.err_source.cin
C47
1
control.err_sink.cin
C48
1
control.comp_source.vdd_cap
C49
1
control.comp_sink.vdd_cap
C50
1
control.off_sw.vdd_cap
C51
1
control.int.c
C52
1
control.driver.high_gate.vdd_cap
C53
1
control.driver.low_gate.vdd_cap
C54
1
control.driver.cap_in1
C55
1
control.driver.cap_in2
C56
1
control.driver.cap_in3
C57
1
control.cdiv
C58
1
control.isense.ranges[0].sense_sw.vdd_cap
C59
1
control.isense.ranges[1].sense_sw.vdd_cap
C60
1
control.isense.ranges[2].sense_sw.vdd_cap
C61
1
control.ifilt.c
C62
1
control.vmeas.vdd_cap
C63
1
control.imeas.vdd_cap
C64
1
control.snub_c
C65
1
pd.vdd_cap[0]
C66
1
pd.vdd_cap[1]
C67
1
mcu.vcc_cap0
C68
1
mcu.vcc_cap1
C69
1
mcu.en_pull.c
C70
1
oled.vcomh_cap
C71
1
oled.vdd_cap1
C72
1
oled.vdd_cap2
C73
1
oled.vcc_cap1
C74
1
oled.vcc_cap2
C75
1
oled_rc.c
C76
1
ioe_ctl.vdd_cap
C77
1
buck_rc.c
C78
1
boost_rc.c
C79
1
conv_ovp.comp.vdd_cap
C80
1
conv_latch.vdd_cap
C81
1
pass_temp.vdd_cap
C82
1
conv_temp.vdd_cap
C83
1
ioe_ui.vdd_cap
C84
1
rgbs.led[0].cap
C85
1
rgbs.led[1].cap
C86
1
rgbs.led[2].cap
C87
1
rgbs.led[3].cap
C88
1
rgbs.led[4].cap
C89
1
rgbs.led[5].cap
C90
1
fan_cap
C91
1
spk_drv.pwr_cap0
C92
1
spk_drv.pwr_cap1
C93
1
dac.vdd_cap[0]
C94
1
dac.vdd_cap[1]
C95
1
dac.out_cap[0]
C96
1
dac.out_cap[1]
C97
1
dac.out_cap[2]
C98
1
dac.out_cap[3]
C99
1
adc.avdd_cap_0
C100
1
adc.avdd_cap_1
C101
1
adc.dvdd_cap_0
C102
1
adc.dvdd_cap_1
C103
1
adc.vref_cap
C104
1
vcen_rc.c
C105
1
mv_rc.c
C106
1
mi_rc.c
C107
1
vimeas_amps.vdd_cap
C108
1
cv_amps.vdd_cap
C109
1
ci_amps.vdd_cap
C110
1
cintref_amps.vdd_cap
C111
1
vusb_sense.Rs
R1
1
ramp.div.top_res
R2
1
ramp.div.bottom_res
R3
1
reg_v5.fb.top_res
R4
1
reg_v5.fb.bottom_res
R5
1
reg_v5.en_res
R6
1
reg_3v3.fb.top_res
R7
1
reg_3v3.fb.bottom_res
R8
1
reg_3v3.en_res
R9
1
reg_v12.fb.top_res
R10
1
reg_v12.fb.bottom_res
R11
1
convin_sense.Rs
R12
1
conv.buck_sw.low_gate_res
R13
1
conv.buck_sw.high_gate_res
R14
1
conv.boost_sw.low_gate_res
R15
1
conv.boost_sw.high_gate_res
R16
1
ref_div.top_res
R17
1
ref_div.bottom_res
R18
1
ref_rc.r
R19
1
reg_vcontrol.fb.top_res
R20
1
reg_vcontrol.fb.bottom_res
R21
1
control.dmeas.r1
R22
1
control.dmeas.r2
R23
1
control.dmeas.rf
R24
1
control.dmeas.rg
R25
1
control.err_volt.rtop
R26
1
control.err_volt.rbot
R27
1
control.err_volt.rout
R28
1
control.err_volt.rfine
R29
1
control.err_source.rtop
R30
1
control.err_source.rbot
R31
1
control.err_sink.rtop
R32
1
control.err_sink.rbot
R33
1
control.int.r
R34
1
control.hvclamp
R35
1
control.amp.r1
R36
1
control.amp.r2
R37
1
control.driver.res.res[0]
R38
1
control.driver.res.res[1]
R39
1
control.driver.res.res[2]
R40
1
control.driver.high_res
R41
1
control.driver.low_res
R42
1
control.vdiv.top_res
R43
1
control.vdiv.bottom_res
R44
1
control.isense.ranges[0].isense
R45
1
control.isense.ranges[0].pwr_sw.res
R46
1
control.isense.ranges[1].isense
R47
1
control.isense.ranges[1].pwr_sw.res
R48
1
control.isense.ranges[2].isense
R49
1
control.isense.ranges[2].pwr_sw.res
R50
1
control.ifilt.rp
R51
1
control.ifilt.rn
R52
1
control.vmeas.rg
R53
1
control.imeas.rg
R54
1
control.vclamp.r
R55
1
control.snub_r
R56
1
control.iclamp.r
R57
1
mcu.en_pull.r
R58
1
led.res
R59
1
i2c_pull.scl_res
R60
1
i2c_pull.sda_res
R61
1
oled.iref_res
R62
1
oled_rc.r
R63
1
ramp_pull
R64
1
buck_rc.r
R65
1
boost_rc.r
R66
1
conv_ovp.ref_div.top_res
R67
1
conv_ovp.ref_div.bottom_res
R68
1
conv_ovp.comp_div.top_res
R69
1
conv_ovp.comp_div.bottom_res
R70
1
conv_en_pull
R71
1
comp_pull
R72
1
conv_sense.top_res
R73
1
conv_sense.bottom_res
R74
1
qwiic_pull.scl_res
R75
1
qwiic_pull.sda_res
R76
1
dut0_clamp
R77
1
dut1_clamp
R78
1
fan_drv.pull
R79
1
adc.avdd_res
R80
1
adc.dvdd_res
R81
1
vcen_rc.r
R82
1
mv_rc.r
R83
1
mi_rc.r
R84

UsbSourceMeasure design files

The KiCad project lives in the BerkeleyHCI/PolymorphicBlocks repository on GitHub; these links point at the commit this page was built from.

UsbSourceMeasure: common questions

What microcontroller does the UsbSourceMeasure use?

The UsbSourceMeasure is built around the mcu.ic, from the ESP32 family.

How big is the UsbSourceMeasure PCB?

The UsbSourceMeasure measures 168 × 52 mm, has 4 copper layers and is 2.63 mm thick.

How many components are on the UsbSourceMeasure?

310 components, from 310 distinct parts. The full bill of materials is listed on this page.

Where can I download the UsbSourceMeasure design files?

From the BerkeleyHCI/PolymorphicBlocks repository on GitHub, which has the KiCad layout; the links under Design files point to each one.

Can I use the UsbSourceMeasure design in my own project?

Yes, under the terms of its BSD-3-Clause license, which BerkeleyHCI chose for the repository.

Can I test firmware for the UsbSourceMeasure without the hardware?

Yes. HardLabs builds a simulation of the board from its netlist and BOM, so you can run and debug ESP32 firmware against it before you order a PCB.

More boards in PolymorphicBlocks

Similar boards