Skip to content

About

Open hardware and ESP32-S3 firmware for a local 24 V window actuator controller with MQTT and Home Assistant integration.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

WindowMaster S3 Controller

Open hardware and ESP-IDF firmware for a 24 V window actuator controller. Built to replace the control board of a failed WindowMaster WCC 106 BT, driving two parallel WMX 804-1G250S 03 chain actuators on one motor line.

Release target: hardware v1.0, firmware v1.0.0. The assembled board runs firmware 1.0.0 after a verified OTA update from 0.6.0. Supervised acceptance of the changed motion behaviour is tracked separately in release status. This is an independent repair project, not a WindowMaster product or a certified window safety system.

Build and flash · Hardware · MQTT API · Operating limits

Populated v1.0 PCB with relays, terminal blocks and pinheaders

High-resolution PCB gallery: complete population, top, bottom and connector-side views, with the rendering recipe. Real board photographs document the original mainboard, the manufactured replacement PCB and relay bring-up.

Why this exists

The main chip on my original WCC 106 BT had an internal short circuit. I could not repair the board, and replacing the controller was expensive. The existing 24 V supply and window actuators still worked, so I built this replacement board.

It runs locally and uses MQTT for control and telemetry, with HTTP for LAN firmware updates. There is no vendor cloud, subscription or proprietary gateway to keep it working. I use Home Assistant; other systems can integrate through the documented MQTT API. A local WiFi network and MQTT broker are required for network control.

I am sharing the design, firmware and measurements so others can inspect, repair and adapt them. This is a personal project shared with the community, with no promise of commercial support or compatibility with every window installation.

Original WCC 106 BT mainboard Manufactured replacement, before manual assembly
Original mainboard replaced after an internal short circuit in its main chip Manufactured v1.0 with SMD parts fitted, before relays, terminals and pinheaders

The photo gallery also shows the back and powered relay bring-up. The CAD image above shows the complete intended population.

Features

  • ESP32-S3-WROOM-1-N8 on an 88 × 130 mm, two-layer PCB.
  • Two changeover relays reverse motor polarity; both released brake the motor.
  • Onboard 24→5 V buck, 3.3 V LDO, reverse-polarity MOSFET and current shunt.
  • Optional wired hold-to-run wall-button input, designed to work without WiFi or MQTT. Not physically tested: I do not use a wired switch in my installation.
  • Home Assistant MQTT cover, estimated position and target positioning.
  • Calibrated current-envelope obstacle stop, absolute overcurrent guard, end-switch inference, travel timeout and sliding 40 % duty-cycle budget.
  • External TPS3823 watchdog, HTTP OTA on a trusted LAN and 200 Hz travel traces.
  • Optional SHT4x and BMP390 environmental sensors on Qwiic.

Start here

  1. Read operating limits. The supplied calibration belongs to one installation; it is not a universal actuator profile.
  2. For an existing board, follow firmware setup.
  3. For a new board, use the hardware and manufacturing guide.
  4. Follow commissioning before unattended operation.

Manufacturing and cost

Five boards were ordered with top-side SMT assembly. JLCPCB did not fit the relays, screw terminals or pinheaders. These through-hole parts are fitted separately; the optional wall-switch terminal and headers are not needed for the owner's normal MQTT operation.

The order dated 2026-08-23 charged USD 28.26 for five PCBs and USD 137.57 for their PCBA, including the SMT parts: USD 165.83 total, or USD 33.17 per board. Shipping was shared with another project; manual parts and import charges are not accounted for in that figure. See the manufacturing record for the cost breakdown, ordered-parts list and production-file comparison.

Version identifiers

Hardware v1.0 is the first public hardware release. It was developed and manufactured under the internal identifier v2. The PCB's printed v2, controller-v2/ paths and fabrication filenames refer to that same hardware. They are retained so the sources can be matched to the manufactured board. This naming change does not change the circuit or firmware.

Firmware uses its own semantic version, currently 1.0.0. SOURCE_MANIFEST.json records both the public hardware version and the original fabrication revision.

Repository map

Path Purpose
hardware/controller-v2/ Current PCB, schematic, design data and manufacturing package
hardware/photos/ Cropped photographs of the original and replacement boards
firmware/controller-v2/ Current firmware, host tests, measured traces and tools
docs/ Commissioning, calibration, limitations, release evidence and historical notes
scripts/ Repository checks and clean community-source packaging
tests/ Tool and release-integrity regression tests
.github/ CI and contribution templates for the public repository
LICENSES/ Full license texts

The public repository is created from the reviewed source archive in dist/, using a separate Git history. Private development records and local configuration are excluded. Documentation, source comments and maintained descriptive notes are in English. Existing program/schema identifiers, CAD labels and original factory records retain their names for compatibility and traceability.

Development

Python 3.11+, a C11 compiler and Make are sufficient for the host checks:

python3 -m venv .venv
. .venv/bin/activate
python3 -m pip install -r requirements-dev.txt
python3 scripts/check.py

The firmware build uses ESP-IDF v5.4.4. The released PCB was exported with KiCad 10.0.1; generators are only needed when changing the design. See contributing, changelog and release procedure.

License and attribution

Hardware: CERN-OHL-W-2.0. Software: MIT. Documentation and measurement data: CC-BY-4.0. See LICENSE.md and NOTICE.md. By Patric Aeberhard · aeberhard.ai. Copyright © 2026 Patric Aeberhard. No affiliation or endorsement by WindowMaster.

About

Open hardware and ESP32-S3 firmware for a local 24 V window actuator controller with MQTT and Home Assistant integration.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages