Cannot make it works...seems alive after power on, upper line of rectangles is visible and I can change the contrast (by resistor between display's 3 pin and ground), but after running sketch nothing changes. Tried 4 bit and 8 bit mode, with LiquidCrystal library, and also wrote my own flow according to the data sheet (HD44780 and KS066 compatible), also tried different delays etc.
It seems that this LCD demands another init commands/sequence, maybe someone here deal with such model of LCD ?
Let me start by telling that if you need information, you need to be exact in your questions.
Ask the right questions, and check for errors.
How else will anybody be able to help you if your information is incorrect.
Your display isn't a bono 2402-01.
It is a bona fide 2402-01 (click !).
It seems to be a HD44780 compatible display.
So your attempts to control it using uint8_t aren't helping you either, makes it needlessly complicated (i don't know if it can be controlled that way at all).
The row of blocks you see is an indication that the display isn't initialised correctly.
You should be able to use file - examples - LiquidCrystal - HelloWorld in IDE.
That will take care of the initialisation.
But you need to use lcd.begin(24, 2); so the library knows you have 24 instead of 16 characters per line.
And you need to tell the library how you wired the display, the sketch tells you all about it.
First of all I tried the LiquidCrystal library with this settings - lcd.begin(24, 2), using 4-bit and 8-bit wiring, but there was nothing in the display (only upper line of rectangles).
It seems some problem with LCD pin out (maybe some difference with the data sheet), or LCD just is not HD44780 compatible and demands another initialization/commands.
BTW, the code I attached above works perfect with standard W1602 connected to the same UNO board.
That code might work with an other 1602 display, i don't know.
That is why i didn't say it wouldn't, but told you it is much more complicated than using the LiquidCrystal library.
These blocks you see are an indication that there is no correct initialisation.
That can happen if you power the unit, but aren't able to communicate with it.
The link i found didn't show a picture of the connector (i decided not to download an extra language pack, so might have missed something).
But the 4002 (if i remember correctly) brother of this display has a similar double row of solderpads.
They are numbered like this, facing the viewing side of the display, the solderpads to the left of that display.
Left row from bottom to top is even, right row from bottom to top is odd.
16 15
14 13
12 11
10 9
8 7
6 5
4 3
2 1
Normally on connections like these, pin 1 is indicated (the rest can be derived from that).
It will have some kind of marking next to it, or it may be the only square solderpad (the other ones are round).
You probably want to tie pins 5 and 6 to GND, at least for a simple test sketch.
And you might want to use a resistor to reduce current on 15 or 16 (doesn't matter which of these) , if this module doesn't do current limiting itself.
Ofcourse you need to tell the sketch what Arduino pin connects to what display pin too.
Did you do that ?
Shure, I initialize the LiquidCrystal according to the wiring...you are quite right regarding the LCD connector - its two row solderpads, exactly as in your example above...