Skip to the content
PCBKitNew board
2 layers100 × 100 mmEsp32 dimmer, the printed circuit board in 3D

🔌 PCBs made with LLMs

Size
100 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
23
Nets
33
Pads
68
Tracks, vias
251, 5
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
30 Sep 2026
Updated
26 Oct 2026

Overview

Esp32 dimmer is an open-source printed circuit board by fborello-lambda, from the fborello-lambda/pcbs_llm_driven_design repository on GitHub, published under the MIT licence. It is a 2-layer board of 100 × 100 mm with 23 parts on 33 nets, routed with 251 tracks and 5 vias.

It is built around the BTA16-800BW, H11AA1 and MOC3052M, with the BC547 among its other parts. Its parts include 8 resistors, 3 ICs, 3 connectors, 2 transistors and 1 fuse. It belongs with the ESP32 and RISC-V boards of this library.

Main components

4

README

remote_controller/README.md

ESP32-C3 BLE dimmer remote — revision G

3D preview Assembled board photo

KiCad project · Schematic PDF · BOM CSV

Revision G is a 40 x 100 mm, 0.8 mm, two-layer controller for the dimmer. The ESP32-C3 SuperMini is directly soldered to the shared Shared:ESP32-C3-SuperMini SMD landing-pad footprint; there are no socket strips. A direct-solder Adafruit 2765 Mini Thumbstick controls brightness, three tactile buttons provide ON/SELECT, OFF/BACK, and PRESET, and a small I2C OLED reports state. There is no LDR in this revision.

The generated placement is portrait. The rear MPD BK-18650-PC2 holder is centred at x=20 mm, with its positive terminal at y=2.5 mm and its negative terminal at y=75.4 mm; the holder body ends at y=77.23 mm. The front OLED header starts at (16.19, 9.5) mm and reads VCC, GND, SCL, SDA from the front. The OLED support holes are at (8.35, 33.8) and (31.65, 33.8) mm. Button centres are x=8, 20, 32 mm at y=40 mm. The joystick centre is (20, 55.5) mm. The ESP32 footprint is at (13.5, 90) mm, rotated 90 degrees. Its USB faces outward through the left edge, with the connector mouth 0.5 mm inside the edge. The complete module is inside the 40 x 100 mm board. The four corner mounting holes were removed and the corner radius is 4 mm. Only the two OLED support holes remain.

The holder footprint uses an intentionally elevated terminal courtyard. Install a rigid insulating spacer with adhesive, with a total assembled thickness of 1.5 mm between the rear holder and the 0.8 mm PCB. Keep THT tails at or below 0.9 mm behind the holder: the MPD lead is 3.3 +/- 0.5 mm and the PCB is 0.8 mm, leaving at least 0.5 mm lead protrusion after the spacer. The holder screw locations are fabrication marks only, without carrier holes: attach it using the insulating spacer and adhesive. Cut recesses/windows in the spacer wherever solder tails occur; a solid sheet must not press on solder joints. C1 is at the front upper-left corner and JP1 at the front upper-right corner. BT1 is the only component fitted on the rear. The side-facing USB no longer requires an internal cable channel. The holder model and envelope are mechanical references; validate the purchased parts in a prototype. MPD source: BK-18650-PC2 datasheet.

Electrical configuration

FunctionRevision G connection
Joystick X and YAdafruit 2765, with 10 kOhm / 22 kOhm dividers to 2.27 V full scale; ADC GPIO0 and GPIO1
Battery measurementVBUS/2 divider to GPIO3
ButtonsON/SELECT GPIO10, OFF/BACK GPIO20, PRESET GPIO21; internal pull-ups, switches to GND
OLED I2CGPIO6 SDA and GPIO7 SCL; use the module's I2C pull-ups
Battery path18650 -> SW1 -> VBUS; onboard ME6211 supplies 3.3 V

The single 18650 is externally charged. The SuperMini has no charger and the remote has no charge circuit. Its ME6211 dropout voltage limits useful operation from an 18650 as the cell discharges, so validate low-voltage behaviour with the actual SuperMini. USB and battery are manually isolated: turn the battery switch OFF and leave JP1 open before connecting USB. This is an assembly procedure, not automatic protection; the onboard diode does not isolate a battery sharing USB VBUS. A protected cell must be charged externally with a suitable charger.

Test firmware in Rust that draws the thumbstick position and button states on the OLED is in firmware/.

OLED and carrier

The specified display is the 0.96-inch SSD1306 reference module LCDWiki MC096VW/MC096VX, approximately 27.3 x 27.8 mm. Mechanical references: LCDWiki MC096VX and MC096-015 drawing. The detailed selection and assembly notes are in OLED_SELECTION.md.

