Page 5 of 6

Re: Driving VFD panels with PT6311 controller

Posted: Mon Jul 14, 2014 11:48 pm
by dmitryp
Hi Rafael,

Ok, I'll prepare a simple driver for you today when I am back home from work. So you can conduct a few experiments to do a little bit of reverse engineering to get understanding on how the VFD glass is connected to PT6311 (I am not asking for circuit diagram as most probably you don't have it). Then we will be in a position to tailor the existing library to suit your particular case. I've seen so many VFD panels and not a single one is the same although they look alike :)

Thank you,
Dmitry

Re: Driving VFD panels with PT6311 controller

Posted: Tue Jul 15, 2014 12:05 am
by Rafael
Thanks for your help Dmitry.

You´re the doc, Doc.

Re: Driving VFD panels with PT6311 controller

Posted: Tue Jul 15, 2014 1:10 pm
by dmitryp
Hi Rafael,

As a first step try to run the test attached, there is an Arduino library and a sketch. Before compiling specify correct values for VFD_CS_PIN, VFD_CLK_PIN and VFD_DATA_PIN.
As for the mode, try to use VFD_DISP_MODE_12D16S first. If it doesn't work try VFD_DISP_MODE_9D19S, VFD_DISP_MODE_10D18S, VFD_DISP_MODE_11D17S - these are the only possible modes for your display type.

What you should observe is a 'running digit' effect - all symbols of a specific digit are lit up while the remaining digits are dark, then one second delay and then the next digit should glow. Finally, as a last step, all digits should become dark and all special symbols are lit up at the same time and then eventually the display should be switched off.

Thank you,
Dmitry

Re: Driving VFD panels with PT6311 controller

Posted: Fri Jul 18, 2014 7:47 pm
by Rafael
Hi Dmitry,

Sorry for delay... My power supply is damaged, when I fix it, I will start to test your code.

Many Thanks.

Rafael

Re: Driving VFD panels with PT6311 controller

Posted: Sun Jul 20, 2014 10:31 pm
by dmitryp
Hi Rafael,

No worries, take your time.

Thank you,
Dmitry

Re: Driving VFD panels with PT6311 controller

Posted: Sun Apr 10, 2016 1:19 pm
by Rafael
Hello Dmitry,

How long? Finally I put the old power supply to run again...

We had success with the mode VFD_DISP_MODE_8D20S.

Image

My question is: How to control each extra segment? I mean, extra segments with symbols, not to display a character.

Or is there a library:

VFDPanel_20S8D.cpp
VFDPanel_20S8D.h
Charset20S.h

?

Image

Thanks a lot!!!!

Re: Driving VFD panels with PT6311 controller

Posted: Sun Apr 10, 2016 9:47 pm
by Rafael
A small step...

I am trying to maping each segment, we need 3 bytes to lit up all segments including symbols.

Image

Code: Select all

  fill_mem(0b00000000, 1, 0); // First Byte RED
  fill_mem(0b00000000, 1, 1); // Second Byte YELLOW
  fill_mem(0b11111111, 1, 2); // Third Byte for Symbols and anything else.


Reading your charset file, we need at least two bytes for a simple character and a special mapping for symbols.

For example, is there a way to build a function that contains two bytes to display a character?

Code: Select all

{0x53, 0x77}


Mapped Symbols:

Code: Select all

  fill_mem(0b00000000, 1, 0);
  fill_mem(0b00000000, 1, 1); 
  fill_mem(0b00000010, 1, 2);  // 0b00000010 "POWER"   
 
  fill_mem(0b00000000, 1, 3);
  fill_mem(0b00000000, 1, 4); 
  fill_mem(0b00000010, 1, 5);  // 0b00000010 "STOP"
 
  fill_mem(0b00000000, 1, 6);
  fill_mem(0b00000000, 1, 7); 
  fill_mem(0b00000010, 1, 8);  // 0b00000010 "REC"
 
  fill_mem(0b00000000, 1, 9);
  fill_mem(0b00000000, 1, 10); 
  fill_mem(0b00000011, 1, 11); // 0b00000001 ":" and 00000010 "PLAY"
 
  fill_mem(0b00000000, 1, 12);
  fill_mem(0b00000000, 1, 13); 
  fill_mem(0b00000110, 1, 14); // 0b00000010 "PAUSE" and 0b00000100 "CLOCK"
 
  fill_mem(0b00000000, 1, 15);
  fill_mem(0b00000000, 1, 16); 
  fill_mem(0b00000101, 1, 17); // 0b00000001 ":" e  0b00000100 "$"
 
  fill_mem(0b00000000, 1, 18);
  fill_mem(0b00000000, 1, 19); 
  fill_mem(0b00000010, 1, 20); // 0b00000010 "DOLBY"

  fill_mem(0b00000000, 1, 21);
  fill_mem(0b10000000, 1, 22); // 0b10000000 "USB"
  fill_mem(0b00001111, 1, 23); // 0b00000001 "TXT" and 0b00000010 "HD" and 0b00000100 "EPG" and 0b00001000 "SUB"


Image

This VFD board has buttons and leds linked to the controller, it´s possible to use them?

Thanks a lot for your great work!

I like too much VFD, Crt and Nixie tubes... :)

Re: Driving VFD panels with PT6311 controller

Posted: Tue Apr 19, 2016 11:16 pm
by dmitryp
Hi Rafael,

Sorry for the delay.

One step a time, special symbols and button events should be looked at much later, when you can display meaninful characters.
Given that by the look of things you already know segment mapping, you should be able to generate charset for your VFD panel. Have a look at this code, especially at Charset16S.h - there are two bytes per one character, it should be relatively easy to merge this code with what you have now:

http://magictale.com/wp-content/uploads ... _16S8D.zip

Thank you,
Dmitry

Re: Driving VFD panels with PT6311 controller

Posted: Wed Apr 20, 2016 12:12 am
by Rafael
Hi Dmitry,

I hope all is well with you and thanks for your reply.

Trying to adapt your code, I don't have any signal in display.

Based in other example posted here: PT6311_Test_2014_03_15, I Have:

Sketch:

Code: Select all

#include <util/delay.h>
#include <VFDPanel_20S8D.h>

#define VFD_CS_PIN 2   //Just an example, specify your own correct pin number! This is STB in PT6311 datasheet notation.
#define VFD_CLK_PIN 3  //Just an example, specify your own correct pin number! This is CLK in PT6311 datasheet notation.
#define VFD_DATA_PIN 4 //Just an example, specify your own correct pin number! This is DIN in PT6311 datasheet notation.

VFD_20S8D vfd(VFD_CS_PIN, VFD_CLK_PIN, VFD_DATA_PIN);

void setup()
{
  vfd.reset();
  vfd.displayOnCmd(VFD_DIMMING_MAX);
  vfd.print_f_p(PSTR("HELLO"));
}

void loop()


}


And modified files are attached.

My question is: Maybe PT6311 driver needs to change too?

Thanks a lot.

Rafael

Re: Driving VFD panels with PT6311 controller

Posted: Wed Apr 20, 2016 10:40 pm
by dmitryp
Hi Rafael,

The code that you experimented with before already works on a low level based on the pictures you have uploaded. So PT6311 driver works for your VFD panel. All you need to do is to replace Charset16S.h and functions that refer to FONT_PGM which are:

Code: Select all

size_t MVFD_16S8D::write(uint8_t value);
void MVFD_16S8D::write_f(uint8_t value, uint8_t dstIndex, uint8_t dispColumn);


Thank you,
Dmitry