@floresta
I agree. It is not always possible to see all details when I read posts.
It is not relevant if you have the library but I'd second it is just one additional step.
Because I tried that years ago, and had no luck.
Then I followed exactly the weird sequence I saw on a webpage, and then it worked.
There is also the possibility to use most of these LCDs at 3 volts even 2.5 volts, having a small charge pump.
Maybe this is not relevant information for you, I was very happy recently, when I had success with 4bit mode, and low voltage.
I also had the case where sometimes garbage would show, when I powered them directly. I don't know if this was the reason but now I use digital I/O, and a delay, before powering them up.
lcd_cmd(0x03,4);
lcd_cmd(0x03,1);
lcd_cmd(0x03,1);
lcd_cmd(0x02,1);
lcd_cmd(0x02,1);
lcd_cmd(0x08,1);
lcd_cmd(0x00,1);
lcd_cmd(0x0c,1);
lcd_cmd(0x00,1);
lcd_cmd(0x01,4);
lcd_cmd(0x00,1);
lcd_cmd(0x06,1);
this is my startup code (8x2 LCD), following directly the instructions from a webpage,
it took me 2 hours or so, even if I used these LCD before in 8bit mode.
One other consideration is currently I am preparing to use a small TFT, based on ST7735,
and there is so much complicated information in the datasheet, do you really mind my few lines reply here?
You have the library (so it is kinda irrelevant) but the truth is I think in order to switch to 4 bit mode, there is more than just one extra command to send.