OLEDproc add-on

  • Hi LuRu,

    I did some tests yesterday, it did not work.

    I reflash LE10 today and install oledproc, setup and again it did not work.

    My device is set as port=0 and dev=0, DC=18 (gpio24) and RST=22 (gpio25) as it was in a different software which it works. Settings file attached.

    I am looking to logs and I see:

  • I'm not sure, but it looks like you previously had an older version installed that was still without SPI support. I forgot to write that in that case the old version must be uninstalled (including settings). Maybe it wasn't, but in any case I recommend doing a clean install. This means uninstalling the add-on (including settings) and only then installing the new version. And I would even recommend restarting Kodi after uninstalling the addon.

    After a new installation of the add-on, the configuration dialog opens automatically. Make the necessary settings and confirm by pressing OK.

    It's also a good idea to use the Dependencies button to check that all necessary plugins are installed.

    If the installation succeeds and no error is reported, it should start working. The first sign that everything is fine is the LE logo on the display. If it appears, the data configured in the LCD.xml file should be visible in a moment. If it takes a while, it can be speeded up by disabling and re-enabling the XBMC LCDproc add-on.

  • Hi,

    I did a fresh install like you suggest. Remove, reboot and install. Dependencies ok. No change, same errors.

    I notice there is no line256 value registered by addon in settings.xml. As the oled that I have has 256x64 resolution, shouldn't be there?

    I forgot to tell that my test are on CM4, but i think is not important as is the same as Pi4.

  • I can't see your device so I don't know what's going on. I would like to try your setup. Please write which driver chip your display uses.

    Please attach the /.kodi/userdata/addon_data/http://service.oled/settings.xml file here. You can change the xml extension to txt (xml extension is not allowed in attachment).

  • Hi,

    I did change the file and a different error.

  • Code
    Error Contents: BOARD numbering system not applicable on compute module

    Ah, so that's a surprise for me. And I also understood why you used BCM numbering (it's impractical for me - BOARD numbering still applies not only across versions, but even for Orange Pi). I have never seen CM and had no idea about this limitation. But never mind, we'll deal with it somehow. I'll probably have to make a special version for CM. Sorry, but this will take some time...

    First I'll just do a test version where the DC and RES pins will be hardwired by software (other pins are HW controlled so it's always hardwired). Later I will add the option to choose DC and RES in the configuration dialog. Do you have any preferences as to which GPIO the DC and RES pins should be connected to in the first stage?

  • Hi,

    I propose to use at first dc=pin18 (bcm24) and rst=pin22 (bcm25).

    However, I think an editable conf file, like LCDd.conf is maybe better. Any combination could be there, and any user should do it for himself, considering the board, display and so on.

    I like the interface, but I will do it once and no change later. It will be a minimal interface.

    I know that this approach may change a lot your concept, but think about.

    Thank you

  • Hi,

    I will add here some results about tests to be available after vacation, if you prefer we can discuss in private.


    I have a spare Pi3+ and make an install.

    First, normal error like CM4:

    Try to solve rotate error and declare value 0, as it should be. This error removed.

    Next I have server.bind(server_address) error, I resolved by remove server_address and replaced with LOCALHOST, PORT declared as it should be.

    After this XBMC LCDproc connect to Oledproc, but there are errors

    I have no idea about what means these.

    For example,

    Code
    ### [XBMC LCDproc] - Connected to LCDd at 127.0.0.1:13666, Protocol version 0.4 - Geometry 16x4 characters (256x128 pixels, 16x32 pixels per character)

    256x128 should be 256x64?

    What else I did, I add to cmdline.txt this:

    Code
    spidev.bufsiz=8192

    I attach the service file that i have now.

  • This is what I have now:

  • It looks like there is some problem with the luma.oled library, specifically with greyscale devices (SSD13xx). It's probably a glitch when we want to display the LE logo, which is only black and white. You can try commenting the lines in the service.py file according to the following code snippet.

    Code
    Thread(target = self.runserver).start()
    Thread(target = self.runqueue).start()
    #logopath = join(images_dir, 'Logo%i.png' % self.h)
    #logo = Image.open(logopath).convert("1")
    #posn = ((self.device.width - logo.width) // 2, 0)
    #self.image.paste(logo, posn)
    #self.device.display(self.image)

    Or you can try the following modification (I can't test it, I don't own a greyscale device):

    Code
    logopath = join(images_dir, 'Logo%i.png' % self.h)
    logo = Image.open(logopath)
    logo = ImageOps.grayscale(logo)
    posn = ((self.device.width - logo.width) // 2, 0)
    self.image.paste(logo, posn)
    self.device.display(self.image)

    In case it works, I would also be interested in this modification:

    Code
    logopath = join(images_dir, 'Logo%i.png' % self.h)
    logo = Image.open(logopath)
    posn = ((self.device.width - logo.width) // 2, 0)
    self.image.paste(logo, posn)
    self.device.display(self.image)

    Edited once, last by LuRu (July 30, 2022 at 8:26 PM).