-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 1be001e
Showing
29 changed files
with
121,934 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.DS_Store |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,209 @@ | ||
esphome: | ||
name: esp_16ch_led_controller_demo | ||
platform: ESP32 | ||
board: featheresp32 | ||
|
||
wifi: | ||
ssid: "abcdefghijklmnop" | ||
password: "abcdefghijklmnop" | ||
|
||
# Enable fallback hotspot (captive portal) in case wifi connection fails | ||
ap: | ||
ssid: "esp_16ch_led_controller_demo" | ||
password: "abcdefghijklmnop" | ||
|
||
captive_portal: | ||
|
||
# Enable logging | ||
logger: | ||
|
||
# Enable Home Assistant API | ||
api: | ||
password: "abcdefghijklmnop" | ||
|
||
ota: | ||
password: "abcdefghijklmnop" | ||
|
||
status_led: | ||
pin: | ||
number: GPIO5 | ||
inverted: true | ||
|
||
binary_sensor: | ||
- platform: gpio | ||
id: leds_off_button | ||
pin: | ||
number: GPIO0 | ||
inverted: true | ||
on_click: | ||
min_length: 50ms | ||
max_length: 500ms | ||
then: | ||
- light.turn_off: | ||
id: j1_led_lights | ||
- light.turn_off: | ||
id: j2_led_lights | ||
- light.turn_off: | ||
id: j3_led_lights | ||
- light.turn_off: | ||
id: j4_led_lights | ||
- platform: gpio | ||
id: j1_led_on_button | ||
pin: | ||
number: GPIO35 | ||
inverted: true | ||
on_click: | ||
min_length: 50ms | ||
max_length: 500ms | ||
then: | ||
- light.turn_on: | ||
id: j1_led_lights | ||
brightness: 0.5 | ||
red: 1.0 | ||
green: 1.0 | ||
blue: 1.0 | ||
white: 1.0 | ||
- platform: gpio | ||
id: j2_led_on_button | ||
pin: | ||
number: GPIO34 | ||
inverted: true | ||
on_click: | ||
min_length: 50ms | ||
max_length: 500ms | ||
then: | ||
- light.turn_on: | ||
id: j2_led_lights | ||
brightness: 0.5 | ||
red: 1.0 | ||
green: 1.0 | ||
blue: 1.0 | ||
white: 1.0 | ||
- platform: gpio | ||
id: j3_led_on_button | ||
pin: | ||
number: GPIO39 | ||
inverted: true | ||
on_click: | ||
min_length: 50ms | ||
max_length: 500ms | ||
then: | ||
- light.turn_on: | ||
id: j3_led_lights | ||
brightness: 0.5 | ||
red: 1.0 | ||
green: 1.0 | ||
blue: 1.0 | ||
white: 1.0 | ||
- platform: gpio | ||
id: j4_led_on_button | ||
pin: | ||
number: GPIO36 | ||
inverted: true | ||
on_click: | ||
min_length: 50ms | ||
max_length: 500ms | ||
then: | ||
- light.turn_on: | ||
id: j4_led_lights | ||
brightness: 0.5 | ||
red: 1.0 | ||
green: 1.0 | ||
blue: 1.0 | ||
white: 1.0 | ||
|
||
light: | ||
- platform: rgbw | ||
id: j1_led_lights | ||
name: "J1 Lights" | ||
red: j1_pwm_red_channel | ||
green: j1_pwm_green_channel | ||
blue: j1_pwm_blue_channel | ||
white: j1_pwm_white_channel | ||
effects: | ||
- random: | ||
- strobe: | ||
- flicker: | ||
- platform: rgbw | ||
id: j2_led_lights | ||
name: "J2 Lights" | ||
red: j2_pwm_red_channel | ||
green: j2_pwm_green_channel | ||
blue: j2_pwm_blue_channel | ||
white: j2_pwm_white_channel | ||
effects: | ||
- random: | ||
- strobe: | ||
- flicker: | ||
- platform: rgbw | ||
id: j3_led_lights | ||
name: "J3 Lights" | ||
red: j3_pwm_red_channel | ||
green: j3_pwm_green_channel | ||
blue: j3_pwm_blue_channel | ||
white: j3_pwm_white_channel | ||
effects: | ||
- random: | ||
- strobe: | ||
- flicker: | ||
- platform: rgbw | ||
id: j4_led_lights | ||
name: "J4 Lights" | ||
red: j4_pwm_red_channel | ||
green: j4_pwm_green_channel | ||
blue: j4_pwm_blue_channel | ||
white: j4_pwm_white_channel | ||
effects: | ||
- random: | ||
- strobe: | ||
- flicker: | ||
|
||
output: | ||
- platform: ledc | ||
id: j1_pwm_red_channel | ||
pin: GPIO15 | ||
- platform: ledc | ||
id: j1_pwm_green_channel | ||
pin: GPIO17 | ||
- platform: ledc | ||
id: j1_pwm_blue_channel | ||
pin: GPIO12 | ||
- platform: ledc | ||
id: j1_pwm_white_channel | ||
pin: GPIO14 | ||
- platform: ledc | ||
id: j2_pwm_red_channel | ||
pin: GPIO16 | ||
- platform: ledc | ||
id: j2_pwm_green_channel | ||
pin: GPIO18 | ||
- platform: ledc | ||
id: j2_pwm_blue_channel | ||
pin: GPIO13 | ||
- platform: ledc | ||
id: j2_pwm_white_channel | ||
pin: GPIO27 | ||
- platform: ledc | ||
id: j3_pwm_red_channel | ||
pin: GPIO22 | ||
- platform: ledc | ||
id: j3_pwm_green_channel | ||
pin: GPIO23 | ||
- platform: ledc | ||
id: j3_pwm_blue_channel | ||
pin: GPIO21 | ||
- platform: ledc | ||
id: j3_pwm_white_channel | ||
pin: GPIO19 | ||
- platform: ledc | ||
id: j4_pwm_red_channel | ||
pin: GPIO25 | ||
- platform: ledc | ||
id: j4_pwm_green_channel | ||
pin: GPIO26 | ||
- platform: ledc | ||
id: j4_pwm_blue_channel | ||
pin: GPIO33 | ||
- platform: ledc | ||
id: j4_pwm_white_channel | ||
pin: GPIO32 |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# kbx's 16-channel ESP32 Powered LED Strip Controller | ||
|
||
![kbxLEDController-16ch](images/boards_small.jpg "kbxLEDController-16ch") | ||
|
||
## What? | ||
|
||
Just another LED strip/tape controller...because the world needs more blinky! | ||
It was designed with [ESPHome](https://esphome.io) in mind but should work fine | ||
with [Tasmota](https://tasmota.github.io/docs/) or any other app, really. | ||
|
||
## Why? | ||
|
||
I've been using more and more LED tape around my home. In some areas, I have | ||
multiple sections of the tape but didn't want to have a dedicated controller | ||
(and that many more Wi-Fi devices on my network) for each section. Sooooo why | ||
not make a single controller that can control a whole bunch of strips from a | ||
single ESP32? Here we are. | ||
|
||
A benefit of the ESP32 over the ESP8266 is that the ESP32 has dedicated hardware | ||
for generating PWM. This means that dimming of the LEDs is flicker-free, | ||
extremely consistent and smooth. While possible on the ESP8266, control | ||
just...isn't as slick. | ||
|
||
These boards are laid out for RGBW strips/tape, but they can be wired up to | ||
more or less any kind of strips, whether monochrome, RGB, RGBW, RGBWW, the | ||
variable-color-temperature type...whatever. | ||
|
||
They will work with a range of voltages, from 5 volts up to 24 volts. Note | ||
that the 3.3-volt regulator will likely get **HOT** with a power supply | ||
of much greater than 12 volts, however, and in such a state its voltage | ||
output may drop which will trigger the ESP-32's brownout detection, resetting | ||
the processor. Something to keep in mind. | ||
|
||
With the transistors in the BoM, it should be good for up to about 60 watts | ||
per channel -- but, again, watch for excess heat. Also...don't expect to | ||
be able to run all 16 channels at the full 60 watts. You're asking for smoke | ||
and flames if you do so. Still, the layout should be pretty accommodating for | ||
high currents, especially if the boards are fabricated with 2 oz copper (as | ||
they should be because current and heat). | ||
|
||
## How? | ||
|
||
Please see the BoM [here](kbxLEDController-16ch.bom.csv) or | ||
[here](https://octopart.com/bom-tool/OrMoA1no) for a list of parts needed to | ||
build one. I had the PCBs fabricated by [Elecrow](https://www.elecrow.com) but | ||
nearly any PCB fabricator should be able to manufacture these without any issues. | ||
|
||
If you have PCBs fabricated, I *highly* recommend having them made with 2 oz | ||
copper -- it costs a little more but *significantly* improves heat dissipation. | ||
|
||
The schematic and PCB were drawn in [KiCAD](https://www.kicad-pcb.org). | ||
|
||
See the [ESPHome](ESPHome/) directory for a "demo" configuration you can use with | ||
[ESPHome](https://esphome.io) to test the device after construction. | ||
|
||
## Legal stuff and License | ||
|
||
The circuit schematics and PCB found here are licensed under the | ||
[Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/). | ||
|
||
![Creative Commons License badge](https://i.creativecommons.org/l/by-sa/4.0/88x31.png) | ||
|
||
_Happy building!_ |
Oops, something went wrong.