I’ve always thought VFDs were pretty cool. They used to be the rage in high end consumer electronics. Back in the mid 70’s, I built a VFD alarm clock. Recently, I got my hands on a modern VFD module to play with. The Noritake-itron SCK-Y100-24063-N14 is a very flexible 24×6 character VFD module in the same form factor of a 20×4 character LCD module. It is a member of Noritake’s CU-Y series VFDs.
Overview
- 5V supply voltage
- serial (asynchronous and synchronous) and 8-bit parallel communication
- CMOS signal and RS-232 (+-15V) voltage compatible
- jumper-selectable baud rate: 9600, 19200, 38400(default), 115200.
- extensive built-in character sets: USA, European, Japanese (Katakana only), Multilingual – various fonts and symbols, Canadian and French, Nordic, WPC1252 – european fonts and symbols, Cyrillic, Latin, Portuguese, PC858 – european fonts and symbols
- adjustable brightness
- locally selectable brightness for highlighting (useful for implementing menus)
- double width, and double width & height characters
The video below compares the Noritake 26×6 VFD to a 20×4 LCD. The characters are noticeably smaller on the VFD due to the higher density, but still quite readable.
This page shows some of the versatility of the Noritake VFD: Versatile Character Display CU-Y Series
The VFD comes pre-configured to operate in async serial mode at 38400 baud. It isn’t necessary to use a UART to talk to the VFD; any GPIO pins will suffice. A minimum of 2 pins are needed, for SIN (input) and SBUSY (output). A third GPIO pin can be connected to RESET (input). I hooked mine up to an Arduino UNO as follows:
D2 -> SIN
D3 -> SBUSY
D4 -> RESET
Here’s what it looks like from the front, running Noritake’s Arduino menu demo:
The lower contrast on the left side of the photo is due to my camera’s reflection – the glass is very reflective. Note the highlighting via localized variations in brightness. Here’s what it looks like with a blue filter on top (again, apologies for the reflections – it actually looks a lot better than this photo):
Though my photos are crap, the display is quite easy to read indoors. I wouldn’t recommend it for outdoor use, however, or anywhere that you expect direct sunlight.
Back view:
The 10-pin jumper block on the top center is used for configuration, and the 14-pin jumper block on the bottom right is used only for parallel mode.
The writing speed of this VFD is very fast. Running in async serial mode on an Arduino UNO at 38400 baud, I was able to output 120 characters in a mere 38ms, which is about 3x faster than LiquidTWI2 can muster, even after the I2C bus is tweaked (and over 100x faster than LiquidTWI2 w/o I2C bus frequency tweaking). Unfortunately, Noritake’s Arduino library doesn’t compile on a Teensy 3.x, because it contains AVR assembly code in a timing function, and calls _delay_us(), which isn’t implemented on the Teensy 3.x. On the other hand, it should not be hard to replace these two functions. To use the Noritake VFD with Arduino, first download the Arduino code library. From the Arduino IDE’s pull-down menu, use Sketch->Import Library…->Add Library... to import Arduino_Noritake_VFD_CUY.zip. Include the following headers into your sketch:
[code language=”c”]
#include <CUY_Interface.h>
#include <CUY_Serial_Async.h>
#include <Noritake_VFD_CUY.h>
[/code]
Two classes need to be instantiated:
[code language=”c”]
CUY_Serial_Async interface(38400,2, 3, 4); // SIN,BUSY,RESET
Noritake_VFD_CUY vfd;
[/code]
Here is what initialization looks like:
[code language=”c”]
void setup() {
delay(500); // wait for device to power up
vfd.begin(24, 4); // 24×4 character module
vfd.interface(interface); // select which interface to use
vfd.isModelClass(Y100);
vfd.CUY_init(); // initialize the module
}
[/code]
Note that Noritake chose to implement only partial compatibility with the LiquidCrystal library. So while vfd.print(s) is supported, vfd.setCursor(x,y) is not; one has to instead call vfd.CUY_setCursor(x,y). The Noritake_VFD_CUY class methods are declared in Noritake_VFD_CUY.h. Noritake includes a few sample sketches, which you can access from Arduino’s menu via File->Examples->CUY.
Noritake also provides a handy host program, which lets you configure and test the display without a microcontroller.
To use the program, connect the VFD to a PC running Microsoft Windows via a Serial->USB adapter, such as an FTDI cable. Using the Serial->USB adapter opens up the possibility of using the VFD as a USB auxilliary display for a PC.
The Noritake SCK-Y100-24063-N14 is a very cool device, and I’m looking forward to building a project with it.
Resource Links
SCK-Y100-24063-N14 Overview
CU-Y: Y-Series Evaluation Software
Code Library
Arduino Library with examples
Sample C++ code and configuration/hookup
How to use custom fonts
How to use the built-in font tables
How to use the font magnification command
How to create a menu using the highlight effect
I have a couple of old Noritake VFD displays. Can I ask you a question about them?
not sure I can help.. I only played with them to the extent of this article, but go ahead, ask away!
Thanks for your reply. I contacted Noritake in New Jersey and the tech I spoke to was very helpful. I have a couple of 4 x 20 Hitachi compatible displays which I got years ago. I wanted to know if there was a simple test to see if they actually worked before I went ahead and developed a project using them. In fact there is a test mode. After connecting 5VDC, shorting a couple of test pins will toggle all of the pixels of all of the characters. One of my two displays looks okay, the other seems to have a problem.
Is the Noritake display in your article compatible with the Hitachi HD44780 LCD controller standard? My Noritake display is, so it should work with the standard Arduino Hitachi HD44780 library. Does your display need Noritake’s Arduino library?
I am absolutely certain that the Noritake display in the above article is NOT HD44780-compatible. If you want to test your unit, just use the Arduino HD44780 library with a test sketch, and see if it works.
Where to find this Display because on eBay and Aliexpress I could not find it. I live in Brazil; Thank you
https://www.digikey.com/products/en/optoelectronics/display-modules-vacuum-fluorescent-vfd/103?k=noritake%20vfd
Thanks for the nice blog post.
Do you know connect the USB to RS232 cable to this VFD?
Obviously PC Tx pin–> SIN pin…
But how about the BUSY & RESET pins?
Thanks
You just need Tx->SIN Rx->SBUSY GND->GND. If you want to hook up RESET just connect to a pin that you can control, like DTR.
you dont need a Serial to USB converter. These modules support real RS232 levels (-15V to +15V). All you have to do is hook the RS232-Tx pin to VFD-SIN pin. SBUSY signal is an output from VFD.Optionally you can read the BUSY signal with RS232-DTR pin before sending the serial characters.
Thanks, none of my computers have real RS232 ports anymore. All the hardware I have uses 3 or 5V UARTs, too, so a TTY Serial->USB converter is most convenient for me
If you use USB to TTL serial converter you need to invert the Tx pin before connecting to the SIN.
I use one of these…
https://www.sparkfun.com/products/11304
These create RS232 level signals instead of TTL level signals.
Also better to tie the RESET pin to the Vcc if unused.
Thanks for the post.
These VFDs need inverted CMOS serial signals. If you want to use a Serial to USB converter you will also need to invert the Tx signal before connecting to the VFD’s SIN pin. This is why you can not use the Arduino UART to send signal to these units.
Solution is an external logic level inverter.
Matter of fact this is what the Arduino library is doing. It creates a soft UART with inverted Tx.