<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.geekworm.com/index.php?action=history&amp;feed=atom&amp;title=X729-Software</id>
	<title>X729-Software - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.geekworm.com/index.php?action=history&amp;feed=atom&amp;title=X729-Software"/>
	<link rel="alternate" type="text/html" href="https://wiki.geekworm.com/index.php?title=X729-Software&amp;action=history"/>
	<updated>2026-06-04T17:36:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=36924&amp;oldid=prev</id>
		<title>Admin: Replace &lt;comments/&gt; with &lt;comment-streams /&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=36924&amp;oldid=prev"/>
		<updated>2026-05-27T02:13:54Z</updated>

		<summary type="html">&lt;p&gt;Replace &amp;lt;comments/&amp;gt; with &amp;lt;comment-streams /&amp;gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:13, 27 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l197&quot;&gt;Line 197:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 197:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Add review function! --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Add review function! --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;comment-streams /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;comment-streams &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;id=&quot;main&quot; &lt;/ins&gt;/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Please choose the  --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Please choose the  --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_2026:diff:1.41:old-36316:rev-36924:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=36316&amp;oldid=prev</id>
		<title>Admin: Replace &lt;comments/&gt; with &lt;comment-streams /&gt;</title>
		<link rel="alternate" type="text/html" href="https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=36316&amp;oldid=prev"/>
		<updated>2026-05-26T12:08:02Z</updated>

		<summary type="html">&lt;p&gt;Replace &amp;lt;comments/&amp;gt; with &amp;lt;comment-streams /&amp;gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:08, 26 May 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l197&quot;&gt;Line 197:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 197:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Add review function! --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Add review function! --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;comments &lt;/del&gt;/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;comment-streams &lt;/ins&gt;/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Please choose the  --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--Please choose the  --&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_2026:diff:1.41:old-25188:rev-36316:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=25188&amp;oldid=prev</id>
		<title>Harry at 10:25, 24 April 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=25188&amp;oldid=prev"/>
		<updated>2026-04-24T10:25:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:25, 24 April 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;GD Template Impl}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Deprecated|Please refer to &lt;/ins&gt;[[X729-script]].&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;big&amp;gt;Although this installation tutorial is still available, but we strongly recommend that you use &lt;/del&gt;[[X729-script]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;new tutorial, and we no longer maintain this page&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/big&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Setup script==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Setup script==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_2026:diff:1.41:old-16835:rev-25188:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Harry</name></author>
	</entry>
	<entry>
		<id>https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=16835&amp;oldid=prev</id>
		<title>Harry at 17:11, 22 July 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.geekworm.com/index.php?title=X729-Software&amp;diff=16835&amp;oldid=prev"/>
		<updated>2023-07-22T17:11:02Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GD Template Impl}}&lt;br /&gt;
