OLEDproc add-on

  • Congratulations - good job!

    I would probably figure it out in time too - I was actually getting close to it. Obviously, if I had a grayscale display available, it would be much faster.

    I still have a question for clarification - if you change the relevant line like this:

    self.device = driver(serial, width, height, rotate, mode = '1')

    then there is no need to comment the lines that are used to display the LE logo (as I wrote in the last post) and the LE logo is also displayed when the add-on is started?

  • As everything is concentrate on left side of the display, maybe some changes are required to extend the texts to all the space available.

    I was worried that it might happen. Although during development I tried to do it independently of the specific resolution of the display, I probably still made a mistake, and somewhere the fixed width of 128 pixels is still calculated. I'll look into it, it shouldn't be hard to find.

    Edit:

    Now I looked at the picture from you more carefully and it's probably not like that. According to the time, the movie is about one quarter and the progressbar also occupies about one quarter of the display.

    Can you confirm that when there is some longer text than half of the display, it behaves normally and the text occupies the other half of the display as well?

    Scrolling should only occur if the text is longer than the full width of the display.

    There isn't much you can do with the font. It would look very unnatural if the width of the letter was the same as its height.

    Edited once, last by LuRu (July 31, 2022 at 9:11 AM).

  • Yes, display content is configured using LCD.xml. So it should be possible to add some information and thereby expand the text.

    The second option is to reduce the number of emulated lines in the addon configuration. This will make the font bigger.

  • I did change the font with arial bold, it is better now.

    On the one hand, this is very subjective, and on the other hand, there are copyrights. I hope you understand that I cannot (as part of my product) distribute the fonts covered by these rights.

    However, your initiative led me to one idea - to make the font not fixed, but user selectable. This means that each user can copy any number of fonts to the appropriate folder and then choose which font to use in the configuration dialog. I don't care where the user gets these fonts from.

    It is really easy:

    1) Create a fonts folder in the /storage/.kodi/userdata folder

    2) In the /storage/.kodi/userdata/fonts folder, create two subfolders regular and mono

    3) In the /storage/.kodi/userdata/fonts/regular folder, copy the regular fonts you want to try

    4) In the /storage/.kodi/userdata/fonts/mono folder, copy the fixed-width fonts you want to try

    5) In the configuration dialog of the add-on, select the fonts you want to use

    6) The change on the display will take place immediately (the add-on will automatically restart)

    Note:

    I tried it on an Orange Pi PC board (I have it with me on vacation). I don't have an RPi with me, so I couldn't try the CM4 version. There were quite a lot of changes, so it's quite likely that I forgot about some change in the CM4 version.

  • Changing the fonts was a tentative to improve how a particular oled will show information and how much is visible from some distance.

    I did't think about copyrights, as I download the fonts free from internet.

    I understand your concern so to avoid any problem I will keep for myself any changes which may involve copyright issues.

    As Libreelec use fonts under public license, maybe a connection (symlink?) with the font folder is usefull.

  • 1. Can you please tell me if version 104 (for CM4) works without problems?

    2. Of course, LibreELEC has a folder with fonts. The path to them is /usr/share/fonts/liberation

    3. If version 104 works and the font selection also works, you can normally (using the configuration dialog) also select a font from the above folder (via the Root filesystem)

    4. Obviously, not every font that looks good on a monitor or TV screen looks equally good on an OLED display. That's why I think that the option to add more fonts to the menu will be useful (for example, I personally liked the Ubuntu font the most so far).

  • Hi LuRu,

    I put aside the project for a while waiting for a green oled. Now it comes and installed.

    I am still looking for the right font to be displayed in a 3 line configuration.

    I have some issues with scrolling, as the speed can not be configured, any value selected is the same speed.

    What can I do?

    To add information, I update to LE 11 and it works fine.

  • To respond to myself, the issue with scrolling speed was because I had 3 lines in LCD.xml, should be 4.

    Oledproc could be in 3 line configuration, and in this case the display will not show last line. Which is fine.

  • I have to apologize, but I guess I didn't fully understand your posts.

    However - maybe this will help you:

    It is possible to set the scrolling speed. This is done in the settings of the XBMC-LCDproc add-on.

    If you set the value to "0", the scrolling will stop.

  • Hi LuRu, livs, sorry for kicking an old thread, but is there any update since last year? What are latest correct working versions for LE11 and RPi3? Thnx. Would be nice if this would be included in an AddOn repo directly from LibreElec.

    EDIT: I have tried to merge code for SH1122 with Luma and OledProc. It almost works... I get an image on the SH1122 display, but it is scrambled. I can recognize the information. Sometimes it is quite readable, somtimes it is more like snow. Anyone can point me in the right direction? I based it all on the SSD1322 code (since this is also a 256x64 display with SPI). One picture shows the logo (apparently multiple times in the top row). Other picture shows text "1234", which is the first line in my LCD.xml, to test some static text. The "1234" should be in the top left corner.

    For me some conclusions:

    - The connections to the display seem to work fine.

    - The screen is not cleared properly (or not fully written?)

    - All items are written multiple times to the display.

    Anyone can point me in a direction towards the solution?

    See my scratch code on GitHub, I only changed the following files:

    - luma/oled/const.py

    - luma/oled/__init__.py

    - luma/oled/device/__init__.py

    - oledproc/service.py

    - oledproc/resources/settings.xml

    Edit: I tried several initialisations. All from a working setup with an SH1122 SPI display, one from a luma.oled issue and one for an arduino I found somewhere. I'm not sure if my issue is an initialisation issue, or a control issue (resolution? buffer?)

    Edit (again): I was playing around with settings and selected the SSD1322_nhd. This gives a proper image, only the start position seems to be off. The text "1234" should be in the top left corner. I do not get this, since the display was sold as a SH1122 and I can only find this display as an SH1122 on the internet. I do not know how (and mainly where) to fix the position. The SSD1322_nhd is fixed to 128x64, where my display is 256x64 (according to the specs...). When I choose the SSD1322 I get a scrambled image. Just to be sure, I reverted to the original install files provided in this thread. When selecting the SSD1322_nhd, it gives same result as in below picture, where everything s shifted. My display shows printed on the rear: GME25664-65.

    Edited 10 times, last by GuustFlater89: Additional info (October 30, 2023 at 2:51 PM).


  • I've been asked to republish the OLEDproc add-on (since the original download links are broken).
    So here it is: service.oled-12.0.0.105.zip

    Compared to the previously published version, there is only one small modification, thanks to which the scrolling of the text is smoother.
    I recently published the updated add-on dependencies here.

  • Hello. LE12 works with LCDproc.

    I would like to get information about the HDD using a python script

    if possible, an example script


    In older versions of LE used

    Code
    import Adafruit_GPIO
    import Adafruit_SSD1306
    disp = Adafruit_SSD1306.SSD1306_128_64(rst=None)