dimmerlink not connected

I’m currently trying to use dimmerlink using ESP32 S3 N16R8 board.

In order to change to I2C communication method, I first connected to UART and sent the command, but errors such as F0, E0, etc. are coming out.

The wiring is using 3.3V, GND, pins 8 and 9 of the ESP board. What’s the problem

Hi,

The F0 and E0 responses are error codes from DimmerLink — this means communication is working, but the commands are not being parsed correctly. The most common cause is sending commands in text/ASCII format instead of raw HEX bytes.

Important distinction:

  • :cross_mark: Wrong: sending ASCII text "02 5B" → DimmerLink receives 6+ bytes of ASCII characters

  • :white_check_mark: Correct: sending raw bytes 0x02 0x5B → DimmerLink receives exactly 2 bytes

How to verify and fix:

  1. Check your terminal/code format. If you’re using a serial terminal (like HTerm, PuTTY, etc.), make sure it is set to send in HEX mode, not text mode. If using Arduino code, use:

cpp

uint8_t cmd[] = {0x02, 0x5B};
Serial1.write(cmd, sizeof(cmd));  // sends raw bytes

Do not use Serial1.print("02 5B") — this sends ASCII text.

  1. Startup message — open the terminal at 115200 baud before powering the DimmerLink. You should see:
=== TRIAC Dimmer ===
Mode: UART
Calibrating...
Phase period: 10100 us [50 Hz]
Temperature protection: DISABLED
UART mode ready

Did you see this message?

  1. Check TX/RX wiring — which of pins 8 and 9 is TX and which is RX on your ESP32-S3 board? Make sure:

    • ESP32 TX → DimmerLink RX

    • ESP32 RX → DimmerLink TX

  2. ESP32-S3 UART pin configuration — ESP32-S3 allows flexible UART pin assignment. In your code, make sure you explicitly set the pins:

cpp

Serial1.begin(115200, SERIAL_8N1, 9, 8);  // RX=9, TX=8 (or swap if needed)

Documentation: