Skip to the content
2 layers73 × 100 mm12V SmartSwitch 2panel, the printed circuit board in 3D

12V SmartSwitch 2panel

vintlabs/ESP32-PWM-Driver-Devkit5

ESP WROOM-32 DevKit with 8 2A PWM Drivers (5-15V)

Size
73 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
160
Nets
88
Pads
594
Tracks, vias
1,750, 356
Pours
6
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
16 Feb 2019
Updated
21 Mar 2020

Overview

12V SmartSwitch 2panel is an open-source printed circuit board by vintlabs, from the vintlabs/ESP32-PWM-Driver-Devkit repository on GitHub. It is a 2-layer board of 73 × 100 mm with 160 parts on 88 nets, routed with 1,750 tracks and 356 vias.

It is built around the CP2102N-A01-GQFN24, ESP32-WROOM-32 and MMBT2222A, with the DMG2305UX and SP0503BAHTG among its other parts. Its parts include 52 resistors, 36 transistors, 22 capacitors, 14 connectors and 10 diodes. It belongs with the home automation and IoT boards and the ESP32 boards of this library.

Main components

5

README

README.md

ESP32-PWM-Driver-Devkit

ESP32 Development kit with 8 PWM outputs that can be driven at 5-15V at up to 2A each

Board and Pinout:

Board Top and Pinout

The PWM driver board is powered by an ESP32 and features 8 PWM outputs that can power LED lighting at 5-15V at up to 2A each. It can also be used as a general-purpose ESP32 development kit.

