
02 Power Board
ad4363/LuX-ray-PCBs
A repository containing KiCad schematic and pcb files for a wireless radiation detector testing interface

Credit card-sized, USB-powered 4 quadrant source-measure unit hardware and firmware
USMU v10 is an open-source printed circuit board by joeltroughton, from the joeltroughton/uSMU repository on GitHub. It is a 4-layer board of 70 × 43 mm with 137 parts on 108 nets, routed with 1,010 tracks and 219 vias.
It is built around the GS8331-TR, ADS1115IDGS and DAC8571IDGKR, with the TPS65131RGET, H7650-45PR and ME6212C33M5G among its other parts. Its parts include 45 capacitors, 44 resistors, 14 ICs, 6 diodes and 3 connectors. It belongs with the power boards and the STM32 boards of this library.
μSMU is a small source-measure unit designed for the very low-cost electrical characterisation of photovoltaic cells.
Want to buy a pre-assembled and calibrated μSMU with USB and test leads? Grab one from Tindie or Undalogic.
SMUs are "4-quadrant" devices, meaning they can both source and sink current at both positive and negative voltages. This makes them very useful for semiconductor device characterisation - including LEDs, transistors and solar cells.
In photovoltaic research laboratories, a SMU is typically used to vary the voltage applied to an illuminated solar cell, whilst simultaneously measuring the current. This voltage sweep allows us to plot the solar cell's I-V characteristics, and calculate its light-to-power conversion efficiency.
SMUs are generalised pieces of test equipment, designed to be highly sensitive over vast current & voltage ranges. For example, the workhorse Keithley 2400 has a voltage range between 100 nV and 200 V, and a current range between 1 pA to 10 A. This is likely overkill for most research and education applications concerning solar cells, which tend to operate between 0-5 V and μA to mA. The μSMU doesn't intend to replace precision SMUs, rather to supplement them in cost-sensitive areas where such precision is not required.
The μSMU is a USB-powered SMU with a +/- 5 V voltage range and +/- 50 mA source/sink capability. The PCB is only 70mm x 43mm
The μSMU was originally inspired by Linear Technology's DC2591A evaluation board, which demonstrates an I2C address translator IC to interface up to 8 modules containing several I2C devices with an Arduino-style board. Somewhat consequentially, these boards also contain fantastic SMU circuits!
The voltage applied to the device-under-test (DUT) is supplied by a LT1970 opamp driven by a 16-bit DAC on the non-inverting input and a 2.048V reference on the inverting input. The current flowing through the DUT is measured by amplifying the voltage drop through a high-side 50 Ohm shunt resistor using a precision programmable gain amplifier. Both the DUT voltage and shunt resistor voltage drop are measured using a 16-bit ADC. The whole system is controlled using a STM32F072 microcontroller, which presents a USB virtual communications port for interfacing.
| Parameter | |
|---|---|
| Voltage range | -5 to +5 V |
| Voltage measure resolution | ~0.6 mV |
| Minimum voltage step size | <1 mV |
| Current limit | -50 to +50 mA |
| Current resolution | ~10 nA |
A free, browser-based I-V curve tracer for the μSMU is available from Undalogic here
A simple python package is available to interface with the μSMU and perform basic measurements.
You can install this package directly from PyPI:
pip install usmu_pyHere is a minimal script demonstrating how to initialise the SMU, set a voltage, measure it and the current, and then close the session.
from usmu_py.smu import USMU
def main():
# Open SMU on the specified port (e.g., 'COM3' or '/dev/ttyUSB0')
smu = USMU(port="COM3", baudrate=9600, command_delay=0.05)
try:
# Identify the SMU
idn = smu.read_idn()
print("IDN:", idn)
# Enable output and configure current limit
smu.enable_output()
smu.set_current_limit(20.0) # 20 mA current limit
# Set voltage and measure
voltage, current = smu.set_voltage_and_measure(1.0)
print(f"Set voltage: 1.0 V | Measured Voltage: {voltage:.3f} V, Current: {current:.6f} A")
# Disable output after testing
smu.disable_output()
finally:
smu.close()
if __name__ == "__main__":
main()CERN Open Hardware License Version 2 - Permissive (CERN-OHL-P-2.0).
GNU General Public Licence v3.0.

This work is licensed under a Creative Commons Attribution 4.0 International License.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 23 | 10k | Resistor_SMD:R_0603_1608Metric | R1, R2, R10, R11, R12, R13, R15, R17, R18, R19, R20, R21, R22, R24, R26, R27 +7 |
| 19 | 1uF | Capacitor_SMD:C_0603_1608Metric | C1, C10, C11, C13, C15, C17, C18, C19, C20, C22, C23, C24, C33, C35, C37, C38 +3 |
| 7 | 1k | Resistor_SMD:R_0603_1608Metric | R3, R4, R5, R7, R23, R25, R28 |
| 6 | 10nF | Capacitor_SMD:C_0603_1608Metric | C3, C14, C25, C40, C41, C43 |
| 6 | LOGO | LOGO | G***, G***, G***, G***, G***, G*** |
| 5 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C2, C7, C16, C28, C36 |
| 5 | 100 | Resistor_SMD:R_0603_1608Metric | R37, R38, R42, R43, R44 |
| 5 | 10uF | Capacitor_SMD:C_0805_2012Metric | C4, C6, C12, C27, C30 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_Pad_Via | H1, H2, H3, H4 |
| 4 | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1, JP2, JP3, JP4 |
| 3 | 47k | Resistor_SMD:R_0603_1608Metric | R33, R34, R35 |
| 3 | GS8331 | Package_TO_SOT_SMD:SOT-23-5 | U2, U7, U9 |
| 2 | 1nF | Capacitor_SMD:C_0603_1608Metric | C42, C44 |
| 2 | 22uF | Capacitor_SMD:C_0805_2012Metric | C26, C32 |
| 2 | 2pF | Capacitor_SMD:C_0603_1608Metric | C31, C34 |
| 2 | 330k | Resistor_SMD:R_0603_1608Metric | R14, R36 |
| 2 | 4.7uH | Inductor_SMD:L_Taiyo-Yuden_MD-3030 | L1, L2 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R6, R16 |
| 2 | B5819W | Diode_SMD:D_SOD-123 | D5, D6 |
| 2 | DNP | Capacitor_SMD:C_0805_2012Metric | C39, C45 |
| 2 | LED_Small | uSMU-simple_v1:E6C0606RGBC3UDA | D3, D4 |
| 2 | TestPoint | TestPoint:TestPoint_Pad_D1.0mm | TP4, TP5 |
| 1 | +10V | TestPoint:TestPoint_Pad_D1.0mm | +1 |
| 1 | -10V | TestPoint:TestPoint_Pad_D1.0mm | -1 |
| 1 | 10 | Resistor_SMD:R_0603_1608Metric | R41 |
| 1 | 200nF | Capacitor_SMD:C_0603_1608Metric | C29 |
| 1 | 200pF | Capacitor_SMD:C_0603_1608Metric | C21 |
| 1 | 2V048 Buf | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | 4V096 | TestPoint:TestPoint_Pad_D1.0mm | TP3 |
| 1 | 50 | Resistor_SMD:R_0603_1608Metric | R40 |
| 1 | ADS1115IDGS | Package_SO:TSSOP-10_3x3mm_P0.5mm | U1 |
| 1 | AO3401A | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | Amp Out | TestPoint:TestPoint_Pad_D1.0mm | AmpOut1 |
| 1 | DAC Out | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
| 1 | DAC8571IDGKR | Package_SO:VSSOP-8_3.0x3.0mm_P0.65mm | U11 |
| 1 | DUT | Connector_Coaxial:BNC_Amphenol_B6252HB-NPP3G-50_Horizontal | J3 |
| 1 | H7650-45PR | Package_TO_SOT_SMD:SOT-89-3 | U13 |
| 1 | LED | uSMU-simple_v1:E6C0606RGBC3UDA | D2 |
| 1 | LT1970 | uSMU-simple_v1:Linear_FE_TSSOP20 | U10 |
| 1 | MCP1501T-40E_CHY | Package_TO_SOT_SMD:SOT-23-6 | U8 |
| 1 | ME6212C33M5G | Package_TO_SOT_SMD:SOT-23-5 | U6 |
| 1 | PGA281 | Package_SO:TSSOP-16_4.4x5mm_P0.65mm | U14 |
| 1 | STM32F072C8Ux | Package_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mm | U3 |
| 1 | SWD | Connector_PinHeader_1.27mm:PinHeader_2x05_P1.27mm_Vertical_SMD | J1 |
| 1 | Status LED | uSMU-simple_v1:E6C0606RGBC3UDA | D1 |
| 1 | TPS65131RGET | Package_DFN_QFN:VQFN-24-1EP_4x4mm_P0.5mm_EP2.45x2.45mm_ThermalVias | U12 |
| 1 | TS321 | Package_TO_SOT_SMD:SOT-23-5 | U4 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | USB_C_Receptacle_USB2.0 | uSMU-simple_v1:TYPE-C-31-M-12 | J2 |
It measures 70 × 43 mm and has 4 copper layers, 1.6 mm thick.
137 parts, built around the GS8331-TR, ADS1115IDGS, DAC8571IDGKR and TPS65131RGET. 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.
From the joeltroughton/uSMU repository on GitHub, at the commit this page was made from: the board is Hardware/Version 10r1/uSMU_v10.kicad_pcb and its schematic Hardware/Version 10/uSMU_v10.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask joeltroughton before reusing the design.

ad4363/LuX-ray-PCBs
A repository containing KiCad schematic and pcb files for a wireless radiation detector testing interface

asinghani/mpw1-bringup
Attempts at recovering SKY130 MPW-ONE chips (December 2020 // March 2022)



chof747/kitchen-clock
This project is building a kitchen glock with the following functions:

vonmartins/ESP32CAM_Shield
Shield for ESP32-CAM: Li-ion Battery, Battery charger, Microphone and USB

