Extending the OLED screens

Good Day,

I have finally found some time to update the python scripts for the OLED push button, put them in a git repository and upload.

Changes include:

  • Updated size reported info
  • RAID status update. Removed the “used” field and no report the current state of the array, as well as the rebuild status. Note the rebuild status does not show if the system is not rebuilding
  • Multiple IP addresses: The IPV4 address of each interface will be displayed, with the exception of the loop back device (‘lo’)

I may modify the IP address list and remove the graphic so I can report the interface name, and address as I have three… eth0, wlan0 and wg0 for wireguard.

if you wish to install it, you can pull the code from git, or install by the following command line:

curl -L https://raw.githubusercontent.com/JeffCurless/argoneon/main/argoneon.sh | bash

git: git@github.com:JeffCurless/argoneon.git

13 Likes

PXL_20220214_200717586.MP

1 Like

PXL_20220214_214138121.MP

3 Likes

I’m going to check this out!

1 Like

Hi mate, I’m trying to use dietpi with your script. And I know the original doesn’t aswell. Is there anyway to get the screen working on dietpi? I just find dietpi alot better then the rest. I. An also make my raid via webin, and samba via webmin. But. Ant for the life of me get the screen to work.

I’ve not used dietpi. I suspect that the issue is there are missing libraries needed to access the OLED device.

I can look into it, however it will take a while as I have a number of things that are on my list.

Which version of dietpi are you using?

Looks like dietpi is not installing everything needed for GPIO:

I’m using the 64 it version. Just checking if some dependencies need to be installed. Hopefully that’s the case.

I’ll have to have a play a little latter. Bedtime in australia

Just tried this on 64bit oled screen now updated but can’t use argon-config for some reason.

I just get command not found?

But it’s awesome apart from that. Storage is accurate with RAID-0

Installed this today and it is working well, information now makes more sense.
Running on raspios bullseye 64 lite and OMV6 with RAID 10.
argon-config is working. System time was wrong after script was installed, inly by 22 years 1 month and 14 days!! I am outting this down to my lack of a RTC battery which I forgot to pick up again at the shops today ¯_(ツ)_/¯

Thanks for your work on this.

1 Like

@bobs Interesting, can you cat the contents of argon-config?

cat /etc/root/argon-config

Oh, and:

ls -al /usr/bin/argon-config

Thanks!

Hey,

Thanks for the reply…I did a restart all seems good. Not sure what it was… probably user error.

Thanks again really nice update.

1 Like

Hi, thanks for putting this script together with the updated elements.

I look forward to seeing future ideas you have.

1 Like

Thanks! I’m currently looking at the code in argonsysinfo.py. Going to make sure that interesting things are returned even if not used. For instance argonsysinfo_getraiddetail() call does not list the specific drives used for the raid device. While overall there is a presentation of the total devices used in raid, if you make multiple raidsets utilizing the same drives (by partition) it is hard to determine which peice belongs to what.

1 Like

Added a new page to the OLED display. I calculate the current bandwidth of the device. This is over the time it takes to do one pass of displaying the pages. While not supper accurate for instant use, it is reasonably accurate over the time period.

PXL_20220217_210422809.MP

4 Likes

@NHHiker Love the tweaks. Thank You

One suggestion however to the IP address list. With the change, if you are running docker with a number of containers the bridge IP address is also displayed which isn’t very useful. Can I suggest a minor tweak, to remove the bridge ips as otherwise, the display fills up beyond usability.

def get_ip_addresses( family ):
    for interface, snics in psutil.net_if_addrs().items():
        if interface != "lo" and not interface.startswith("br"):
            for snic in snics:
                if snic.family == family:
                    yield( interface, snic.address )

1 Like

Absolutely, just updated the repository. I was considering removing the ion and listing more than one IP address at a time, and somehow display the interface name as well.

Or possibly modifying the code to support additional configuration selections in the argoneon.conf file, where we could filter out interfaces…

Thanks.

Yea having the interface name becomes important when multiple interfaces exist. I think room will still be an issue to display multiple interfaces at one time, however. I would suggest keeping it as is (with multiple IPs displaying on their own page with the icon and just reducing the font size so you can display both name and ip.

If you replace the

oled_writetextaligned(item[1], 0, 8, oledscreenwidth, 1, fontwdReg)

with

oled_writetextaligned(item[0], 0, 8, oledscreenwidth, 1, fontwdSml)
oled_writetextaligned(item[1], 0, 16, oledscreenwidth, 1, fontwdSml)

in that section, I think that solves the problem.

Yeah, I know… but I have a hard time reading the text…