element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino Projects
  • Products
  • Arduino
  • Arduino Projects
  • More
  • Cancel
Arduino Projects
Blog Using a Vacuum Fluorescent Display (VFD) with a Microcontroller
  • Blog
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino Projects to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 17 Sep 2023 4:25 AM Date Created
  • Views 6630 views
  • Likes 12 likes
  • Comments 5 comments
  • ardbeginner
  • PT6302
  • arduino_projects
  • Vacuum Fluorescent Display
  • vfd
  • Arduino Uno R4 Minima
Related
Recommended

Using a Vacuum Fluorescent Display (VFD) with a Microcontroller

shabaz
shabaz
17 Sep 2023

Table of Contents

  • Introduction
  • Exploring the Display
  • Connecting It Up
  • Arduino Code
  • What Characters are Supported?
  • Summary

Introduction

Sometimes, it’s nice to use a luxury display such as a VFD! This short blog post describes how to get a 12-character alphanumeric display functioning with an Arduino. It's a straightforward task - just six wires to connect!

image

Exploring the Display

I used this particular display; others may work too, but I don't know!:

image

The display has six connections on the right side.

image

The underside of the board has not much, mainly a couple of voltage regulator integrated circuits (ICs). I don’t know what the part codes are, but connecting up a 5V supply and probing with a multimeter reveals that the left regulator provides approximately 27.8V output, and the right one generates a 3.3V output.

image

The in-built controller chip is part code PT6302, which I only learned through guesswork! The AliExpress product page had zero information about the display.

Connecting It Up

I’m not 100% sure, but I'm 95% sure the display requires 3.3V logic levels if I assume that the 3.3V regulator is providing the logic supply for the PT6302 chip, which is inaccessible to probe directly. Therefore, a 5V-logic Arduino (such as Arduino Uno R3) would require logic-level conversion.

I used an Arduino R4 Minima, which normally requires 5V logic levels but was modified for 3.3V capability:  Modifying the Arduino Uno R4: Making it 3.3V-Friendly 

There are plenty of 3.3V logic Arduino boards that could be used instead if desired, of course.

Just four digital pins are needed. The connections I used are below.

Connection Arduino Pin Description
DIN D2 Data
CK D4 Clock
CS D7 *Chip Select
EN D8 Enable
VCC 5V 5V Supply
GND GND Ground

Arduino Code

Download the Vfd12 zip file library (it is based on code I found here. I turned that code into a library and tweaked it a bit to suit the particular VFD that I was using).

In the Arduino environment, click on Sketch -> Include Library -> Add .ZIP Library and select the zip file.

Click on File -> Examples and then near the bottom of the list, you'll see Vfd12 12-character VFD Library. Click on that and select VfdTest

Example code will be displayed. Connect to your Arduino and click on the Upload button!

It should immediately display a “Hello World” message.

The code is easy to use, and mainly just a vfd.print command will be used, for instance:

vfd.print(0, “Hello There!”);

The first parameter is the start position (0-11), and the second is the text string to display.

The code is easy to modify, but if you have problems, please leave a comment below.

What Characters are Supported?

All English characters and numbers can be displayed, i.e. alphanumeric, along with various punctuation. It is possible to user-define up to eight custom characters/symbols. The definition consists of five bytes for each custom character.

image

The example code demonstrates how to do that in an array. I've created some commonly-used symbols, such as degrees, left- and right-pointing triangles, and so on. The ones I created are:

0: right-pointing triangle

1: left-pointing triangle

2: pause symbol

3: overscore

4: degree symbol

5: u (micro) symbol

6: ohm symbol

7: phi character

To display a custom character, the vfd.printchar command could be used, for instance, to show a degree symbol at the seventh position on the display:

vfd.printchar(6, 4);

Summary

It was a pleasant surprise that it was so easy to use a VFD. I’d never tried this before.

The display is very clear to read and supports a decent character set with the capability to have custom symbols too. Just six wires are needed to use the display with any 3.3V logic-level Arduino board. A 5V supply is needed to power the display, however. When displaying a typical message, the current consumption of the display is about 70mA at 5V. I did not measure the current with all pixels illuminated.

All code is on GitHub. Direct link to the library.

Thanks for reading!

Gear up for your next invention with Arduino! Explore our online stores for a comprehensive list of all arduino products currently available.

  • Sign in to reply
  • shabaz
    shabaz over 2 years ago in reply to dougw

    Great looking instrument!

    The display brightness is awesome.

    I'm out of sun for the past day, but at least indoors, I deliberately didn't set it to maximum in my photo, and it's still incredibly readable from across the room.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • dougw
    dougw over 2 years ago

    Cool display.

    I designed a VFD peripheral - driven by an 8085 back around 1982. It was bright enough to work in a car. The data acquisition part of the system used an LSI11 to monitor fuel consumption. Note the fancy tape deck to store data.

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • genebren
    genebren over 2 years ago in reply to shabaz

    The persistence of the fluorescence is much longer than the rapid changes of LEDs and/or liquid crystals.  That is a nice benefit, along with the increased brightness.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 2 years ago in reply to genebren

    It's fun trying out displays!

    I just noticed a possibly useful benefit of VFD; it doesn't flicker when I record it, whereas many LED displays and OLED ones do.

    You don't have permission to edit metadata of this video.
    Edit media
    x
    image
    Upload Preview
    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • genebren
    genebren over 2 years ago

    A fun and informative blog on VFDs.  I have acquired a few VFD over the years, but as of yet, I still have not played with any of them.  This needs to go back on to my to do list.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube