Coder Social home page Coder Social logo

evlamp's Introduction

EvLamp

Clean implementation of Alex Guyver's FireLamp analogue in pure C for ESP32.

What it does

Display beautiful effects on a multiple matrices of NxN WS2812B/SK6812/APA106/SM16703 LEDs.

Features

  • ~30 very beautiful effects from different authors, each with set of parameters
  • WiFi connectivity in station or access point modes (support for DHCP/static IP addressing)
  • JSON HTTP API for remote controlling
  • Embedded webserver for remote controlling from browser
  • TODO: OTA

Hardware

You will need:

  • ESP32 (ESP32 only! ESP32-S2/ESP32-C3/ESP32-C4 and others are not yet supported)
  • One or more WS2812B/SK6812/APA106/SM16703 LED matrices
  • 4 buttons:
    • Main: long press - On/Off, click - next effect
    • Up/Down: brightness up/down
    • Reset: long press - Reset settings to defaults

You can use the KiCad 6 project located in the hardware directory and containing an example implementation: a schematic, a simple board and ready-made Gerber files for production (compatible with JLCPCB requirements).

LED matrix

The LEDs in the matrix are connected in series like a snake, starting from the bottom row:

8x8 matrix

The sizes of the most common matrices:

  • 8x8
  • 32x8
  • 16x16

You can build your own matrix with widely available WS2812B/SK6812/APA106 LED strips.

The dimensions of the matrix side are limited to the range 8..128 and number of pixels in matrix cannot be more than 1024.

I do not recommend using matrices with a large number of LEDs due to the maximum frame rate limitations: for a matrix containing 512 LEDs, this limit is 60 fps, and for a matrix of 1024 LEDs maximal fps is 30. It is better to use multiple small matrices.

Single matrix configuration

To control one matrix, only one GPIO pin of the microcontroller is needed:

Single matrix

This configuration is the simplest supported.

Multiple LED matrices (blocks) configuration

You can connect up to 8 LED matrices of the same size to different GPIO pins and achieve high resolution rendering of the effect. For example:

4 blocks configuration example

Maximal recommended configuration

2x4 blocks, each 32x16 LEDs. Total screen dimensions: 64x64, 4096 LEDs, 60 fps max.

Changing LED layout

Configure your LED layout at runtime by API or in browser ("Menu -> LEDs Settings"):

LED layout configuration

Changing default settings

You can select GPIOs, set default WiFi config, LED layout and more in idf.py menuconfig (*** EvLamp configuration ***).

How to build firmware

  • Setup latest ESP-IDF master
  • git clone https://github.com/UncleRus/EvLamp.git
  • git submodule init --recursive --remote
  • idf.py menuconfig
  • idf.py build
  • idf.py flash to upload firmware to ESP

evlamp's People

Contributors

unclerus avatar juliadolgova avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.