Skip to the content
PCBKitNew board
2 layers80.4 × 46 mmSmartCurtain, the printed circuit board in 3D

SmartCurtain

fedcr/SmartCurtain

SmartCurtain is an open-source, automated curtain controller designed for smooth, quiet, and reliable operation.

Size
80.4 × 46 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
42
Pads
150
Tracks, vias
465, 26
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Oct 2026
Updated
21 Oct 2026

Overview

SmartCurtain is an open-source printed circuit board by fedcr, from the fedcr/SmartCurtain repository on GitHub. It is a 2-layer board of 80.4 × 46 mm with 28 parts on 42 nets, routed with 465 tracks and 26 vias.

It is built around the ESP32-C3-WROOM-02-H4 and CH224K. Its parts include 4 ICs, 3 capacitors, 2 connectors and 1 transistor. It belongs with the home automation and IoT boards and the ESP32 and RISC-V boards of this library.

Main components

2

README

README.md

SmartCurtain

SmartCurtain is an open-source, automated curtain controller designed for smooth, quiet, and reliable operation. Built around the ESP32 microcontroller, it integrates stepper motor drive with stall detection, physical controls, Home Assistant integration via ESPHome/MQTT, and a modular 3D-printed transmission system.


Features

  • Microcontroller: ESP32-based core with Wi-Fi and Bluetooth connectivity.
  • Motor Control: TMC2209 silent stepper motor driver for ultra-quiet movement, customizable microstepping, and stall detection.
  • Local Control: Rotary encoder (EC11) with integrated push-button for local open/close and fine-tuning.
  • Smart Integration: Fully compatible with Home Assistant (ESPHome / MQTT) for scheduled routines, presence detection, and sunrise/sunset automation.
  • Hardware & Enclosure: Fully parametric 3D-printable parts designed in OpenSCAD with integrated cable routing, belt tensioning, and secure wall/track mounting.

Repository Structure

├── BOM.csv # Project Bill of Materials ├── JOURNAL.md # Build log and design development notes ├── PCB/ # KiCad design files, ERC/DRC reports │ ├── SmartCurtain.kicad_sch # Schematic file │ ├── SmartCurtain.kicad_pcb # PCB layout file │ └── Fabrication/ # Gerbers, drill files, Pick & Place, BOM ├── Print Files/ # 3D modeling source files and printable STLs │ ├── smartcurtain.scad # Parametric OpenSCAD master file │ └── STL/ # Ready-to-slice STL meshes └── SmartCurtain_firmware/ # Source code and Home Assistant integration ├── SmartCurtain_firmware.ino └── SmartCurtain_configuration.yaml


Hardware and Schematic

Schematic Overview

The board integrates power regulation, the ESP32 module, the TMC2209 driver stage, and connectors for peripherals (encoder, endstops/sensors, mmWave presence sensor).

schema pcb

PCB Layout and 3D Render

  • Layers: 2-layer FR4 design
  • Clearance & Trace Widths: Verified via KiCad DRC/ERC reports (see PCB/DRC.rpt and PCB/ERC.rpt)
Immagine 2026-10-19 223616

3D Printing and Mechanical Assembly

All 3D parts are modeled in OpenSCAD and exported to Print Files/STL/:

  • smartcurtain_base.stl and smartcurtain_lid.stl: Main electronics and motor enclosure.
  • smartcurtain_drive_pulley.stl and smartcurtain_idler_pulley.stl: Timing belt drive system.
  • smartcurtain_idler_bracket.stl and smartcurtain_idler_carriage.stl: Belt tensioner assembly.
  • smartcurtain_trolley.stl and smartcurtain_track_adapter.stl: Curtain track mounting and trolley interface.
  • smartcurtain_fit_test_coupon.stl and smartcurtain_pulley_coupon.stl: Quick test prints for verifying tolerances before full printing.
image

Recommended Print Settings

  • Material: PETG (recommended for heat and mechanical resistance)
  • Layer Height: 0.20 mm
  • Infill: 15% (Gyroid) (for the mechanical 100%)
  • Perimeters/Walls: 4 walls for mechanical rigidity

Firmware

  1. Open SmartCurtain_firmware/SmartCurtain_firmware.ino in Arduino IDE or PlatformIO.
  2. Install required dependencies (ESP32 board package, AccelStepper / TMCStepper).
  3. Configure your pin definitions matching SmartCurtain.kicad_sch.

