Skip to the content
PCBKitNew board
2 layers36 × 72 mmHCP Bridge, the printed circuit board in 3D

🚧 WIP – not yet manufactured or tested. KiCad PCB (one per door) connecting Hörmann series 4 garage door operators (ProMatic/SupraMatic, BUS/RJ12) to Loxone via ESP32-S3 and Wi-Fi. Hardware only – intended to run the existing HCPBridgeMqtt firmware by Gifford47.

Size
36 × 72 mm
Copper layers
2
Thickness
1.6 mm
Parts
53
Nets
32
Pads
208
Tracks, vias
321, 66
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
14 Oct 2026
Updated
14 Oct 2026

Overview

HCP Bridge is an open-source printed circuit board by JonasE99, from the JonasE99/HCP-Bridge repository on GitHub. It is a 2-layer board of 36 × 72 mm with 53 parts on 32 nets, routed with 321 tracks and 66 vias.

It is built around the ESP32-S3-WROOM-1-N8R2, THVD1406DRL and DSS16, with the BSMD1206-020-48V, SM712 and SMAJ33CA among its other parts. Its parts include 16 resistors, 10 capacitors, 10 diodes, 3 ICs and 2 connectors. It belongs with the radio and wireless and interfaces and adapters boards and the ESP32 boards of this library.

Main components

8

README

README.md

HCP-Bridge – Hörmann series 4 garage doors on Wi-Fi / Loxone

⚠ Work in progress – rev 0.1 has not been manufactured or tested yet. Schematic and layout are complete and checked (ERC 0 errors, DRC 0 errors), but no board has been built or run on an operator so far. Build at your own risk; results of the first build will be added here.

A small board (one per door) that plugs into the BUS port (RJ12) of a Hörmann series 4 garage door operator (ProMatic 4, SupraMatic E/P 4). It acts as a UAP1-HCP expansion module towards the operator and exposes the door via Wi-Fi. Loxone talks to it over plain HTTP, no extra server needed (see below).

Firmware: This repository contains the hardware only. The board is meant to run the existing third-party open-source firmware HCPBridgeMqtt by Gifford47 (environment HCP_Giffordv2, provides web UI, HTTP API and MQTT). The board uses the same pins as the original ESP32-S3 boards, so the firmware runs unchanged. Please direct firmware questions to that project.

Status rev 0.1 (2026-10-14): ERC 0 errors, DRC 0 errors (4 warnings: footprint silkscreen at the board edge, trimmed by the manufacturer).

Board rev 0.1: top side left, bottom side right

Key data

Size36 × 72 mm, 2 layers, 1.6 mm, 2 × M3
Powerfrom the bus (24 V, approx. 20–40 mA) or USB-C (5 V)
RadioESP32-S3-WROOM-1-N8R2 (PCB antenna at the top edge, no copper underneath)
RS-485TI THVD1406, automatic direction control via TX (the firmware uses TX/RX only)
Protection200 mA PTC fuse, TVS SMAJ33CA, SM712 + 10 Ω on A/B, ESD protection on USB
RegulatorTI LMR51610 (4–65 V, 1 A) to 3.3 V, laid out following the TI layout guidelines
PinsRS-485 TX = GPIO17, RX = GPIO18, status LED = GPIO13 (as HCP_Giffordv2)

Reverse polarity and cable tolerant

RJ12 cables exist as straight and crossed versions, and the pin 1 side of the jack was derived from documentation. Reversed, +24 V would end up on GND and A/B would be swapped. Therefore:

  • Power goes through a bridge rectifier (4 × Schottky): polarity does not matter and the board is not damaged either way.
  • Solder jumpers A/B (JP1/JP2), default 1-2 (A = jack pin 4, B = pin 3).
  • JP3 "120R" (bus termination): leave open, close only if communication is unreliable.

Setting A/B – one measurement is enough: cable and jack can only swap the wires mirrored (1↔6, 2↔5, 3↔4), so power and data always flip together. With the bridge plugged in and the operator powered, measure on the bottom side at the solder pins of the RJ12 jack J1: red probe on the pin marked "+" (pin 5, outer pin), black probe on the pin marked "−" (pin 1, outer pin on the other end):

Reading at J1 (+ against −)JP1 and JP2
approx. +24 Vkeep at 1-2 (default)
approx. −24 Vresolder both to 2-3

The rule is also printed on the bottom side. Bus pinout at the operator according to HCPBridgeMqtt: 1/2 GND, 3 B−, 4 A+, 5/6 +24 V.

Folders

text
hardware/kicad/        KiCad 9 project HCPBridge.kicad_pro (schematic, PCB, own footprints)
hardware/fabrication/  schematic PDF, Gerber ZIP, BOM, LCSC order file, JLCPCB BOM + CPL, assembly drawing, ERC/DRC
docs/                  board render

