Skip to the content
2 layers57.1 × 58 mmSchematics, the printed circuit board in 3D

Small embeded project for controlling window blinds using ESP32 and stepper motor.

Size
57.1 × 58 mm
Copper layers
2
Thickness
1.6 mm
Parts
25
Nets
60
Pads
124
Tracks, vias
151, 2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Mar 2026
Updated
8 Sep 2026

Overview

Schematics is an open-source printed circuit board by KristjanPet, from the KristjanPet/Window-Blinds-Controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 57.1 × 58 mm with 25 parts on 60 nets, routed with 151 tracks and 2 vias.

It is built around the TMC2209SILENTSTEPSTICK, 74HC14 and SMBJ15A. Its parts include 8 resistors, 5 capacitors, 4 ICs, 3 connectors and 1 diode. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

3

README

Electronic/README.md

Electronics Hardware

This folder contains the PCB and electronics design files for the window blinds controller.

The electronics are built around an ESP32-S3 development board, a TMC2209 stepper motor driver, a 12 V to 5 V buck converter, input protection, button/sensor connectors, and dual-inverter Schmitt-trigger input paths.

Schematics

Main electronics

ComponentQtyValue / PartPurpose
ESP32-S3 development board1ESP32-S3-DEVKITC-1-N16R8VMain MCU, firmware, Wi-Fi, MQTT, GPIO control
Stepper driver1TMC2209 SilentStepStickStepper motor driver with UART configuration and DIAG/StallGuard output
Buck converter112 V to 3 V DC-DC buckGenerates 3 V supply from the 12 V input
Schmitt trigger174HC14Cleans three input signals with two inverter gates per signal
TVS diode1SMBJ15A12 V input transient protection
Polyfuse12 AInput overcurrent protection

Passive components

Component typeQtyValue
Capacitors4100 nF
Capacitor1470 µF
Resistors21 kΩ
Resistors310 kΩ
Resistors33.3 kΩ

Connectors

ConnectorQtyPurpose
2-pin JST-XH1Power input
4-pin JST-XH1External wiring / motor-driver related connection
3-pin JST-XH1External input buttons connection
3-pin JST-XH1NJK-5002C home sensor connection

Conditioned input logic

Each external input passes through two gates of the 74HC14. The two inversions cancel, so the ESP32-S3 sees the same logical polarity as the signal entering the first gate. The final gate is a 3.3 V push-pull output, so the firmware keeps the ESP32 internal pull resistors disabled.

InputESP32-S3 pinPre-Schmitt idlePre-Schmitt activeESP32 idleESP32 activeActivation edge
Up buttonGPIO12LOWHIGHLOWHIGHRising
Down buttonGPIO13LOWHIGHLOWHIGHRising
Home sensorGPIO14HIGHLOWHIGHLOWFalling

External hardware

The PCB is designed to work with the following external hardware:

PartNotes
12 V, 3 A power supply adapterMain power input for the controller and motor system
NEMA 17 stepper motor 17HS4401Stepper motor used to drive the blinds mechanism
GREATZT NJK-5002C Hall effect proximity sensorHome/reference sensor for calibration

Before choosing the motor and power supply, the weight and friction of the specific blinds should be checked. Heavier blinds, tight mechanisms, or higher-friction rope systems may require more torque, different gearing, or a stronger motor/driver setup.

Design notes

The current PCB uses development-board style modules for the ESP32-S3, TMC2209 SilentStepStick, and DC-DC buck converter.

This made the prototype easier to build and debug because those modules were available during development. If space is critical, these modules could be replaced with direct SMD implementations in a future PCB revision.

Possible future optimizations:

  • replace ESP32-S3 DevKit with the ESP32-S3 module (or any other not so overpowerd ESP) directly on the PCB
  • replace TMC2209 SilentStepStick with the bare TMC2209 IC and required support components
  • replace the buck converter module with an onboard SMD regulator circuit
  • reduce connector size or move connectors based on the final enclosure
  • optimize PCB shape for the mechanical case