With the display viewed from the front and its header at the top, the 2.54 mm pitch pins read left to right: VCC, GND, SCL, SDA. The carrier has a female socket on its front. Solder the straight male OLED header from the display front so the pins point rearward, then plug the OLED into the carrier. Solder the carrier socket from the back before installing the battery; the display remains removable. Use a low-profile OLED M2 rear head (head height <=1 mm) and two insulating M2 spacers; the nominal module underside is approximately 9.2 mm above the footprint plane. Verify the actual module and pin order before fabrication because generic modules can reverse VCC/GND. The SSD1306 module used for the first build is GND, VDD, SCK, SDA, with the power pins swapped relative to J1. Do not plug it in directly; see LESSONS.md.

The joystick footprint is the official Adafruit 2765 Eagle geometry copied from sources/adafruit-thumbstick.brd; the applicable source license is in sources/adafruit-license.txt. The 3D joystick, holder, and OLED models are approximate envelopes for enclosure work. The elevated holder courtyard, terminal islands and full-body Fab model are intentional documentation for fabrication review; they are not a claim of factory-ready mechanical validation. ERC, DRC and schematic-to-PCB parity checks pass. Mechanical fit, battery operation and radio range still require a physical prototype.

The rear artwork is the photo-derived art/argentina_hornero.svg hornero and nest illustration with the visible caption HORNERO. Its reference and CC BY-SA 4.0 attribution are recorded in art/argentina_hornero_source.txt. The artwork and finishing tools under scripts/remote_controller/ crop it to the exposed bottom rear and convert it to B.Silkscreen graphics (no copper), clipping ink away from pads.

Build and assembly sequence

Run the project scripts in this order from the repository root:

sh
uv run --no-sync python scripts/remote_controller/build_remote.py
uv run --no-sync python scripts/remote_controller/route_board.py
kicad-cli sch export netlist remote_controller/esp32c3_remote.kicad_sch --format kicadxml -o remote_controller/outputs/netlist.xml
uv run --no-sync python scripts/remote_controller/finish_remote.py
kicad-cli sch erc remote_controller/esp32c3_remote.kicad_sch --exit-code-violations -o remote_controller/outputs/erc.rpt
kicad-cli pcb drc remote_controller/esp32c3_remote.kicad_pcb --schematic-parity --exit-code-violations -o remote_controller/outputs/drc.rpt

The build tool regenerates the schematic, board, local libraries, BOM, and connectivity data. The routing tool routes the generated board. The finishing tool adds the approximate mechanical envelopes, crops the rear artwork, and performs source-geometry and connectivity checks. Always regenerate outputs/netlist.xml before the finishing step.

For assembly, fit the two insulating OLED M2 spacers and low-profile rear heads, solder the front OLED carrier, and keep the OLED removable. Install the rear holder on the 1.5 mm insulating spacer or adhesive pads; trim or select THT tails so no more than 0.9 mm protrudes behind it. Keep C1 and JP1 outside the holder body. Do not use holder screws in the USB plug overlap channel. Confirm battery polarity, cell length, OLED pin order, spacer and head heights, switch operation, antenna/USB clearance, and the USB isolation procedure on actual parts before applying power. Review the generated reports under outputs/; they are not a substitute for prototype hardware validation, firmware checks, battery testing, or radio-range testing.

The dimmer board in the repository root is a separate design. In revision G the complete ESP32 module stays inside the 40 x 100 mm PCB outline, with its USB connector facing the left edge.

Revision G radio clearance

The antenna occupies the right end of the horizontal ESP32 module. Copper and vias are prohibited in x=24.2..40 mm, y=79.5..100 mm, on both copper layers. The rear battery holder ends at y=77.23 mm, so it does not overlap this area. Its approximately 2.27 mm gap is compact and does not provide a generous RF metal clearance. Measure BLE range with the actual cell, enclosure and hand grip; the drawing and DRC cannot establish antenna performance.

Parts

