Using older Noritake Itron VFD modules


Now and again you come across interesting parts on ebay, from friends or just rooting around in second-hand stores. One example of this was a huge Noritake Itron 40 x 2 character vacuum-fluorescent display from 1994 (or earlier) which was passed on from a client. Originally it looked quite complex, however after spending some time the data sheets were found and it was discovered to have a simple serial interface – and with a little work we’ve got it working, so read on if you’re interested in classic VFDs or have a similar unit.

Getting Started

The model number for our display is CU40026SCPB-T20A. Here’s a quick walk-around, the front:

Noritake VFD

… the back:

Noritake VFD

… the interfaces:

Noritake VFD

… and configuration jumpers:

Noritake VFD

The serial interface baud rate is determined by the jumpers (above), for example:

VFD baud rate jumpersSo comparing the table above against the jumpers on our module gives us a data speed of 19200 bps with no parity. Great – we can easily create such a connection with a microcontroller with a serial output and 5V logic levels; for our examples we’ll use an Arduino-compatible board.

Wiring up the VFD is simple – see the white jumpers labelled CN2 as shown previously. Pin 1 is 5V (you need an external supply that can offer up to 700 mA), pin 2 to Arduino digital pin 7, and pin 3 to Arduino and power supply GND. We use Arduino D7 with software serial instead of TX so that the display doesn’t display garbage when a sketch is being uploaded. Then it’s a matter of simply sending text to the display, for example here’s a quick demonstration sketch:

… and the results:

noritake vfd demonstration

If you’re not keen on the colour or intensity of the display, try some Perspex over the top – for example:

Noritake VFD

Controlling the display

At this point you’ll need the data sheet, there’s a couple you can download: data sheet onedata sheet two. As you saw previously, writing text is very simple – just use .print functions. However you may want to send individual characters, as well as special commands to control aspects of the display. These are outlined in the data sheet – see the “Software Commands” and “Character Fonts” tables.

If you need to send single commands – for example “clear display” which is 0x0E, use a .write command, such as:

Some commands are in the format of escape codes (remember those?) so you need to send ESC then the following byte, for example to change the brightness to 50%:

Armed with that knowledge and the data sheets you can now execute all the commands. According to the data sheet it is possible to change fonts however no matter what the hardware jumper or command we tried it wouldn’t budge from the Japanese katakana font. Your screen may vary. If you use the “screen priority write” function heed the data sheet with respect to the extended “busy” time by delaying subsequent writes to the display by a millisecond.

 Putting it all together

Instead of explaining each and every possible command, I’ve put the common ones inside documented functions in the demonstration sketch below, which is followed by a quick video of the sketch in operation.



We hope you found this interesting and helpful. And if you have an inexpensive source for these old displays, let us know in the comments. Full-sized images are on flickr. And if you made it this far – check out my new book “Arduino Workshop” from No Starch Press.

In the meanwhile have fun and keep checking into Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column? And join our friendly Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

The following two tabs change content below.

John Boxall

Person. Author of Director of Rare updater of VK3FJBX


  1. Thanks John;

    I’ve had two of these displays laying around for quite awhile.
    Thanks to you now I know they work. I tried the parallel connection but that didn’t work. Great little sketch for testing out the serial connection to.


  2. Hey, thanks. I’m just getting started with arduino hacking. I’ve had a noritake itron cu209scpb-t20a (20×1 characters of 5×7) kicking around for about 10 years. When i originally acquired it, I could not find a datasheet.

    The CU series seem to all work about the same. I was able to get mine going with your code. 10 years ago i looked at the parallel connector and despaired. Never imagined that the three pin connector on the other end would turn out to be power + serial.

    Works great. Now all i need is an application for it!

    I also picked up, more recently, a GU140X32F-7000 graphical matrix display which seems to be based on an extension of the same command set. Noritake-Itron is marketing these as a drop-in replacement for character LCD and they seem to have the same 14 pin header connection on them as commodity LCDs. But I don’t know why I’d bother with the serial interface being so much easier. I guess it means i could implement i2c with one of the lcd piggyback modules.

    Anyway, thanks again!

  3. Hi John,

    thank you for your code! It works absolutely flawless with my CU20026SCPB-T 2*20 VFD over serial and an Arduino Uno. I thought it would be more complicated to use this display but with your explanations and examples it should be easy to use in my next project!

    Again, thank you very much. I’m still impressed how easy it is to use the display 🙂

  4. A little followup. I finally found the right headers to solder onto my GU140X32F-7000.

    I had a little difficulty interfacing it at first until i found an application note showing a 74hc04 buffer between uart serial and the display’s interface port.

    It turns out that when Noritake-Itron says “rs232 level possible” they mean “this is an rs232 display and it does not accept direct uart serial”.

    Luckily i have a small max232 board which i was able to quickly modify to have pin headers for both input and output, and my arduino is driving it just fine now.

Leave a Reply