Safety note

This board controls a motorized mechanism. Before installation, verify:

  • correct supply voltage and polarity
  • current rating of the power adapter
  • stepper motor current settings
  • fuse/protection behavior
  • connector wiring
  • home sensor behavior
  • motor direction
  • stall detection
  • mechanical end stops

Do not operate the blinds unattended until calibration, stall detection, and fault handling have been tested on the real mechanism.

Parts

25
QtyValueFootprintReferences
4100nFCapacitor_SMD:C_0402_1005Metric_Pad0.74x0.62mm_HandSolderC1, C2, C3, C7
310kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2, R3, R7
33.3kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R6
21kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1, R8
1470uFCapacitor_THT:C_Radial_D5.0mm_H7.0mm_P2.00mmC6
174HC14Package_DIP:DIP-14_W7.62mm_LongPadsU4
1Conn_01x03Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalJ3
1Conn_01x04_SocketConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ2
1DC-DC 12V-3V buckblinds_controller:DC-DC-Buck-converter-12V-5VU3
1ESP32-S3-DEVKITC-1-N16R8VPCM_Espressif:ESP32-S3-DevKitCU1
1Jack-DCConnector_JST:JST_XH_B2B-XH-A_1x02_P2.50mm_VerticalJ1
1Polyfuse 2AFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
1SMBJ15ADiode_SMD:D_SMBD5
1TMC2209_SILENTSTEPSTICKblinds_controller:MODULE_TMC2209_SILENTSTEPSTICKU2
1~Connector_JST:JST_XH_B3B-XH-A_1x03_P2.50mm_VerticalNJK-5002C1

The 23 most common of 25 parts.

Similar boards

  • 2 layers90.8 × 35.6 mmERCF easy brd, the printed circuit board in 3D

    ERCF easy brd

    Tircown/ERCF-easy-brd

    More informations on how to reset for flashing:\ https://wiki.seeedstudio.com/Seeeduino-XIAO/#enter-bootloader-mode

    28 parts195GPL-3.0
  • 2 layers92.5 × 62.5 mmDropGenPCB, the printed circuit board in 3D

    DropGenPCB

    harrislab-brown/DropGen

    DropGen uses a fluid reservoir and a piezoelectric buzzer to precisely and repeatably dispense small droplets on demand.

    25 parts12CC-BY-SA-4.0
  • 4 layers130.5 × 171 mmUniMixBase, the printed circuit board in 3D

    UniMixBase

    jarekkt/UniController

    This is a off-spin from my commercial controller for industrial ink printers. It is designed for pick & place machines controlled by OpenPnp

    157 parts6
  • 2 layers91.6 × 65 mmSCARA, the printed circuit board in 3D

    SCARA

    jobitjoseph/SCARA-Robot-Based-on-ESP32-C6

    SCARA Robot Based on ESP32-C6

    67 parts4
  • 2 layers185.7 × 101.9 mmTester circut, the printed circuit board in 3D

    Tester circut

    yazidta/Flying-Probe-Tester

    Automatic PCB Tester

    98 parts3
  • 4 layers102 × 102 mmController, the printed circuit board in 3D

    Controller

    Angelo13C/3d-printer

    Firmware, electronics, mechanics and control interface of a 3D printer

    97 parts2
  • 2 layers24.5 × 49.4 mmRoller blind controller, the printed circuit board in 3D

    Roller blind controller

    ItsRebaseTime/turbomansion

    Hello, welcome to the turbomansion repository.

    6 parts2Unlicense

Questions

How big is the Schematics PCB?

It measures 57.1 × 58 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Schematics use?

25 parts, built around the TMC2209SILENTSTEPSTICK, 74HC14 and SMBJ15A. 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 Schematics KiCad files?

From the KristjanPet/Window-Blinds-Controller repository on GitHub, at the commit this page was made from: the board is Electronic/schematics.kicad_pcb and its schematic Electronic/schematics.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Schematics design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).