Much Better Argon One Fan Linux Software Alternative

Tried using Argon One script. It sort of works with some limitations but does and can break if you ever want to change or upgrade your OS. If you want to fix this issue, don’t go with Argon’s fan software as it is, at best, sort of clumped together to work instead of actually being well written and robust. It also breaks when you modify much of anything. Plus it literally cannot do some basic things and this sets aside hardware issues with the fan trying to work but cannot do so.

If you are moving to Ubuntu 22.04 or really much of anything except RPi, you will probably want to upgrade. Here is open source software to actually handle the fan on the Argon One units.

Argon One Daemon

Obviously only helps but so much if you are running Windows and not Linux but it is actually pretty well coded from the ground up.

OS Support

The installer now requires you to run ./configure before you run make. This will set up the installer so that it should be able to install on multiple OS’s. The current list of supported OS’s are

  • Raspberry Pi OS 32bit or 64bit
  • RetroPi
  • Gentoo
  • Manjaro-arm
  • Arch Linux arm (ARMv7 installation ONLY)
  • Ubuntu
  • OSMC
  • TwisterOS
  • Lakka *
  • LibreElec *
  • [OpenWRT] EXPERIMENTAL*
  • [Alpine Linux] SEE LINK

*Support for this OS is with the self extracting package system. SEE BELOW

The Argon One CLI tool

This is the new command line tool that lets you change setting on the fly. It communicates with shared memory of the daemon, so the daemon must be running for this tool to be of use. It also introduced new modes for the daemon such as Cool Down and Manual control over the fan.

Cool Down Mode

In cool down mode the fan has a set temperature you want to reach before switching back to automatic control. This is all set as follows argonone-cli --cooldown <TEMP> [--fan <SPEED>]
NOTE: The speed is optional and the default is 10% it’s also import to note that if the temperature continues to climb the schedules set for the fan are ignored.

Manual Mode

As the name implies your in control over the fan the schedules are ignored. To access this as follows argonone-cli --manual [--fan <SPEED>]
NOTE: The fan speed is optional and if not set the fans speed is left alone.

Auto Mode

This is the default mode the daemon always starts in this mode and will follow the schedules in the setting. If you want to change to automatic you do so as follows argonone-cli --auto

Off Mode

Yes an off switch, maybe you want to do something and you need to be sure the fan doesn’t turn on and spoil it. You can turn off the fan as follows argonone-cli --off NOTE: When the fan is off nothing but turning to a different mode will turn it back on

Setting setpoints

Want to adjust the when the fan comes on, maybe it’s not staying on long enough you can change all set points in the schedules from the command line without rebooting. the values are fan[0-2] temp[0-2] and hysteresis. It’s important when changing these values that you remember that the daemon will reject bad values and/or change them to something else. It’s also important to commit the changes you make otherwise they won’t do anything. The value rules are simple each stage must to greater than the one before it and there are minimum and max values.
For temperature the minimum value is 30° the maximum is currently undefined.
For the fan the minimum speed is 10% and the maximum is 100%.
For Hysteresis the minimum is 0° and the maximum is 10°

You can set your values like in this example.
argonone-cli --fan0 25 --temp0 50 --hysteresis 10 --commit
OR

argonone-cli --fan0 25
argonone-cli --temp0 50
argonone-cli --hysteresis 10
argonone-cli --commit

The changes don’t have to made in one shot but you MUST commit them for them to take effect.

Package System

This isn’t a traditional package system for mainstream OS support this is meant to make an installer for an OS that otherwise isn’t able to build the project locally.

To generate a package you need to follow this procedure.

make mrproper
TARGET_DISTRO=<NAME OF DISTRO> ./package.sh

If successful the package will be in the build directory.

Screenshot of the packager

    ___                                                __
   /   |  _________ _____  ____  ____  ____  ___  ____/ /
  / /| | / ___/ __ `/ __ \/ __ \/ __ \/ __ \/ _ \/ __  / 
 / ___ |/ /  / /_/ / /_/ / / / / /_/ / / / /  __/ /_/ /  
/_/  |_/_/   \__, /\____/_/ /_/\____/_/ /_/\___/\__,_/   
            /____/                                       
                                                PACKAGER 
_________________________________________________________
ARGON ONE DAEMON CONFIGURING ...
Distro check [libreelec] : OK
SYSTEM CHECK
gcc : OK
dtc : OK
make : OK
Dependency Check : Successful
INFO:  Preparing build environment ... OK
INFO:  Building Source Files ... OK
INFO:  Checking files ... OK
INFO:  Building Installer ... OK
INFO:  Packing files ... OK
INFO:  Verify package ... OK
INFO:  Package build/libreelec.pkg.sh is complete 
1 Like

@jamesgrace Please take note that this is the Argon ONE part of the forum, and the Argon ONE Daemon is for the Argon ONE case (not for EON, that’s a completely different product).

@Ticerex Thank you! I have deleted my response.

1 Like

This is awesome and so much better than the original. Thank you for creating it.

One question, which is not really related to this script - is there an easy way to query the current fan speed from the command line? I have created a status monitor script for when running a DigiByte full node. It can display the temperature using cat /sys/class/thermal/thermal_zone0/temp but I would really like to be able to display the current fan speed as well, if it is currently running. Is there a way to easily query this? I’m running Ubuntu server.

You can query the current status and settings by this command:
argonone-cli -d

Specific to fan status:
sudo argonone-cli -d | grep -i "fan status"

Sample output:

pi@rpi4:~ $ sudo argonone-cli -d | grep -i "fan status"
Fan Status OFF Speed 0%
pi@rpi4:~ $