Argon Config Tool failing to query system information - Argon One V5

I recently built this Argon One V5 with a Raspberry Pi 5 16GB, replacing a prior V3 setup.

Everything went smoothly, and it runs remarkably cool, but when using the argon-config script to query temperatures and fan speed, the Python it calls appears to break.

Here’s an example of the output whereby I’ve run argon-config followed by 4 and 1 to check temperatures:

--------------------------
Argon Configuration Tool
Version 2501003
--------------------------

Choose Option:
  1. Configure OLED
  2. Argon Industria UPS
  3. Configure Units
  4. System Information
  5. Uninstall

  0. Exit
Enter Number (0-5):4
--------------------------
 Argon System Information
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):1
--------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/luma/core/interface/serial.py", line 96, in command
    self._bus.write_i2c_block_data(self._addr, self._cmd_mode,
  File "/usr/lib/python3/dist-packages/smbus2/smbus2.py", line 643, in write_i2c_block_data
    ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/etc/argon/argonstatus.py", line 9, in <module>
    from argononed import *
  File "/etc/argon/argononed.py", line 39, in <module>
    from argoneonoled import *
  File "/etc/argon/argoneonoled.py", line 32, in <module>
    oled_device=ssd1306(i2c(port=oledport, address=ADDR_OLED))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/luma/oled/device/__init__.py", line 176, in __init__
    self.command(
  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 101, in command
    raise luma.core.error.DeviceNotFoundError(
luma.core.error.DeviceNotFoundError: I2C device not found on address: 0x3C
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):

I see similar output for all five other options there too.

Perhaps it’s a misunderstanding on my part. Is this script just not compatible with the V5 considering how the V5’s fan speed appears to be controlled by the Pi opposed to via an RP2040-powered board on GPIO?

Any insights would be appreciated. I am able to check the temperatures via other means such as btop, but thought it would be wise to share just incase it is indeed a bug in the script.

Thanks.

According to that video https://www.youtube.com/watch?v=tvIFIASbTF0, there is a OLED addon available. On your photo I can’t see that. Maybe you have accidentally activate the OLED option? It looks so that the script tries to refresh the OLED display and can’t found it at the I2C bus.

1 Like

Ah…that makes sense. The script seems to assume the presence of the I2C OLED module.

I see errors when attempting to uninstall the script also.

--------------------------
Argon Configuration Tool
Version 2501003
--------------------------

Choose Option:
  1. Configure OLED
  2. Argon Industria UPS
  3. Configure Units
  4. System Information
  5. Uninstall

  0. Exit
Enter Number (0-5):5
----------------------
 Argon Uninstall Tool
----------------------
Press Y to continue:Y
Removed "/etc/systemd/system/multi-user.target.wants/argononed.service".

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/luma/core/interface/serial.py", line 96, in command
    self._bus.write_i2c_block_data(self._addr, self._cmd_mode,
  File "/usr/lib/python3/dist-packages/smbus2/smbus2.py", line 643, in write_i2c_block_data
    ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/etc/argon/argononed.py", line 39, in <module>
    from argoneonoled import *
  File "/etc/argon/argoneonoled.py", line 32, in <module>
    oled_device=ssd1306(i2c(port=oledport, address=ADDR_OLED))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/luma/oled/device/__init__.py", line 176, in __init__
    self.command(
  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 101, in command
    raise luma.core.error.DeviceNotFoundError(
luma.core.error.DeviceNotFoundError: I2C device not found on address: 0x3C
Removed Argon Services.
Cleanup will complete after restarting the device.

I’ve tried re-installing, this time definitely not triggering any OLED-related options. Unfortunately the same errors occur.

Though it’s of interest, I wasn’t planning to buy the OLED module for this particular build but perhaps in the future I might. I figured the script would give me some stats visibility within terminal windows in much the same way my prior Argon One V3 did. In the short term, I can get the details via other means. It’s just not as convenient.

Thanks for your help :slight_smile:

Since it’s very new, perhaps there are some bugs in the script.

Just a shot in the dark. Is it possible to disable OLED like an opt-out if you set 1. Configure OLED4. Enable OLED pages to N ?

I have tried but unfortunately the problem remains. Here’s a sample of the output after having set Enable OLED pages to N:

spdp@guardian:~ $ argon-config 
--------------------------
Argon Configuration Tool
Version 2501003
--------------------------

Choose Option:
  1. Configure OLED
  2. Argon Industria UPS
  3. Configure Units
  4. System Information
  5. Uninstall

  0. Exit
Enter Number (0-5):1
-----------------------------
Argon OLED Configuration Tool
-----------------------------
Choose from the list:
  1. Switch Page Every 30 secs
  2. Configure Pages
  3. Turn OFF OLED Screen when unchanged after 120 secs
  **4. Enable OLED Pages: N**

  0. Exit
Enter Number (0-3):0

spdp@guardian:~ $ argon-config 
--------------------------
Argon Configuration Tool
Version 2501003
--------------------------

Choose Option:
  1. Configure OLED
  2. Argon Industria UPS
  3. Configure Units
  4. System Information
  5. Uninstall

  0. Exit
Enter Number (0-5):4
--------------------------
 Argon System Information
--------------------------

  **1. Temperatures**
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):1
--------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/luma/core/interface/serial.py", line 96, in command
    self._bus.write_i2c_block_data(self._addr, self._cmd_mode,
  File "/usr/lib/python3/dist-packages/smbus2/smbus2.py", line 643, in write_i2c_block_data
    ioctl(self.fd, I2C_SMBUS, msg)
OSError: [Errno 121] Remote I/O error

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/etc/argon/argonstatus.py", line 9, in <module>
    from argononed import *
  File "/etc/argon/argononed.py", line 39, in <module>
    from argoneonoled import *
  File "/etc/argon/argoneonoled.py", line 32, in <module>
    oled_device=ssd1306(i2c(port=oledport, address=ADDR_OLED))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/luma/oled/device/__init__.py", line 176, in __init__
    self.command(
  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 101, in command
    raise luma.core.error.DeviceNotFoundError(
luma.core.error.DeviceNotFoundError: I2C device not found on address: 0x3C
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):

It definitely seems to be an oversight. I wonder how best to report the issue to Argon. Do you know if they have a GitHub or similar? Perhaps a Twitter DM otherwise.

Thanks again.

Unfortunately not for current versions of the scripts. I only know this:

The lack of feedback/availability from Argon40 was one of the most complaints I read in 2024.

1 Like

Without some detailed examining, you could try the following:

Download the script locally and change line 154 before installation:

from
CHECKDEVICE="oneoled" # Hardcoded for argon1oled

to
#CHECKDEVICE="oneoled" # Hardcoded for argon1oled

via:

  • wget https://download.argon40.com/argon1v5.sh
  • sed -i 's/CHECKDEVICE="oneoled"/#CHECKDEVICE="oneoled"/g' argon1v5.sh
  • bash ./argon1v5.sh
1 Like

Thanks. As a temporary solution, that’s done the trick.

Here’s some sample output, demonstrating that I’m able to get a temperature and fan speed read:

--------------------------
Argon Configuration Tool
Version 2501003
--------------------------

Choose Option:
  1. Configure Fan
  2. Configure IR
  3. Argon Industria UPS
  4. Configure BLSTR DAC (v3/v5 only)
  5. Configure Units
  6. System Information
  7. Uninstall

  0. Exit
Enter Number (0-7):6
--------------------------
 Argon System Information
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):1
--------------------------
TEMPERATURE INFORMATION:
   CPU: 42.4°C
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):6
--------------------------
TEMPERATURE INFORMATION:
   CPU: 42.4°C
FAN CONFIGURATION INFORMATION:
        65.0=100
        60.0=55
        55.0=30
FAN SPEED INFORMATION:
   Fan Speed 0
--------------------------

  1. Temperatures
  2. CPU Utilization
  3. Storage Capacity
  4. RAM
  5. IP Address
  6. Fan Speed

  0. Cancel
Enter Number (0-6):

Also of interest is that I’m now seeing some more options.

Thanks again :slight_smile:

1 Like