Skip to the content
2 layers89.5 × 49 mmCircuit Board V2, the printed circuit board in 3D

ESP32-based controller for Aircon Vents with stepper motors.

Size
89.5 × 49 mm
Copper layers
2
Thickness
1.6 mm
Parts
15
Nets
54
Pads
128
Tracks, vias
205, 15
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
21 Aug 2020
Updated
12 Jun 2026

Overview

Circuit Board V2 is an open-source printed circuit board by Pierowheelz, from the Pierowheelz/ac-vent-controller repository on GitHub. It is a 2-layer board of 89.5 × 49 mm with 15 parts on 54 nets, routed with 205 tracks and 15 vias.

It is built around the TMC2209SILENTSTEPSTICK and TSR 1-2433E. Its parts include 6 ICs, 4 switches and 1 connector. It belongs with the robots and motor control boards and the ESP32 boards of this library.

Main components

2

README

README.md

Ducted Air Conditioner Vent Controller

This project uses an ESP32-based controller, stepper motors, TMC2209 (or similar) drivers and endstop switches (from a 3d printer kit) to control the circular Air Conditioner vents used in many ducted HVAC systems. Each board can control up to 4 vents (leave the stepper header empty and tweak the /AC_Vent/config.h to control fewer vents). Multiple boards can be utilised to control more vents, or for vents too far from one board.

Home Automation

This project is part of a larger ecosystem, designed to enable automation of vents based on the room temperatures, along with an App for manual control.

Parts Required

  • ESP32 Dev Board (NodeMCU-ESP32 DEVKITV1 - 30 pins - based on ESP-WROOM-32)
  • 3D Printer Kit (from ebay or Aliexpress)
    • 4x Nema 17 stepper motors + cables
    • 4x Nema 17 mounting brackets
    • 4x Stepper motors drivers - A4988 or DRV8825 or TMC2208 (for quieter operation)
    • 4x RAMPS 1.4 switch endstops + cables (Note, swap the trigger switch for a waterproof one for more reliable operation, but keep the switch PCB)
  • Order the PCB from the Gerber files (or custom-build with Perfboard 24 x 18 pins)
  • 4x 150mm Lead screws + copper nuts (4mm pitch ideal, but any will work)
  • DC-DC Buck convertor TRS2433 (or you can use an LM2596 set to 3.3v if DIYing the board)
  • DC power supply (8-35 V)
  • (optional) header-pin sockets for ESP32 and Stepper Drivers to allow quick removal/replacement
  • A handfull of M4 screws & nuts
  • Duct tape

