Skip to content

hoene/esp32-led-controller

Repository files navigation

LED Controller

This a software for the ESP32 chip, which can control multiple LED matrix displays. The LED displays must be based on smart LEDs such WS2813, GS8218, neopixels, or others. Up to eight serial data interfaces are supported.

The LED controller provides a web interface, available via ethernet, a wifi access point, or via wifi client. Via the web interface, the displays, colors format, and display order can be controlled.

A video streaming interface is available via UDP port 1616. The image format must be RTP/MJPEG.

Alternative, different testing patterns can be started on the web page of the LED controller.

Required Hardware

Please use one of the following ESP32 hardware modules:

However, it should not be too difficult to add support other modules.

If you use 12V LEDs, you might need a TTL level converter to convert the output from a 3.3V level to higher, e.g. 5 or 12V.

For example, you may setup your test hardware such as the following

Required Software

The ESP32 development environment is required. Download and install it from [https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/].

Programming

To set up your ESP32 controller with this software, please the github repository with

git clone https://github.com/hoene/esp32-led-controller

You may want to reconfigure the hardware. Please either copy an existing '''sdkconfig''' file, e.g.

cd esp32-led-controller

cp sdkconfig.OLIMEX_ESP32_EVB_B sdkconfig

or configure your particular hardware via

idf.py menuconfig

to the setting you need. In the menu CONTROLLER you find the settings needed.

You compile the LED controller software with

idf.py build

Connect your ESP32 via USB to get a serial programming interface, which you need to flash the ESP32. To flash the ESP32 call

idf.py flash

Usage

Connect your PC the LED controller via Ethernet or Wifi. The default Wifi AP password is "controller". Then, go to the web page, e.g. http://192.168.4.130/. You should see something like:

In the LED Panel card, you can select the size and type of your LED displays.

The Color Control card allow to change brightness or color of all displays.

With the Network card, you can change the wifi settings.

The administration is for maintainces:

And finally, the Status card give you an overview on the entire system. Its is only for testing and maintaince. It provides you information about the ESP32 system.

Video Streaming

On Linux, to stream from your desktop to the LED controller call - after adapting the parameter - the command:

ffmpeg -f x11grab -framerate 2 -i :0.0+0,0 -vf scale=32:32 -vcodec mjpeg -huffman 0 -pix_fmt yuvj420p -f rtp rtp://192.168.4.130:6454/

Or if you want to play a movie, call

ffmpeg filme.mp4 -framerate 2 -vf scale=16:8 -vcodec mjpeg -huffman 0 -pix_fmt yuvj420p -f rtp rtp://192.168.4.130:6454/

Support

We do not provide any support for the LED controller on this site but only to our customers. Please do not raise support request in the issue tickets - these are for bugs only. Thank you for your understanding.

Disclaimer

The file ws2812fx.c is based on the work of Harm Aldick (kitesurfer1404). The remaining source code is by christian.hoene@symonics.com, Symonics GmbH, and available under AGPL V3 license. The inital work has been funded by German Federal Ministry of Education and Research within the Fastmusic project.