The following test is base on 2022-09-22-raspios-bullseye-armhf.img.xz
Python version is 3;
1. Enable I2C funcion on Raspbian:
reter to How to enable I2C
2. Check & review I2C port
2.1 Login via teminal window, then update & upgrade & install necessary software (python and i2c tool library)
sudo apt-get update sudo apt-get upgrade sudo apt-get -y install i2c-tools python3-smbus python-smbus sudo apt-get -y install pigpio python-pigpio python3-pigpio sudo apt-get -y install python3-pip python3-pil
2.1 Once you have logged into your Raspberry Pi from the command line, run the command to see all the connected devices
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 -- -- -- -- -- 3c -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- #36 - the address of the battery fuel gauging chip #3c - OLED display #40 - TI INA219 12-bit current/voltage/power monitor #68 - the address of the RTC chip
PS: Please check if the OLED is inserted in the correct direction if you don't found the above i2c port
3. Setting up the power management script
3.1 Download x729 setup scripts:
cd ~ git clone https://github.com/geekworm-com/x729
3.2. Install script&reboot:
sudo bash pwr.sh #Setting up the command to turn off X729 from software printf "%s\n" "alias x729off='sudo x729softsd.sh'" >> ~/.bashrc #Reboot the Raspberry Pi sudo reboot
3.3 Powering off the Raspberry Pi from software
x729off
4. Setting up the PWM cooling fan
cd ~ cd x729 python3 pwm_fan_control.py
4.1 Run the script at Raspberry Pi boot
sudo crontab -e
Choose "1" then press Enter
4.2 Add a line at the end of the file that reads like this:
@reboot python3 /home/pi/x729/pwm_fan_control.py
4.3 Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.
4.4 Run below script and you will get RPM value every second:
cd ~ cd x729 python3 read_fan_speed.py
5. Test PLD/PLSD/buzzer function
5.1 Test AC Power loss or power adapter failure detection (PLD)
#Run the script test the PLD function sudo python3 pld.py
5.2 Test Auto shutdown when AC power loss or power adapter failure
#Run the script and then remove your power adapter pi@raspberrypi:~/x729 $ sudo python3 plsd.py #Safe shutdown will be implemented in 5 seconds.
5.3 Test the buzzer alarm when AC power loss or power adapter failure
#Run the script and unplug your power adapter from the UPS. pi@raspberrypi:~/x729 $ sudo python3 buzzer.py #Once power adapter is removed then the buzzer will generate a beep sound continuously.
6. Set and Read the RTC time
6.1 Run the following command on your Raspberry PI to begin editing the /boot/config.txt file.
sudo nano /boot/config.txt
add one of the following lines to the bottom of the file,
dtoverlay=i2c-rtc,ds1307
Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.
Run the commands to disable the "fake hwclock" which interferes with the 'real' hwclock
pi@raspberrypi ~ $ sudo apt-get -y remove fake-hwclock pi@raspberrypi ~ $ sudo update-rc.d -f fake-hwclock remove pi@raspberrypi ~ $ sudo systemctl disable fake-hwclock
Run the command and comment out these five lines:
6.5) Reboot the Raspberry Pi
pi@raspberrypi ~ $ sudo reboot
(6.6) Run the command to verify the time is correct. Plug in Ethernet or WiFi to let the Pi sync the right time from the Internet
pi@raspberrypi ~ $ date
(6.7) Run the command to write the time
pi@raspberrypi ~ $ sudo hwclock -w
(6.8) Run the command to read the time
pi@raspberrypi ~ $ sudo hwclock -r Once the time is set, make sure the batteries are inserted so that the time is saved. You only have to set the time once. That's it! Next time you boot the time will automatically be synced from the X729. #If you need to set the system time for any reason you can use the following command : date -s "5 MAR 2019 13:00:00"
#Write the system date and time to the RTC module after your correct the system date and time : sudo hwclock -w
#Read the date and time back from the RTC module: sudo hwclock -r
7. Power off command on Raspbian from software
x728off
- x728off is safe shutdown command
- press on-board blue button 1-2 seconds to reboot
- press on-board blue button 3 seconds to safe shutdown,
- press on-board blue button 7-8 seconds to force shutdown.
8. Testing AC power off/loss or power adapter failure detection (need to short the 'PLD' pin on v1.x), also test the buzzer function on v2.1
cd ~ sudo python3 x728pld.py or sudo python x728pld.py
9. Testing Auto shutdown when AC power loss or power adapter failure
cd ~ sudo python3 x728pld.py or sudo python x728plsd.py
uninstall x728 script
uninsatll x728 shell script, run the following command:
sudo ./uninstall_x728.sh
For the x728 old shell script, you also run this command to remove it, then re-install the x728 script.
FAQ
Q: We want to automatically shut down when the battery voltage is lower than a certain specified value, is it possible?
A: Please run the followng command to achieve this function.(Note: 3V is default shut down voltage value )
python3 /home/pi/x728/x728v2-asd.py &
X728-Chip-Specifications:
References:
Return to X728
Enable comment auto-refresher
Anonymous user #2
Permalink |
Anonymous user #3
Anonymous user #1
Permalink |
Walker