Hi everyone.
A project I have began working on centers around using a HUB75 matrix panel.
For the controller, I am using a Huidu HD-WF2 controller board which I have updated the firmware to ESPHome.
The matrix panel I have chosen for my first attempt at doing something like this has turned out to be rather challenging to set up. I have gotten a P5 outdoor 64x32 1/8 scan, which is not playing nice with ESPHome.
The matrix panel works when using the original Huidu firmware and programming with their software, HDShow or HD2020. Through the configuration settings I would choose the HD-WF2 board, and then select the P5 outdoor matrix with 64x32 1/8 and all was good.
With ESPHome, I have tried quite a few different settings based on hours of searching for info. This panel is stated as being 1/8 scan and is causing me grief. For example using the following config setting, of which from searching were suggestions to try actually make the matrix a jumbled mess, so they do not help at all:
scan_wiring: SCAN_1_8_32PX_HIGH
and
scan_wiring: FOUR_SCAN_32PX_HIGH
Does anyone have any suggestions or have experience with the P5 outdoor 64x32 matrix panels? Unfortunately there is no manufacturer info on the back so I can’t search for specs with that info.
yaml I simplified, based on the example from a git repository in the comment section (I removed the “custom-component” in order to use ESPHome’s integrated hub75 component). It should draw a red box around the perimeter of the panel and print one line of “Hello world!” at coordinate (2,2):
# led-matrix-hub75-huidu-wf2.yaml -- ESPhome config for the HUIDU HD-WF2 LED matrix controller
#
# (C) 2023 Hajo Noerenberg
#
# Usage: See https://github.com/mrfaptastic/ESP32-HUB75-MatrixPanel-DMA/issues/433
#
# http://www.noerenberg.de/
# https://github.com/hn/esphome-configs
#
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3.0 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/gpl-3.0.txt>.
#
esphome:
name: led-matrix-hub75-huidu-wf2
friendly_name: LED matrix Huidu HD-WF2
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "#######################"
ota:
- platform: esphome
password: "#######################"
web_server:
version: 3
port: 80
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Wf2 Fallback Hotspot"
password: "#######################"
captive_portal:
i2c:
sda: 41
scl: 42
time:
- platform: pcf8563
address: 0x51
id: pcf8563_time
- platform: homeassistant
on_time_sync:
then:
pcf8563.write_time:
font:
# gfonts://family[@weight]
- file: "gfonts://Roboto"
id: roboto
size: 12
display:
- platform: hub75
id: huidu_wf2_x1
board: huidu-hd-wf2
panel_width: 64
panel_height: 32
clock_phase: false
lambda: |-
auto red = Color(255, 0, 0);
auto blue = Color(0, 0, 255);
auto rtc = id(pcf8563_time).now();
//it.line(4, 25, 1 * rtc.second, 25, blue);
//it.rectangle(2, 2, 62, 28, red);
it.rectangle(0, 0, 63, 31, red);
//it.strftime(7, 3, id(roboto), "%Y-%m-%d", rtc);
//it.strftime(7, 14, id(roboto), "%H:%M:%S", rtc);
it.print(2, 2, id(roboto), blue, "Hello World!");
switch:
- platform: gpio
id: led_run
pin: 40
binary_sensor:
- platform: gpio
id: test_key
pin:
number: 17
inverted: true
Thanks for any help,
Craig
