Von Python hab ich keine Ahnung > nutzen wir nicht unter Neutrino.
Nur soviel verstehe ich:
Du nutzt da : vfd_set_icon aus der vfd.cpp.
Zur Daten Übergabe an den aotom per ioctl wird die struct : vfd_ioctl_data benutzt die aus unsigned char's besteht und auf dem 2. char wird der Wert geballert.

Der aotom erwartet aber eine struct aus 2 integer:
Code:
    struct
    {
        int icon_nr;
        int on;
    } vfd_icon;

    vfd_icon.icon_nr = icon;
    vfd_icon.on = cOn;

   ioctl(file_vfd, 0xc0425a0a, &vfd_icon); //0xc0425a0a = VFDICONDISPLAYONOFF
Daher kommt das wohl, dass der aotom den Icon Wert falsch interpretiert.