Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 1 addition & 78 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,84 +133,7 @@ ESP32 GPIO32 ─────────────────┤

## ESPHome Configuration

```yaml
esphome:
name: pixelbrain32
friendly_name: PixelBrain32

esp32:
board: esp32dev
framework:
type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
encryption:
key: !secret api_encryption_key

ota:
- platform: esphome
password: !secret ota_password

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "PixelBrain32 Fallback"
password: !secret ap_password

captive_portal:

light:
- platform: neopixelbus
type: GRB
variant: WS2812X
pin: GPIO16 # adjust to your data output GPIO
num_leds: 60 # adjust to your strip length
name: "LED Strip"
id: strip_light
default_transition_length: 500ms
restore_mode: ALWAYS_OFF # prevents strip turning on after power loss or reboot

binary_sensor:
- platform: gpio
pin:
number: GPIO33
mode: INPUT_PULLUP
inverted: true
name: "LED Toggle Button"
on_press:
then:
- light.toggle: strip_light

- platform: gpio
pin:
number: GPIO32
mode: INPUT_PULLUP
inverted: true
name: "LED Brightness Button"
on_multi_click:
# Short press → brightness up 25%
- timing:
- ON for at most 350ms
- OFF for at least 50ms
then:
- light.dim_relative:
id: strip_light
relative_brightness: 25%
transition_length: 300ms
# Long press → brightness down 25%
- timing:
- ON for at least 500ms
then:
- light.dim_relative:
id: strip_light
relative_brightness: -25%
transition_length: 300ms
```
See [pixelbrain32.yaml](pixelbrain32.yaml).

---

Expand Down
74 changes: 74 additions & 0 deletions pixelbrain32.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
esphome:
name: pixelbrain32
friendly_name: PixelBrain32

esp32:
board: esp32dev
framework:
type: arduino

logger:

api:
encryption:
key: !secret api_encryption_key

ota:
- platform: esphome
password: !secret ota_password

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "PixelBrain32 Fallback"
password: !secret ap_password

captive_portal:

light:
- platform: neopixelbus
type: GRB
variant: WS2812X
pin: GPIO16 # adjust to your data output GPIO
num_leds: 60 # adjust to your strip length
name: "LED Strip"
id: strip_light
default_transition_length: 500ms
restore_mode: ALWAYS_OFF # prevents strip turning on after power loss or reboot

binary_sensor:
- platform: gpio
pin:
number: GPIO33
mode: INPUT_PULLUP
inverted: true
name: "LED Toggle Button"
on_press:
then:
- light.toggle: strip_light

- platform: gpio
pin:
number: GPIO32
mode: INPUT_PULLUP
inverted: true
name: "LED Brightness Button"
on_multi_click:
# Short press → brightness up 25%
- timing:
- ON for at most 350ms
- OFF for at least 50ms
then:
- light.dim_relative:
id: strip_light
relative_brightness: 25%
transition_length: 300ms
# Long press → brightness down 25%
- timing:
- ON for at least 500ms
then:
- light.dim_relative:
id: strip_light
relative_brightness: -25%
transition_length: 300ms