Ordering (2 doors → 2 boards, plan a spare)

  • PCB: upload hardware/fabrication/HCPBridge-gerber.zip to JLCPCB (2 layers, 1.6 mm, lead-free HASL; 5 pcs is the minimum).
  • Parts: at lcsc.com open BOM Tool → Upload BOM File and upload hardware/fabrication/lcsc-order.xlsx (or lcsc-order.csv). When asked to assign the columns, choose LCSC Part Number → LCSC Part Number and Quantity → Quantity. Quantity is the quantity per board; enter the number of boards (e.g. 3 = 2 doors + 1 spare) as the order multiplier in the BOM tool. The column Total for 3 boards + spare is for checking only (it adds 5 spare pieces of each small 0603 part, which tend to get lost when hand soldering), do not assign it. LCSC rounds up to its minimum order quantities. bom.csv is the per-board list with reference designators. Solder jumpers and test points are copper only.
  • JLCPCB assembly (alternative to hand soldering): upload jlcpcb-bom.csv (BOM) and jlcpcb-cpl.csv (pick and place) in the PCB assembly step. Rotations and reference points were derived from the LCSC/EasyEDA footprints. Check D8, F1, L1 and U1 in the JLC placement preview: their EasyEDA data could not be compared (pin 1 of D8/U1 must match the marking on the board). J1 (RJ12) is a through-hole part; select it only if you also order through-hole assembly.
  • Optional: order a stencil from JLCPCB as well, it makes USB-C and the ESP32 module much easier.
  • Cable: RJ12 6P6C cable with all 6 wires populated (many phone cables only have 4!). Straight or crossed does not matter, the solder jumpers take care of it.

Assembly and first start

  1. Populate the regulator first (U1, L1, C1–C5, R1–R4, D7) and power it from USB-C: green LED on, 3.3 V across C4. Then the rest. Assembly drawing: hardware/fabrication/assembly.pdf.
  2. Flash the firmware with PlatformIO (guide: flashing_instructions.md), environment HCP_Giffordv2 (ESP32-S3, TX 17 / RX 18, LED 13, PSRAM). Connect USB-C to the PC; if the ESP32 is not detected: hold BOOT, press RESET.
  3. The bridge opens a hotspot; enter your Wi-Fi at http://192.168.4.1, then assign a fixed IP in your router. Set a password in the web UI (see Loxone).
  4. Unplug USB, plug the bridge into the BUS port of the operator with the RJ12 cable.
  5. Measure at J1 (bottom side, "+"/"−") and set the A/B jumpers accordingly (see above). Unplug the RJ12 cable before resoldering.
  6. Start a bus scan on the operator (otherwise it does not see the bridge): depending on the control board via menu 37 or by switching the last DIP switch ON → OFF. Guide: bus_scan_EN.md. The door state must then show up in the web UI.

Do not connect USB (PC) and the bus at the same time if PC and operator are earthed differently.

Loxone integration (HTTP, no MQTT)

The commands are simple GET requests. With a web password set, the bridge asks for basic auth (user admin); in Loxone use the address http://admin:<password>@<ip>.

Virtual output "Garage door 1", address http://admin:<pw>@192.168.x.y, commands:

CommandRequest on ON
Open/command?action=1
Close/command?action=0
Stop/command?action=2
Toggle (impulse)/command?action=8
Half open/command?action=4
Venting/command?action=3
Toggle light/command?action=5
Position (0–100)/command?action=7&position=<v> (analog)

Virtual HTTP input "Garage door 1 status", URL http://admin:<pw>@192.168.x.y/status, polling every 2–5 s. Command recognition:

ValueCommand recognitionMeaning
Position"currentPosition":\v0 = closed … 100 = open
State"state":\v0 open, 1 opening, 2 closed, 3 closing, 4 half open, 5/6 venting, 7 moving to half, 8 stopped
Light"light":\v1 = on (true)
Bus OK"valid":\v1 = operator responds

Gate block: set the Loxone "Gate" block to "subsequent control" and connect its outputs Op/Cl (or Tg) to the Open/Close (or Toggle) commands of the virtual output. Feedback comes from the HTTP input: end position open = state 0, end position closed = state 2, the position directly from currentPosition / 100. The exact inputs and outputs of the block are described in the Loxone documentation: https://www.loxone.com/enen/kb/gate/. Please double-check in Loxone Config; this mapping has not been tested on a real Miniserver yet.

Credits and sources

Parts

