Hello!
In this little How To I will describe what is necessary to use the Fan and the Power button of the Argon One Case for the Raspberry Pi 4B together with a piCorePLayer (7.x) installation.
I assume that the Raspberry Pi 4B is installed inside the case and piCorePlayer (7.x) is installed. Also you know the IP-address or the name of this Pi.
For the first step we need to login to the Pi via ssh. This can be done on the Mac with the normal Terminal.app or on a Windows PC with eg. putty. I will describe her only the way to get to the Pi for a Mac.
So start the Terminal.app, then input:
(without the "<" and ">"!)
You will then be asked for the password of the user "tc" which is "piCore" if you didn't change it.
Then we create the daemon file which is later used to watch for the temperature and for the Power button presses:
Once it is started (you see only a few lines with "~" and at the end the filename and a few other things) you press "i".
Then you change back to this browser window and select the text of the following python file:
Then you press "Command-C" (on the PC it would be "Control-C") and change back to the Terminal.app window.
There you simply press "Command-V" (on the PC it would be "Control-V").
Now you should see the python file inside your editor.
Now press "ESC", then ":wq"
Then we create the fan configuration file which is later used to control at which temperature the fan should be set to which fan speed:
Once it is started (you see only a few lines with "~" and at the end the filename and a few other things) you press "i".
Then you change back to this browser window and select the text of the following configuration file:
Then you press "Command-C" (on the PC it would be "Control-C") and change back to the Terminal.app window.
There you simply press "Command-V" (on the PC it would be "Control-V").
Now you should see the python file inside your editor.
Now press "ESC", then ":wq"
You can now close the Terminal.app, as you have done everything that is needed to be done on the shell.
If you want you can change the temperatures and the corresponding percent values of the fan in the configuration file.
You have there the temperature in °C and after the "=" the percent value of the fan. You can experiment with them.
Now all other things have to be done in a browser, so open one and input:
(without the "<" and ">"!)
On the piCorePlayer page chose "Main":

At the bottom of the page chose "Beta":

Then chose "Extensions":

On the following page wait until all the five green checkmarks appear and then chose "Available":

There you have to chose first:
rpi-vc.tcz
then press on "Load", then you have to chose:
i2c-tools.tcz
then press on "Load", then you have to chose:
python3.8-rpi-gpio.tcz
then press "Load" again, then you have to chose:
python3.8-smbus.tcz
then press "Load" again.
If some of these extension are already installed, it is OK, you don't have to load them again.
Then you have to chose "Tweaks" at the top:

Read further in the next message.
In this little How To I will describe what is necessary to use the Fan and the Power button of the Argon One Case for the Raspberry Pi 4B together with a piCorePLayer (7.x) installation.
I assume that the Raspberry Pi 4B is installed inside the case and piCorePlayer (7.x) is installed. Also you know the IP-address or the name of this Pi.
For the first step we need to login to the Pi via ssh. This can be done on the Mac with the normal Terminal.app or on a Windows PC with eg. putty. I will describe her only the way to get to the Pi for a Mac.
So start the Terminal.app, then input:
Code:
ssh [email protected]<IP or name of the Pi>
You will then be asked for the password of the user "tc" which is "piCore" if you didn't change it.
Then we create the daemon file which is later used to watch for the temperature and for the Power button presses:
Code:
vi argononed.py
Then you change back to this browser window and select the text of the following python file:
Code:
#!/usr/bin/python import smbus import RPi.GPIO as GPIO import os import time from threading import Thread rev = GPIO.RPI_REVISION bus = smbus.SMBus(1) GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) shutdown_pin=4 GPIO.setup(shutdown_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) def shutdown_check(): while True: pulsetime = 1 GPIO.wait_for_edge(shutdown_pin, GPIO.RISING) time.sleep(0.01) while GPIO.input(shutdown_pin) == GPIO.HIGH: time.sleep(0.01) pulsetime += 1 if pulsetime >=2 and pulsetime <=3: os.system("pcp rb") elif pulsetime >=4 and pulsetime <=5: os.system("pcp sd") def get_fanspeed(tempval, configlist): for curconfig in configlist: curpair = curconfig.split("=") tempcfg = float(curpair[0]) fancfg = int(float(curpair[1])) if tempval >= tempcfg: return fancfg return 0 def load_config(fname): newconfig = [] try: with open(fname, "r") as fp: for curline in fp: if not curline: continue tmpline = curline.strip() if not tmpline: continue if tmpline[0] == "#": continue tmppair = tmpline.split("=") if len(tmppair) != 2: continue tempval = 0 fanval = 0 try: tempval = float(tmppair[0]) if tempval < 0 or tempval > 100: continue except: continue try: fanval = int(float(tmppair[1])) if fanval < 0 or fanval > 100: continue except: continue newconfig.append( "{:5.1f}={}".format(tempval,fanval)) if len(newconfig) > 0: newconfig.sort(reverse=True) except: return [] return newconfig def temp_check(): address=0x1a prevblock=0 while True: fanconfig = ["65=100", "60=55", "57=30", "55=10", "30=0"] tmpconfig = load_config("/home/tc/argononed.conf") if len(tmpconfig) > 0: fanconfig = tmpconfig temp = os.popen("vcgencmd measure_temp").readline() temp = temp.replace("temp=","") val = float(temp.replace("'C","")) block = get_fanspeed(val, fanconfig) if block < prevblock: time.sleep(30) prevblock = block try: bus.write_byte(address,block) except IOError: temp="" time.sleep(30) try: t1 = Thread(target = shutdown_check) t2 = Thread(target = temp_check) t1.start() t2.start() except: t1.stop() t2.stop() GPIO.cleanup()
There you simply press "Command-V" (on the PC it would be "Control-V").
Now you should see the python file inside your editor.
Now press "ESC", then ":wq"
Then we create the fan configuration file which is later used to control at which temperature the fan should be set to which fan speed:
Code:
vi argononed.conf
Then you change back to this browser window and select the text of the following configuration file:
Code:
# # Argon One Fan Configuration # # List below the temperature (Celsius) and fan speed (in percent) pairs # Use the following form: # min.temperature=speed # # Example: # 30=0 # 55=10 # 57=30 # 60=55 # 65=100 # # NOTE: Lines beginning with # are ignored # # Start below: 30=0 55=10 57=30 60=55 65=100
There you simply press "Command-V" (on the PC it would be "Control-V").
Now you should see the python file inside your editor.
Now press "ESC", then ":wq"
You can now close the Terminal.app, as you have done everything that is needed to be done on the shell.
If you want you can change the temperatures and the corresponding percent values of the fan in the configuration file.
You have there the temperature in °C and after the "=" the percent value of the fan. You can experiment with them.
Now all other things have to be done in a browser, so open one and input:
Code:
http://<IP or name of your Pi>
On the piCorePlayer page chose "Main":
At the bottom of the page chose "Beta":
Then chose "Extensions":
On the following page wait until all the five green checkmarks appear and then chose "Available":
There you have to chose first:
rpi-vc.tcz
then press on "Load", then you have to chose:
i2c-tools.tcz
then press on "Load", then you have to chose:
python3.8-rpi-gpio.tcz
then press "Load" again, then you have to chose:
python3.8-smbus.tcz
then press "Load" again.
If some of these extension are already installed, it is OK, you don't have to load them again.
Then you have to chose "Tweaks" at the top:
Read further in the next message.
Comment