Home Assistant Integration:

Import SmartCurtain_firmware/SmartCurtain_configuration.yaml into your ESPHome or Home Assistant configuration. Follow on-screen discovery to calibrate travel limits and assign entities.

image

Bill of Materials (BOM)

A complete breakdown of components, ratings, and part numbers can be found in 'BOM.csv' and 'PCB/Fabrication/SmartCurtain_BOM.csv'

Parts

28
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
24.7 kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder4.7 k, 4.7 k
2CCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC4, C6
2Screw_Terminal_01x04TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_HorizontalLight/Climate, RadarmmWave1
11 kΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder1 kΩ
110 kΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder10 kΩ
1100nFCapacitor_THT:C_Disc_D4.3mm_W1.9mm_P5.00mmC5
122 Ω - 47 ΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder47 Ω
1470 ΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder470 Ω
16.8 kΩResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder6.8 kΩ
1CH224KPackage_SO:SSOP-10-1EP_3.9x4.9mm_P1mm_EP2.1x3.3mmU2
1C_PolarizedCapacitor_THT:CP_Radial_D6.3mm_P2.50mmC_Polarized
1ESP32-C3-WROOM-02RF_Module:ESP32-C3-WROOM-02U1
1LD271LED_THT:LED_D5.0mm_IRGreyLD271
1Mini360_BuckConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ5
1PC817Package_DIP:DIP-4_W7.62mmU4
1Q_NPN_BCEPackage_TO_SOT_THT:TO-92L_InlineQ1
1RotaryEncoder_SwitchRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmEC11
1Screw_Terminal_01x02TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2-5.08_1x02_P5.08mm_HorizontalRadarmmWave
1StepperTerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-4-5.08_1x04_P5.08mm_HorizontalJ1
1TMC2209_StepStickModule:Pololu_Breakout-16_15.2x20.3mmU3
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12USBC

Questions

How big is the SmartCurtain PCB?

It measures 80.4 × 46 mm and has 2 copper layers, 1.6 mm thick.

What parts does the SmartCurtain use?

28 parts, built around the ESP32-C3-WROOM-02-H4 and CH224K. 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 SmartCurtain KiCad files?

From the fedcr/SmartCurtain repository on GitHub, at the commit this page was made from: the board is PCB/SmartCurtain.kicad_pcb and its schematic PCB/SmartCurtain.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the SmartCurtain design in my own project?

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

Similar boards

  • 2 layers56.5 × 47.2 mmElectrocardiograma, the printed circuit board in 3D

    Electrocardiograma

    Vike-n/ECG_Project

    KiCAD archives for ECG proyect

    76 parts
  • 2 layers45 × 25 mmEasy PD Sink, the printed circuit board in 3D

    Easy PD Sink

    openwch/ch32v003

    CH32V003 is an ultra-cheap RISC-V MCU with 2KB SRAM, 16KB flash, and up to 18 GPIOs that sells for under $0.10

    41 parts599
  • 6 layers100 × 120 mmAstra piNas, the printed circuit board in 3D

    Astra piNas

    jlcjak/astra_piNas

    Six-layer CM5 Lite dual-NVMe carrier with PCIe switch, Ethernet, microSD, USB-C PD and PoE. Review design; fabrication hold documented.

    176 parts30
  • 2 layers29.1 × 45.1 mmUSB GC2, the printed circuit board in 3D

    USB GC2

    Xenii1642/USB-GC2

    Meet the new generation of USB-C GameCube Power Board. Now compatible with both 12V and 15V chargers. Two voltages, twice the potential.

    23 parts24CERN-OHL-S-2.0
  • 4 layers91.7 × 66.8 mmPico expansion board, the printed circuit board in 3D

    Pico expansion board

    eamars/RaspberryPi-Pico-Motor-Expansion-Board

    A raspberry pi pico expansion board designed for OpenTrickler project

    68 parts18GPL-3.0
  • 2 layers14 × 100 mmPowerline USB C, the printed circuit board in 3D

    Powerline USB C

    Andreas-Dorfner/Powerline-USB-C

    Powerline is a small 3HP Front Entry USB-C eurorack power supply.

    22 parts16
  • 4 layers75.1 × 60.9 mmMain pcb, the printed circuit board in 3D

    Main pcb

    Xenii1642/Xii-Boy-Pocket

    Newer, Better, Thinner and Open-Source Xii-Boy

    52 parts15