Controlling a VFD with an ESP8266

In this project I have build an information-display using an ESP8266 to control a Vacuum Fluorescent Display (VFD).

I choose the ESP8266 for this because of its capability to communicate over WIFI. You can visit my github repository to see the code that I have written for this and also check out more details about this project.

Hardware and Software design choices

The scheme displayed below shows the components involved. First there is an ESP8266 that is being used as the controller of the VFD. Because the serial port of the VFD is inverted an invertor is needed to invert the bits transmitted on the serial port. I used a sn74hc04n for this, but this is probably a bit of overkill.


For the software part I decided to keep the software on the ESP as simple as possible. So the ESP only has logic to control the display, display the time and do some fancy animation tricks.

The Web-API contains all the logic to gather and prepare the information that needs to be displayed on the VFD. Coding in C# is way easier to do than coding in C++ and debugging is also a lot faster. So separating this into two projects has been a great choice.

Currently the WEB-API gathers the following kinds of information:

  1. weather forecast
  2. traffic information
  3. Fitbit information
  4. Calendar (central family)

Other possible future things to add are:

  1. Tesla car status (charge level, location)
  2. Information of my current 3d print job

The WebAPI uses OAuth 2.0 for both the Graph API and Fitbit API. I only implemented the refresh-token logic, so there is no Authorization logic (using the Microsoft.Owin library). Instead I used Postman to get my user authorization code, access code and refresh token. You can read more about this here. As instructed in the code you only need to enter these tokens once… The WebAPI will store and update the tokens into AzureKeyVault on its own.

If this project help you reduce time to develop, you can give me a cup of coffee 😄