Open main menu

Changes

X729-script

4,483 bytes added, 26 March
{{GD Template Impl}}
__NOTOC__
This is script installation tutorial for [[X729]] shield, it will replace [[X729-Software | X729 Software installation tutorial]], although [[X729-Software | X725 Software installation tutorial]] is still available, but we strongly recommend that you use this script tutorial, which simplifies the installation process and reduces dependencies on third-party python libraries.
==Overview==
<span class="tb_red">[NOTE]: X729 supports Raspberry Pi 5 hardware also</span>
 
This is script installation tutorial for [[X729]] shield, it will replace [[X729-Software | X729 Software installation tutorial]], although [[X729-Software | X729 Software installation tutorial]] is still available, but we strongly recommend that you use this script tutorial, which simplifies the installation process and reduces dependencies on third-party python libraries.
 
<!--
The core shell script of [[X729-script]] comes from from [https://github.com/pimlie/geekworm-x-c1 pimlie/geekworm-x-c1], pimlie implements the pwm fan shell script, which does not depend on third-party python libraries at all. Thanks to pimlie.
-->
Now we think you have successfully flashed the OS Image into Micro SD and and power on the device, and you have also completed the operations such as creating new user required in some OS. You need to perform the following operations in <code>Terminal</code>.
 
'''[Update]:'''
 
1. Use '''gpiod''' instead of obsolete interface
2. The script now supports the Raspberry Pi OS '''BOOKWORM''' version. You just need to '''uninstall''' the original script and '''reinstall''' it. Please refer to the following:
Now we think you have successfully flashed the OS Image into Micro SD and and power on the deviceOPen ternimal window, and you have also completed the operations such as creating new user required in some OS. You need to perform then run the following operations in command:<codepre>Terminalmv x729-script x729-script-oldgit clone https://github.com/geekworm-com/x729-scriptcd x728-scriptchmod +x *.sh./uninstall.sh</codepre>Then just follow the installation process below3. If you are using it on a '''Raspberry Pi 5''' hardware, make sure to update the 6.6.22 or more high kernel version ('''uname -a''' to check kernel version) sudo apt update sudo apt full-upgrade sudo rpi-update
==OS that has been tested==
* RetroPie
* Twister
==Install==
Please follow the steps below:
===Enable I2C===
Reter to [[How to enable I2C]]
==Preconfigured <code>config.txt</code>==To install pwm fan, first add <code>dtoverlay=pwm-2chan,pin2=13,func2=4</code> to <code>/bootNOTE: sample/configbat.txt</code> under [all] or the end of file and <code>reboot</code>: sudo nano /boot/configpy will run with error if you don't enable I2C.txt
'''OrCheck & review I2C address:''' (it<PRE>pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- 36 -- -- -- -- -- 3c -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- </PRE>Explaination:<PRE>#36 - the address of the battery fuel gauging chip#3c - address of oled display,This value only exists when the oled is inserted,check if the OLED is inserted in the correct direction if you don's t found the above i2c port#40 - TI INA219 12-bit current/voltage/power monitor#68 - the address of the RTC chip</PRE> ===Preconfigured <code>config.txt</code>===To install pwm fan, first add <code>dtoverlay=pwm-2chan,pin2=13,func2=4</code> to <code>/boot/firmware/config.txt</code> if you are using under [all] or the end of file and <code>ubuntu osreboot</code>):
sudo nano /boot/firmware/config.txt
Save & exit.
sudo reboot
===Install gpiod package=== sudo apt install -y gpiod ===Clone the script===
<pre>
git clone https://github.com/geekworm-com/x729-script
chmod +x *.sh
</pre>
'''PS''': For some OS such as ''Raspberry Pi OS Lite'', the '''''git''''' tool is not installed by default, if you get an error like ''error: -bash: git: command not found'', please run the following command to install the git tool.
sudo apt install -y git
===Configuring Different GPIO Chip for Raspberry Pi 5 hardware===If you are not using Raspberry 5 hardware, skip this step,or run the following command to set differnt chip and pwm number. sed -i 's/xPWR.sh 0 5 12/xPWR.sh 4 5 12/g' x729-pwr.service sed -i 's/xSoft.sh 0 26/xSoft.sh 4 26/g' install-sss.sh sed -i 's/pwmchip0/pwmchip2/g' x729-fan.sh Note that you need to provide a different gpiochip number on Pi 0,1,2,3,4 (0) and Pi 5 (4). ===Create the x729-fan service===
x729-fan service is for pwm fan, the pwm fan will automatically adjust the runing speed according to the temperature of the cpu after the service is started.
<pre>
Then the pwm fan starts running.
===Create the x729-pwr service===
x729-pwr service will be responsible for power management and hardware safe shutdown.
<pre>
sudo cp -f ./x729-pwrxPWR.sh /usr/local/bin/
sudo cp -f x729-pwr.service /lib/systemd/system
sudo systemctl daemon-reload
sudo systemctl start x729-pwr
</pre>
Now, if you press and hold the onboard switch for 3 seconds, then the blue LED will flash slowly and the shutdown is going then all LEDs will be off until the device is completely powered off.
===Prepair software shutdown script=== sudo cp -f ./x729install-ssh-softsdv1.sh /usr/local/bin/Create a alias Then you can run <code>x729off</code> command to execute the software shutdownas follows x729off<pre>echo "alias x729off='sudo /usr/local/bin/x729-softsd.sh'" >> ~/.bashrc==Uninstall===source ~/ .bashrc</pre>Then you can run <code>x729off</code> to execute software shutdownuninstall.sh
===Test safe shutdown===
'''Software safe shutdown command''':
x729off
* press <code>7-8</code> seconds to force shutdown.
==Read fan speed=Sample Files===<The example programs are only suitable for advanced players, and you can construct your own usage scenarios according to the example programs. '''[PS]''' The old example code>read_fan_speeduses the RPi.GPIO library, which is currently not supported in kernel 6.6.x, so you may encounter an error when running the following code sudo python3 sample/x728-v2.x-plsd.py</code> is  Note that you need to provide a sample python file different gpiochip number on how Pi 0,1,2,3,4 ('''0''') and Pi 5 ('''4'''). We recommend that you change your example program to read use the speed of '''libgpiod''' library, and libgpiod is officially recommended, and we also provide ONLY ONE example using the pwm fanlibgpiod library ('''plsd-gpiod.py'''), which you can run as follows:  sudo python3 sample/plsd-libgpiod. Run py For other example programs that use the following command RPi.GPIO library, it is recommended that you change to get the speed of libgpiod version if it runs incorrectly.  Each example program demonstrates a different function: '''read_fan_speed.py''': Read the pwm fan:running speed;
cd ~x729-script
sudo python3 sample/read_fan_speed.py
This `read_fan_speed'''pld.py` ''': AC Power supply loss dection script; cd ~x729-script sudo python3 sample/pld.py.py '''plsd.py''': Auto shutdown when AC power loss or power adapter failure script;(Added auto shuntdown function base pld.py) cd ~x729-script sudo python3 sample/plsd.py '''buzzer.py''': demonstrates how the buzzer will sound when power supply is lost, which is very important in some usage scenarios. cd ~x729-script sudo python3 sample/buzzer.py '''PS:''' 1. The above sample python file maybe depends on the third-party python library `Rpi.GPIO`. In the official Raspberry Pi OS and most third-party OS, this library is installed by default. If you run this file and get some errors, try to run the following command to install the Rpi.GPIOy library.
sudo apt-get install -y python3-smbus python3-rpi.gpio
Or you can refer to [[How to Install RPi.GPIO Python Library]]
2. The sample program is only to demonstrate how to use the advanced functions of the shield, we do not provide the development function of the sample program. ===Enable OLED display===Refer to [[How to enable OLED display]]===Set and Read the RTC time===Refer to [[How to enable RTC]] ===Other===
<code>pwm_fan_control.py</code> is no longer used, and are reserved here for research and use by python lovers only.
==Support==
</html>
==Other resource==* Chip-Specifications:[[File:MAX17040-MAX17041.pdf]]*[https://www.sparkfun.com/datasheets/Components/DS1307.pdf I2C address: 0x36 for battery fuel gauging, 0x68 for RTC]*References: [https://www.instructables.com/Raspberry-Pi-Tutorial-How-to-Use-a-Buzzer/ Raspberry Pi Tutorial: How to Use a Buzzer] Return to [[X729]] or [[X729-hardware]]
<!--Add review function! -->