I2C LCD creating vetical lines instead of empty spaces

Depends on how it is done. If the library is configurable and defaults to the current behavior then there is no issue for any existing code or code for "normal" LCDs.

Done this way it only requires something be done / changed in the sketch to work with the funky LCD.
But I still would be reluctant in implementing it, even though it would only take a few minutes to do, since I think it is likely that the LCD has other issues as well.

--- bill

After some collaboration with a wokwi developer, wokwi has been updated and now the hd44780 library can work on it just like on real h/w.
This includes all probing through the PCF8574 for the hd44780_I2Cexp i/o class and reads from the LCD for any i/o class including hd44780_I2Cexp and hd44780_pinIO

big kudos for the woki developer as I'm guessing that adding full LCD read support was not trivial.

--- bill

I was trying to use it but I'm unsure which library to pick from the wokwi picker and what to #include to declare my LCD 20x4 ?

I'd be tempted to pick the first one in the list here
image

but then doing

#include <Wire.h>
#include <hd44780.h>                       // https://github.com/duinoWitchery/hd44780 -> main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

does not work

The "hd44780" library is called "hd44780" not "HD44780_LCD_PCF8574"

I just went an looked on the wokwi page and it does not appear that they have made all the changes in the documentation that I discussed with them.
i.e. they have not made the updates to the wokwi-lcd1602 documentation and examples, including adding examples for the hd44780 library.

That said, I just did some tests, and the simulator has all the updates to support writing and reading through the PCF8574 so any/all hd44780_I2Cexp i/o class examples and API functions should work.
Even backlight control is now working.

For information on the hd44780 library see the wiki:

The hd44780 library main wiki page has links to other information including the wiki for the hd44780_I2Cexp i/o class:

The hd44780_I2Cexp i/o class wiki page includes information how to port from other LCD libraries, like LiquidCrystal_I2C to the hd44780_I2Cexp i/o class.

--- bill

If you give a link to your Wokwi project, then perhaps I can see the problem.

When you open the Library list in Arduino IDE 2.0, then you get the same list as in Wokwi. Sometimes I open them side-by-side, because the Arduino IDE gives more information.

For an other topic, I made two versions in Wokwi. One with 100% the old LiquidCrystal_I2C and one with 100% hd44780.

yes I know it works with the old one, I had a small piece of code to go through and thought it would have been a great opportunity to test @bperrybap's library - but seems I was picking the wrong one

now with the right library all works fine