Arduino QDSP Display

Introduction: Arduino QDSP Display

About: Photonics Engineer

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.

Be the First to Share

    Recommendations

    • Make it Real Student Design Challenge #3

      Make it Real Student Design Challenge #3
    • Explore Science Challenge

      Explore Science Challenge
    • Furniture Contest

      Furniture Contest

    8 Comments

    0
    landrymunoz
    landrymunoz

    8 months ago on Step 2

    Hi, actually, I wish I could extend the sentence on both displays. For now, the sentence is displayed individually on each screen, I would like the beginning on one and the rest on the other ...
    0
    Lindermann95
    Lindermann95

    Reply 8 months ago

    Yes, so you have to use the part of the code to wrote on stady (Void Esc()) (NOT THE SCROLLING) I had a little bit of trouble with this part but I think it works, so, when you fill the 8 spaces then you turn off the CE1 and turn on the CE2, so in theory you will start to write on the sencond display,
    if(k==7){
    digitalWrite(CE,LOW);
    digitalWrite(CE1,HIGH);
    }
    Of course, you will have to split the word in two so you can start another “for” to write the second half,

    You will have to play a little bit with the code, it can be done but I don't have enough free time to try it for now (also my laptop is damaged) Let me know if you succeed

    0
    landrymunoz
    landrymunoz

    Question 8 months ago on Step 3

    Hello, I got 2 displays of this type that I would like to connect to an arduino board, how would the connection be made, please?

    0
    Lindermann95
    Lindermann95

    Answer 8 months ago

    Great, you can connect the same pins to both displays, the only difference would be an “extra” output to control the extra display you want to write on
    In this case would be “Chip Enable” CE
    You will need TWO CHIP ENABLE pins, to turn on and off the display you want to write on in certain time

    0
    landrymunoz
    landrymunoz

    Reply 8 months ago

    Hi,thanx for your answer ;)
    So, I just have to connect the cables in the same way to the second screen, but ... On an Arduino Mega board, if I decide to dedicate the pin 22 to the second screen, that would give us :

    int CE = 2;
    int CE2 = 22; // for exemple

    void setup () {
    pinMode (CE, OUTPUT);
    pinMode (CE2, OUTPUT);
    ...
    digitalWrite (CE, HIGH);
    digitalWrite (CE2, HIGH);
    ...

    Nothing more in the code to determine which screen writes what and how?
    ... and when you scribe "pinMode(51, OUTPUT);"
    what is the goal of the 51 pin, how do you connect this pin to the screen, please?

    0
    Lindermann95
    Lindermann95

    Reply 8 months ago

    Hi there, the diagram its in one of the pictures of the instructable and you are almost right, ok now you have two CE pins but you dont want to leave them on at the same time, if you want to write on the display 1 the enable only the CE1 and disable CE2.
    The pin 51 was for me annother function, but you don’t actually need it

    0
    markvk3
    markvk3

    1 year ago on Step 3

    Thanks, I hooked up a QDSP-289 display to a Arduino MEGA and it worked!
    This was a very advanced LED display for it's time.
    I recovered some of these displays from old Motorola MicroTAC flip-phones (early analog cell phones - see: en.wikipedia.org/wiki/Motorola_MicroTAC).
    The Hewlett Packard/Agilent/Avago datasheet for HDSP-210x-series seem to be very similar. The HDSP-2107 and HDSP-2112 displays being the closest to the QDSP-2089. I guess the QDSP may have had been a special OEM version for Motorola.
    It appears this display has the same set of alphanumeric and graphic characters as the HDSP210x-series.
    To avoid any problems with power supply instability, I joined both GND pins (display pins 15 & 16) together as close to the display as possible, and added a 100nF capacitor between GND and the VCC on pin 14.

    0
    Lindermann95
    Lindermann95

    Reply 1 year ago

    Thats just great!
    i’m happy to see that this instructable was usefeull for you
    let me know if you make a project with it