Interfacing an OKI LCD Driver

Hi, iwant to controll an vfd(8 char 14 Segment) with an oki lcd Driver MSM5265.
But I cant use something like

Serial.print(“A”)

I have to send eachtime 160bit stream data.
This 160bit is divided in 2 80bit blocks

if I want to diplay an “A” as the first character I have to set the bits 37-30 “1,0,1,0,0,1,1”
and 117-110 “0,0,0,1,0,1,1”. This coresspond to each of the segment of the char.
The next thing is that the first char on the display and the last 2 have different assignment for the segments than the chars 2-6.
That means I need 14 bits for each letter and each number in 3 different versions.
In all that are 14336 = 1 512 bits

What is the best method to safe this data? Array? How big would it become if I use an bool array ?

Will I run into problems with space on the arduino?

What if I send this 160 bits from the PC to the arduino over the USB Connection?
Would that be a better sollution? I want to use it in an HTPC.

greats

The cleanest way to do this is (at least arguably) to store the 7-bit strings in an array of bytes: you waste 1 bit per byte, but that's relatively low overhead. Then you can easily retrieve, shift, and OR them into the array of 10 bytes that you'll use to shift the string of 80 bits out to the controller chip.

If you're really tight for RAM, you can use the PROGMEM feature to store your character tables in flash, but that takes some extra work that you may want to avoid.

Dont know what exactly you mean with shift.

right now im using an loop to send the bits.

for(int i = 160; i > 0; i--) {

    if(chartest[i] == 1){// chartest[i] is an byte array[160] preloaded with data before the loop
      digitalWrite(data, HIGH);
    }
    else{
      digitalWrite(data, LOW);
    }

    delay(1);
    digitalWrite(clock, HIGH);
    delay(2);
    digitalWrite(clock, LOW);
    delay(1);  
  }

and its working but before i posted i had the arrays for the letter as integer and it stoped working after i added all letters in 3 diff versions.
So I thougt maybe its because of the limited ram.
Now all arrays are as byte arrays[7].

The ASCII to 14 Segment function looks like that

 if(chr == 'A'){
    if(cnt == 7){
      byte ch11tmp[] = {1,0,1,0,0,1,1};
      byte ch12tmp[] = {0,0,0,1,0,1,1};
      memcpy(ch11, ch11tmp, 7);
      memcpy(ch12, ch12tmp, 7);    
    }else if(cnt == 0 || cnt == 1){
      byte ch11tmp[] = {1,0,1,1,0,0,1};
      byte ch12tmp[] = {0,0,0,1,1,0,1};
      memcpy(ch11, ch11tmp, 7);
      memcpy(ch12, ch12tmp, 7);
    }else{
      byte ch11tmp[] = {1,0,1,1,0,0,1};
      byte ch12tmp[] = {0,0,0,1,1,0,1};
      memcpy(ch11, ch11tmp, 7);
      memcpy(ch12, ch12tmp, 7);
    }
  }

...

@Ran Talbott
you mean to save the bit sequence as one byte.

{1,0,1,0,0,1,1} == 83

but how can i then send them to the LCD driver?