VFD Schematics & code witchcraft

I have yet published basic schematics and code for display project. VFD controllerAtmega 16 work as display controller. It will read data from uart serial port, place it to text buffer and simultaneously  multiplex display trough segment voltage buffers and huge digit shift register. ASCII text is converted to segment data and font can be created with computer program.fontMy friend made quick program, which converts png font file to C array cleverly taking one pixel from segment and determining if color value is bright green. Writing font otherwise would have been boring and unintuitive. Small letters look bit weird, as this is only 14 segment display. 16 segment display with binomial top&bottom segments would be better. I may just use upper case letters but for compatibly I made all of them. I will also implement some ASCII control charters to clear screen, move cursor and to make audible bell and turn on/off led. I have incomplete code for multiplexing and font generation. UART communication is not working at all, an I can’t figure why I can’t get other than broken charters. I have tried with different baudrates, tried to calculate UBRR0 manually, changed clock crystals to specific uart ones, and still can’t get it work. Either my AVR or serial -> bluetooth adapter or FTDI usb cable are broken or something. Anyway work-in-progress code here:

 I could also share the font generator made by hauvakukka. I made also quick draft for board layout,VFD boardand it seems I need to make 2 boards because I can only get 160mm x 100mm perfboards, and it will be just long enough to fit all VFD pins, but space left over that is only couple holes. Also I must use flat cable to fit all connections between display and driver IC, board cant handle all of then even without AVR and other wires. Also powersupply is still open, I can easily get 5V but 45V and AC for filament is small problem I need to get over with. I tested display with variable power supply, but 26 V were barely enough to lit segments.IMG_1251

02.09.13 15:10 Edit :

I found out that my #define F_CPU had one zero missing, and that meant 1.6Mhz frequency when hardware were actually runing 16Mhz, no wonder why serial communication did not want work. I must test it again and report if it is now working.

5 thoughts on “VFD Schematics & code witchcraft”

  1. Hi friend! I have this Display here: https://www.ebay.com/itm/Samsung-Temp-Cook-Time-SVM-06ME08-Vacuum-Fluroescent-Display-Tube-Part-M64-/371194582804?_ul=BR and I would like to use it with a SN75518 and Arduino to make a Clock. The pins, from right to left are: 1-2, 3.3 volts Filaments; 3-16, Segments; pin 17 not connected; 18-23, Grids; 24-25, GND Filaments. I would like to know the sequence of the SN75518 pins to turn on the VFD Display and how to declare in the Arduino sketch;
    The sketch ‘By Kesselwagen’ is at the bottom of this page: https://www.instructables.com/id/Arduino-VFD-Display-Clock-Tutorial-A-Guide-To-VFD-/ (VFD7Segment.ino)
    My early thanks

  2. Hi friend! It was not clear to me what Circuit Driver and what components you used. I have a VFD with 10 digits and I would like to plug it into the Arduino. Can not connect it directly to the Arduino pins? Thanks

    1. I used 6118 high voltage buffers and SN75518 high voltage shift register for driving display. Sadly you can not drive VFD directly from Arduino. VFDs are kind of vacuum tubes, and they need 15V to 60V on grids and anodes to activate them. Arduino can only provide 5V which is not enough to light up segments. You must use either high voltage buffer ICs or discrete transistors between display and Arduino. VF displays also need a couple volts of AC for heater filament which must be center tapped and coupled to negative side of anode power supply.

      Noritake Itron has great guide how to use and drive vacuum fluorescent displays: https://www.noritake-elec.com/technology/general-technical-information/vfd-operation

You should put your comment here!

This site uses Akismet to reduce spam. Learn how your comment data is processed.