

Esp32 dimmer
🔌 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
4BTA16-800BW
TO-220A-40℃~+125℃ 1 TRIAC 1.3V 1.5V 160A 16A 1W 50mA 60mA 800V TO-220A Thyristors (SCR)/Modules ROHSWEIDAThyristors (SCR)/ModulesH11AA1
DIP-6-55℃~+100℃ 1.2V 20% 30V 400mV@10mA,0.5mA 5.3kV 60mA AC,DC Integrated anti-parallel LED Phototransistor DIP-6 Transistor, Photovoltaic Output Optoisolators ROHSVishay IntertechnologyTransistor, Photovoltaic Output OptoisolatorsMOC3052M
DIP-6-40℃~+85℃ 1 1.5V 1000V/us 1A 330mW 4.17kV 6 600V 60mA No TRIAC DIP-6 Triac, SCR Output Optoisolators ROHSonsemiTriac, SCR Output OptoisolatorsBC547
TO-92Bipolar (BJT)Jiangsu Changjing Electronics Technology (CJ)
README
remote_controller/README.mdESP32-C3 BLE dimmer remote — revision G
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
| Function | Revision G connection |
|---|---|
| Joystick X and Y | Adafruit 2765, with 10 kOhm / 22 kOhm dividers to 2.27 V full scale; ADC GPIO0 and GPIO1 |
| Battery measurement | VBUS/2 divider to GPIO3 |
| Buttons | ON/SELECT GPIO10, OFF/BACK GPIO20, PRESET GPIO21; internal pull-ups, switches to GND |
| OLED I2C | GPIO6 SDA and GPIO7 SCL; use the module's I2C pull-ups |
| Battery path | 18650 -> 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:
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.rptThe 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| Qty | Value | Footprint | References |
|---|---|---|---|
| 1 | 1000 W LAMP OUTPUT | Dimmer:J3_Wuerth_691311400102_P7.62mm | J3 |
| 1 | 10k / 0.25W | Dimmer:R5_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R5 |
| 1 | 1k / 0.25W | Dimmer:R4_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R4 |
| 1 | 220R / 1W pulse | Dimmer:R11_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_Horizontal | R11 |
| 1 | 220R / 1W pulse | Dimmer:R12_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_Horizontal | R12 |
| 1 | 330R / 0.5W | Dimmer:R13_R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_Horizontal | R13 |
| 1 | 47k / 1W / 5% | Dimmer:R8_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_Horizontal | R8 |
| 1 | 47k / 1W / 5% | Dimmer:R7_R_Axial_DIN0414_L11.9mm_D4.5mm_P20.32mm_Horizontal | R7 |
| 1 | 82R / 0.25W | Dimmer:R3_R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R3 |
| 1 | BC547 | Dimmer:Q1_TO-92_Inline_Wide | Q1 |
| 1 | BTA16-800BW | Dimmer:Q2_TO-220-3_Vertical | Q2 |
| 1 | ESP32-C3 SuperMini | Shared:ESP32-C3-SuperMini | U1 |
| 1 | H11AA1 | Dimmer:U3_DIP-6_W10.16mm | U3 |
| 1 | I2C CONTROL / 3V3 | Dimmer:J1_JST_XH_B4B-XH-A_1x04_P2.50mm_Vertical | J1 |
| 1 | MAINS 220 Vac | Dimmer:J2_Wuerth_691311400102_P7.62mm | J2 |
| 1 | MOC3052M | Dimmer:U2_DIP-6_W10.16mm | U2 |
| 1 | MountingHole_3.2mm_M3 | Dimmer:H3_MountingHole_3.2mm_M3 | H3 |
| 1 | MountingHole_3.2mm_M3 | Dimmer:H2_MountingHole_3.2mm_M3 | H2 |
| 1 | MountingHole_3.2mm_M3 | Dimmer:H1_MountingHole_3.2mm_M3 | H1 |
| 1 | MountingHole_3.2mm_M3 | Dimmer:H4_MountingHole_3.2mm_M3 | H4 |
| 1 | RUN / OPEN FOR USB | Dimmer:JP1_PinHeader_1x02_P2.54mm_Vertical | JP1 |
| 1 | S14K275 / 275Vac | Dimmer:RV1_RV_Disc_D15.5mm_W5mm_P7.5mm | RV1 |
| 1 | T6.3AH / 250V | Dimmer:F1_Fuseholder_Conquer_CQ-200S_P23.50mm | F1 |
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 mm

- 2 layers40 × 100 mm

- 2 layers30 × 53 mm

Similar boards
- 2 layers73.2 × 81.3 mm

Furnace control
marcass/furnace_control
Control a FUWI pellet boiler with arduino to improve smarts
24 parts2GPL-3.0 - 4 layers100.1 × 79.2 mm

- 4 layers355.6 × 144.8 mm

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 mm

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 mm

Hot plate controller
rohamid/Hot-plate-controller-master
STM32 based hot plate PCB soldering controller
81 parts - 2 layers98 × 50 mm

- 2 layers

- 2 layers186.7 × 92.7 mm

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

