
12V SmartSwitch
vintlabs/ESP32-PWM-Driver-Devkit
ESP WROOM-32 DevKit with 8 2A PWM Drivers (5-15V)

ESP WROOM-32 DevKit with 8 2A PWM Drivers (5-15V)
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.

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.
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
If the device is not detected, you may need to add CONFIG_USB_SERIAL_CP210X=m to your kernel config:
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):
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 ttyUSB0See https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
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
// 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);
}| Qty | Value | Footprint | References |
|---|---|---|---|
| 34 | 1k | Resistor_SMD:R_0805_2012Metric | R1, R1, R2, R2, R10, R10, R11, R11, R14, R14, R15, R15, R16, R16, R17, R17 +18 |
| 20 | MMBT2222A | Package_TO_SOT_SMD:SOT-23 | Q3, Q3, Q4, Q4, Q11, Q11, Q12, Q12, Q13, Q13, Q16, Q16, Q17, Q17, Q18, Q18 +4 |
| 16 | DMG2305UX | Package_TO_SOT_SMD:SOT-23 | Q1, Q1, Q2, Q2, Q5, Q5, Q6, Q6, Q9, Q9, Q10, Q10, Q14, Q14, Q15, Q15 |
| 10 | 10u | Capacitor_SMD:C_0805_2012Metric | C1, C1, C3, C3, C5, C5, C6, C6, C11, C11 |
| 8 | 0.1u | Capacitor_SMD:C_0805_2012Metric | C2, C2, C7, C7, C8, C8, C9, C9 |
| 8 | 10k | Resistor_SMD:R_0805_2012Metric | R19, R19, R20, R20, R23, R23, R26, R26 |
| 6 | 2.2k | Resistor_SMD:R_0805_2012Metric | R12, R12, R13, R13, R18, R18 |
| 6 | LED | LED_SMD:LED_0805_2012Metric | D2, D2, D3, D3, D5, D5 |
| 4 | Conn_01x16_Male | Connector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_Vertical | J5, J5, J7, J7 |
| 4 | SW_Push | 12V-SmartSwitch:SW_TACTILE_PO21301 | SW1, SW1, SW2, SW2 |
| 4 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged2Bar_Pad1.0x1.5mm | JP1, JP1, JP2, JP2 |
| 2 | 1N5819 | Diode_SMD:D_SOD-123 | D4, D4 |
| 2 | 1u | Capacitor_SMD:C_0805_2012Metric | C4, C4 |
| 2 | 22.1k | Resistor_SMD:R_0805_2012Metric | R6, R6 |
| 2 | 47.5k | Resistor_SMD:R_0805_2012Metric | R7, R7 |
| 2 | 47u | Capacitor_SMD:CP_Elec_6.3x5.9 | C10, C10 |
| 2 | AP1117-33 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U3, U3 |
| 2 | CP2102N-A01-GQFN24 | Package_DFN_QFN:QFN-24-1EP_4x4mm_P0.5mm_EP2.6x2.6mm | U1, U1 |
| 2 | Conn_01x02_Male | Connector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_Vertical | J2, J2 |
| 2 | Conn_01x06_Male | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Vertical | J4, J4 |
| 2 | Conn_01x09_Male | Connector_Wago:Wago_734-139_1x09_P3.50mm_Vertical | J6, J6 |
| 2 | ESP32-WROOM-32 | 12V-SmartSwitch:ESP32-WROOM-32-Espressif-Symbol-Kicad-62379 | U2, U2 |
| 2 | LOGO | 12V-SmartSwitch:BT_logo_sm | G***, G*** |
| 2 | LOGO | 12V-SmartSwitch:halfleaf | G***, G*** |
| 2 | LOGO | 12V-SmartSwitch:WiFi_logo | G***, G*** |
| 2 | SP0503BAHT | Package_TO_SOT_SMD:SOT-143 | D1, D1 |
| 2 | Screw_Terminal_01x02 | 12V-SmartSwitch:SCREW TERMINAL BLOCK 3.5MM 2POS | J1, J1 |
| 2 | USB_B_Micro | 12V-SmartSwitch:USB_Micro-B_Amphenol_10118194-0001LF_Horizontal | J3, J3 |
The 154 most common of 160 parts.

vintlabs/ESP32-PWM-Driver-Devkit
ESP WROOM-32 DevKit with 8 2A PWM Drivers (5-15V)

vintlabs/ESP32-Zip
ESP32 Development Module compatible with Pi Zero cases (hardware)



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

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

cgbriggs99/InstrumentController
Controller for an instrument panel. Interfaces with MSFS.

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…

willemcvu/midi-solenoid-driver
A set of PCBs to drive solenoids using MIDI data, for use in automating musical instruments.
It measures 73 × 100 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask vintlabs before reusing the design.