Process

  1. Order the custom PCM from the Gerber files in the Circuit Board V2/ directory.
  2. Print 4x Motor Bracket, Motor Cover, Endstop Clip in PLA or PETG (or other hard-plastic).
  3. Print 4x Coupler, Damper and 8x End Holder in TPU (for vibration damping - PLA will work in a pinch though). Metal couplers from a 3d printer kit can also be used.
  4. Assemble the circuitboard per the KiCad schematic or using the silk screen guides.
  5. Set the ventNames, microStepping, WiFi parameters in the firmware (see AC_Vent/README_CONFIG.md for details).
  6. Compile and flash the firmware onto your ESP32 dev board using Arduino IDE.
  7. Bench test by connecting motors and endstop switches.
    • You may need to switch the red and black wires on your endstop switches (black should be at the edge of the board, and red in the middle).
  8. Connect the power supply to the high-voltage side of the buck convertor. This will power up the ESP32.
  9. Tune the stepper motor current limit (Try this guide: https://www.makerguides.com/a4988-stepper-motor-driver-arduino-tutorial/).
    • Using USB for power (do not plug in the power supply for this).
  10. On a computer, navigate to the IP Address of the device.
  11. Click to open one of the Vents.
    • It will first spin counter-clockwise to close the vent until the endstop switch is triggered, then clockwise until the limit position is reached.
    • Note: If the motor spins the wrong direction, simply unplug and reverse it's connector.
  12. Assemble components and install into vents. Tip: use Ethernet cable to extend leads as neccessary (I used RJ45 breakout modules but you could crimp connectors).

Note: There is no security or authentication in this system. Do not open up the port in your Router! For use on your internal network only.

Usage via Rest API

Get vents status: GET http://192.168.2.110/?&t=1

Sample return:

text
{
	"0": {
		"name": "Room #1",
		"pos": 30
	},
	"1": {
		"name": "Room #2",
		"pos": 60
	},
	"2": {
		"name": "Room #3",
		"pos": 100
	}
}

Open vent #1 to 100%: GET http://192.168.2.110/?a=6&t=1&m=0&d=100 Here a is the operating mode, where mode 6 corresponds to: open to ratio set by &d= (eg. ?d=050:open50%, ?d=000:close, ?d=100:open100%). Also, t is the response type (1 = JSON). And, m is the motor number (0-2).

The return format is identical to the 'get status' request.

Images

Note: Some photos are from the prototype.

CircuitBoard_V2

AllParts

Assembled

BoartTop

BoardRear

BoardAssembled

BoardAssembled2

Parts

15
QtyValueFootprintReferences
4SW_SPDTButton_Switch_THT:SW_Slide-03_Wuerth-WS-SLTV_10x2.5x6.4_P2.54mmSW1, SW2, SW3, SW4
4Stepper_Motor_bipolarConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalM1, M2, M3, M4
4TMC2209_SILENTSTEPSTICKESP32:MODULE_TMC2209_SILENTSTEPSTICKU1, U2, U3, U6
1Barrel_Jack_MountingPinConnector_BarrelJack:BarrelJack_HorizontalJ1
1DEVKIT_V1_ESP32-WROOM-32ESP32:MODULE_DEVKIT_V1_ESP32-WROOM-32U4
1TSR1-2433EConverter_DCDC:Converter_DCDC_TRACO_TSR1-xxxxE_THTU5

More from Pierowheelz/ac-vent-controller

1
  • 2 layers76 × 49 mmCircuit Board V2, the printed circuit board in 3D

    Circuit Board V2

    Pierowheelz/ac-vent-controller

    ESP32-based controller for Aircon Vents with stepper motors.

    11 parts

Similar boards

  • 2 layers80 × 80 mmUniBoard Xiao, the printed circuit board in 3D

    UniBoard Xiao

    Unimakers/UniWip-Docs-CDR2025

    UniWIP Docs for CDR2025

    107 partsMIT
  • 2 layers160.5 × 146.5 mmSchemav2, the printed circuit board in 3D

    Schemav2

    rayanyahiaoui13/24PowerLEDsController

    The goal of this system is to provide independent and precise control of a 24-LED matrix composed of high-power LEDs to independently illuminate 24 wells of a Greiner plate containing duckweed.

    146 parts1GPL-3.0
  • 2 layers59 × 74.8 mmN2k meteo gps s3 tht, the printed circuit board in 3D

    N2k meteo gps s3 tht

    titio72/n2k_router_arduino

    Integrated GPS, meteo, tachometer, and speed sensor for NMEA2000 networks

    45 parts1GPL-3.0
  • 4 layers72.5 × 39.7 mmFOC RP2350, the printed circuit board in 3D

    FOC RP2350

    totaldesaster/SimpleFOC-Serial-Driver

    Advanced dual BLDC driver based on the RP2350 and DRV8323S ICs, designed to be controlled from a trajectory controller over RS-485, RS-422 or TTL UART. Features a compact high power design with two stacked PCBs.

    68 parts1GPL-3.0
  • 4 layers99 × 146 mmCarte principale, the printed circuit board in 3D

    Carte principale

    Unimakers/CDR-2027

    Ce repo est un site de documentation réalisé par l'équipe des première et deusième années pré-ingénieur de l'école Unilasalle-Amiens, membre de l'association de robotique Unimaker, dans le cadre de leur participation à…

    156 parts1
  • 2 layers80.2 × 94.6 mmMANUEL ARGIBAYMOLINA ELECTRONICS, the printed circuit board in 3D

    MANUEL ARGIBAYMOLINA ELECTRONICS

    ManuelArgibay/Industrial-I-O-Controller

    Industrial 24V I/O controller featuring protected high-side and low-side outputs, multiplexed analog and digital inputs, and MCU-based control.

    89 parts
  • 4 layers70.5 × 109.9 mmCatch The Light, the printed circuit board in 3D

    Catch The Light

    NewCalBoy/2526_Maker_CatchTheLight

    Projet d'option Maker de SERAPHIN Bradley

    160 parts
  • 2 layers57.8 × 46 mmModul DPS, the printed circuit board in 3D

    Modul DPS

    Poky88/HAPCAN_Modul_RFID_CTECKA

    This repository contains complete hardware and software resources for the development and implementation of a new extension module for the HAPCAN home automation system.

    52 parts

Questions

How big is the Circuit Board V2 PCB?

It measures 89.5 × 49 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Circuit Board V2 use?

15 parts, built around the TMC2209SILENTSTEPSTICK and TSR 1-2433E. 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 Circuit Board V2 KiCad files?

From the Pierowheelz/ac-vent-controller repository on GitHub, at the commit this page was made from: the board is Circuit Board V2/Circuit Board V2.kicad_pcb and its schematic Circuit Board V2/.history/Circuit Board V2.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Circuit Board V2 design in my own project?

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