Introduction: Arduino and HP QDSP Display

Hi there,
This weekend I found a QDSP display lying arround my office and I never worked with one before so I thought it would be a nice weekend project, I searched on internet about this display made by HP, and I found almost no information about it, there is no Datasheet and it took me a while to find out how to send the information.

The QDSP Display its called an "smart" display because it has a ROM inside that has 128 characters in ASCII so you can print them by sending the right address and selecting the position.

So, with this information I made a code in Arduino to control it just by tiping the phrase in a Char.

Hope you like this instructable!

Step 1: Finding the PinOut

As I said there is no Datasheet availabe so I tried with the same pins as the HDSP displays also made by HP, and foutunately it has the same pinout.

So I made this schematic.

Step 2: The Code

//Nombre de los pines de salida
  int RST = 10;
int CE = 2;
int D0=3,D1=4,D2=5,D3=6,D4=7,D5=8,D6=9;
int Datos[] = {D0,D1,D2,D3,D4,D5,D6};
  int Ad0=11,Ad1=12,Ad2=13;
int Dir[] = {Ad0,Ad1,Ad2};
void setup() {
pinMode(RST, OUTPUT);
pinMode(CE, OUTPUT);
pinMode(51, OUTPUT);
for(int i=0;i<=6;i++){
pinMode(Datos[i], OUTPUT);}
for(int j=0;j<3;j++){
pinMode(Dir[j], OUTPUT);}

Serial.begin(9600);
digitalWrite(CE, HIGH);;
delay(100);
reset();
}

void loop() {
char palabra[] = "Instructables";
Scroll(palabra);
delay(200);
}
void Esc(char *dato){
for(int k=0;k<=7;k++){
digitalWrite(Ad0,(1&k)!=0?HIGH:LOW);
digitalWrite(Ad1,(2&k)!=0?HIGH:LOW);
digitalWrite(Ad2,(4&k)!=0?HIGH:LOW);
int Bin = dato[k];
for(int i=0;i<=6;i++){
digitalWrite(Datos[i],(bitRead(Bin,i)));
}
delay(1);
digitalWrite(CE,LOW);
delay(1);
digitalWrite(CE,HIGH);
}
}
void Scroll(char *words){
char buffer[9];
int i = 0;
while(words[i]-1 != 0){
boolean blank = false;
for(int j=0;j<8;j++){
if(!blank && words[i+j]==0){
blank = true;
}
if(blank){
buffer[j] = ' ';
}else{
buffer[j] = words[i+j];
}
}
buffer[8]=0;
Esc(buffer);
if(i==0)
delay(500);
delay(200);
i++;
}
}
void reset(){
digitalWrite(RST, LOW);
delayMicroseconds(1);
digitalWrite(RST, HIGH);
delayMicroseconds(150);
}

Step 3: The End

I found harder to realize that the D7 should be connected to GND, If you connect it to an arduino output this could cause you a lot of noise in the display,

There is another option if you send it to 1, this is made to add your own characters, this display can store up to 16 characters made by you, but this would be a topic for another instructable

Well, I hope you found this usefull, because there is not too much information about the QDSP display on the internet.