The pin assignments for the data pins are hard coded in the library. You can change these [glow]but it is necessary to use contiguous[/glow], ascending Arduino pins for the library to function correctly. To change this behavior to be able to use any Arduino pins, change these lines:

for (int i=DB[0]; i <= DB[3]; i++) { digitalWrite(i,val_nibble & 01);

to

for (int i=0; i <= 3; i++) { digitalWrite(DB,val_nibble & 01);

* In your code: The constructor now requires to know if your display is 1 or 2 lines. e.g. LCD4Bit lcd = LCD4Bit(1);