July 30Jul 30 I've been trying to get the sys-oled script working in Trixie, but I'm pretty out of my depth here. I started with https://github.com/helios-4/sys-oled.git and https://github.com/rpardini/sys-oled-hc4.git /usr/bin/python3 /usr/local/bin/sys-oled --display sh1106 --i2c-port 0 --rotate 2 Traceback (most recent call last): File "/usr/local/bin/sys-oled", line 140, in <module> device = get_device() File "/usr/local/bin/sys-oled", line 56, in get_device device = cmdline.create_device(args) File "/usr/lib/python3/dist-packages/luma/core/cmdline.py", line 241, in create_device device = Device(serial_interface=interface(), **params) File "/usr/lib/python3/dist-packages/luma/oled/device/__init__.py", line 75, in __init__ self.command( ~~~~~~~~~~~~^ self._const.DISPLAYOFF, ^^^^^^^^^^^^^^^^^^^^^^^ ...<11 lines>... self._const.SETVCOMDETECT, 0x20, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ self._const.CHARGEPUMP, 0x14) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3/dist-packages/luma/core/device.py", line 48, in command self._serial_interface.command(*cmd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/lib/python3/dist-packages/luma/core/interface/serial.py", line 93, in command self._bus.write_i2c_block_data(self._addr, self._cmd_mode, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ list(cmd)) ^^^^^^^^^^ File "/usr/lib/python3/dist-packages/smbus2/smbus2.py", line 643, in write_i2c_block_data ioctl(self.fd, I2C_SMBUS, msg) ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [Errno 6] No such device or address The script wants to compile luma.core on it's own and Trixie throws up some walls to that. I was hoping to use the system libraries, so I installed python3-luma.core and python3-luma.oled. I'm not sure if it's better to override Trixie and just install the luma.core from the script. Does anyone have any experience with this? Will I need to redo this with a Python venv?
July 31Jul 31 @jimbolaya IIRC it is sufficient to use the latest Helios4 image (https://dl.armbian.com/helios4/Trixie_current_minimal). OLED support is available.
August 1Aug 1 Author That's what I'm using. > OLED support is available. I'm not sure what this means. There doesn't appear to be a package or any software installed for it. Do you have a place for me to look? Unfortunately, the answer for was really not very helpful. If I get it working, I'll post what I learn here, but I was unable to find any notes on that particularly on the forums or the Helios4 page. Thank you for your time. James
August 24Aug 24 Author On 8/3/2026 at 7:16 AM, FredK said: Did you use the informations at https://wiki.kobol.io/helios4/i2c/ ? All the variants of sys-oled including the the one mentioned in the wiki at kobol pull in their own luma.oled library, which Armbian (and Debian for that matter) complain about with error: externally-managed-environment If I try to use the package python3-luma.oled, it doesn't really work (see prior posts in this thread). I will eventually figure out how to get this all running in venv and have systemct start it up. But that wont be for a while.
August 24Aug 24 @jimbolaya I'll try to summarize how I got sys-oled up and running. Six years ago I built my Helios4 with Armbian and OMV running a RAID5 with four disks. sys-oled was generated as documented in the Kobol Wiki. At some point migrating from Buster till Bookworm the OLED was no more working. I had to edit the sys-oled sources in minor ways (Today I cant remember any more what I did). In April 2026 I moved OMV to a 64bit platform. The Helios4 is used nowadays for testing purposes. To do so, I installed Armbian from scratch using "Armbian_25.11.1_Helios4_trixie_current_6.6.116_minimal.img". sys-oled was up and running. I adapt /etc/sys-oled.conf, that's all. My /etc/sys-oled.conf: [main] # Define your OLED display model # Check luma.oled project to check supported displays. display_model = sh1106 # Define OLED display contrast level (value: 0 to 255) contrast = 255 # Show Helios4 logo (value: yes or no) show_logo = yes # Status refresh interval refresh = 10 [device] # Network Device network_name = end1 # Storage Device 1 # Device name storage1_name = DiskA # Device mount path storage1_path = /mnt/A # Storage Device 2 storage2_name= DiskB storage2_path= /mnt/B sys-oled also "survived" the subsequent switch to rolling releases. I will look for a recent backup of my Helios4 before reinstall in April.
August 26Aug 26 Author On 8/24/2026 at 10:57 AM, FredK said: sys-oled also "survived" the subsequent switch to rolling releases. Oh, dang. I feel so stupid. I tried updating my helios4 but it failed, so I started from a new image. I forgot I still had the old image somewhere. I found the old sys-oled python script and copied it over and now it works. Still, it seems like there's got to be a better way to do this.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.