Noritake CU20026SCPB-T23A 20 x 2 VFD Modulel

Troney1169

Limp Gawd
Joined
Feb 21, 2003
Messages
307
I got my hands one one of these and tried to find some info on how to hook it up to my pc, I'm guessing that I would have to hook it up Parallel and I check/searched the forums and faq but there is none for this model NORITAKE CU20026SCPB-T23A 20 x 2 VFD MODULEl. Any ideas it is a 26 pin on the back. I will try to post pics shortly.

Thanks
 
I was looking at one of these for myself! Pics would be greatly appreciated. What software does the LCD use. LCDC, LCD smartie?
 
A quick Google found some posts in an lcd forum here, but I'm guessing you may have found that already. I'd start with the pinout hypothesis posted at the bottom of that thread.

I've played with a several oem lcd and vfd displays, and while I can usually reverse engineer them for my microcontroller projects, I have no experience hooking them up via parallel port or running them with pc software. There are usually only a handful of communication standards for these displays, so if the software supports what looks like similar numbered controllers, perhaps it will work with yours as well. But sometimes oem stuff is a wildcard and doesn't follow any standard protocol.

Most of the time if you locate the chip datasheets you can determine the data pins by following board traces to the chip pins, and some electronic experience helps with educated guesses towards power hookups (like I did here). But this will probably be a pretty tough project if you don't have some electronics experience, because finding solid info on oem boards can be almost impossible.

* EDIT *

It looks like the controller chip for your display is the SED2032. I can't find any literature on that chip, but according to this page, the SED2020 is very similar. Hope that helps. The question of the day is what role the M38802M2 microcontroller chip on that board is playing... if it is communicating directly with the vfd driver chip (interpreting the data from the 26 pin connector), it's going to be much more difficult to figure out. However, if you find direct access to the SED2032 chip, you might be ok.
 
Thanks a bunch. I did see that thread but with my little bit of experience I did not want accidentally hook up power to the wrong pins. I guess I will keep reading other noritake threads to see if I can make one work in this case.
 
i will be definitely following this thread and soing some research my self. I was interested in one of these since i could get a great deal on it, but now im not so sure.
 
I would say if you're going to go VFD, go graphical.....so much more you can do with it ;)
 
One~Zero said:
I would say if you're going to go VFD, go graphical.....so much more you can do with it ;)
Do a search on eBay for GU128X32-311 graphic vfd's, they are listed quite frequently and pretty cheap (seller usually lists them one at a time). Supported by several pc apps and winamp plugs etc.
 
I have written software for this display. Are you still interested in hooking it up? I can put the software up for download later.
 
Hello, I am sorry to kick up an old thread. However I have contacted a few people on this forum looking to find out if they have had any success with getting the CU2002626SCPB-T23A to work. So far no responses. This information provided here would have saved me weeks! For this reason I am providing my results that I had to start from scratch to get. I will post the link to my website explaining how to convert the payphone you find these screens in and turn it into a functional analog phone with all working functions, including coin validator.

