Open main menu

Changes

X729-script

1,673 bytes added, 26 March
==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 | X725 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.
<!--
-->
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:
 
OPen ternimal window, then run the following command:
<pre>
mv x729-script x729-script-old
git clone https://github.com/geekworm-com/x729-script
cd x728-script
chmod +x *.sh
./uninstall.sh
</pre>
Then just follow the installation process below.
 
3. 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==
===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> under [all] or the end of file and <code>reboot</code>: sudo nano /boot/config.txt '''Or''' (it's <code>/boot/firmware/config.txt</code> if you are using <code>ubuntu os</code>)
sudo nano /boot/firmware/config.txt
Save & exit.
sudo reboot
 
===Install gpiod package===
sudo apt install -y gpiod
===Clone the 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-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
===Prepair software shutdown script===
sudo cp -f ./x729install-softsd.sh /usr/local/bin/Create a alias <code>x729off</code> command to execute the software shutdown<pre>echo "alias x729off='sudo /usr/local/bin/x729ssh-softsdv1.sh'" >> ~/.bashrcsource ~/.bashrc</pre>
Then you can run <code>x729off</code> to execute software shutdown as follows
x729off
 
===Uninstall===
./uninstall.sh
===Test safe shutdown===
===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 uses 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
 
Note that you need to provide a different gpiochip number on Pi 0,1,2,3,4 ('''0''') and Pi 5 ('''4''').
 
We recommend that you change your example program to use the '''libgpiod''' library, and libgpiod is officially recommended, and we also provide ONLY ONE example using the libgpiod library ('''plsd-gpiod.py'''), which you can run as follows:
 
sudo python3 sample/plsd-libgpiod.py
 
For other example programs that use the RPi.GPIO library, it is recommended that you change to the libgpiod version if it runs incorrectly.
 
Each example program demonstrates a different function:
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===
PS: We only test this step on Raspberry Pi OS; To Refer to [[How to enable RTC module, first add <code>dtoverlay=i2c-rtc,ds1307</code> to /boot/config.txt under [all] or the end of file and reboot: sudo nano /boot/config.txt  Run the commands to disable the "fake hwclock" which interferes with the 'real' hwclock sudo apt-get -y remove fake-hwclock sudo update-rc.d -f fake-hwclock remove sudo systemctl disable fake-hwclock The run the following command to comment out some line in file <code>/lib/udev/hwclock-set</code>: sudo nano /lib/udev/hwclock-set‎<syntaxhighlight lang="python" line highlight="6-11">#!/bin/sh# Reset the System Clock to UTC if the hardware clock from which it# was copied by the kernel was in localtime. dev=$1 if [ -e /run/systemd/system ] ; then exit 0fi /sbin/hwclock --rtc=$dev --systz/sbin/hwclock --rtc=$dev --hctosys‎</syntaxhighlight>
===Other===
</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! -->