Z69 Pro and OpenVFD not working

I’m new to CoreElec, and am just testing the latest version of CoreElec (9.2.4.2) on a Z69 Pro Box 2G Box. While in general everything works as expected. I can’t make sense of the openVFD add-on. When booting Android from the NAND, the little VFD display works fine, but not under CoreElec, I have installed the openVFD addon and tried every conf file from arthur-liberman github repo as /storage/.config/vfd.conf, but nothing works. The display just remains black for every configuration.

I have physically inspected the box, and can confirm the box uses an FD628 Controller, so that narrows down the configuration files a bit :slight_smile: I’m using CoreELEC-Amlogic.arm-9.2.4.1-Generic.img.gz on an SD card with …/device_trees/gxl_p212_2g.dtb as my dtb.img

Does anyone know the correct openVFD configuration for this Box? Or know the best way to work it out? What tools you need etc. I have examined the boot logs from Android startups, and it appears Android uses a device (/dev/led_display) file to talk to the display. So this doesn’t help with the gpio pin details I need to configure openVFD.

Any and all help would be much appreciated.

Thanks in advance.

There doesn’t appear to be a /sys/kernel/debug directory at all. But I did find a reference to the gpio under ./sys/class/… See screenshot attached.

Is that Android or CoreELEC? Because I need the output from Android.
If you’re looking in Android, and there’s no /sys/kernel/debug/gpio, then perhaps the information will be in the DTB.

I was looking in Android. So I assume there is not DEBUG option enabled in my kernel.
I have extracted the Android /dev/dtb file and saved in the attached file.
Z69Pro_Android_dtb.img.gz (192.3 KB)
Thanks very much for your assistance it is much appreciated.

Try this one: z69-pro-vfd.conf (1.2 KB)

Thanks for your on going help and fast reply. Still no luck.

Here is the openVFD output as shown in the system log after a reboot:

Is it possible I have the wrong corelec DTB file for the device? I am using gxl_p212_2g.dtb

I have managed to dump the android DTB file (Using fdtdump), and found the following entry, which looks like it is for the display controller:

fd628_dev {
    compatible = "amlogic, fd628_dev";
    status = "okay";
    clk_pin = <0x00000028 0x0000000c 0x00000000>;
    dat_pin = <0x00000028 0x0000000c 0x00000000>;
    stb_pin = <0x00000028 0x00000002 0x6d706174>;
};

But I don’t understand why the CLK and DAT pin are the same?
CLK = DAT = Pin 12?, STB = Pin 2? On the Banks GPIO? (phandle 0x28)

There is also an entry for something called the pinmux with seems to list the two GPIO banks discussed in the OpenVFD doco.

pinmux {
    compatible = "amlogic, pinmux-gxl";
    dev_name = "pinmux";
    #pinmux-cells = <0x00000002>;
    #address-cells = <0x00000002>;
    #size-cells = <0x00000002>;
    reg = <0x00000000 0x00000003 0x62616e6b 0x00000003>;
    ranges;
    banks@c11080b0 {
        reg = <0x00000000 0x00000000 0x00000000 0x00000000 0x00000003 0x70756c6c 0x00677069 0x00000494 0x00000002 0x00000028 0x00000028 0x616e6b40 0x00000003 0xc8100014 0xc810002c 0xc8100024>;
        reg-names = "mux", "pull", "pull-enable", "gpio";
        gpio-controller;
        #gpio-cells = <0x00000002>;
        linux,phandle = <0x00000028>;
        phandle = <0x00000028>;
    };
    ao-bank@c1108030 {
        reg = <0x00000000 0x00000000 0x00000000 0x00000003 0x70756c6c 0x00000000 0x000004a4 0x000000df 0x000000e5 0x65787465 0x73000000 0x00000004>;
        reg-names = "mux", "pull", "gpio";
        gpio-controller;
        #gpio-cells = <0x00000002>;
        linux,phandle = <0x0000006f>;
        phandle = <0x0000006f>;
    };

If I also dump the dtb file from coreElec I do notice slight differences? See (linux,phandle)
pinmux {
compatible = “amlogic, pinmux-gxl”;
dev_name = “pinmux”;
#pinmux-cells = <0x00000002>;
#address-cells = <0x00000002>;
#size-cells = <0x00000002>;
reg = <0x00000000 0x00000003 0x62616e6b 0x00000003>;
ranges;
banks@c11080b0 {
reg = <0x00000000 0x00000000 0x00000000 0x00000000 0x00000003 0x70756c6c 0x00677069 0x000004a4 0x00000002 0x0000001a 0x0000001a 0x616e6b40 0x00000003 0xc8100014 0xc810002c 0xc8100024>;
reg-names = “mux”, “pull”, “pull-enable”, “gpio”;
gpio-controller;
#gpio-cells = <0x00000002>;
linux,phandle = <0x0000001a>;
phandle = <0x0000001a>;
};
ao-bank@c1108030 {
reg = <0x00000000 0x00000000 0x00000000 0x00000003 0x70756c6c 0x00000000 0x000004b4 0x000000ef 0x000000f5 0x65787465 0x73000000 0x00000004>;
reg-names = “mux”, “pull”, “gpio”;
gpio-controller;
#gpio-cells = <0x00000002>;
linux,phandle = <0x0000006d>;
phandle = <0x0000006d>;
};

Also I notice in the system log, OpenVFD says it found the GPIO chips. ao-bank, banks. Since the configuration I’m using is trying to address the banks chip, What does the Base 155 mean? Does this map to any of the address information in the DTB file?

The CLK and DAT being the same value makes no sense.
Is it possible for your to open up the box and check what type of controller it’s actually using?

There can be differences in phandle addresses between Android and CE, that isn’t wrong.
Since CE’s DTB is generic, it’s possible that some things will not be setup correctly for 100% of boxes out there. But I don’t know what’s the correct config for the VFD in your box. In some cases the values in Android are hardcoded, and anything in the DTB is ignored.

About | FAQ | Terms of Service | Privacy Policy | Legal Notice