Dont contact me looking for parts, I am just supplying information. I will say that I got mine by finding a payphone service company in town and asking one of the installers. These phones are most common in Canada. It is the Nortel Millennium payphone. (This guy has some info on these phones: http://www.islandregister.com/phones/millenium.html)

I have it working, I have found almost all the functions, still working on all the modes: Excerpt from my website, incase the link goes stale (I will provide the link in my next post):

The VFD found on the Nortel payphones are a custom screen, not completely unique but everything that is important has had some minor change to it. One of the contributors to this put it best "It seems like it just didnt do what Nortel wanted, so they had Noritake remove all the instructions and let nortel do it manually". In this particular case, we will be talking about the Noritake CU20026SCPB-T23A. This units pin out is as follows:
Note: I use 26,24,22 as GND and 2,4,6 as +5v out from Arduino (Do not use a data pin, it wont sync enough current).
GND: 22,24,26 (untested: 12,14,16,18,)
+5vDC: 2,4,6 (untested: ,8,10) (Draw is approximately 300ma)
Logic: (all X pins are only labeled X because I don't know what the official name is).
25 = (X4)
23 = (X3)
21 = (X2)
20 = Reset (X6)
19 = Commit Change (X1)
17 = Data 1
15 = Data 2
13 = Data 3
11 = Data 4
9 = Data 5
7 = Data 6
5 = Data 7
3 = Data 8

A url with a mostly acurate character map is:
http://www.vfdworld.com/techdocs/Noritake_CU20045SCPB-T23A_4x20_VFD.pdf
but again who knows how long it will be available, hopefully long enought that archive.org will get it. Looks like Nortel would manually Draw the characters they needed that didnt fit what was in the map. To find out what was in the map I just built a loop to dump ascii in to the screen. KEEP IN MIND, this will mean you can accidently change the mode and need a payphone to get it back to the right mode (at least for now.) so make sure you start from ascii Decimal "32" and go up, all control characters are below that. The only one that messed up one of the contributors was "31".

Ascii control characters:
10 - Line Feed
13 - Carriage return
12 - Clear screen
19 - Cursor visible
20 - Cursor invisible
18 - Scrolling text mode off
21 - Scrolling text mode on
17 - [nothing so far]

This code sample is for an Arduino, but you will get the basic idea if you decided to attach it to a computer. This will be turned in to a library at some point in the future.


////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////
//// ////
//// VFD Test Code for CU20026SCPB-T23A ////
//// Author: Wes D & Mark M ////
//// Date: 2/17/2014 ////
//// Version: 1.00 ////
//// Platform: Arduino Mega 2560 ////
//// ////
////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////

// These pins are based on a Arduino Mega 2560. But can be run on any Arduino
// with enough pins. And just to be clear, this could just as easily be run on a Pic
// or Pi or Beagle, you name it.
// Name / Arduino pin / Pin on VFD
#define d0 22 //Pin 15 on VFD
#define d1 24 //Pin 13 on VFD
#define d2 26 //Pin 11 on VFD
#define d3 28 //Pin 9 on VFD
#define d4 30 //Pin 7 on VFD
#define d5 32 //Pin 5 on VFD
#define d6 34 //Pin 3 on VFD
#define d7 36 //Pin 1 on VFD
#define x1 38 //Pin 17 on VFD
#define x2 40 //Pin 19 on VFD
#define x3 42 //Pin 21 on VFD
#define x4 44 //Pin 23 on VFD
#define x5 46 //Pin 25 on VFD
#define x6 48 //Pin 20 on VFD

int scrollDelay;

void setup() {
pinMode(d0,OUTPUT);
pinMode(d1,OUTPUT);
pinMode(d2,OUTPUT);
pinMode(d3,OUTPUT);
pinMode(d4,OUTPUT);
pinMode(d5,OUTPUT);
pinMode(d6,OUTPUT);
pinMode(d7,OUTPUT);
pinMode(x1,OUTPUT);
pinMode(x2,OUTPUT);
pinMode(x3,OUTPUT);
pinMode(x4,OUTPUT);
pinMode(x5,OUTPUT);
pinMode(x6,OUTPUT);
pinMode(12,OUTPUT);

//Default States
digitalWrite(12, HIGH);
digitalWrite(d0, HIGH);
digitalWrite(d1, HIGH);
digitalWrite(d2, HIGH);
digitalWrite(d3, HIGH);
digitalWrite(d4, HIGH);
digitalWrite(d5, HIGH);
digitalWrite(d6, HIGH);
digitalWrite(d7, HIGH);

digitalWrite(x1, HIGH);
digitalWrite(x2, LOW);
digitalWrite(x3, HIGH);
digitalWrite(x4, LOW);
digitalWrite(x5, HIGH);
digitalWrite(x6, LOW);

}

void vfdreset() {
//According to an anonymous source, this needs to be done once and a while because of corrupt
//characters appearing on the screen. We have confirmed this. The reset is very fast, you can
//shorten the delays a bit, but you will have to play around to see what works for you.
digitalWrite(x6, HIGH);
delay(2);
digitalWrite(x6, LOW);
delay(10);
}

void vfdtest() {
//This will kick off the VFD internal test. Basically just steps through all the characters
//built in to the display.
//Procedure is, hold x5 (VFD Display pin 25) low for 100ms during a reset. Reset does not start until x6 (VFD Display pin 20) is low again.
digitalWrite(x5,LOW);
digitalWrite(x6,HIGH);
delay(50); //This can be shorter, but best results showed this was good.
digitalWrite(x6,LOW);
delay(100); //NO TOUCHY!
delay(15000); //This counter is running while the test sequence is running. Make this longer if you like, the display will keep looping the test until you restart
digitalWrite(x6, HIGH);
delay(10);
digitalWrite(x6, LOW);
digitalWrite(x5, HIGH);
}

void loop() {
scrollDelay = 1;
vfdreset();
delay(200);
writeCharacter(20u);
delay(200);
writeCharacter(18); //Turn off Scroll Mode
writeCharacter('P');
writeCharacter('l');
writeCharacter('e');
writeCharacter('a');
writeCharacter('s');
writeCharacter('e');
writeCharacter(' ');
writeCharacter('l');
writeCharacter('i');
writeCharacter('f');
writeCharacter('t');
writeCharacter(' ');
writeCharacter('r');
writeCharacter('e');
writeCharacter('c');
writeCharacter('e');
writeCharacter('i');
writeCharacter('v');
writeCharacter('e');
writeCharacter('r');
writeCharacter(13);
writeCharacter(21); //Turn on scroll mode
for (int i = 0;i < 200; i++) { //This will prevent the re-write of line one and excessive screen resets.
scrollDelay =150; //Slow down the scroll speed.
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter('H');
writeCharacter('e');
writeCharacter('l');
writeCharacter('l');
writeCharacter('o');
writeCharacter(' ');
writeCharacter('W');
writeCharacter('o');
writeCharacter('r');
writeCharacter('l');
writeCharacter('d');
writeCharacter(',');
writeCharacter(' ');
writeCharacter('H');
writeCharacter('o');
writeCharacter('p');
writeCharacter('e');
writeCharacter(' ');
writeCharacter('y');
writeCharacter('o');
writeCharacter('u');
writeCharacter(' ');
writeCharacter('e');
writeCharacter('n');
writeCharacter('j');
writeCharacter('o');
writeCharacter('y');
writeCharacter(' ');
writeCharacter('t');
writeCharacter('h');
writeCharacter('i');
writeCharacter('s');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter('P');
writeCharacter('u');
writeCharacter('t');
writeCharacter(' ');
writeCharacter('a');
writeCharacter(' ');
writeCharacter('l');
writeCharacter('o');
writeCharacter('o');
writeCharacter('n');
writeCharacter('i');
writeCharacter('e');
writeCharacter(' ');
writeCharacter('i');
writeCharacter('n');
writeCharacter(' ');
writeCharacter('t');
writeCharacter('h');
writeCharacter('e');
writeCharacter(' ');
writeCharacter('s');
writeCharacter('l');
writeCharacter('o');
writeCharacter('t');
writeCharacter(' ');
writeCharacter('f');
writeCharacter('o');
writeCharacter('r');
writeCharacter(' ');
writeCharacter('t');
writeCharacter('h');
writeCharacter('e');
writeCharacter(' ');
writeCharacter('d');
writeCharacter('a');
writeCharacter('n');
writeCharacter('c');
writeCharacter('i');
writeCharacter('n');
writeCharacter('g');
writeCharacter(' ');
writeCharacter('g');
writeCharacter('i');
writeCharacter('r');
writeCharacter('l');
writeCharacter('s');
writeCharacter('.');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
writeCharacter(' ');
delay(5000);
}
}

void writeCharacter(byte v) {
digitalWrite(x1, LOW); //Prepare to write
digitalWrite(d0, bitRead(v,7));
digitalWrite(d1, bitRead(v,6));
digitalWrite(d2, bitRead(v,5));
digitalWrite(d3, bitRead(v,4));
digitalWrite(d4, bitRead(v,3));
digitalWrite(d5, bitRead(v,2));
digitalWrite(d6, bitRead(v,1));
digitalWrite(d7, bitRead(v,0));
digitalWrite(x1, HIGH); //Write Complete
delay(scrollDelay);

}


I sure hope this helps you as much as it would have helped me...
 
Back
Top