53
QtyValueFootprintReferences
5DSS16Diode_SMD:D_SOD-123D2, D3, D4, D5, D6
4100nCapacitor_SMD:C_0603_1608MetricC3, C6, C8, C9
410kResistor_SMD:R_0603_1608MetricR10, R11, R12, R13
322u 25VCapacitor_SMD:C_1206_3216MetricC4, C5, C7
210RResistor_SMD:R_0603_1608MetricR5, R6
21kResistor_SMD:R_0603_1608MetricR4, R14
22u2 100VCapacitor_SMD:C_1206_3216MetricC1, C2
24k7Resistor_SMD:R_0603_1608MetricR7, R8
25k1Resistor_SMD:R_0603_1608MetricR15, R16
2M3MountingHole:MountingHole_3.2mm_M3H1, H2
1100kResistor_SMD:R_0603_1608MetricR1
1120RResistor_SMD:R_0603_1608MetricR9
1120RJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP3
11uCapacitor_SMD:C_0603_1608MetricC10
1200mAFuse:Fuse_1206_3216MetricF1
122k1 1%Resistor_SMD:R_0603_1608MetricR3
122uHHCPBridge:L_Sunlord_SWPA5040SL1
169k8 1%Resistor_SMD:R_0603_1608MetricR2
1A selectJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP1
1B selectJumper:SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mmJP2
1BOOTButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW2
1ESP32-S3-WROOM-1-N8R2RF_Module:ESP32-S3-WROOM-1U3
1ESP_RXD0TestPoint:TestPoint_Pad_D1.5mmTP2
1ESP_TXD0TestPoint:TestPoint_Pad_D1.5mmTP1
1GNDTestPoint:TestPoint_Pad_D1.5mmTP3
1LMR51610XDBVRPackage_TO_SOT_SMD:SOT-23-6U1
1RESETButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1RJ12 HCP busHCPBridge:RJ12_Molex_95501-2661_HorizontalJ1
1SM712Package_TO_SOT_SMD:SOT-23D8
1SMAJ33CADiode_SMD:D_SMAD1
1THVD1406DRPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1USB-CConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J2
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6D10
1blueLED_SMD:LED_0603_1608MetricD9
1greenLED_SMD:LED_0603_1608MetricD7

Questions

How big is the HCP Bridge PCB?

It measures 36 × 72 mm and has 2 copper layers, 1.6 mm thick.

What parts does the HCP Bridge use?

53 parts, built around the ESP32-S3-WROOM-1-N8R2, THVD1406DRL, DSS16 and BSMD1206-020-48V. 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 HCP Bridge KiCad files?

From the JonasE99/HCP-Bridge repository on GitHub, at the commit this page was made from: the board is hardware/kicad/HCPBridge.kicad_pcb and its schematic hardware/kicad/HCPBridge.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the HCP Bridge design in my own project?

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

Similar boards

  • 4 layers57.2 × 179.7 mmOptical, the printed circuit board in 3D

    Optical

    gustebeast/public-steel-guitar

    A pedal steel guitar you can build yourself, from parts anyone can buy.

    287 partsCERN-OHL-S-2.0
  • 4 layers119 × 79 mmLuxdmx, the printed circuit board in 3D

    Luxdmx

    tombueng/LuxDMX

    Open-source Art-Net / sACN (E1.31) → DMX512 gateway for ESP32 / ESP32-S3 / Ethernet. Live web UI shows all 512 channels in real time, flags console conflicts, and drives galvanically-isolated DMX.

    97 parts97
  • 2 layers50 × 49 mmLisn, the printed circuit board in 3D

    Lisn

    PetteriAimonen/tem-cell

    DIY TEM cell design for EMC measurements

    36 parts41CC-BY-4.0
  • 4 layers90 × 95 mmWiegand bridge, the printed circuit board in 3D

    Wiegand bridge

    EdgeCoil/wiegand-bridge

    ESP32-S3 Wiegand reader bridge for Home Assistant: 4-layer board, BOM and ESPHome firmware.

    197 parts1
  • 4 layers38 × 64 mmAk display 38x64 SPLIT POWER CANDIDATE, the printed circuit board in 3D

    Ak display 38x64 SPLIT POWER CANDIDATE

    LeeSpo/portable-display-epass-EVT1-minboot-r1

    当前自研硬件为 38 × 64 mm、四层 split-power 工程候选,尚未放行生产。

    147 parts
  • 2 layers64.6 × 36.9 mmNavien latest, the printed circuit board in 3D

    Navien latest

    htumanyan/navien

    Navien water heater wire protocol for communication with NaviLink and other attached devices

    30 parts65
  • 4 layers80 × 80 mmPICO RS485, the printed circuit board in 3D

    PICO RS485

    mortens-lab/PICO_RS485

    Raspberry Pi Pico with RS485 interface and sensors

    61 parts6
  • 4 layers95 × 75 mmPico IoT thingy, the printed circuit board in 3D

    Pico IoT thingy

    mhered/KiCAD_udemy_course

    My notes on the course "PCB design with KiCAD - updated for KiCAD 9" by Dr Peter Dalmaris in Udemy

    61 parts2