Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 3.12 KB

File metadata and controls

40 lines (27 loc) · 3.12 KB

ESP32-S3 Matrix & Rotary Encoder Multi-Channel LED Controller UI

Platform Hardware Device Input

This project is a highly elegant, cost-effective LED control interface built using an ESP32-S3 Matrix and a single Rotary Encoder.

While the actual LED output controls (PWM mapping, etc.) are not yet defined in the current code, this interface is primarily designed to manage a multi-channel LED device where the brightness of each column can be controlled individually (such as specialized aquarium lighting or multi-channel plant grow lights).

Hardware Used

  • 1 x ESP32-S3 Matrix (Features an onboard 8x8 WS2812B LED grid)
  • 1 x Rotary Encoder

This device provides an incredibly intuitive way to handle both menu selection and parameter adjustment using just a single Rotary Encoder, eliminating the need for extra hardware, arrays of potentiometers, or expensive touch screens. This approach offers a budget-friendly solution (~$5-$10 total hardware cost) while delivering an innovative, modern, and premium control feel.

Menu and Control Logic

The menu system cleverly utilizes the LEDs on the Matrix display:

  1. Channel Selection (Bottom Row): In the idle state, the bottom row of 8 LEDs on the matrix glows dimly in red. Each of these 8 LEDs represents a different channel (or device) that can be controlled.
  2. Finding the Active Channel: When the Rotary Encoder is turned, the selection cursor moves smoothly across the bottom row. The LED for the currently selected channel lights up in bright red.
  3. Adjusting the Value (Vertical Bar Graph): Once the desired channel is selected, you press the Rotary Encoder's button to engage the adjustment mode. Now, turning the encoder will light up the column of LEDs above that channel from bottom to top, creating an adjustable bar graph. This provides immediate, real-time visual feedback of that channel's brightness level or setting.

The animation below demonstrates this menu concept:

Menu Logic UI Workflow

Project Overview

Below is a visual explanation of the project's logic and its capabilities:

Project Explanation

Installation and Usage

  1. Open the matrix_config.yaml file located in this directory in your ESPHome environment (or copy it into your Home Assistant ESPHome add-on).
  2. Compile and install it by selecting your ESP32-S3 Matrix board.
  3. Make sure to connect the Rotary Encoder and the Matrix to the correct pins (as specified in the YAML file).

The stable version of the ESPHome YAML configuration has been ported to this repository as matrix_config.yaml. All previous bugs have been resolved, and it works flawlessly.

(Adding the actual LED output codes, such as PWM outputs, and Home Assistant sensors are planned for future updates.)