Skip to the content
PCBKitNew board
4 layers111 × 21 mmLEDy pcb, the printed circuit board in 3D
Size
111 × 21 mm
Copper layers
4
Thickness
1.6 mm
Parts
18
Nets
39
Pads
101
Tracks, vias
121, 18
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
4 May 2025
Updated
19 Oct 2026

Overview

LEDy pcb is an open-source printed circuit board by repetren, from the repetren/LEDy repository on GitHub. It is a 4-layer board of 111 × 21 mm with 18 parts on 39 nets, routed with 121 tracks and 18 vias.

It is built around the ESP32-WROOM-32, MP1584EN and IRLZ44N. Its parts include 4 resistors, 3 ICs, 2 connectors and 1 transistor. It belongs with the ESP32 boards of this library.

Main components

3

README

README.md

LEDy – ESP32-based smart floorlamp upgrade

Description

LEDy is a hardware project designed to integrate old LED strips into the Apple HomeKit system. It uses the ESP32 microcontroller with the HomeSpan library for the Arduino framework. It supports existing hardware buttons and capacitive sensors, allowing control over brightness and on/off state for LED strips or any other 12V load. The project consists of two parts: code and hardware. A Gerber file for the custom PCB is included. The PCB form factor is based on the physical dimensions of the original floorlamp housing but can be reused in other compact devices, as the PCB width matches the ESP32 chip.

ESP32 and hardware

ESP32 is the core of the whole system. Thanks to the large community, Arduino support, simple networking setup, and low cost, it's the most suitable MCU for small IoT projects. The system was tested both on a dev board and on a custom PCB designed specifically for this project. LED dimming is done via PWM through a MOSFET transistor. The control button is implemented as a capacitive sensor and needs to be tuned empirically depending on the circuit (more on this in the main.cpp section).

platformio.ini

The project requires specific settings for ESP32 in the platformio.ini file to avoid compilation and firmware upload errors.

HomeSpan

HomeSpan is a popular open-source library for ESP32 + Arduino to integrate with Apple HomeKit. For updates or custom logic, check the official documentation and examples — they’re great. This project is based on the Dimmable LED example. ** After the first flash, Wi-Fi credentials must be entered via Serial Monitor. ** For the initial connection, refer to the HomeSpan docs. Default pairing code is: 466-37-726

Capacitive sensor

The pin should be set manually in main.cpp, according to the ESP32 datasheet. After uploading the firmware, ESP32 starts printing raw capacitive values to the Serial Monitor.

To define a proper threshold:

  • Note the value when not touching the sensor,
  • Then note the value when touching it,
  • Set your threshold somewhere between those two values.

main.cpp

The setup() function handles initial library setup and MCU configuration. The Serial Monitor is used for debugging, Wi-Fi setup, and status output. The loop() function constantly checks the state of the capacitive button and runs homeSpan.poll()

DEV_LED.h

All accessory-related logic is handled here, based on HomeSpan's structure. update() — modified from HomeSpan's original to handle smooth dimming using global variables. touch() — handles capacitive sensor input and syncs it with the update() function. This setup ensures that any change made by physical input is reflected in the HomeKit app and vice versa. Global variables for power and brightness levels help maintain the last known state across different control methods.

level_adjust()

HomeSpan controls power via 1/0 logic and brightness through PWM. But real-world LED brightness jumps harshly without smoothing. This function introduces a 10 ms delay between the current and target brightness levels (coming from HomeKit). This creates a soft dimming effect when turning on/off, whether controlled from the app or via the capacitive button.

Gerber files

Includes a custom PCB designed mostly with through-hole (THT) components. The ESP32 is the only part that needs SMD soldering. Power is handled via a prebuilt MP1584 module.

Electrical characteristics

Tested with a 1-meter LED strip using a 12V / 1A power supply.

Future improvements

  • Replace button polling with proper interrupt-based input
  • Add support for 3 MOSFETs to control RGB LED strips

Parts

18
QtyValueFootprintReferences
3TestPoint_Loop_D2.50mm_Drill1.85mmTestPoint:TestPoint_Loop_D2.50mm_Drill1.85mmLED-, LED+, LED+
2,
210kResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R3
1100Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1
1120 2WResistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR4
117786251778625:PHOENIX_1778625J2
117786381778638:PHOENIX_1778638J1
1Connectik v001conectik:Connectik v001U3
1ESP32-WROOM-32RF_Module:ESP32-WROOM-32U2
1IRLZ44NPackage_TO_SOT_THT:TO-220-3_Horizontal_TabDownQ1
1LOGOLOGOG***
1MP1584MP1584:MP1584_AMAZONU1

The 16 most common of 18 parts.

Questions

How big is the LEDy pcb PCB?

It measures 111 × 21 mm and has 4 copper layers, 1.6 mm thick.

What parts does the LEDy pcb use?

18 parts, built around the ESP32-WROOM-32, MP1584EN and IRLZ44N. 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 LEDy pcb KiCad files?

From the repetren/LEDy repository on GitHub, at the commit this page was made from: the board is hardware/kikad/LEDy_pcb.kicad_pcb and its schematic hardware/kikad/LEDy_pcb.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the LEDy pcb design in my own project?

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

Similar boards

  • 4 layersMetuorbit, the printed circuit board in 3D

    Metuorbit

    ataberkaslan/metuorbit-pcb

    38 partsApache-2.0
  • 2 layers41.3 × 31.2 mmLevitator, the printed circuit board in 3D

    Levitator

    QuartzAl/Projects-showcase

    Main repository where I keep all of my project showcases related to Electrical Engineering These include PCB designs, electronic circuits, code snippets, and more.

    13 parts
  • 2 layers45 × 55 mmDongleALIVEv2.0, the printed circuit board in 3D

    DongleALIVEv2.0

    joaogabrielsantosD/Dongle-eaLIVE-PCB

    PCB of the DongleEALIVE for reading data from the vehicle's CAN bus with telemetry via BLE, supporting GPS and accelerometer.

    77 parts1
  • 2 layers78.5 × 61 mmKiCad PCB Assessment, the printed circuit board in 3D

    KiCad PCB Assessment

    iamkaifpathaan/KiCad-PCB-Assessment

    PCB design assessment in KiCad - schematic to fabrication-ready manufacturing files

    28 partsMIT
  • 2 layers93.4 × 87.4 mmNODE, the printed circuit board in 3D

    NODE

    maivananh111/NODE_PCB

    NODE_PCB

    138 parts
  • 2 layers38.5 × 67.3 mmTemperature pcb, the printed circuit board in 3D

    Temperature pcb

    pavanatgitgub/esp32_temperature_pcb_sensor

    Assignment

    32 parts
  • 2 layers60.6 × 49.9 mmLaserdinges, the printed circuit board in 3D

    Laserdinges

    SpeedRoom/Laserkaart

    Code voor de ESP32 van het laserpaneel staat in Laserdinges.

    30 parts