OK, just in case if anybody is interested, seems like I solved the issue without extra hardware components.
The idea is to re-initialize backpack after bootloader is loaded.
Vss of backpack is connected to Ard.+5v, backpack ground is connected to pin2, backpack Rx connected to pin 1.
initialization code:
void Setup(){
pinMode(1,OUTPUT);
pinMode(2,INPUT);
digitalWrite(1,LOW); //my idea was to ground backpack input
digitalWrite(2,HIGH); //and turn off it's power
delay(500);
pinMode(2,OUTPUT);
digitalWrite(2,LOW); //now pull down backpack ground=power it
delay(3000); //wait until splash screen disappears
Serial.begin(9600); //start communication
Serial.print();
}
I do understand this is quite rough and probably not safe, but it works. No more garbage upon power up or program upload.
And, yes, backlight is set to value 140, that is, total backpack power current is about 12ma. I played with pins modes and LOW/HIGH states because initially backpack current was jumping for half a second up to 60 ma which is not safe at all. Seems like with this setup commands there is no such power jump; I found it rather intuitively :-[
I can also see that backpack "ground" is not actually "0",it is rectangular shape pulse around 0.4 v and freq~100Hz, seems like it originates from backpack.