The primary purpose of the design is to control LED lighting (like these: https://www.amazon.ca/gp/product/B00QN4X5MM/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1 I am not affiliated with this seller, but the LED strips are great!), however there may be many other uses, like controlling DC motors! The board can be powered by either USB or by connecting 5-15V to the power input connector (connecting both is fine!), however do note that to use the PWM outputs an external power source is strongly recommended, as otherwise it will try to use the power from the USB bus and likely would cause power/stability issues.

Schematic:

RevA: https://github.com/vintlabs/ESP32-PWM-Driver-Devkit/raw/master/ESP32-PWM-Driver-Devkit-RevA-schematic.pdf RevB: https://github.com/vintlabs/ESP32-PWM-Driver-Devkit/raw/master/ESP32-PWM-Driver-Devkit-RevB-schematic.pdf

Connecting via USB

Linux

If the device is not detected, you may need to add CONFIG_USB_SERIAL_CP210X=m to your kernel config:

text
Device Drivers --->
	USB Support --->
		USB Serial Converter Support --->
			<M>   USB CP210x family of UART Bridge Controllers  

If it's detected, you should see the following in /var/log/messages (may be syslog or other file depending on your distro):

text
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: new full-speed USB device number 35 using ehci-pci
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: Product: CP2102N USB to UART Bridge Controller
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: Manufacturer: VintLabs
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: SerialNumber: 0002
Dec 31 17:57:51 nautilus kernel: cp210x 1-2.4:1.0: cp210x converter detected
Dec 31 17:57:51 nautilus kernel: usb 1-2.4: cp210x converter now attached to ttyUSB0
Windows

See https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

Usage in Arduino environment

To use with Arduino, ensure that you have ESP32 boards added (if you have not, see https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/ for some good instructions), and then select VintLabs ESP32 DevKit in Tools->Board. (If you do not see it in the list, please make sure that the ESP32 core is updated)

Example code: git clone https://github.com/vintlabs/VintLabs-PWM-Arduino-Basic-Example.git

text
// PWM Example for VintLabs ESP32 PWM Driver DevKit
// Connect an LED light from PWM0 on the board to ground (if using a discrete LED use a current limiting series resistor!)

// Select the PWM output to use - you can use PWM0-PWM7 for the VintLabs boards, or simply specify the GPIO number
const int pwmOutput = PWM0;

// Set the PWM frequency
const int frequency = 10000;

// Set the LED channel. Note that this is not related to a pin number, but an arbitrary channel number from 0-7
const int ledChannel = 0;

// Set the resolution. This can be 8, 10, 12 or 15 bits
const int resolution = 12;


void setup() {
  // Basic PWM setup
  ledcSetup(ledChannel, frequency, resolution);

  // Attach the actual output to the channel
  ledcAttachPin(pwmOutput, ledChannel);

}

Parts

160
QtyValueFootprintReferences
341kResistor_SMD:R_0805_2012MetricR1, R1, R2, R2, R10, R10, R11, R11, R14, R14, R15, R15, R16, R16, R17, R17 +18
20MMBT2222APackage_TO_SOT_SMD:SOT-23Q3, Q3, Q4, Q4, Q11, Q11, Q12, Q12, Q13, Q13, Q16, Q16, Q17, Q17, Q18, Q18 +4
16DMG2305UXPackage_TO_SOT_SMD:SOT-23Q1, Q1, Q2, Q2, Q5, Q5, Q6, Q6, Q9, Q9, Q10, Q10, Q14, Q14, Q15, Q15
1010uCapacitor_SMD:C_0805_2012MetricC1, C1, C3, C3, C5, C5, C6, C6, C11, C11
80.1uCapacitor_SMD:C_0805_2012MetricC2, C2, C7, C7, C8, C8, C9, C9
810kResistor_SMD:R_0805_2012MetricR19, R19, R20, R20, R23, R23, R26, R26
62.2kResistor_SMD:R_0805_2012MetricR12, R12, R13, R13, R18, R18
6LEDLED_SMD:LED_0805_2012MetricD2, D2, D3, D3, D5, D5
4Conn_01x16_MaleConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalJ5, J5, J7, J7
4SW_Push12V-SmartSwitch:SW_TACTILE_PO21301SW1, SW1, SW2, SW2
4SolderJumper_2_BridgedJumper:SolderJumper-2_P1.3mm_Bridged2Bar_Pad1.0x1.5mmJP1, JP1, JP2, JP2
21N5819Diode_SMD:D_SOD-123D4, D4
21uCapacitor_SMD:C_0805_2012MetricC4, C4
222.1kResistor_SMD:R_0805_2012MetricR6, R6
247.5kResistor_SMD:R_0805_2012MetricR7, R7
247uCapacitor_SMD:CP_Elec_6.3x5.9C10, C10
2AP1117-33Package_TO_SOT_SMD:SOT-223-3_TabPin2U3, U3
2CP2102N-A01-GQFN24Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mmU1, U1
2Conn_01x02_MaleConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ2, J2
2Conn_01x06_MaleConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ4, J4
2Conn_01x09_MaleConnector_Wago:Wago_734-139_1x09_P3.50mm_VerticalJ6, J6
2ESP32-WROOM-3212V-SmartSwitch:ESP32-WROOM-32-Espressif-Symbol-Kicad-62379U2, U2
2LOGO12V-SmartSwitch:BT_logo_smG***, G***
2LOGO12V-SmartSwitch:halfleafG***, G***
2LOGO12V-SmartSwitch:WiFi_logoG***, G***
2SP0503BAHTPackage_TO_SOT_SMD:SOT-143D1, D1
2Screw_Terminal_01x0212V-SmartSwitch:SCREW TERMINAL BLOCK 3.5MM 2POSJ1, J1
2USB_B_Micro12V-SmartSwitch:USB_Micro-B_Amphenol_10118194-0001LF_HorizontalJ3, J3

The 154 most common of 160 parts.

More from vintlabs/ESP32-PWM-Driver-Devkit

1
  • 2 layers73 × 50 mm12V SmartSwitch, the printed circuit board in 3D

    12V SmartSwitch

    vintlabs/ESP32-PWM-Driver-Devkit

    ESP WROOM-32 DevKit with 8 2A PWM Drivers (5-15V)

    82 parts5

Similar boards

  • 4 layers65.1 × 70 mmESP32-Zip Panelized, the printed circuit board in 3D

    ESP32-Zip Panelized

    vintlabs/ESP32-Zip

    ESP32 Development Module compatible with Pi Zero cases (hardware)

    88 parts10GPL-3.0
  • 2 layers65 × 56 mmESP32-Pi, the printed circuit board in 3D

    ESP32-Pi

    singleboardsolutions/Obsidian-ESP32

    Design Files for Obsidian ESP32

    65 parts16
  • 2 layers25.2 × 59.4 mmEsp32-pcb, the printed circuit board in 3D

    Esp32-pcb

    krwc/doge32

    Yet another ESP32 PCB

    50 parts3
  • 2 layers90 × 80 mmVLAD, the printed circuit board in 3D

    VLAD

    icl-rocketry/VLAD-CanSat

    Repository Containing the hardware and firmware of VLAD, a stabby boi who will participate in the Mach-21 CanSat competition

    103 parts1
  • 2 layers44.3 × 46.3 mmCatear pcb, the printed circuit board in 3D

    Catear pcb

    TobleMiner/catear-pcb

    This repo contains the PCB for the Nekomimi project of @BenBE . It will be used to illuminate 3D printed catears.

    121 parts1
  • 2 layers95 × 95 mmBase controller, the printed circuit board in 3D

    Base controller

    cgbriggs99/InstrumentController

    Controller for an instrument panel. Interfaces with MSFS.

    41 partsEPL-2.0
  • 4 layers69.8 × 69.8 mmFreeEEG32, the printed circuit board in 3D

    FreeEEG32

    neuroidss/FreeEEG32-alpha1.0

    ALPHA1.0 TEST FAILED, USE NEW VERSION INSTEAD FreeEEG32 alpha1.0 32 channels mobile electroencephalography under GNU AGPL 24 bits, 4kSPS ADCs 4x AD7770 MCU STM32F427ZI WIFI ESP-12F (ESP8266) USB CP2102N Accel & hyro…

    217 parts39AGPL-3.0
  • 2 layers100 × 99.2 mmUsb serial interface panelized, the printed circuit board in 3D

    Usb serial interface panelized

    willemcvu/midi-solenoid-driver

    A set of PCBs to drive solenoids using MIDI data, for use in automating musical instruments.

    114 parts21MIT

Questions

How big is the 12V SmartSwitch 2panel PCB?

It measures 73 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the 12V SmartSwitch 2panel use?

160 parts, built around the CP2102N-A01-GQFN24, ESP32-WROOM-32, MMBT2222A and DMG2305UX. 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 12V SmartSwitch 2panel KiCad files?

From the vintlabs/ESP32-PWM-Driver-Devkit repository on GitHub, at the commit this page was made from: the board is 12V-SmartSwitch_2panel.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the 12V SmartSwitch 2panel design in my own project?

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