Skip to the content
PCBKitNew board
2 layers74 × 52 mmWemos esphome shield, the printed circuit board in 3D

Wemos esphome shield

Open-Domus/wemos_multiplate3

PCB da usare come shield per Wemos D1 mini con componenti compatibili ESPhome/HA.

Size
74 × 52 mm
Copper layers
2
Thickness
1.6 mm
Parts
31
Nets
46
Pads
117
Tracks, vias
234, 14
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
30 Mar 2023
Updated
27 Feb 2026

Overview

Wemos esphome shield is an open-source printed circuit board by Open-Domus, from the Open-Domus/wemos_multiplate repository on GitHub. It is a 2-layer board of 74 × 52 mm with 31 parts on 46 nets, routed with 234 tracks and 14 vias.

It is built around the WS2812B. Its parts include 10 resistors, 3 transistors, 2 ICs, 1 capacitor and 1 diode. It belongs with the home automation and IoT boards of this library.

Main components

1

README

README.md

Wemos Multiplate

Wemos Multiplate is a modular, ESPHome-powered front plate for Wemos D1 mini and Wemos S2 mini development boards. It combines presence sensing, environmental telemetry, status lighting, and user inputs into a single wall-friendly enclosure.

front

Highlights

  • Works with Wemos D1 mini (ESP8266) and Wemos S2 mini (ESP32-S2); the S2 mini is strongly recommended if you want every module.
  • Integrated 128x64 SSD1306 OLED display with customizable pages.
  • Hi-Link LD2410C 24 GHz mmWave presence sensor with optional Bluetooth tuning.
  • SHT31-D temperature and humidity probe plus optional BH1750 ambient light and APDS9960 gesture/proximity sensors.
  • Two WS2812 addressable LEDs, a piezo buzzer, IR transmitter/receiver, and a header for an external relay module.
  • ESPHome package-based configuration lets you enable only the hardware you soldered.

Repository Layout

  • esphome/ – modular ESPHome configuration split by board (modules_d1mini/, modules_s2mini/) and shared components (modules_common/). Sample automations are under esphome/automations/.
  • kicad/wemos-esphome-shield/ – KiCad project, gerbers, STEP models, and release archives for the PCB.

Hardware Overview

Base components

  • Wemos D1 mini or Wemos S2 mini dev board (USB-C S2 mini preferred).
  • 128x64 I2C OLED display (SSD1306).
  • Hi-Link LD2410C mmWave presence sensor.
  • Sensirion SHT31-D temperature and humidity sensor.
  • Two WS2812 (5 V) addressable LEDs.
  • Piezo buzzer with drive transistor.
  • TSOP-style IR receiver and 940 nm IR LED pair.

Optional add-ons

  • BH1750 illuminance sensor.
  • APDS9960 gesture/proximity sensor.
  • Three front buttons (requires the S2 mini pinout).
  • Header for an external 5 V relay module or other accessories.

PCB fabrication files for the latest revision live in kicad/wemos-esphome-shield/releases/.

Getting Started with ESPHome

  1. Install ESPHome
    Follow the ESPHome installation guide (CLI or Home Assistant add-on). CLI examples below assume pipx install esphome.

  2. Create secrets
    Copy the sample secrets file and edit it with your Wi-Fi and fallback hotspot credentials:

    bash
    cp esphome/modules_s2mini/secrets_sample.yaml esphome/secrets.yaml

    The same secrets.yaml is used by both board profiles.

  3. Pick a base profile

    • esphome/multiplate_s2mini.yml — ESP32-S2 build with every module enabled.
    • esphome/multiplate_d1mini.yml — ESP8266 build with a reduced feature set. Comment out any modules you did not solder to stay within memory limits.
  4. Enable or disable modules
    Each module is loaded via the packages: section. Comment out a line to disable the corresponding hardware. For example, to skip the gesture sensor:

    yaml
    # gesture_sensor: !include modules_common/gesture_sensor.yml
  5. Build and flash
    Connect the board over USB and run:

    bash
    esphome run esphome/multiplate_s2mini.yml --device /dev/ttyUSB0

    After the first successful flash you can go OTA:

    bash
    esphome run esphome/your-device-name.yml
  6. Adopt in Home Assistant
    The node exposes all sensors, lights, switches, and buttons via the ESPHome API. Home Assistant will prompt to adopt the new device and automatically create entities.

Module Reference

ModuleFileNotes
Core board setup & Wi-Fimodules_d1mini/common.yml, modules_s2mini/common.ymlHandles board selection, Wi-Fi credentials, API, OTA.
OLED display, pages, and fontsmodules_common/display.yml, font/retrogaming.ttfProvides readout and trend pages with a 4 h temperature graph.
LD2410C mmWave presencemodules_d1mini/motion_sensor.yml, modules_s2mini/motion_sensor.ymlExposes presence, moving/still targets, distance, and Bluetooth control.
Temperature & humidity (SHT31-D)modules_common/temp_sensor.ymlIncludes a median filter and linear calibration datapoints.
Ambient light (BH1750)modules_common/light_sensor.ymlOptional, comment out if the sensor is not populated.
Gesture & proximity (APDS9960)modules_common/gesture_sensor.ymlOptional, provides four gesture binary sensors and calibrated proximity.
RGB status LEDsmodules_d1mini/rgb_leds.yml, modules_s2mini/rgb_leds.ymlTwo WS2812 LEDs mapped in the sample automations.
Buzzermodules_d1mini/buzzer.yml, modules_s2mini/buzzer.ymlTemplate buttons trigger predefined alert patterns.
IR transmitter/receivermodules_d1mini/ir_remote.yml, modules_s2mini/ir_remote.ymlExposes ir_remote transmitter ID and raw receiver for learning codes.
Relay headermodules_d1mini/relay.yml, modules_s2mini/relay.ymlOptional GPIO-controlled 5 V relay output.
Front buttons (S2 mini only)modules_s2mini/buttons.ymlThree debounced GPIO inputs.
Automations (display & LEDs)automations/display_motion.yml, automations/motion_status_leds.ymlOpt-in template switches to toggle display blanking and LED indicators.

