I’m using the lcd_pcf8574
component, like this:
i2c:
sda: GPIO16
scl: GPIO17
scan: false
display:
- platform: lcd_pcf8574
id: my_display
dimensions: 20x4
address: 0x27
lambda: |-
it.strftime("%H:%M:%S", id(sntp_time).now());
I’m getting warnings like these…
[04:52:20][W][component:239]: Component display took a long time for an operation (255 ms).
[04:52:20][W][component:240]: Components should block for at most 30 ms.
[04:52:21][W][component:239]: Component display took a long time for an operation (253 ms).
[04:52:21][W][component:240]: Components should block for at most 30 ms.
And indeed, when I look at the I²C transaction on a scope it takes about 250 ms. At a bus frequency of 50 kHz that’s about 1.5 kBytes of data? And the default update rate is 1 second (it’s not event driven).
That can’t be right? The display blocks the CPU for almost a quarter of a second, every second, just to show 8 characters?
What am I missing?