{"id":16238517,"url":"https://github.com/unclerus/evlamp","last_synced_at":"2025-10-04T17:43:02.148Z","repository":{"id":51134856,"uuid":"362170961","full_name":"UncleRus/EvLamp","owner":"UncleRus","description":"FireLamp in pure C with ESP-IDF and ESP32","archived":false,"fork":false,"pushed_at":"2023-11-28T12:24:35.000Z","size":6079,"stargazers_count":20,"open_issues_count":0,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-16T19:20:05.702Z","etag":null,"topics":["esp-idf","esp32","firelamp","guyverlamp","neopixel","ws2812b"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UncleRus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-27T15:58:48.000Z","updated_at":"2024-11-09T11:30:52.000Z","dependencies_parsed_at":"2023-01-29T23:15:33.815Z","dependency_job_id":"80955546-278d-4236-b752-003280318f53","html_url":"https://github.com/UncleRus/EvLamp","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncleRus%2FEvLamp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncleRus%2FEvLamp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncleRus%2FEvLamp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UncleRus%2FEvLamp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UncleRus","download_url":"https://codeload.github.com/UncleRus/EvLamp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244463619,"owners_count":20456917,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp-idf","esp32","firelamp","guyverlamp","neopixel","ws2812b"],"created_at":"2024-10-10T13:40:38.591Z","updated_at":"2025-10-04T17:42:57.088Z","avatar_url":"https://github.com/UncleRus.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EvLamp\n\nClean implementation of Alex Guyver's FireLamp analogue in pure C for ESP32.\n\n## What it does\n\nDisplay beautiful effects on a multiple matrices of NxN WS2812B/SK6812/APA106/SM16703 LEDs.\n\n### Features\n\n- ~30 very beautiful effects from different authors, each with set of parameters\n- WiFi connectivity in station or access point modes (support for DHCP/static IP addressing)\n- [JSON HTTP API for remote controlling](API.md)\n- Embedded webserver for remote controlling from browser\n- *TODO: OTA*\n\n## Hardware\n\nYou will need:\n\n- ESP32 or ESP32-S3 (ESP32-S2/ESP32-C3/ESP32-C4 and others are not supported)\n- One or more WS2812B/SK6812/APA106/SM16703 LED matrices\n- 4 buttons:\n    - Main: long press - On/Off, click - next effect\n    - Up/Down: brightness up/down\n    - Reset: long press - Reset settings to defaults\n\nYou can use the KiCad 7 project located in the [hardware directory](hardware) and containing\nan example implementation: a schematic, a simple board and ready-made Gerber files for production\n(compatible with JLCPCB requirements).\n\n### LED matrix\n\nThe LEDs in the matrix are connected in series like a snake, starting from the bottom row:\n\n![8x8 matrix](images/8x8_matrix.png)\n\nThe sizes of the most common matrices:\n- 8x8\n- 32x8\n- 16x16\n\nYou can build your own matrix with widely available WS2812B/SK6812/APA106 LED strips.\n\nThe dimensions of the matrix side are limited to the range 8..128 and\nnumber of pixels in matrix cannot be more than 1024.\n\nI do not recommend using matrices with a large number of LEDs due to the maximum frame\nrate limitations: for a matrix containing 512 LEDs, this limit is 60 fps, and for a matrix of\n1024 LEDs maximal fps is 30. It is better to use multiple small matrices.\n\n### Single matrix configuration\n\nTo control one matrix, only one GPIO pin of the microcontroller is needed:\n\n![Single matrix](images/single_block.png)\n\nThis configuration is the simplest supported.\n\n### Multiple LED matrices (blocks) configuration\n\nYou can connect up to 8 LED matrices of the same size to different GPIO pins and achieve high resolution\nrendering of the effect. For example:\n\n![4 blocks configuration example](images/2x2_blocks.png)\n\n### Minimal recommended configuration\n\n1 block, 16x16 LEDs, 90 fps max.\n\n### Maximal recommended configuration\n\n2x4 blocks, each 32x16 LEDs.\nTotal screen dimensions: 64x64, 4096 LEDs, 60 fps max.\n\n### Changing LED layout\n\nConfigure your LED layout at runtime by API or in browser (\"Menu -\u003e LEDs Settings\"):\n\n![LED layout configuration](images/led_config.png)\n\n## Changing default settings \n\nYou can select GPIOs, set default WiFi config, LED layout and more in `idf.py menuconfig`\n(`*** EvLamp configuration ***`). \n\n## How to build firmware\n\n- Setup latest ESP-IDF master\n- `git clone https://github.com/UncleRus/EvLamp.git`\n- `git submodule init --recursive --remote`\n- `idf.py menuconfig`\n- `idf.py build`\n- `idf.py erase-flash` (not necessary but recommended)\n- `idf.py flash` to upload firmware to ESP\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclerus%2Fevlamp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funclerus%2Fevlamp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funclerus%2Fevlamp/lists"}