I backed the Tidbyt Gen 2 on Kickstarter but was disappointed by its limited Home Assistant integration. So, I decided to flash it with ESPHome. I managed to get the matrix display, audio, and touchpad working. It might still need some fine-tuning, but I wanted to share this to save others some time.
If anyone makes improvements, please share!
esphome:
name: tidbyt
friendly_name: tidbyt
esp32:
board: esp32dev
framework:
type: arduino
external_components:
- source: github://TillFleisch/ESPHome-HUB75-MatrixDisplayWrapper@main
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
media_player:
- platform: i2s_audio
name: ESPHome I2S Media Player
dac_type: external
i2s_dout_pin: GPIO14
mode: mono
i2s_audio:
- id: i2s_out
i2s_lrclk_pin: GPIO13 #WS / LRC
i2s_bclk_pin: GPIO12 #SCK /BCLK
font:
# gfonts://family[@weight]
- file: "gfonts://Roboto"
id: roboto
size: 10
esp32_touch:
setup_mode: false
binary_sensor:
- platform: esp32_touch
name: "Touch Pad"
id: esp32_touch_pad
pin: GPIO33
threshold: 1200
filters:
- delayed_on: 10ms
display:
- platform: hub75_matrix_display
show_test_card: false
id: matrix
driver: FM6126A
i2sspeed: HZ_10M
clock_phase: false
latch_blanking: 1
width: 64
height: 32
R1_pin: 5
G1_pin: 23
B1_pin: 4
R2_pin: 2
G2_pin: 22
B2_pin: 32
A_pin: 25
B_pin: 21
C_pin: 26
D_pin: 19
#E_pin: -1 assign to pin 14 if using more than two panels
LAT_pin: 18
OE_pin: 27
CLK_pin: 15
lambda: |-
it.print(0, 0, id(roboto), "Hello World!");
switch:
- platform: hub75_matrix_display
matrix_id: matrix
name: "Power"
restore_mode: ALWAYS_ON
id: power
number:
- platform: hub75_matrix_display
matrix_id: matrix
name: "Brightness"