Built-in Automations

  • display_motion keeps the OLED blank until motion is detected, then shows the readout page.
  • motion_status_leds maps moving and still target detection to the two WS2812 LEDs.

Enable or disable these from the packages: block just like the hardware modules.

Tuning the LD2410C mmWave Sensor

  1. Enable the Bluetooth switch entity (*-ld2410-bluetooth) exposed by ESPHome.
  2. Use the official Android configuration app: https://play.google.com/store/apps/details?id=com.hlk.hlkradartool.
  3. Connect to the sensor, enter Engineering Mode, and adjust the eight detection gates to match your room layout. Lower values increase sensitivity.
  4. Apollo Automation maintains a detailed tuning guide: https://wiki.apolloautomation.com/books/msr-1/page/how-to-tune-mmwave-using-home-assistant.

Keeping the heavy tuning UI out of ESPHome reduces load on the D1 mini and shortens boot times.

Using the IR Remote

Add climate, media, or switch components to your ESPHome profile and reference the shared ir_remote transmitter and ir_rx receiver IDs. Example:

yaml
climate:
  - platform: daikin
    name: ${device_name}-climate
    transmitter_id: ir_remote
    receiver_id: ir_rx

Use the remote_receiver in learning mode (dump: raw) to capture codes from your existing remote.

Manufacturing Files

  • Latest gerber sets: kicad/wemos-esphome-shield/gerber/
  • STEP models for enclosure work: kicad/wemos-esphome-shield/step/
  • Release bundles (gerbers, BOM, pick-and-place): kicad/wemos-esphome-shield/releases/

Send the gerber ZIP to your PCB manufacturer of choice, then populate the board according to the silkscreen and BOM in the release archive.


Questions, improvements, or pull requests are welcome!

Parts

31
QtyValueFootprintReferences
410kohmResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR2, R7, R8, R10
3100ohmResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR3, R4, R9
32N2222internal:SOT-23_HandsolderingQ1, Q2, Q3
32kohmResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R5, R6
3LEDLED_THT:LED_D5.0mmIR1, IR2, IR3
14.7ufCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
1BH1750internal:BH1750LUM1
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Conn_01x02_FemaleTerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type094_RT03502HBLU_1x02_P5.00mm_HorizontalPOWER1
1JSTXH_4pConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalBTN1
1LD2410Cinternal:LD2410CMOV1
1LOGOLOGOG***
1PinHeaderConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalRELAY1
1PinHeaderConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalEXTRA1
1SHT30Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalTEMP1
1SSD1306internal:SSD1306 OLED 128x64OLED1
1TSOP34S40FOptoDevice:Vishay_MOLD-3PinU1
1Transformer_1P_1Sinternal:220v AC to 5v DC TransformerT1
1WS2812Binternal:LED breakoutLED1
1WeMos_S2_miniinternal:WEMOS_S2_miniU2

Questions

How big is the Wemos esphome shield PCB?

It measures 74 × 52 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Wemos esphome shield use?

31 parts, built around the WS2812B. 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 Wemos esphome shield KiCad files?

From the Open-Domus/wemos_multiplate repository on GitHub, at the commit this page was made from: the board is kicad/wemos-esphome-shield/wemos-esphome-shield.kicad_pcb and its schematic kicad/wemos-esphome-shield/wemos-esphome-shield.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Wemos esphome shield design in my own project?

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

Similar boards

  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 2 layers26 × 30 mmMicrocontroller, the printed circuit board in 3D

    Microcontroller

    FrameworkComputer/ExpansionCards

    Reference designs and documentation to create Expansion Cards for the Framework Laptop

    34 parts1.1kCC-BY-4.0
  • 4 layers82.6 × 82.5 mmJumperless2, the printed circuit board in 3D

    Jumperless2

    Architeuthis-Flux/Jumperless

    A jumperless breadboard

    208 parts914
  • 2 layers95.3 × 161.9 mmDfh badge, the printed circuit board in 3D

    Dfh badge

    tanaes/whopping_Voron_mods

    135 parts787GPL-3.0
  • 2 layers42.8 × 28.8 mmMM Skirt, the printed circuit board in 3D

    MM Skirt

    PrintersForAnts/Micron

    If you want to purchase full kits there are 3 available (Kits are slowly updating to R1 hardware just make sure to double check the included hardware in your kit and if you have any questions reach out in the discord)

    11 parts741GPL-3.0
  • 2 layers149.6 × 127.1 mmErgodash, the printed circuit board in 3D

    Ergodash

    omkbd/ErgoDash

    keyboard

    187 parts732MIT
  • 2 layers285.5 × 95 mmReviung46 ver1 1, the printed circuit board in 3D

    Reviung46 ver1 1

    gtips/reviung

    The REVIUNG41 is 41-key column staggered keyboard.

    119 parts517MIT
  • 2 layers177.7 × 144.5 mmCOMM PANEL, the printed circuit board in 3D

    COMM PANEL

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    275 parts431