X728-script
Contents
Overview
This is script installation tutorial for X728 shield, it will replace X728 Software installation tutorial, although X728 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 Terminal
.
[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:
mv x728-script x728-script-old git clone https://github.com/geekworm-com/x728-script cd x728-script chmod +x *.sh ./uninstall.sh
Then just follow the installation process below.
3. The current installation script also supports Raspberry Pi 5 hardware.
OS that has been tested
- Raspbian
- DietPi
- Manjaro
- Ubuntu
- myNode
- Umbrel
- Volumio
- RetroPie
- Twister
Install
Please follow the steps below:
Enable I2C
Reter to How to enable I2C
NOTE: sample/x728-v2.x-bat.py or sample/x728-v1.x-bat will run with error if you don't enable I2C.
Check & review I2C address:
pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Explaination:
#36 - the address of the battery fuel gauging chip #68 - the address of the RTC chip
Install gpiod package
sudo apt install -y gpiod
Clone the script
git clone https://github.com/geekworm-com/x728-script cd x728-script chmod +x *.sh
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 number.
PS: Since 2024-09-02, Raspberry Pi has finally unified the gpipchip to 0 on all Raspberry Pis(Pi, 0, 1, 2, 3, 4, 5). Previously, the gpiochip on the Raspberry Pi 5 was 4.
So we comment out the following command line.
#sed -i 's/xPWR.sh 0 5 12/xPWR.sh 4 5 12/g' x728-pwr.service
Create the x728-pwr service
x728-pwr service will be responsible for power management and hardware safe shutdown.
sudo cp -f ./xPWR.sh /usr/local/bin/ sudo cp -f x728-pwr.service /lib/systemd/system sudo systemctl daemon-reload sudo systemctl enable x728-pwr sudo systemctl start x728-pwr
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
1. Prepair xSoft.sh command.
sudo cp -f ./xSoft.sh /usr/local/bin/
2. Then create a x728off alias command to execture safe shutdown command.
- for x728 v2.5 v2.3 v2.2 v2.1 v2.0
echo "alias x728off='sudo /usr/local/bin/xSoft.sh 0 '''26''' '" >> ~/.bashrc
- for x728 v1.2 v1.3
echo "alias x728off='sudo /usr/local/bin/xSoft.sh 0 '''16''' '" >> ~/.bashrc
- PS: The difference between them is that different GPIO pins are used for shutdown
3. Then run the following command to make the .bashrc file take effect
source ~/.bashrc
4. Then you can run x728off
to execute software shutdown as follows
x728off
Uninstall
Run the following command to uninstall all:
./uninstall.sh
Test safe shutdown
Software safe shutdown command:
x728off
DON'T run the 'shutdown' linux command to shut down, otherwise the power of x728 shield will not be shut down.
Hardware safe shutdown operation:
You can verify the safety switch through the onboard switch, press and hold the 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.
- press on-board button switch
1-2
seconds to reboot - press button switch
3
seconds to safe shutdown, - press
7-8
seconds to force 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 (x728-v2.x-plsd-gpiod.py), which you can run as follows:
sudo python3 sample/x728-v2.x-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.
In fact, you can change those sample program to shell
Each example program demonstrates a different function:
x728-v2.x-bat.py: Script to read battery power and voltage;
cd ~x728-script sudo python3 sample/x728-v2.x-bat.py
x728-v2.x-pld.py: Script to AC Power supply loss dection
cd ~x728-script sudo python3 sample/x728-v2.x-pld.py
x728-v2.x-asd.py: Script to Auto shutdown when the battery voltage is lower than a certain specified value
cd ~x728-script sudo python3 sample/x728-v2.x-asd.py
PS:
1. All sample python files 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 file based on the version number is just because different versions of X728 shield use different GPIOs, they are basically the same. You can use a file comparison tool to view it, if you get it wrong, most likely you are using the wrong version of the sample file. You can refer to X728 hardwar to check the PIN occupancy of X728 shield.
3. 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.
Set and Read the RTC time
Refer to How to enable RTC
How to Use GPIO16 to control battery charging
1. This feature is only newly added from Version 2.5
2. This feature is only suitable for advanced players, if you are not familiar with Linux, we do not recommend you to use this feature. For beginners, it is enough to short the 'CHG Ctrl' so that the X728 v2.5 shield will automatically charge when the power adapter is connected
If you want to control battery charging through GPIO, please refer to the instructions below:
"CHG Ctrl" - Short : battery automatic charging when powe adapter connected "CHG Ctrl" - Open : GPIO16 output stays high: Charging enabled, GPIO16 output stays low : Charging disabled
# Sample shell command GPIO=16 # Read the /sys/kernel/debug/gpio file to get the actual GPIO pin GPIO=$(cat /sys/kernel/debug/gpio | grep "GPIO$GPIO" | awk -F'gpio-' '{print $2}' | awk -F' ' '{print $1}') echo "$GPIO" > /sys/class/gpio$GPIO/export echo "out" > /sys/class/gpio/gpio$GPIO/direction # Enable charging echo "1" > /sys/class/gpio/gpio$GPIO/value # Disable charging echo "0" > /sys/class/gpio/gpio$GPIO/value
Support
Email: support@geekworm.com
FAQ
Q: How to login volumio via SSH?
1. Enable SSH:
Visit http://volumio.local/dev/, then click ENABLE SSH button
2. URL connection is IP address, and the default user name is volumio, default password is volumio
Q: How to login to Umbrel via SSH?
A: ssh umbrel@umbrel.local (or ssh umbrel@Q: How to login to myNode via SSH?
A: URL connection is IP address, and the default user name is admin, default password is boltQ: How to login to DietPi via SSH?
A: URL connection is IP address, and the default user name is root, default password is dietpiQ: Is LibreELEC supported?
A: TODOOther resource
- Chip-Specifications:File:MAX17040-MAX17041.pdf
- I2C address: 0x36 for battery fuel gauging, 0x68 for RTC
- References: Raspberry Pi Tutorial: How to Use a Buzzer
Return to X728 or X728-hardware
Enable comment auto-refresher
Anonymous user #8
Permalink |
Lisa
Anonymous user #6
Permalink |
Lisa
Anonymous user #6
Lisa
Anonymous user #5
Permalink |
Anonymous user #5
Walker
Anonymous user #5
Walker
Anonymous user #5
Permalink |
Walker
Anonymous user #4
Permalink |
Anonymous user #4
Walker
Anonymous user #4
Walker
Anonymous user #7
Anonymous user #8
Anonymous user #8
Anonymous user #3
Permalink |
Walker
Anonymous user #2
Permalink |
Harry
Anonymous user #1
Permalink |
Walker