{"id":20392021,"url":"https://github.com/jaisor/esp_led_controller","last_synced_at":"2026-04-14T10:31:13.930Z","repository":{"id":43290160,"uuid":"371887008","full_name":"jaisor/ESP_LED_Controller","owner":"jaisor","description":"LED lights controlled by ESP32","archived":false,"fork":false,"pushed_at":"2026-02-05T21:04:10.000Z","size":28858,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-06T02:45:14.839Z","etag":null,"topics":["arduino","esp32","esp32-arduino","esp8266","led-controller","ledlamp","leds","ringlight"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaisor.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-05-29T05:20:01.000Z","updated_at":"2026-02-05T16:23:04.000Z","dependencies_parsed_at":"2023-12-28T04:41:48.834Z","dependency_job_id":null,"html_url":"https://github.com/jaisor/ESP_LED_Controller","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jaisor/ESP_LED_Controller","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaisor%2FESP_LED_Controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaisor%2FESP_LED_Controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaisor%2FESP_LED_Controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaisor%2FESP_LED_Controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaisor","download_url":"https://codeload.github.com/jaisor/ESP_LED_Controller/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaisor%2FESP_LED_Controller/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31793212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["arduino","esp32","esp32-arduino","esp8266","led-controller","ledlamp","leds","ringlight"],"created_at":"2024-11-15T03:38:45.255Z","updated_at":"2026-04-14T10:31:13.910Z","avatar_url":"https://github.com/jaisor.png","language":"C++","readme":"# RingLight ESP LED Controller\n\n![Glamor shot](img/Collage.jpg)\n\n## Features\n* Two LED rings - outer (141 LEDs) and inner (126 LEDs) wired up in series for a total of 267 LEDs\n* Controlled by ESP32 (most stable). Code is compatible with ESP8266, but I was suffering stability issues with wifi and longer LED strips.\n* WiFi connected and managed\n    * creates a default AP, listening to http://192.168.4.1\n    * capable of joining existing 2.4GHz networks\n    * serves a webpage for managing LED - strip size, mode, brightness\n* Firmware update over WiFi - new `firmware.bin` file can be uploaded at `/update` after the IP address\n\n## Components\n* ESP32 - https://www.amazon.com/gp/product/B086MGH7JV\n* JST SM 3PIN LED Connector - https://www.amazon.com/gp/product/B075K4HLTQ\n* DC power connector - https://www.amazon.com/gp/product/B01N8VV78D\n* WS2812B LED strip high density strips 144 LEDs per strip x 2 - https://www.amazon.com/gp/product/B088FKZWDQ\n* DC 5v adapter - https://www.amazon.com/gp/product/B078RXZM4C\n\n## 3D filament \nI used the ones below but likely many others will work. Make sure the white is translucent enough, print a 3 layer sheet and put it in-front of some LEDs.\n* ESUN PLA+ warm white - https://www.amazon.com/gp/product/B01EKEMIIS\n* ERYONE Matte PLA black - https://www.amazon.com/gp/product/B08HX1XF55\n\n## Assembly and wiring\n\nPrint 4 of each:\n* [Dark Ring](stl/DarkRing.stl)\n* [Light Ring](stl/LightRing.stl)\n* [Bridge Hanger](stl/Hanger.stl)\n\nAssemble as described below. Rotate the light ring segments by 45 degrees so they join in the middle of the dark ring segments. \nThis improves stability. If loose-fitting, use a few drops of superglue to set the dark and light rings together.\n![Assembly diagram](img/AssemblyAnnotated.png)\n\nCut the two LED strips to 141 and 126 LEDs. Keep as many of the existing wires and connectors as possible. \nWire the strips data in series - outer first then inner. The beginning of the outer ring data pin goes to the connector data pin. \nJoin the power wires in parallel: 5V/VCC together to the 5V connector pin; GND(-) together to GND on connector pin. \nProviding power to both start and ends of the strips reduces voltage sag and ensures even light at all brightness levels.\n\n![Schematic](img/Schematic.png)\n![Wiring Closeup](img/WiringCloseup.jpg)\n![Wiring Complete](img/WiringComplete.jpg)\n\nBy default in `Configuration.h` the LEDs data is connected to pin 12 on the ESP, but most other GPIO pins can be used if needed.\n\n__LED_PIN_STRIP = 12__ - GPIO12 - above VIN (5V), GND and GPIO13\n\n![ESP32 pins](img/ESP32_pins.png)\n\nSolder the power and data cables between the LED connector, ESP32 and DC connector as shown below, using the basic 3D printable enclosure.\nThe board is mounted above the DC connector with 3mm screws\n\n![ESP32 box assembled](img/ESP_box_assembled.jpg)\n![ESP32 box](img/ESP_box.jpg)\n\nEnclosure STL files. Print in PLA, PETG or any other hard filament.\n* [ESP32 Case STL](stl/ESP32Case.stl)\n* [ESP32 Lid STL](stl/ESP32Lid.stl)\n\n## Configuration.h\n\nThis file configures various default settings, like:\n* ESP pin used to drive the LED data (defaults are referenced below)\n* WiFi AP name/password\n* LED strip type, size, default brightness","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaisor%2Fesp_led_controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaisor%2Fesp_led_controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaisor%2Fesp_led_controller/lists"}