23
QtyValueFootprintReferences
11000 W LAMP OUTPUTDimmer:J3_Wuerth_691311400102_P7.62mmJ3
110k / 0.25WDimmer:R5_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR5
11k / 0.25WDimmer:R4_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4
1220R / 1W pulseDimmer:R11_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_HorizontalR11
1220R / 1W pulseDimmer:R12_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_HorizontalR12
1330R / 0.5WDimmer:R13_R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_HorizontalR13
147k / 1W / 5%Dimmer:R8_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_HorizontalR8
147k / 1W / 5%Dimmer:R7_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_HorizontalR7
182R / 0.25WDimmer:R3_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR3
1BC547Dimmer:Q1_TO-92_Inline_WideQ1
1BTA16-800BWDimmer:Q2_TO-220-3_VerticalQ2
1ESP32-C3 SuperMiniShared:ESP32-C3-SuperMiniU1
1H11AA1Dimmer:U3_DIP-6_W10.16mmU3
1I2C CONTROL / 3V3Dimmer:J1_JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ1
1MAINS 220 VacDimmer:J2_Wuerth_691311400102_P7.62mmJ2
1MOC3052MDimmer:U2_DIP-6_W10.16mmU2
1MountingHole_3.2mm_M3Dimmer:H3_MountingHole_3.2mm_M3H3
1MountingHole_3.2mm_M3Dimmer:H2_MountingHole_3.2mm_M3H2
1MountingHole_3.2mm_M3Dimmer:H1_MountingHole_3.2mm_M3H1
1MountingHole_3.2mm_M3Dimmer:H4_MountingHole_3.2mm_M3H4
1RUN / OPEN FOR USBDimmer:JP1_PinHeader_1x02_P2.54mm_VerticalJP1
1S14K275 / 275VacDimmer:RV1_RV_Disc_D15.5mm_W5mm_P7.5mmRV1
1T6.3AH / 250VDimmer:F1_Fuseholder_Conquer_CQ-200S_P23.50mmF1

Questions

How big is the Esp32 dimmer PCB?

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

What parts does the Esp32 dimmer use?

23 parts, built around the BTA16-800BW, H11AA1, MOC3052M and BC547. 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 Esp32 dimmer KiCad files?

From the fborello-lambda/pcbs_llm_driven_design repository on GitHub, at the commit this page was made from: the board is dimmer/esp32_dimmer.kicad_pcb and its schematic dimmer/esp32_dimmer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Esp32 dimmer design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

More from fborello-lambda/pcbs_llm_driven_design

3
  • 2 layers100 × 100 mmPhotodiode lab, the printed circuit board in 3D

    Photodiode lab

    fborello-lambda/pcbs_llm_driven_design

    🔌 PCBs made with LLMs

    31 parts1MIT
  • 2 layers40 × 100 mmEsp32c3 remote, the printed circuit board in 3D

    Esp32c3 remote

    fborello-lambda/pcbs_llm_driven_design

    🔌 PCBs made with LLMs

    21 parts1MIT
  • 2 layers30 × 53 mmRaspberry spi0 breakout, the printed circuit board in 3D

    Raspberry spi0 breakout

    fborello-lambda/pcbs_llm_driven_design

    🔌 PCBs made with LLMs

    2 parts1MIT

Similar boards

  • 2 layers73.2 × 81.3 mmFurnace control, the printed circuit board in 3D

    Furnace control

    marcass/furnace_control

    Control a FUWI pellet boiler with arduino to improve smarts

    24 parts2GPL-3.0
  • 4 layers100.1 × 79.2 mmSolder oven PCB, the printed circuit board in 3D

    Solder oven PCB

    JuanDavidBarrero/SolderingOvenPCB

    44 parts
  • 4 layers355.6 × 144.8 mmCycloconverter, the printed circuit board in 3D

    Cycloconverter

    Moeletsi47/cycloconverter

    An embedded power-electronics project combining SCR switching, zero-crossing synchronisation, register-level C firmware, and a custom four-layer PCB designed in KiCad.

    70 parts
  • 2 layers59.9 × 103.5 mmHM AsksinPP Phasenanschnitt, the printed circuit board in 3D

    HM AsksinPP Phasenanschnitt

    mankut80/AskSinPP_HM-LC-Dim1L-CV

    Mit der Technik des Phasenanschnitts lassen sich ohmsche und induktive Wechselstromlasten in der Leistung steuern.

    36 parts1
  • 2 layers83.9 × 114.9 mmHot plate controller, the printed circuit board in 3D

    Hot plate controller

    rohamid/Hot-plate-controller-master

    STM32 based hot plate PCB soldering controller

    81 parts
  • 2 layers98 × 50 mmAcid vaporizer, the printed circuit board in 3D

    Acid vaporizer

    vad32m/acid_vaporizer

    Oxalic acid vaporizer for varroa treatment

    65 parts
  • 2 layers186.7 × 92.7 mmTriac new, the printed circuit board in 3D

    Triac new

    Park-Hyung-Joo/automatic-molding-system

    This work was developed by the startup 'The Fourth Space', where senior Kim Seong-jun from the 17th generation of Barami is affiliated, as an outsourcing project for Barami's plastic injection molding machine control…

    29 parts