Skip to the content
PCBKitNew board
4 layers31.5 × 27.5 mmInterface, the printed circuit board in 3D

Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

Size
31.5 × 27.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
22
Nets
17
Pads
61
Tracks, vias
159, 14
Pours
9
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
10 Oct 2026
Updated
30 Oct 2026

Overview

Interface is an open-source printed circuit board by vbartusevicius, from the vbartusevicius/knx-dali-gateway repository on GitHub. It is a 4-layer board of 31.5 × 27.5 mm with 22 parts on 17 nets, routed with 159 tracks and 14 vias.

It is built around the TLP383(D4BLLTL,E, BC847 and DF06S, with the IRLML0060, SMAJ24A and SS16 among its other parts. Its parts include 8 resistors, 5 diodes, 4 transistors, 2 ICs and 2 connectors. It belongs with the interfaces and adapters boards of this library.

Main components

6

README

README.md

KNX–DALI Gateway

Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS. An optional integrated, isolated DALI bus supply runs from 20–32 V auxiliary DC (a 24 V PSU or the KNX white/yellow pair); the same input also powers the gateway core, with the KNX bus as a seamless fallback. The WiFi dashboard and MQTT are extras: lighting control and ETS provisioning never depend on them.

[!NOTE] Pre-hardware prototype. Verified by native unit tests, a Docker KNX/DALI integration lab, KiCad DRC and isolation checks, JLCPCB footprint and pinout checks, and exact-solid CadQuery fit tests. No board has been powered on yet, and no KNX or DALI certification is claimed.

V3 (1 DIN) and V2 (2 DIN) gateway enclosures

Downloads · Screenshots · Hardware · Building one · How it works · Development


Downloads

WhatWhereUse
First install (USB)firmware-full-usb.binBootloader, partition table and firmware in one image for an empty ESP32-C6. Connect the XIAO over USB-C and write it at 0x0: esptool.py --chip esp32c6 write_flash 0x0 firmware-full-usb.bin. Clears all settings.
Updatefirmware.binDrop it onto the Firmware tab of the web interface. Updates firmware and web UI together; settings are kept.
ETS product databaseKnxDaliGateway.knxprodImport into ETS 5.7 / 6: 64 lamp channels (DT6/DT7/DT8), 16 groups, broadcast, 8 DALI-2 input devices with up to 4 instances each (1,321 group objects).
Hardware bundlesknx-dali-gateway-hardware-v2.zip / v3.zipGerbers, JLCPCB BOM/CPL, STEP assemblies, printable STL/3MF case, assembly_parts.csv.

Screenshots

The web interface is built into the firmware and served by the ESP32-C6 itself (live WebSocket updates, no cloud):

Web UI overview: 64-lamp bus grid with lamp inspector

More of the web interface: lamp settings, groups and scenes, error log, bus monitor, settings
Lamp settingsGroups & scenes
Lamp settingsGroups and scenes
Device type, dimming curve, limits, fade, D4i or calculated power, ballast replacement16 scenes, 16 groups (G00–G15), group colour, membership written to the ballast
Error logLive DALI bus monitor
Error logBus monitor
Persistent NVS history with remedies8/16/24-bit frames and collisions: 1,024 rows on the device, 10,000 in the browser
Settings
Settings
WiFi, MQTT with Home Assistant auto-discovery, power model
  • Overview: live level, DT8 colour (Tc, RGBW, xy), per-lamp power (native D4i Part 252 or calculated), lamp finder, fault codes; a second grid for DALI-2 buttons and sensors (IEC 62386-103 / 301–304).
  • Home Assistant: one gateway device (total power and energy) plus every populated lamp with on/off, dimming, colour, power and fault entities.
Front-panel OLED pages: V3 portrait 64×128, V2 landscape 128×64

V3 portrait OLED pages

V2 landscape OLED pages

FUNC steps through the pages; holding it for 5 s starts the WiFi setup portal.


Hardware

Two variants share the circuit blocks (hardware/circuits/blocks/), the XIAO ESP32-C6 pinout (gateway/src/firmware/Board.hpp) and the firmware:

V3 (v3)V2 (v2)
Width1 DIN (18 mm)2 DIN (36 mm)
Boards2: two-sided vertical main, front ui3: main, interface, ui
AUX core converterTRACO TMR 2411 (2 W), on a tongue of main in the front protrusionTRACO TRN 3-2411 (3 W), on the back of main
DALI terminalKefa KF142R push-inMX126 screw
KNX / AUXPST 1,0 pin strips (red/black, yellow/white plugs)PST 1,0 KNX, MX126 screw AUX
Display0.96" 64×128 portrait SSD1312, solder flex tail0.96" 128×64 SSD1306 module, 4-pin header
ButtonsOmron B3U pressed through C-shaped spring tabs in the coversame
Main ↔ UI link8-pin 0.5 mm FFC (Type B, 50 mm)10-pin JST-SH cable
CaseSide-opening clamshell, snap-fitTwo 2.5×10 screws, UI snaps
Releasehardware/releases/v3/hardware/releases/v2/
V3 renders: assembly and boards

V3 exploded, inside and side section

V3 boards, front and back

PCB artwork: main top · bottom · ui top · bottom. Fit drawings: front · side.

V2 renders: assembly and boards

V2 exploded, inside and side section

V2 boards, front and back

PCB artwork: main top · bottom · interface top · bottom · ui top · bottom. Fit drawings: front · side.

Pin table, LED chain and button ladder: hardware/docs/variants.md. Pre-manufacturing reviews: review-2026-10-23.md, review-2026-10-22.md; rework for boards made from 59eea1f: rework-rev-c.md.


Building one

Each hardware/releases/<variant>/ folder is a complete manufacturing package.

  1. PCBs with SMT assembly (JLCPCB). Upload panel/panel_gerbers.zip (V3: 66.0 × 78.1 mm, 4 layers, 1.2 mm; V2: 98.5 × 76.6 mm, 4 layers, 1.6 mm) with assembly on both sides, panel/panel_bom_jlc.csv and panel/panel_cpl_jlc.csv. You order one PCB and one PCBA job and snap the boards apart. Per-board files are in main/, ui/ (and interface/ on V2). Compare renders/top.svg / bottom.svg with JLCPCB's placement preview. Building it yourself: order_lcsc.csv (LCSC BOM tool: map LCSC Part Number and Quantity) and order_elsewhere.csv (electronics LCSC does not sell, with Mouser / Digi-Key / TME numbers) cover every electronic part of one gateway; screws, foam and printed parts are only in assembly_parts.csv. Other board houses (Aisler, PCBWay, Eurocircuits, ...): every folder also has <board>_odb.zip (ODB++), Gerbers with drills and an IPC-D-356 netlist in <board>_gerbers.zip, and a generic <board>_bom.csv / <board>_cpl.csv with manufacturer part numbers and KiCad rotations.
  2. Hand-fitted parts. assembly_parts.csv lists everything JLCPCB does not place (Kind electronics, utility or printed), with Mouser, Digi-Key and TME numbers:
    • the XIAO ESP32-C6 (pre-soldered) and its sockets;
    • the RECOM REC3-2415SRW/H2/A/CTRL DALI supply converter;
    • the TRACO AUX core converter;
    • Phoenix PST pin strips and plugs;
    • the OLED, the main-to-UI cable, and two jumper caps for JP1.
  3. Case. Print enclosure/base.stl and one cover in PETG or ASA at 0.2 mm layers: cover.stl (plain) or cover_embossed.stl (0.3 mm recessed legend).
V3 assembly order
  1. Lay the OLED face down in the cover recess, fold its flex tail through the UI board's top notch and solder it to J2, put the 4 mm foam pad on the UI board, snap the UI board in.
  2. Slide main into the base from the open left side, so the KNX/AUX pins pass into the right-side pockets and J3 seats in the top opening.
  3. Plug the FFC into main J4 and ui J1, then close the cover over the left side and front until the four side snaps lock.

How it works

  • KNX side: an onsemi NCN5130 transceiver (TP1, 9-bit UART) charges a 470 µF store. An SCT2400 buck makes 5 V from it, with an undervoltage lockout above the NCN5130 reset level.
  • Core supply: the AUX input feeds an isolated TRACO converter (SELV-AUX to SELV-KNX). A TI TPS2121 priority mux prefers it and falls back to the KNX buck. A TI LM66100 keeps USB service power out of the core rail.
  • DALI supply: the AUX input (PTC, TVS, reverse diode) feeds a RECOM REC3-2415SRW/H2/A/CTRL (24 V → 15 V, functional isolation), then a linear current limiter. The firmware can switch it off through an optocoupler on its CTRL pin, and jumper JP1 disconnects it for an external DALI PSU.
  • DALI transceiver: TX uses a MOSFET sink with bootstrap gate drive and a 275–350 mA fault clamp. RX uses a zener threshold with a constant-current detector. Both cross a 6 mm milled barrier through TLP383 optocouplers.
  • Front panel: the OLED (I2C), two buttons on one ADC ladder, and three SK6805 RGB LEDs (status, KNX, DALI) behind a 5 V level shifter.

Development

FolderContents
gateway/ESP32-C6 firmware (C++17, ESP-IDF / PlatformIO) and native unit tests
knxprod/ETS product database source and .knxprod builder
simulation/DALI bus simulator and Docker KNX/DALI integration lab
hardware/SKiDL circuits, KiCad layouts, part data, build scripts, release packages
mechanical/CadQuery enclosures, fit drawings, front legends, 3D renders
TaskCommand
Build, route, render, release and test both hardware variantspython3 hardware/scripts/build.py
One variant or steppython3 hardware/scripts/build.py v3 --eda (--cad, --release, --test)
Refresh the README images (after a release)docker compose --profile hardware run --rm -T cad "python3 mechanical/scripts/readme_images.py"
Firmware tests and ESP32-C6 build (writes firmware.bin and firmware-full-usb.bin)pio test -d gateway -e native && pio run -d gateway -e dev_c6 -e release_c6
Refresh the clangd compilation databasepio run -d gateway -e dev_c6 -t compiledb
Integration labsimulation/run-tests.sh
ETS packageETS_CV_DIR=knxprod/ETS knxprod/scripts/package.sh
Lint (Python, YAML, C++)docker compose --profile lint run --rm lint check .

Licences per folder: LICENSE.md. Engineering rules and architecture notes: AGENTS.md.

Parts

22
QtyValueFootprintReferences
3BC847Package_TO_SOT_SMD:SOT-23Q2, Q3, Q4
210kResistor_SMD:R_0603_1608MetricR2, R4
24k7Resistor_SMD:R_0603_1608MetricR3, R8
2TLP383(D4BLLTL,EPackage_SO:SO-6L_10x3.84mm_P1.27mmU1, U2
1100kResistor_SMD:R_0603_1608MetricR6
112VDiode_SMD:D_SOD-123D4
11u 50VCapacitor_SMD:C_0805_2012MetricC1
12RResistor_SMD:R_1206_3216MetricR5
1330RResistor_SMD:R_0603_1608MetricR1
15V6Diode_SMD:D_SOD-123D5
1680RResistor_SMD:R_0603_1608MetricR7
1DF06SDiode_SMD:Diode_Bridge_Vishay_DFSD1
1IRLML0060Package_TO_SOT_SMD:SOT-23Q1
1Main DALIConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ2
1Main logicConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1SMAJ24ADiode_SMD:D_SMAD2
1SS16Diode_SMD:D_SMAD3

Questions

How big is the Interface PCB?

It measures 31.5 × 27.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Interface use?

22 parts, built around the TLP383(D4BLLTL,E, BC847, DF06S and IRLML0060. 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 Interface KiCad files?

From the vbartusevicius/knx-dali-gateway repository on GitHub, at the commit this page was made from: the board is hardware/layout/v2/interface/interface.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Interface design in my own project?

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

More from vbartusevicius/knx-dali-gateway

6
  • 4 layers98.5 × 76.5 mmPanel, the printed circuit board in 3D

    Panel

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    138 parts
  • 4 layers65.9 × 78 mmPanel, the printed circuit board in 3D

    Panel

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    125 parts
  • 4 layers50.1 × 78 mmKnx dali gateway, the printed circuit board in 3D

    Knx dali gateway

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    84 parts
  • 4 layers31.5 × 76.5 mmKnx dali gateway, the printed circuit board in 3D

    Knx dali gateway

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    61 parts
  • 4 layers13.8 × 40.5 mmKnx dali gateway, the printed circuit board in 3D

    Knx dali gateway

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    25 parts
  • 4 layers31.5 × 40.5 mmReleases, the printed circuit board in 3D

    Releases

    vbartusevicius/knx-dali-gateway

    Open-source DIN-rail gateway between a wired KNX TP line and one DALI / DALI-2 line: up to 64 control gear plus DALI-2 multi-master input devices, commissioned entirely through ETS.

    23 parts

Similar boards

  • 2 layers50 × 75 mmDoorbell pcb v2, the printed circuit board in 3D

    Doorbell pcb v2

    paulc/c3zero-doorbell

    ESP32C3-Zero Doorbell Ring Detector (using Hall effect current sensor)

    25 parts
  • 2 layers91.2 × 75.1 mmLyrebird Keyboard Power Supply, the printed circuit board in 3D

    Lyrebird Keyboard Power Supply

    Celcius1/Old-Projects-become-New

    Electronics Projects from the 60's to 90's redone for the modern era

    22 parts1GPL-3.0
  • 2 layers150 × 110 mmBenchDAC, the printed circuit board in 3D

    BenchDAC

    smileym4n-collab/Kicadprojects

    149 parts
  • 2 layers75.3 × 86 mmRS485, the printed circuit board in 3D

    RS485

    Solderingironspb/ModbusRTU_Master_MQTT_Gateway

    Данное устройство выступает мастером сети ModbusRTU. Обменивается данными с подчиненными устройствами (до 247 устройств на линии RS485).

    67 parts1
  • 2 layers35 × 38.7 mmRpi2040-lcd gauge, the printed circuit board in 3D

    Rpi2040-lcd gauge

    fharold/rpi2040-lcd-gauge

    Basic and versatile gauges based on the WAVESHARE RP2040-LCD-1.28 module. A small HAT enhances it:

    52 parts
  • 2 layers187.5 × 45 mmGamma spectrometer, the printed circuit board in 3D

    Gamma spectrometer

    Motokichirou/gamma-spectrometer

    NaI(Tl) gamma spectrometer: STM32G474 + R1307 PMT + 4-board stack, KiCad schematics, LTspice simulations

    231 parts
  • 4 layers120 × 65 mmBms segment, the printed circuit board in 3D

    Bms segment

    york-fs/bms-segment

    Battery Management System Segment

    206 parts