Jon_2232
(Jon S)
January 17, 2025, 3:42am
1
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"
3 Likes
hroman
(Roman)
February 5, 2025, 9:04am
3
could it be Tidbyt 1 and 2 or they are too different?
TheDuke
February 26, 2025, 1:32am
4
This will work with the Tidbyt 1, but the pins are different and it obviously lacks the touch and audio.
A configuration that I just installed on my Tidbit 1:
esphome:
name: tidbyt-display
friendly_name: tidbyt-display
esp32:
board: esp32dev
framework:
type: arduino
external_components:
- source: github://TillFleisch/ESPHome-HUB75-MatrixDisplayWrapper@main
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: !secret tidbyt-display-key
ota:
- platform: esphome
password: !secret tidbyt-display-ota
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "tidbyt-display"
password: !secret fallback_wifi_password
font:
# gfonts://family[@weight]
- file: "gfonts://Roboto"
id: roboto
size: 10
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: 21
G1_pin: 2
B1_pin: 22
R2_pin: 23
G2_pin: 4
B2_pin: 27
A_pin: 26
B_pin: 5
C_pin: 25
D_pin: 18
#E_pin: -1 assign to pin 14 if using more than two panels
LAT_pin: 19
OE_pin: 32
CLK_pin: 33
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"
Now, what should we actually use this for? Saying hello world is just the beginning. Anyone have any thoughts on what to show?
1 Like
This project as an add-on and an integration would be great - it would be a local way to display any of the pixlet apps.
I think it needs to be updated to an external component instead of a custom component as well for the latest ESPHome.
https://github.com/drudge/esphome-smartmatrix
1 Like
Jon_2232
(Jon S)
March 13, 2025, 6:20pm
6
I was struggling to find a use within home assistant as well, so I installed WLED MoonModules project (HUB75 support) on it, so I still have control of it within home assistant.
In order to get to work on the tidbyt, you need to edit wled00/bus_manager.cpp to update the elif block and then build it. I ended up use the with esp32_4MB_V4_HUB75_forum env.
There are still a few things to work out, like the touchpad and MQTT.
#elif defined(ESP32_FORUM_PINOUT) // Common format for boards designed for SmartMatrix
USER_PRINTLN("MatrixPanel_I2S_DMA - ESP32_FORUM_PINOUT");
mxconfig.gpio.r1 = 5;
mxconfig.gpio.g1 = 23;
mxconfig.gpio.b1 = 4;
mxconfig.gpio.r2 = 2;
mxconfig.gpio.g2 = 22;
mxconfig.gpio.b2 = 32;
mxconfig.gpio.lat = 18;
mxconfig.gpio.oe = 27;
mxconfig.gpio.clk = 15;
mxconfig.gpio.a = 25;
mxconfig.gpio.b = 21;
mxconfig.gpio.c = 26;
mxconfig.gpio.d = 19;
mxconfig.gpio.e = -1;
Wow - this looks awesome. Did you manage to get the rest to work?