• Testing...

    j0z0r pwn4tr0n11/07/2014 at 03:08 0 comments

    I have about 8 of these displays, and one is wired up to my Arduino to work out the final working code. I have done a bunch of research with the datasheets and pinouts to get to this point. My code has been shamelessly stolen from this Swedish tinkerer's blog, with a few minor additions of my own. The output is supposed to say "Test", and instead it is scrambled ASCII. I have verified all the wires go to the proper places about 6 separate times, so I think I'm gonna have to tweak the timing of the "CE" variable. Here's the code I'm currently using:

    /* * * kod för att styra en DLR3416-display från Siemens */ byte a[2]; // Adresspinnar byte d[7]; // Datapinnar byte bl; // Blankingpinne byte wr; // Writepinne  byte i; // Temporär variabel void setup() { wr=9; //Write = pin 9 på Arduinon pinMode(wr,OUTPUT); digitalWrite(wr,1); bl=12; // Blanking = Pin 12 på Arduinon pinMode(bl,OUTPUT); digitalWrite(bl,1); a[0]=10; // Adresspinnarna, 10 och 11 på Arduinon a[1]=11; pinMode(a[0],OUTPUT); pinMode(a[1],OUTPUT); d[0]=2; // Datapinnar från pin 2 - pin 8 på Arduinon d[1]=3; d[2]=4; d[3]=5; d[4]=6; d[5]=7; d[6]=8; for(i=0;i<7;i++) { pinMode(d[i],OUTPUT); } } void loop() { digitalWrite(a[0],1); //adress =0 digitalWrite(a[1],1); digitalWrite(d[0],0); // T digitalWrite(d[1],0); digitalWrite(d[2],1); digitalWrite(d[3],0); digitalWrite(d[4],1); digitalWrite(d[5],0); digitalWrite(d[6],1); wrt(); delay(500); digitalWrite(a[0],0); digitalWrite(a[1],1); digitalWrite(d[0],1); // e digitalWrite(d[1],0); digitalWrite(d[2],1); digitalWrite(d[3],0); digitalWrite(d[4],0); digitalWrite(d[5],1); digitalWrite(d[6],1); wrt(); delay(500); digitalWrite(a[0],1); digitalWrite(a[1],0); digitalWrite(d[0],1); // s digitalWrite(d[1],1); digitalWrite(d[2],0); digitalWrite(d[3],0); digitalWrite(d[4],1); digitalWrite(d[5],1); digitalWrite(d[6],1); wrt(); delay(500); digitalWrite(a[0],0); digitalWrite(a[1],0); digitalWrite(d[0],0); // t digitalWrite(d[1],0); digitalWrite(d[2],1); digitalWrite(d[3],0); digitalWrite(d[4],1); digitalWrite(d[5],1); digitalWrite(d[6],1); wrt(); delay(500); for(i=0;i<5;i++) { digitalWrite(bl,0); delay(500); digitalWrite(bl,1); delay(500); } digitalWrite(a[0],1); digitalWrite(a[1],1); digitalWrite(d[0],0); //' ' digitalWrite(d[1],0); digitalWrite(d[2],0); digitalWrite(d[3],0); digitalWrite(d[4],0); digitalWrite(d[5],1); digitalWrite(d[6],0); wrt(); delay(500); digitalWrite(a[0],0); digitalWrite(a[1],1); digitalWrite(d[0],0); //' ' digitalWrite(d[1],0); digitalWrite(d[2],0); digitalWrite(d[3],0); digitalWrite(d[4],0); digitalWrite(d[5],1); digitalWrite(d[6],0); wrt(); delay(500); digitalWrite(a[0],1); digitalWrite(a[1],0); digitalWrite(d[0],0); // ' ' digitalWrite(d[1],0); digitalWrite(d[2],0); digitalWrite(d[3],0); digitalWrite(d[4],0); digitalWrite(d[5],1); digitalWrite(d[6],0); wrt(); delay(500); digitalWrite(a[0],0); digitalWrite(a[1],0); digitalWrite(d[0],0); // ' ' digitalWrite(d[1],0); digitalWrite(d[2],0); digitalWrite(d[3],0); digitalWrite(d[4],0); digitalWrite(d[5],1); digitalWrite(d[6],0); wrt(); delay(5000); } void wrt() { digitalWrite(wr,0); delay(5); digitalWrite(wr,1); }

    I'll post more updates shortly, I just wanted to get this out there. Here's some of the other websites I have found that talk about this display being hooked up to microcontrollers, although most people just use a Teensy.

    http://milwaukeemakerspace.org/2012/09/random-find-the-avagohp-hdlg-2416/

    http://buzzdavidson.com/?p=148

    http://dorkbotpdx.org/blog/wardcunningham/yow_revisited_in_txtzyme

    http://dorkbotpdx.org/blog/spacewrench/cool_thing_with_broken_teensy

    And the code I used from GorgusGFX(Sweedish):

    http://gorgusgfx.se/?page_id=62