&amp;lt;big&amp;gt;Although this installation tutorial is still available, but we strongly recommend that you use [[X729-script]] new tutorial, and we no longer maintain this page.&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Setup script==&lt;br /&gt;
The following test is base on&lt;br /&gt;
* [https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2023-05-03/2023-05-03-raspios-bullseye-arm64.img.xz 2023-05-03-raspios-bullseye-arm64.img.xz]&lt;br /&gt;
* [https://www.raspberrypi.com/software/operating-systems/ 2022-09-22-raspios-bullseye-armhf.img.xz]&lt;br /&gt;
* [https://www.raspberrypi.com/software/operating-systems/ 2022-09-22-raspios-buster-armhf.img.xz]&lt;br /&gt;
&lt;br /&gt;
PS: To buster version, the default user name is &amp;#039;pi, but bullseye version, you need to manually create a new user. In our example script, the new user name we created is &amp;#039;pi&amp;#039;. If you create your own user name, you need to modify the corresponding user name directory in the script.&lt;br /&gt;
&lt;br /&gt;
For Example:  You may need to change &amp;#039;/home/pi/&amp;#039;  =&amp;gt; &amp;#039;/home/XX/&amp;#039;,  &amp;#039;XX&amp;#039; is user name you created.&lt;br /&gt;
&lt;br /&gt;
Python version is 3;&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;1.Enable I2C funcion on Raspbian&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
 Please reter to [[How to enable I2C]]&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;2. Check &amp;amp; review I2C address&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
2.1 Login via teminal window, then update &amp;amp; upgrade &amp;amp; install necessary software (python and i2c tool library)&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get -y upgrade&lt;br /&gt;
 sudo apt-get -y install i2c-tools python3-smbus python3-rpi.gpio&lt;br /&gt;
 sudo apt-get -y install python3-pip python3-pil&lt;br /&gt;
 &lt;br /&gt;
 #sudo apt-get -y install pigpio python-pigpio python3-pigpio&lt;br /&gt;
&lt;br /&gt;
2.1 Once you have logged into your Raspberry Pi from the command line, run the command to see all the connected devices&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
pi@raspberrypi:~ $ sudo i2cdetect -y 1&lt;br /&gt;
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f&lt;br /&gt;
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
30: -- -- -- -- -- -- 36 -- -- -- -- -- 3c -- -- -- &lt;br /&gt;
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- &lt;br /&gt;
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- &lt;br /&gt;
70: -- -- -- -- -- -- -- --   &lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
Explaination:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
#36 - the address of the battery fuel gauging chip&lt;br /&gt;
#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&amp;#039;t found the above i2c port&lt;br /&gt;
#40 - TI INA219 12-bit current/voltage/power monitor&lt;br /&gt;
#68 - the address of the RTC chip&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
PS： Please check if the OLED is inserted in the correct direction if you don&amp;#039;t found the above i2c port&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;3. Setting up the power management script&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
3.1 Download x729 setup scripts:&lt;br /&gt;
 cd ~&lt;br /&gt;
 git clone https://github.com/geekworm-com/x729&lt;br /&gt;
&lt;br /&gt;
3.2. Install script&amp;amp;reboot:&lt;br /&gt;
 cd x729&lt;br /&gt;
 chmod +x *.sh&lt;br /&gt;
 sudo bash pwr.sh&lt;br /&gt;
 &lt;br /&gt;
 #Setting up the command to turn off X729 from software &lt;br /&gt;
 printf &amp;quot;%s\n&amp;quot; &amp;quot;alias x729off=&amp;#039;sudo x729softsd.sh&amp;#039;&amp;quot; &amp;gt;&amp;gt; ~/.bashrc &lt;br /&gt;
 &lt;br /&gt;
 #Reboot the Raspberry Pi or long press on-board button switch to turn off&lt;br /&gt;
 sudo reboot now&lt;br /&gt;
3.3 Powering off the Raspberry Pi from software &lt;br /&gt;
  x729off &lt;br /&gt;
* x729off is safe shutdown command&lt;br /&gt;
* press on-board blue button 1-2 seconds to reboot&lt;br /&gt;
* press on-board blue button 3 seconds to safe shutdown,&lt;br /&gt;
* press on-board blue button 7-8 seconds to force shutdown.&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;4. Setting up the PWM cooling fan&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd x729&lt;br /&gt;
 python3 pwm_fan_control.py&lt;br /&gt;
&lt;br /&gt;
4.1 Run the script at Raspberry Pi boot&lt;br /&gt;
&lt;br /&gt;
 sudo crontab -e&lt;br /&gt;
&lt;br /&gt;
[[File:Crontab-step1.png|none]]&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;1&amp;quot; then press Enter&lt;br /&gt;
&lt;br /&gt;
4.2 Add a line at the end of the file that reads like this:&lt;br /&gt;
 @reboot python3 /home/pi/x729/pwm_fan_control.py&lt;br /&gt;
&lt;br /&gt;
[[File:X729-2.png|none]]&lt;br /&gt;
&lt;br /&gt;
4.3 Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.&lt;br /&gt;
&lt;br /&gt;
4.4 Run below script and you will get RPM value every second:&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd x729&lt;br /&gt;
 python3 read_fan_speed.py &lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;5. Test PLD/PLSD/buzzer function&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.1 Test AC Power loss or power adapter failure detection (PLD)&lt;br /&gt;
&lt;br /&gt;
Run the script test the PLD function&lt;br /&gt;
 sudo python3 pld.py&lt;br /&gt;
[[File:X729-8.png|none]]&lt;br /&gt;
&lt;br /&gt;
5.2 Test Auto shutdown when AC power loss or power adapter failure&lt;br /&gt;
&lt;br /&gt;
Run the script and then remove your power adapter&lt;br /&gt;
 pi@raspberrypi:~/x729 $  sudo python3 plsd.py &lt;br /&gt;
Safe shutdown will be implemented in 5 seconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5.3 Test the buzzer alarm when AC power loss or power adapter failure&lt;br /&gt;
&lt;br /&gt;
Run the script and unplug your power adapter from the UPS.&lt;br /&gt;
 pi@raspberrypi:~/x729 $  sudo python3 buzzer.py &lt;br /&gt;
Once power adapter is removed then the buzzer will generate a beep sound continuously.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===&amp;#039;&amp;#039;&amp;#039;6. Set and Read the RTC time&amp;#039;&amp;#039;&amp;#039;===&lt;br /&gt;
&lt;br /&gt;
6.1 Run the following command on your Raspberry PI to begin editing the /boot/config.txt file.&lt;br /&gt;
 sudo nano /boot/config.txt&lt;br /&gt;
&lt;br /&gt;
add one of the following lines to the bottom of the file,&lt;br /&gt;
 dtoverlay=i2c-rtc,ds1307&lt;br /&gt;
&lt;br /&gt;
[[File:X729-5.png|none]]&lt;br /&gt;
&lt;br /&gt;
Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.&lt;br /&gt;
&lt;br /&gt;
6.2 Run the commands to disable the &amp;quot;fake hwclock&amp;quot; which interferes with the &amp;#039;real&amp;#039; hwclock&lt;br /&gt;
 pi@raspberrypi ~ $  sudo apt-get -y remove fake-hwclock&lt;br /&gt;
 pi@raspberrypi ~ $  sudo update-rc.d -f fake-hwclock remove&lt;br /&gt;
 pi@raspberrypi ~ $  sudo systemctl disable fake-hwclock&lt;br /&gt;
[[File:X729-6.png|none]]&lt;br /&gt;
&lt;br /&gt;
6.3 Run the command and comment out these five lines:&lt;br /&gt;
 sudo nano /lib/udev/hwclock-set&lt;br /&gt;
[[File:X729-7.png|none]]&lt;br /&gt;
&lt;br /&gt;
6.4 Reboot the Raspberry Pi&lt;br /&gt;
 pi@raspberrypi ~ $  sudo reboot&lt;br /&gt;
 	 &lt;br /&gt;
6.5 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&lt;br /&gt;
 pi@raspberrypi ~ $  date&lt;br /&gt;
 	 &lt;br /&gt;
6.6 Run the command to write the time&lt;br /&gt;
 pi@raspberrypi ~ $  sudo hwclock -w&lt;br /&gt;
 	 &lt;br /&gt;
6.7 Run the command to read the time&lt;br /&gt;
 pi@raspberrypi ~ $  sudo hwclock -r&lt;br /&gt;
 	 &lt;br /&gt;
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&amp;#039;s it! Next time you boot the time will automatically be synced from the [[X729]].&lt;br /&gt;
&lt;br /&gt;
===7. How to enable automatic shutdown when low voltage===&lt;br /&gt;
7.1 Run the command to read battery voltage and percentage&lt;br /&gt;
 pi@raspberrypi:~/x729 $  sudo python3 bat.py &lt;br /&gt;
&lt;br /&gt;
7.2 Change the battery low voltage to implement safe shutdown. default is less than 3.00Vdc.&lt;br /&gt;
 pi@raspberrypi ~ $  sudo nano bat.py &lt;br /&gt;
[[File:X729-3.png|none]]&lt;br /&gt;
Note: the voltage range must be 2.5~4.1vdc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.3 Optional - if you want to run Python Script automatically on Bootup then run the command&lt;br /&gt;
 pi@raspberrypi:~/x729 $  sudo crontab -e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7.4 Add a line at the end of the file that reads like this:&lt;br /&gt;
 @reboot python3 /home/pi/x729/bat.py&lt;br /&gt;
[[File:X729-4.png|none]]&lt;br /&gt;
&lt;br /&gt;
Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.&lt;br /&gt;
&lt;br /&gt;
===8. How to enable OLED display===&lt;br /&gt;
Refer to [[How to enable OLED display]]&lt;br /&gt;
&lt;br /&gt;
==Uninstall cript==&lt;br /&gt;
uninsatll x729 shell script, run the following command:&lt;br /&gt;
 sudo ./uninstall_x729.sh&lt;br /&gt;
&lt;br /&gt;
==Other resource==&lt;br /&gt;
X729-Chip-Specifications：&lt;br /&gt;
* [[File:MAX17040-MAX17041.pdf]]&lt;br /&gt;
&lt;br /&gt;
*[https://www.sparkfun.com/datasheets/Components/DS1307.pdf I2C address: 0x36 for battery fuel gauging, 0x68 for RTC]&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*[https://www.instructables.com/Raspberry-Pi-Tutorial-How-to-Use-a-Buzzer/ Raspberry Pi Tutorial: How to Use a Buzzer]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Return to [[X729]]  or  [[X729-hardware]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Add review function! --&amp;gt;&lt;br /&gt;
&amp;lt;comments /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Please choose the  --&amp;gt;&lt;br /&gt;
&amp;lt;!--Remove other categories, just keep the appropriate categories --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Product Manual]]&lt;br /&gt;
[[Category:Raspberry pi]]&lt;br /&gt;
[[Category:Knowledge]]&lt;/div&gt;</summary>
		<author><name>Harry</name></author>
	</entry>
</feed>