Repository navigation
DimmerLink — Berry I2C driver for TRIAC AC dimmer control (zero-flicker, no libraries) #24646
robotdyn-dimmer
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi.
I've been working on a Berry driver for controlling AC TRIAC dimmers via I2C on Tasmota. The problem it solves: TRIAC phase-cut dimming requires precise zero-cross detection and sub-millisecond firing timing. Doing this on the ESP32 alongside WiFi/MQTT/web server tasks leads to timing conflicts, interrupt collisions, and visible flicker — especially under load.
DimmerLink offloads all time-critical operations to a dedicated MCU on the dimmer module. The ESP32 just sends simple I2C commands (set brightness 75%), and the MCU handles zero-cross detection, phase angle calculation, and TRIAC firing with microsecond precision. No dimmer libraries needed on the ESP32 side.
What the Berry driver provides
Hardware
Works with RBDimmer modules that have the DimmerLink controller built in (1CH, 2CH, 4CH variants). Standard I2C wiring: SDA, SCL, GND, VCC + 4.7kΩ pull-ups. Default address 0x50, changeable via Berry console for multi-device setups.
Installation
Quick example
Links
Requirements
Note on ESP8266: Berry is ESP32-only. We're working on a native Tasmota driver (C-based) that will support ESP8266 as well. Should be available in the coming weeks.
Looking for feedback
This is the first public release. I'd really appreciate any testing feedback — especially around:
If you run into problems, please open an issue on GitHub or reply here. Community input helps a lot — both bug reports and suggestions for what to add next.
All reactions