dpcons
(Dan Powell)
April 20, 2023, 3:46pm
1
After updating to the new 2023-4-0 edition of ESPHome, all four of my ESP devices using the MAX7219 Matrix are displaying gibberish…backward characters, uneven scrolling. It’s a total mess. The update documentation doesn’t mention any changes to the MAX7219 implementation so I can only assume it’s anu unintended bug.
I can confirm that, same behavior here.
Looks like there is an open issue for it, which is the way to get it fixed.
opened 02:19PM - 20 Apr 23 UTC
### The problem
The last [commit ](https://github.com/esphome/esphome/pull/45… 55) from @rafal83 breaks rotated and reversed displays. My clock is installed upside down so i used to rotate & flip it and it worked fine:
```
rotate_chip: 180
reverse_enable: true
```
But with that commit the display is completely broken(see details)
### Which version of ESPHome has the issue?
2023.04
### What type of installation are you using?
Home Assistant Add-on
### Which version of Home Assistant has the issue?
2023.4.3
### What platform are you using?
ESP32
### Board
_No response_
### Component causing the issue
MAX7219digit
### Example YAML snippet
```yaml
display:
- platform: max7219digit
cs_pin: GPIO25
num_chips: 4
intensity: 0
rotate_chip: 180
reverse_enable: false
flip_x: false
lambda: |-
it.print(0, 5, id(digit_font), TextAlign::CENTER_LEFT, "1234567890");
```
<details>
![image](https://user-images.githubusercontent.com/10352360/233393003-4aa4b3d2-6275-4466-b248-f41badd1ecad.png)
</details>
==========================================================================
reverse_enable: false
flip_x: true
<details>
![image](https://user-images.githubusercontent.com/10352360/233393245-95368176-907e-4781-940a-0824d3971793.png)
</details>
==========================================================================
reverse_enable: true
flip_x: true
With reverse enable the text is even duplicated from both directions
<details>
![image](https://user-images.githubusercontent.com/10352360/233393370-015e4e75-b15e-49bd-bd93-3b6013866d20.png)
</details>
==========================================================================
reverse_enable: true
flip_x: false
<details>
![image](https://user-images.githubusercontent.com/10352360/233393771-a67f0f5b-dd92-489f-8165-0dcd61d3e442.png)
</details>
### Anything in the logs that might be useful for us?
_No response_
### Additional information
_No response_
Someone’s temporary fix.
opened 02:19PM - 20 Apr 23 UTC
### The problem
The last [commit ](https://github.com/esphome/esphome/pull/45… 55) from @rafal83 breaks rotated and reversed displays. My clock is installed upside down so i used to rotate & flip it and it worked fine:
```
rotate_chip: 180
reverse_enable: true
```
But with that commit the display is completely broken(see details)
### Which version of ESPHome has the issue?
2023.04
### What type of installation are you using?
Home Assistant Add-on
### Which version of Home Assistant has the issue?
2023.4.3
### What platform are you using?
ESP32
### Board
_No response_
### Component causing the issue
MAX7219digit
### Example YAML snippet
```yaml
display:
- platform: max7219digit
cs_pin: GPIO25
num_chips: 4
intensity: 0
rotate_chip: 180
reverse_enable: false
flip_x: false
lambda: |-
it.print(0, 5, id(digit_font), TextAlign::CENTER_LEFT, "1234567890");
```
<details>
![image](https://user-images.githubusercontent.com/10352360/233393003-4aa4b3d2-6275-4466-b248-f41badd1ecad.png)
</details>
==========================================================================
reverse_enable: false
flip_x: true
<details>
![image](https://user-images.githubusercontent.com/10352360/233393245-95368176-907e-4781-940a-0824d3971793.png)
</details>
==========================================================================
reverse_enable: true
flip_x: true
With reverse enable the text is even duplicated from both directions
<details>
![image](https://user-images.githubusercontent.com/10352360/233393370-015e4e75-b15e-49bd-bd93-3b6013866d20.png)
</details>
==========================================================================
reverse_enable: true
flip_x: false
<details>
![image](https://user-images.githubusercontent.com/10352360/233393771-a67f0f5b-dd92-489f-8165-0dcd61d3e442.png)
</details>
### Anything in the logs that might be useful for us?
_No response_
### Additional information
_No response_
1 Like
Adding myself to the thread with the same issue.
okoun
(okoun)
April 21, 2023, 12:23pm
6
Is there any option to go back to the old firmware? Put the new firmware somewhere…
dpcons
(Dan Powell)
April 21, 2023, 2:15pm
7
I had taken a backup before updating. I restored the system and re installed the esphome devices. That works for me. I don’t know of a way to save the firmware. I wouldn’t think that’s possible since the the firmware is rebuilt on every install for the device.
I don’t get it… according to PR #4727 it should be fixed since Apr 22, 9:59AM GMT+2
But I don’t understand what to do …
When will we be able to repair our MAX7219 displays ??
This was my simple setup…
esphome:
name: matrix-display
esp8266:
board: d1_mini
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "REDACTED"
ota:
password: "REDACTED"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: REDACTED
manual_ip:
static_ip: 10.13.4.51
gateway: 10.13.4.100
subnet: 255.255.255.0
dns1: 10.13.4.100
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Matrix-Display Fallback Hotspot"
password: !secret hotspot_password
captive_portal:
time:
- platform: homeassistant
id: ha_time
timezone: Europe/Berlin
spi:
clk_pin: D3
mosi_pin: D1
status_led:
pin: D4
font:
- file: "fonts/pixelmix.ttf"
id: digit_font
size: 8
globals:
- id: new_text
type: int
initial_value: "3"
- id: txt_cycles
type: int
initial_value: "1"
text_sensor:
- platform: homeassistant
name: "afficheur texte"
entity_id: input_text.afficheur_txt
id: txt
on_value:
then:
lambda: |-
id(new_text) = 0;
display:
- platform: max7219digit
cs_pin: D2
num_chips: 4
intensity: 1
scroll_speed: 50ms
scroll_mode: STOP
update_interval: 3s
lambda: |-
if (id(new_text) <= id(txt_cycles)) {
if(id(new_text) == 0) {
id(txt_cycles) = ceil(strlen(id(txt).state.c_str()) / 6);
}
it.printf(0, 0, id(digit_font), "%s", id(txt).state.c_str());
id(new_text)++;
} else {
it.strftime(0, 0, id(digit_font), " %H:%M", id(ha_time).now());
}
dpcons
(Dan Powell)
April 22, 2023, 6:54pm
9
I don’t think this resolves my issue with the new release. I don’t use flip_x, reverse or any of the other options.
I think 2023.4.1 which is now released has a bug fix for this.