<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Photonicat Wiki  - 最近更改 [zh-cn]</title>
		<link>https://photonicat.com/wiki/%E7%89%B9%E6%AE%8A:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9</link>
		<description>用这个订阅源跟踪本wiki的最近更改。</description>
		<language>zh-Hans-CN</language>
		<generator>MediaWiki 1.44.2</generator>
		<lastBuildDate>Tue, 28 Jul 2026 07:01:19 GMT</lastBuildDate>
		<item>
			<title>Photonicat 2 固件USB线刷更新教程</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_%E5%9B%BA%E4%BB%B6USB%E7%BA%BF%E5%88%B7%E6%9B%B4%E6%96%B0%E6%95%99%E7%A8%8B&amp;diff=1032&amp;oldid=886</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_%E5%9B%BA%E4%BB%B6USB%E7%BA%BF%E5%88%B7%E6%9B%B4%E6%96%B0%E6%95%99%E7%A8%8B&amp;diff=1032&amp;oldid=886</guid>
			<description>&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月27日 (一) 15:59的版本&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-l8&quot;&gt;第8行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第8行：&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;[[File:burn-usb-line-wiki.png|500px]]&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;[[File:burn-usb-line-wiki.png|500px]]&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;div&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;*下载最新烧录工具版本最新烧录工具&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;::*[https://dl.photonicat.com/tools/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RKDevTool_Release_v2&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;86&lt;/del&gt;.zip &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RKDevTool_Release_v2&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;86&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;::*[https://dl.photonicat.com/tools/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RKDevTool_Release_v3&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;36&lt;/ins&gt;.zip &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RKDevTool_Release_v3&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;36&lt;/ins&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;div&gt;::*[https://dl.photonicat.com/tools/DriverAssitant_v5.1.1.zip 驱动]&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;::*[https://dl.photonicat.com/tools/DriverAssitant_v5.1.1.zip 驱动]&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;div&gt;*下载下载RK3576的MiniLoaderAll.bin文件&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;*下载下载RK3576的MiniLoaderAll.bin文件&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-886:rev-1032:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Mon, 27 Jul 2026 07:59:12 GMT</pubDate>
			<dc:creator>Monstercat</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_%E5%9B%BA%E4%BB%B6USB%E7%BA%BF%E5%88%B7%E6%9B%B4%E6%96%B0%E6%95%99%E7%A8%8B</comments>
		</item>
		<item>
			<title>Photonicat 2 SOC Calculation</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_SOC_Calculation&amp;diff=1031&amp;oldid=1020</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_SOC_Calculation&amp;diff=1031&amp;oldid=1020</guid>
			<description>&lt;p&gt;Tighten prose: state how each stage works rather than motivating it; note k(T) is a piecewise-linear NCA approximation clamped outside -20..40C; link the MCU protocol page&lt;/p&gt;
&lt;a href=&quot;https://photonicat.com/index.php?title=Photonicat_2_SOC_Calculation&amp;amp;diff=1031&amp;amp;oldid=1020&quot;&gt;显示更改&lt;/a&gt;</description>
			<pubDate>Sun, 26 Jul 2026 12:03:35 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_SOC_Calculation</comments>
		</item>
		<item>
			<title>Photonicat 2 SOC 计算</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&amp;diff=1030&amp;oldid=1019</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&amp;diff=1030&amp;oldid=1019</guid>
			<description>&lt;p&gt;Tighten prose: state how each stage works rather than motivating it; note k(T) is a piecewise-linear NCA approximation clamped outside -20..40C; link the MCU protocol page&lt;/p&gt;
&lt;a href=&quot;https://photonicat.com/index.php?title=Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&amp;amp;diff=1030&amp;amp;oldid=1019&quot;&gt;显示更改&lt;/a&gt;</description>
			<pubDate>Sun, 26 Jul 2026 12:01:56 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_SOC_%E8%AE%A1%E7%AE%97</comments>
		</item>
		<item>
			<title>Main Page</title>
			<link>https://photonicat.com/index.php?title=Main_Page&amp;diff=1029&amp;oldid=989</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Main_Page&amp;diff=1029&amp;oldid=989</guid>
			<description>&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Photonicat 2代 用户手册 User Manual&lt;/span&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 19:55的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh-Hans-CN&quot;&gt;（未显示同一用户的2个中间版本）&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-l78&quot;&gt;第78行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第78行：&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;===入门 Getting Started===&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;===入门 Getting Started===&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;div&gt;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;|[[Photonicat 2 新手入门指南]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 新手入门指南]]&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;|[[Photonicat 2 LED 指示灯]]（[[Photonicat 2 LED Indicator|EN]]）&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 LED 指示灯]]（[[Photonicat 2 LED Indicator|EN]]）&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;|[[Photonicat 2 提示音说明]]（[[Photonicat 2 Sound Guide|EN]]）&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 提示音说明]]（[[Photonicat 2 Sound Guide|EN]]）&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;|[[Photonicat 2 小屏幕自定义]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 小屏幕自定义]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&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;div&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;|}&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;===固件更新 Firmware Update===&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;===固件更新 Firmware Update===&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;div&gt;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;|[[Photonicat 2 固件在线升级更新]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 固件在线升级更新]]&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;|[[Photonicat 2 OTA更新]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 OTA更新]]&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;|[[Photonicat 2 固件USB线刷更新教程]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 固件USB线刷更新教程&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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|[[Photonicat 2 MCU 手动更新&lt;/ins&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;div&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;|-&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;[[Photonicat 2 MCU 手动更新]]&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;align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photoincat 2 第三方固件更新]]&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;|[[Photoincat 2 第三方固件更新]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 固件 Changelog]]&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;|[[Photonicat 2 固件 Changelog]]&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&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;div&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;|}&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;===网络功能 Networking===&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;===网络功能 Networking===&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;div&gt;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;|[[Photonicat 2 Smart WAN 智能上网]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 Smart WAN 智能上网]]&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;|[[Photonicat 2 多出口与故障切换]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 多出口与故障切换]]&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;|[[Photonicat 2 访客门户 Captive Portal]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 访客门户 Captive Portal&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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|[[Photoincat 2 IPv6 PPPoE&lt;/ins&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;div&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;|-&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;[[Photoincat 2 IPv6 PPPoE]]&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;align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat2 无线桥接]]&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;|[[Photonicat2 无线桥接]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 管理界面新功能 (2026)]]&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;|[[Photonicat 2 管理界面新功能 (2026)]]&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&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;div&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;|}&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;===硬件扩展 Hardware===&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;===硬件扩展 Hardware===&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;div&gt;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;|[[Photonicat 2 Wifi/WWAN/NVME M2 兼容模块]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 Wifi/WWAN/NVME M2 兼容模块]]&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;|[[Photonicat 2 spec|Photonicat 2 规格]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 spec|Photonicat 2 规格]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&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;div&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;|}&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;===开发者 Developers===&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;===开发者 Developers===&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;div&gt;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;|[[Photonicat 2 开发者 API]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 开发者 API]]&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;|[[Photonicat 2 sysfs]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 sysfs]]&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;|[[Photonicat 2 Docker 使用指南]]&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[Photonicat 2 Docker 使用指南&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 colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|[[Build system image for photonicat2&lt;/ins&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;div&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;|-&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;Build system image for photonicat2&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 MCU 通讯协议&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;MCU 控制协议&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;|align=&quot;left&quot; width=&quot;25%&quot;&lt;/ins&gt;|[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 SOC 计算&lt;/ins&gt;]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;（&lt;/ins&gt;[[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 SOC Calculation|EN&lt;/ins&gt;]]&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;|&lt;/del&gt;[[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;PMU Protocol&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|align=&quot;left&quot; width=&quot;25%&quot;|&lt;/ins&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;div&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;|}&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;!-- diff cache key pcat_wiki:diff:1.41:old-989:rev-1029:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 11:55:53 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Main_Page</comments>
		</item>
		<item>
			<title>Photonicat MCU 通讯协议</title>
			<link>https://photonicat.com/index.php?title=Photonicat_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE&amp;diff=1026&amp;oldid=624</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE&amp;diff=1026&amp;oldid=624</guid>
			<description>&lt;p&gt;Template:Note does not exist on this wiki; use plain bold&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:42的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh-Hans-CN&quot;&gt;（未显示同一用户的1个中间版本）&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;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第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;===物理层协议===&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;&#039;&#039;&#039;注意：&#039;&#039;&#039;本页内容已迁移。Photonicat 2（RK3576）与一代的完整 MCU 通讯协议现在统一&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;*通过串口通讯，115200波特率，校验位无，数据位8位，停止位1位&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;维护在 &#039;&#039;&#039;[[Photonicat 2 MCU 通讯协议]]&#039;&#039;&#039;，包含状态帧完整字段表、电池信息查询、&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;充电上限、风扇/温度、自定义提示音等全部命令。本页保留仅为兼容旧链接。&lt;/ins&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; 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;===帧格式表===&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;请前往 &#039;&#039;&#039;[[Photonicat 2 MCU 通讯协议]]&#039;&#039;&#039;。&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;{| class=&quot;wikitable sortable&quot;&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; 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;|-&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; 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;! 起始位   !! 数据位 !! 校验位置 !! 结束位置&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; 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;|-&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; 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;|0xA5,一个字节长度||见数据位表，变长||数据位（从数据位开始到数据位结束）的CRC校验，2个字节长度，低位在前，高位在后||0x5A，一个字节长度&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; 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;|}&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; 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;====数据位表====&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;相关：[[Photonicat 2 sysfs]] · [[Photonicat 2 SOC 计算]] · [[Photonicat 2 开发者 API]]&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;{| class=&quot;wikitable sortable&quot;&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; 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;|-&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; 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;! 数据来源地址  !! 目的地址 !! 帧序号 !! 数据长度 (第5-6位) !! 数据命令以及数据内容&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; 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;|-&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; 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;|0x01表示第一块CPU板，0x02表示第二块CPU板，0x03表示第三块CPU板，&#039;&#039;&#039;目前只有一块RK3568 CPU 板子，只用到0x01&#039;&#039;&#039;；&amp;lt;br&amp;gt;&#039;&#039;&#039;0x81表示 电源充电控制板&#039;&#039;&#039;，一个字节||0x01表示第一块CPU板，0x02表示第二块CPU板，0x03表示第三块CPU板&#039;&#039;&#039;目前只有一块RK3568 CPU 板子，只用到0x01&#039;&#039;&#039;；&amp;lt;br&amp;gt;0x81表示 电源充电控制板&#039;&#039;&#039;；&amp;lt;br&amp;gt;0x80表示目的地址是广播给所有的CPU电路板，0xfe表示目的地址是所有的RA2E1电路板，0xff表示广播给系统中所有设备，其他地址备用，一个字节长度||主动发送数据设备没发送一次数据加一个，两个字节，低位在前，高位在后（大于0xffff，清零），接收需要返回数据同数据返回||数据命令以及数据内容部分数据长度，两个字节，低位在前，高位在后||见数据命令以及数据内容表，变长&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; 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;|}&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; 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;/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; 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;====数据命令以及数据内容表====     &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; 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;{| class=&quot;wikitable sortable&quot;&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; 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;|-&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; 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;! 命令序号（定长，两个字节低位在前，高位在后），第7-8位   !! 命令内容（变长，0到n个字节），第9位开始 !! 是否需要回复（定长，1个字节）&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; 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;|-&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; 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;|1，CPU发送心跳||无||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|2，RA2E1应答心跳||0（超过1分钟没有收到任何数据，RA2E1重启CPU）||0表示无需返回&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; 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;|-&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; 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;|3，CPU读取RA2E1硬件版本||数据长度0|1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|4，RA2E1应答上传硬件版本||例如，&quot;NT2109A2&quot;,8个字节长度||0表示无需返回&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; 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;|-&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; 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;|5，CPU读取RA2E1软件版本||无||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|6，RA2E1应答上传软件版本||例如，&quot;RA2E1211214001&quot;,14个字节长度||0表示无需返回&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; 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;|-&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; 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;|7，RA2E1上报状态|| 电池电压（2个字节，低位在前，高位在后，单位mV）；充电器接口电压（2个字节，低位在前，高位在后，单位mV）；输入GPIO状态（2个字节，见GPIO输入状态表），输出GPIO状态（2个字节，见输出GPIO状态表）；系统时间（年、月、日、时、分、秒、礼拜（年两个字节，其余1个字节，一个8个字节））； RTC状态（1个字节，0表示RTC正常，1，RTC初始化异常，2，没有秒中断，3，没有分钟中断）；板子温度，一个字节长度，实际温度+40，比如：20表示，-20℃，60表示20℃||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|8，CP回复||无||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|9，CPU设置RA时间||年、月、日、时、分、秒（年2个字节，其他一个字节，一个7个字节）||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|10，RA2E1应答本||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|11，CPU设置定时开机时间||年、月、日、时、分、星期（年2个字节，其他一个字节，一个7个字节（星期匹配需要匹配每位，例如B00000101，表示周日和2定时开机）），匹配设置，1个字节(bit0:年匹配；bit1:月匹配；bit2:日匹配；bit3:时匹配；bit4:分匹配；bit5:星期匹配；&#039;&#039;&#039;1设置为匹配，0设置为不匹配，其中分匹配必须为1，否则忽略此定时开机时间&#039;&#039;&#039;)（&#039;&#039;&#039;注：一次最多设置6个定时开机时间，并覆盖以前设置的开机时间，如果设置6个开机时间，此段数据长度位8*6=42个字节，也就是最长48个字节长度&#039;&#039;&#039;）||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|12，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|13，RA2E1发送关机命令||关机事件，一个字节，0，表示按键强制关机，1，表示电池低电压关机，2，表示升级前关机；3,其他关机||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|14，CPU应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|15，CPU发送关机命令||||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|16，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|17，RA2E1恢复出厂设置||||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|18，CPU应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|19，CPU发送设置看门狗时间命令||系统开启超时时间，一个字节；系统关机超时时间，一个字节；系统启动成功后，喂狗超时时间，一个字节||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|20，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|21，CPU发送设置充电开机配置||一个字节长度，0，插上充电器后，不自动开机（如果机器关机时因为低电压关机，此配置情况下，插上充电器后还开机），1、插上充电器后开机。其他数据无效||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|22，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|23，CPU设置电压阈值||电压高指示阈值，2个字节，默认3850；电压中指示阈值,默认3700；电压低指示阈值，3600；插充电器开机电压，默认3400；充电器在充电器电压阈值，4500；充电器不在时关机电池阈值，3450；工作中，电池电压低电压提示电压阈值，3600；充电器大电流充电电压阈值，4700；开机后，电池电压持续超过15分钟满电压阈值，4140。一共18个字节，默认电压正负1000mV值范围内设置有效，如设置超出范围则使用默认值 ||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|24，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|25，CPU设置网络指示灯状态||高电平持续时间（2个字节，单位10ms），低电平持续时间（2个字节，单位10ms），变换次数（2个字节，次数到达后，保持低电平，0表示一直高低电平变换） ||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|26，RA2E1应答||0数据正常，1错误||0表示无需返回&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; 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;|-&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; 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;|27，CPU读取RA2E1开机原因|| ||1表示需要返回,0表示无需返回&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; 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;|-&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; 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;|28，RA2E1U应答||一个字节，1，表示按键开机，2，表示定时开机，3,插上charge车载模式开机，4,低电压关机，插上charge后，电压满足条件开机5,无电池开机||0表示无需返回&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; 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;|-&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; 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;|}&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; 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;/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; 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;===Reference Code===&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; 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;https://github.com/photonicat/rockchip_rk3568_pcat_manager/blob/master/src/pmu-manager.c&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;!-- diff cache key pcat_wiki:diff:1.41:old-624:rev-1026:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:42:53 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE</comments>
		</item>
		<item>
			<title>Photonicat 2 MCU 通讯协议</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE&amp;diff=1024&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE&amp;diff=1024&amp;oldid=0</guid>
			<description>&lt;p&gt;Create: full Photonicat 2 MCU UART protocol (frame format, status frame field table, battery info v9, charge limit, fan/thermal, beep, OTA)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;本页描述 &amp;#039;&amp;#039;&amp;#039;Photonicat 2&amp;#039;&amp;#039;&amp;#039; 主机（RK3576）与电源管理 MCU（Renesas RA2E1）之间的&lt;br /&gt;
串口通讯协议。协议同样适用于一代（RK3568），但一代的电压阈值是单节锂电语义，&lt;br /&gt;
详见下方&amp;quot;与一代的差异&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
相关页面：[[Photonicat 2 sysfs]]（内核已经把电源/RTC 数据导出成标准接口，&lt;br /&gt;
一般应用&amp;#039;&amp;#039;&amp;#039;不需要&amp;#039;&amp;#039;&amp;#039;自己解析本协议）、[[Photonicat 2 SOC 计算]]（状态帧里的&lt;br /&gt;
电量是怎么算出来的）、[[Photonicat 2 LED 指示灯]]、[[Photonicat 2 提示音说明]]。&lt;br /&gt;
&lt;br /&gt;
== 先读这里：你可能不需要这个协议 ==&lt;br /&gt;
&lt;br /&gt;
绝大多数应用不应该直接收发本协议。主机侧已经有两层封装：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 你想做的事 !! 推荐用法&lt;br /&gt;
|-&lt;br /&gt;
| 读电量/电压/电流/充电器状态 || &amp;lt;code&amp;gt;/sys/class/power_supply/*&amp;lt;/code&amp;gt;，见 [[Photonicat 2 sysfs]]&lt;br /&gt;
|-&lt;br /&gt;
| 读写时间 || &amp;lt;code&amp;gt;hwclock&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;/dev/rtc&amp;lt;/code&amp;gt;（MCU 就是硬件 RTC）&lt;br /&gt;
|-&lt;br /&gt;
| 风扇转速、温度 || &amp;lt;code&amp;gt;/sys/class/hwmon/*&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;/sys/class/thermal/*&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 网页界面里的各种设置 || pcat-manager 的 REST API，见 [[Photonicat 2 开发者 API]]&lt;br /&gt;
|-&lt;br /&gt;
| 上面都覆盖不到的功能 || 才需要本页的协议&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
串口本身由内核驱动 &amp;lt;code&amp;gt;photonicat-pm&amp;lt;/code&amp;gt; 和用户态守护进程&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pcat-manager&amp;#039;&amp;#039;&amp;#039; 占用。第三方程序直接抢串口会和它们冲突。&lt;br /&gt;
&lt;br /&gt;
== 物理层 ==&lt;br /&gt;
&lt;br /&gt;
* 串口，&amp;#039;&amp;#039;&amp;#039;115200&amp;#039;&amp;#039;&amp;#039; 波特率，8 数据位，无校验，1 停止位（8N1）&lt;br /&gt;
* 主机侧设备：一代为 &amp;lt;code&amp;gt;/dev/ttyS4&amp;lt;/code&amp;gt;；二代由设备树绑定给&lt;br /&gt;
  &amp;lt;code&amp;gt;photonicat-pm&amp;lt;/code&amp;gt; 驱动（serdev），不再以裸 tty 暴露&lt;br /&gt;
&lt;br /&gt;
== 帧格式 ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 字节 !! 字段 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 起始位 || 固定 &amp;#039;&amp;#039;&amp;#039;0xA5&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 源地址 || 见地址表&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 目的地址 || 见地址表&lt;br /&gt;
|-&lt;br /&gt;
| 3–4 || 帧序号 || 小端 uint16，主动发送方每发一帧加一，溢出回零；应答沿用请求的帧序号&lt;br /&gt;
|-&lt;br /&gt;
| 5–6 || 数据长度 || 小端 uint16，指&amp;quot;命令号 + 命令内容 + 是否需要回复&amp;quot;三段的总字节数&lt;br /&gt;
|-&lt;br /&gt;
| 7–8 || 命令号 || 小端 uint16&lt;br /&gt;
|-&lt;br /&gt;
| 9… || 命令内容 || 变长，见各命令说明&lt;br /&gt;
|-&lt;br /&gt;
| 倒数第 4 || 是否需要回复 || 1 = 需要应答，0 = 不需要&lt;br /&gt;
|-&lt;br /&gt;
| 倒数第 3、2 || CRC16 || 对&amp;#039;&amp;#039;&amp;#039;从字节 1 到&amp;quot;是否需要回复&amp;quot;为止&amp;#039;&amp;#039;&amp;#039;的所有字节计算，小端&lt;br /&gt;
|-&lt;br /&gt;
| 最后 1 || 结束位 || 固定 &amp;#039;&amp;#039;&amp;#039;0x5A&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
一帧总长 = 数据长度 + 10。接收方据此校验，长度对不上直接丢弃。&lt;br /&gt;
&lt;br /&gt;
=== 地址表 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 值 !! 含义&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || 第一块 CPU 板（目前只有一块，主机固定用 0x01）&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 / 0x03 || 第二、三块 CPU 板（预留）&lt;br /&gt;
|-&lt;br /&gt;
| 0x80 || 广播给所有 CPU 板&lt;br /&gt;
|-&lt;br /&gt;
| 0x81 || 电源管理 MCU（RA2E1）&lt;br /&gt;
|-&lt;br /&gt;
| 0xFE || 广播给所有 RA2E1&lt;br /&gt;
|-&lt;br /&gt;
| 0xFF || 广播给系统内所有设备&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 命令号约定 ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;奇数 = 请求，偶数 = 对应的应答&amp;#039;&amp;#039;&amp;#039;（应答号 = 请求号 + 1）。这条规则贯穿整个&lt;br /&gt;
协议，MCU 内部就是按 &amp;lt;code&amp;gt;命令号 % 2&amp;lt;/code&amp;gt; 来分发的。&lt;br /&gt;
&lt;br /&gt;
== 命令一览 ==&lt;br /&gt;
&lt;br /&gt;
=== 基础与版本 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;1&amp;#039;&amp;#039;&amp;#039; / 2 || CPU → MCU || 无 || 心跳。超过 1 分钟没有收到任何数据，MCU 会重启主机&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;3&amp;#039;&amp;#039;&amp;#039; / 4 || CPU → MCU || 应答含 8 字节字符串 || 读硬件版本，例如 &amp;lt;code&amp;gt;NT2421A4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;5&amp;#039;&amp;#039;&amp;#039; / 6 || CPU → MCU || 应答含 14 字节字符串 || 读软件版本，例如 &amp;lt;code&amp;gt;RA2E1260726005&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;139&amp;#039;&amp;#039;&amp;#039; / 140 || CPU → MCU || —— || 读硬件 ID&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;159&amp;#039;&amp;#039;&amp;#039; / 160 || CPU → MCU || —— || 读 bootloader 版本号&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 状态上报（7） ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MCU → CPU&amp;#039;&amp;#039;&amp;#039;，周期性主动上报，是整个协议里最重要的一帧。数据长度 56。&lt;br /&gt;
下表偏移量以&amp;#039;&amp;#039;&amp;#039;命令内容&amp;#039;&amp;#039;&amp;#039;首字节为 0（即整帧的字节 9）：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 偏移 !! 长度 !! 字段 !! 单位 / 说明&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || 电池电压 || mV，小端&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || 充电器接口电压 || mV，小端&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || 输入 GPIO 状态 || 位域&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 2 || 输出 GPIO 状态 || 位域&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 8 || 系统时间 || 年(2) 月 日 时 分 秒 星期，各 1 字节&lt;br /&gt;
|-&lt;br /&gt;
| 16 || 1 || RTC 状态 || 0 正常，1 初始化异常，2 无秒中断，3 无分钟中断&lt;br /&gt;
|-&lt;br /&gt;
| 17 || 1 || 板子温度 || &amp;#039;&amp;#039;&amp;#039;实际温度 = 本字节 − 100&amp;#039;&amp;#039;&amp;#039;（℃）&lt;br /&gt;
|-&lt;br /&gt;
| 18 || 2 || 电池电流 || mA，&amp;#039;&amp;#039;&amp;#039;有符号&amp;#039;&amp;#039;&amp;#039;小端。正 = 放电，负 = 充电&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 2 || 剩余容量 || mAh&lt;br /&gt;
|-&lt;br /&gt;
| 22 || 1 || 电量 || %（1–100，算法见 [[Photonicat 2 SOC 计算]]）&lt;br /&gt;
|-&lt;br /&gt;
| 23 || 4 || 当前能量 || mWh，小端&lt;br /&gt;
|-&lt;br /&gt;
| 27 || 4 || 满电能量 || mWh，小端（学习值，可与标称对比看老化）&lt;br /&gt;
|-&lt;br /&gt;
| 31 || 4 || 累计开机时长 || 秒，小端&lt;br /&gt;
|-&lt;br /&gt;
| 35 || 4 || 加速度 X || 1/16384 g，有符号小端&lt;br /&gt;
|-&lt;br /&gt;
| 39 || 4 || 加速度 Y || 同上&lt;br /&gt;
|-&lt;br /&gt;
| 43 || 4 || 加速度 Z || 同上&lt;br /&gt;
|-&lt;br /&gt;
| 47 || 1 || 加速度数据就绪 || 非 0 表示有效&lt;br /&gt;
|-&lt;br /&gt;
| 48 || 4 || 风扇转速 || RPM，小端&lt;br /&gt;
|-&lt;br /&gt;
| 52 || 1 || 充电状态 || 0 未充电，1 小电流充电，2 大电流充电，3 已充满&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;向后兼容&amp;#039;&amp;#039;&amp;#039;:这一帧只在尾部追加字段，从不改动已有偏移。解析时应按&lt;br /&gt;
&amp;quot;长度至少为 N 才读第 N 个字段&amp;quot;的方式写，不要假设固定总长。&lt;br /&gt;
&lt;br /&gt;
=== 时间与定时开机 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;9&amp;#039;&amp;#039;&amp;#039; / 10 || CPU → MCU || 年(2) 月 日 时 分 秒，共 7 字节 || 设置 MCU 时间&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;11&amp;#039;&amp;#039;&amp;#039; / 12 || CPU → MCU || 见下 || 设置定时开机&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
定时开机每条 8 字节：年(2) 月 日 时 分 星期，再加 1 字节匹配掩码。&lt;br /&gt;
掩码 bit0 年、bit1 月、bit2 日、bit3 时、bit4 分、bit5 星期，&lt;br /&gt;
置 1 表示该项参与匹配。&amp;#039;&amp;#039;&amp;#039;分匹配必须为 1&amp;#039;&amp;#039;&amp;#039;，否则该条被忽略。&lt;br /&gt;
星期按位匹配，例如 &amp;lt;code&amp;gt;0b00000101&amp;lt;/code&amp;gt; 表示周日和周二。&lt;br /&gt;
一次最多 6 条，覆盖之前的设置，故该段最长 48 字节。&lt;br /&gt;
&lt;br /&gt;
=== 关机与复位 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;13&amp;#039;&amp;#039;&amp;#039; / 14 || MCU → CPU || 1 字节关机事件 || MCU 通知主机即将关机&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;15&amp;#039;&amp;#039;&amp;#039; / 16 || CPU → MCU || 无 || 主机请求关机&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;17&amp;#039;&amp;#039;&amp;#039; / 18 || MCU → CPU || 无 || MCU 通知主机复位&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
关机事件取值：0 按键强制关机，1 电池低电压关机，2 升级前关机，3 其他。&lt;br /&gt;
&lt;br /&gt;
=== 开机原因（27） ===&lt;br /&gt;
&lt;br /&gt;
CPU → MCU 查询，应答 1 字节：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 值 !! 含义&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 按键开机&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 定时开机&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 车载模式：插入充电器开机&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 低电压关机后，插入充电器且电压满足条件开机&lt;br /&gt;
|-&lt;br /&gt;
| 5 || 无电池开机&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 家庭模式：充电器电压满足条件开机&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 看门狗与电源策略 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;19&amp;#039;&amp;#039;&amp;#039; / 20 || CPU → MCU || 3 字节：开机超时、关机超时、喂狗超时（秒） || 设置软件看门狗时间&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;21&amp;#039;&amp;#039;&amp;#039; / 22 || CPU → MCU || 1 字节 || 0 = 插充电器不自动开机，1 = 插充电器开机。（低电压关机的机器即使设 0 也会开机）&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;157&amp;#039;&amp;#039;&amp;#039; / 158 || CPU → MCU || 1 字节 || 硬件看门狗开关&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;161&amp;#039;&amp;#039;&amp;#039; / 162 || CPU → MCU || 1 字节 || 设置设备模式（车载 / 家庭等）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 电压阈值（23） ===&lt;br /&gt;
&lt;br /&gt;
CPU → MCU，&amp;#039;&amp;#039;&amp;#039;18 字节&amp;#039;&amp;#039;&amp;#039;，9 个 uint16 小端。二代为 2S 电池组，单位 mV，&lt;br /&gt;
数值是&amp;#039;&amp;#039;&amp;#039;整包&amp;#039;&amp;#039;&amp;#039;电压：&lt;br /&gt;
&lt;br /&gt;
# 电压高指示阈值&lt;br /&gt;
# 电压中指示阈值&lt;br /&gt;
# 电压低指示阈值&lt;br /&gt;
# 插充电器开机电压&lt;br /&gt;
# 充电器在位判定电压&lt;br /&gt;
# 充电器不在时关机电池阈值&lt;br /&gt;
# 工作中低电压提示阈值&lt;br /&gt;
# 大电流充电电压阈值&lt;br /&gt;
# 开机后持续 15 分钟判定满电的电压阈值&lt;br /&gt;
&lt;br /&gt;
超出默认值 ±1000 mV 的设置视为无效，MCU 会退回默认值。&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注意&amp;#039;&amp;#039;&amp;#039;:一代文档里的 3850 / 3700 / 3600 等是&amp;#039;&amp;#039;&amp;#039;单节&amp;#039;&amp;#039;&amp;#039;数值。二代是 2S，&lt;br /&gt;
默认值不同（例如低电告警 6500、强制关机 6300），不要照搬一代的数字。&lt;br /&gt;
各阈值的实际效果见 [[Photonicat 2 LED 指示灯]]。&lt;br /&gt;
&lt;br /&gt;
=== 温度阈值（145） ===&lt;br /&gt;
&lt;br /&gt;
CPU → MCU，2 字节：&lt;br /&gt;
&lt;br /&gt;
* 第 1 字节：主机断电温度（℃），有效范围 &amp;#039;&amp;#039;&amp;#039;55–80&amp;#039;&amp;#039;&amp;#039;，默认 75&lt;br /&gt;
* 第 2 字节：充电指示灯关闭温度（℃），有效范围 &amp;#039;&amp;#039;&amp;#039;50–60&amp;#039;&amp;#039;&amp;#039;，默认 53&lt;br /&gt;
&lt;br /&gt;
超范围返回错误，不生效。温度过高触发断电时会播放提示音，&lt;br /&gt;
见 [[Photonicat 2 提示音说明]]。&lt;br /&gt;
&lt;br /&gt;
=== 风扇 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;147&amp;#039;&amp;#039;&amp;#039; / 148 || CPU → MCU || 1 字节占空比（0–100） || 主机直接接管风扇。&amp;#039;&amp;#039;&amp;#039;一旦下发，MCU 内部的温控 PID 不再控制风扇&amp;#039;&amp;#039;&amp;#039;；超过 100 返回错误&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;151&amp;#039;&amp;#039;&amp;#039; / 152 || CPU → MCU || 目标温度 || 设置风扇 PID 的目标温度，默认 47 ℃&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;153&amp;#039;&amp;#039;&amp;#039; / 154 || CPU → MCU || —— || 读取当前目标温度&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
未被主机接管时，MCU 用增量式 PID 控制风扇：目标温度 47 ℃，&lt;br /&gt;
充电时占空比上限 85 %，纯电池运行时上限 40 %。&lt;br /&gt;
&lt;br /&gt;
=== 指示灯与声音 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;25&amp;#039;&amp;#039;&amp;#039; / 26 || CPU → MCU || 6 字节 || 设置网络指示灯：高电平时长(2)、低电平时长(2)、变换次数(2)，时长单位 10 ms，次数 0 表示一直闪&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;155&amp;#039;&amp;#039;&amp;#039; / 156 || CPU → MCU || 1 字节 || 声光模式：0x00 全关，0x01 关声音开灯光，0x02 开声音关灯光，0x03 全开；传 &amp;#039;&amp;#039;&amp;#039;0xFF&amp;#039;&amp;#039;&amp;#039; 为查询当前值&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;163&amp;#039;&amp;#039;&amp;#039; / 164 || CPU → MCU || 见下 || 播放自定义蜂鸣器序列&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;自定义蜂鸣器序列（163）&amp;#039;&amp;#039;&amp;#039;载荷格式：&lt;br /&gt;
&lt;br /&gt;
  [步进 1][步进 2]…[步进 N][循环模式 1 字节]&lt;br /&gt;
&lt;br /&gt;
每个步进 4 字节：频率 uint16 小端（Hz，0 = 休止）+ 时长 uint16 小端（ms）。&lt;br /&gt;
循环模式 0 = 播放一次，1 = 循环。时长为 0 会被当作 1 ms。&lt;br /&gt;
声音被关闭时该命令不执行。内置提示音见 [[Photonicat 2 提示音说明]]。&lt;br /&gt;
&lt;br /&gt;
=== 电池与充电 ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 方向 !! 内容 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;165&amp;#039;&amp;#039;&amp;#039; / 166 || CPU → MCU || 1 字节百分比 || 设置充电上限，有效范围 &amp;#039;&amp;#039;&amp;#039;50–100&amp;#039;&amp;#039;&amp;#039;，100 = 不限制。超范围返回错误&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;167&amp;#039;&amp;#039;&amp;#039; / 168 || CPU → MCU || 应答 1 字节 || 读取当前充电上限&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;169&amp;#039;&amp;#039;&amp;#039; / 170 || CPU → MCU || 应答见下 || 读取电池详细信息&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;141&amp;#039;&amp;#039;&amp;#039; / 142 || CPU → MCU || 1 字节 || &amp;#039;&amp;#039;&amp;#039;已废弃&amp;#039;&amp;#039;&amp;#039;，保留解析以兼容老主机，行为等同空操作&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
充电上限自固件 &amp;#039;&amp;#039;&amp;#039;RA2E1260726005&amp;#039;&amp;#039;&amp;#039; 起持久化在 MCU 侧，复位和 OTA 后不丢失。&lt;br /&gt;
到达上限后 MCU 断开充电 MOSFET，回落约 2 % 后恢复充电。&lt;br /&gt;
&lt;br /&gt;
==== 电池信息（169）应答格式 ====&lt;br /&gt;
&lt;br /&gt;
应答是&amp;#039;&amp;#039;&amp;#039;逐版本向尾部追加&amp;#039;&amp;#039;&amp;#039;的结构，当前长度 59 字节。偏移以应答的命令内容&lt;br /&gt;
首字节为 0，全部小端：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 偏移 !! 长度 !! 字段 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 2 || 学习到的满容量 || mAh&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 2 || 循环次数 || ——&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 2 || 标称满容量 || mAh&lt;br /&gt;
|-&lt;br /&gt;
| 6 || 1 || 标志位 || bit0 = 容量为学习值，bit1 = 学习窗口进行中&lt;br /&gt;
|-&lt;br /&gt;
| 7 || 2 || 内阻 || mΩ，整包串联值，归一到 25 ℃&lt;br /&gt;
|-&lt;br /&gt;
| 9 || 4 || 累计开机秒数 || ——&lt;br /&gt;
|-&lt;br /&gt;
| 13 || 2 || 电池中点电压 || mV（2P2S 中心抽头）&lt;br /&gt;
|-&lt;br /&gt;
| 15 || 2 || 内部 SOC || ×10，显示修饰前&lt;br /&gt;
|-&lt;br /&gt;
| 17 || 1 || 学习到的显示空点 || %，0 = 未学习&lt;br /&gt;
|-&lt;br /&gt;
| 18 || 2 || 显示变换 a || ×1000&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 2 || 显示变换 b || ×100，有符号&lt;br /&gt;
|-&lt;br /&gt;
| 22 || 2 || 充电电流增益 || ×1000&lt;br /&gt;
|-&lt;br /&gt;
| 24 || 2 || 电流微调 a || ×1000&lt;br /&gt;
|-&lt;br /&gt;
| 26 || 2 || 电流微调 b || mA，有符号&lt;br /&gt;
|-&lt;br /&gt;
| 28 || 2 || 估算剩余容量 || mAh&lt;br /&gt;
|-&lt;br /&gt;
| 30 || 4 || 累计消耗能量 || mWh&lt;br /&gt;
|-&lt;br /&gt;
| 34 || 4 || 累计充入能量 || mWh&lt;br /&gt;
|-&lt;br /&gt;
| 38 || 1 || &amp;#039;&amp;#039;&amp;#039;协议版本号&amp;#039;&amp;#039;&amp;#039; || 当前 9&lt;br /&gt;
|-&lt;br /&gt;
| 39 || 1 || 电池健康度 || %，0xFF = 尚未学习&lt;br /&gt;
|-&lt;br /&gt;
| 40 || 2 || 预计可用时间 || 分钟，0xFFFF = 非稳定放电&lt;br /&gt;
|-&lt;br /&gt;
| 42 || 2 || 预计充满时间 || 分钟，0xFFFF = 非稳定充电&lt;br /&gt;
|-&lt;br /&gt;
| 44 || 1 || 库仑计在用温度 || ℃，有符号&lt;br /&gt;
|-&lt;br /&gt;
| 45 || 1 || 低温空点上移 || ×10 %，常温 = 0&lt;br /&gt;
|-&lt;br /&gt;
| 46 || 2 || 内阻温度倍率 k(T) || ×1000，25 ℃ = 1000&lt;br /&gt;
|-&lt;br /&gt;
| 48 || 1 || 回路寄生电阻 || mΩ（线缆+接插件+MOSFET）。电芯本体内阻 = 偏移 7 的值 − 本值&lt;br /&gt;
|-&lt;br /&gt;
| 49 || 4 || MCU 总运行秒数 || 自 MCU 复位起，看门狗/异常复位会清零&lt;br /&gt;
|-&lt;br /&gt;
| 53 || 4 || 距上次休眠唤醒秒数 || 从未休眠则等于总运行秒数&lt;br /&gt;
|-&lt;br /&gt;
| 57 || 2 || 进入待机次数 || 饱和计数&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
偏移 38 之前的版本靠&amp;#039;&amp;#039;&amp;#039;应答长度&amp;#039;&amp;#039;&amp;#039;区分（≥7、≥13、≥15、≥28、≥38…）；&lt;br /&gt;
从版本 9 起有显式版本号字段，建议新代码优先读它。这些字段的物理含义见&lt;br /&gt;
[[Photonicat 2 SOC 计算]]。&lt;br /&gt;
&lt;br /&gt;
=== 抬腕唤醒（149） ===&lt;br /&gt;
&lt;br /&gt;
MCU → CPU 主动上报抬腕/移动事件。对应 sysfs 的&lt;br /&gt;
&amp;lt;code&amp;gt;/sys/kernel/photonicat-pm/movement_trigger&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== MCU 固件升级 ===&lt;br /&gt;
&lt;br /&gt;
这一组命令由 pcat-manager 的升级工具使用，&amp;#039;&amp;#039;&amp;#039;不建议手工调用&amp;#039;&amp;#039;&amp;#039;——&lt;br /&gt;
中断升级流程可能使 MCU 无法启动。正常升级方式见&lt;br /&gt;
[[Photonicat 2 MCU 手动更新]]。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;129&amp;#039;&amp;#039;&amp;#039; / 130 || 请求进入升级模式&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;203&amp;#039;&amp;#039;&amp;#039; / 204 || 开始 OTA&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;205&amp;#039;&amp;#039;&amp;#039; / 206 || 传送版本号&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;207&amp;#039;&amp;#039;&amp;#039; / 208 || OTA 结束&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;209&amp;#039;&amp;#039;&amp;#039; / 210 || 回报&amp;quot;已收到结束&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;211&amp;#039;&amp;#039;&amp;#039; / 212 || 传输 OTA 数据&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;213&amp;#039;&amp;#039;&amp;#039; / 214 || 接收就绪&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;215&amp;#039;&amp;#039;&amp;#039; / 216 || 长度校验正确&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;217&amp;#039;&amp;#039;&amp;#039; / 218、&amp;#039;&amp;#039;&amp;#039;219&amp;#039;&amp;#039;&amp;#039; / 220 || 新区域拷贝到备份区 / 拷贝完成&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;221&amp;#039;&amp;#039;&amp;#039; / 222、&amp;#039;&amp;#039;&amp;#039;223&amp;#039;&amp;#039;&amp;#039; / 224 || 擦除 SPI 最新区 / 备份区&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 错误上报（201） ===&lt;br /&gt;
&lt;br /&gt;
MCU → CPU，用于上报解析或执行错误。&lt;br /&gt;
&lt;br /&gt;
== 与一代的差异 ==&lt;br /&gt;
&lt;br /&gt;
* 一代主机是 RK3568，二代是 RK3576&lt;br /&gt;
* 一代是单节锂电，命令 23 的阈值是单节电压（3850 / 3700 / 3600 等）；&lt;br /&gt;
  二代是 2S 电池组，同样的字段是整包电压（约为一代的两倍）&lt;br /&gt;
* 一代只有命令 1–28；二代在 129 以上扩展了 ID、风扇、温度、声光、&lt;br /&gt;
  电池信息、充电上限等&lt;br /&gt;
* 一代靠 pcat-manager 的 socket 对外提供数据；二代已集成进内核，&lt;br /&gt;
  推荐直接读 sysfs，见 [[Photonicat 2 sysfs]]&lt;br /&gt;
&lt;br /&gt;
== 参考实现 ==&lt;br /&gt;
&lt;br /&gt;
* 主机侧用户态：pcat-manager &amp;lt;code&amp;gt;src/pmu-manager.c&amp;lt;/code&amp;gt;&lt;br /&gt;
* 主机侧内核：&amp;lt;code&amp;gt;photonicat-pm&amp;lt;/code&amp;gt;（power_supply + RTC）&lt;br /&gt;
* 一代参考：[https://github.com/photonicat/rockchip_rk3568_pcat_manager/blob/master/src/pmu-manager.c rockchip_rk3568_pcat_manager]&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:42:04 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_MCU_%E9%80%9A%E8%AE%AF%E5%8D%8F%E8%AE%AE</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1023&amp;oldid=1014</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1023&amp;oldid=1014</guid>
			<description>&lt;p&gt;Point cross-links at the renamed SOC pages directly instead of via redirects&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:25的版本&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-l111&quot;&gt;第111行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第111行：&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;* 🔴 红色仅用于低电量提示，会持续闪烁直到电压回升或接入充电器。&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;* 🔴 红色仅用于低电量提示，会持续闪烁直到电压回升或接入充电器。&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;div&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;* 指示灯可通过上位机协议整体关闭，关闭后所有状态均不亮灯。&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;光影猫2 是如何计算电量的&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;Photonicat 2 SOC 计算&lt;/ins&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1014:rev-1023:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:25:27 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1022&amp;oldid=1013</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1022&amp;oldid=1013</guid>
			<description>&lt;p&gt;Point cross-links at the renamed SOC pages directly instead of via redirects&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:25的版本&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-l111&quot;&gt;第111行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第111行：&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;* 🔴 Red is only ever used for low battery, and keeps flashing until the voltage recovers or a charger is connected.&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;* 🔴 Red is only ever used for low battery, and keeps flashing until the voltage recovers or a charger is connected.&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;div&gt;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&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;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&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;* For how the charge level behind these indications is computed, see [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;How &lt;/del&gt;Photonicat 2 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculates &lt;/del&gt;SOC]].&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;* For how the charge level behind these indications is computed, see [[Photonicat 2 SOC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculation&lt;/ins&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1013:rev-1022:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:25:25 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 sysfs</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_sysfs&amp;diff=1021&amp;oldid=1010</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_sysfs&amp;diff=1021&amp;oldid=1010</guid>
			<description>&lt;p&gt;Point cross-links at the renamed SOC pages directly instead of via redirects&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:25的版本&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-l75&quot;&gt;第75行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第75行：&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;* 写操作（风扇档位、背光）需 root；接口是否存在取决于驱动与机型。   &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;* 写操作（风扇档位、背光）需 root；接口是否存在取决于驱动与机型。   &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;div&gt;* 从一代迁移到二代：优先改为读取上述 sysfs 路径，原 socket 方案仅作为兼容保留。&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;* 从一代迁移到二代：优先改为读取上述 sysfs 路径，原 socket 方案仅作为兼容保留。&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;* &#039;&#039;&#039;capacity 这个数字是怎么来的&#039;&#039;&#039; —— 库仑计的完整原理（硬件测量、积分、OCV 融合、自学习、温度补偿）见 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;光影猫2 是如何计算电量的&lt;/del&gt;]]（English: [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;How &lt;/del&gt;Photonicat 2 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculates &lt;/del&gt;SOC]]）。&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;* &#039;&#039;&#039;capacity 这个数字是怎么来的&#039;&#039;&#039; —— 库仑计的完整原理（硬件测量、积分、OCV 融合、自学习、温度补偿）见 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 SOC 计算&lt;/ins&gt;]]（English: [[Photonicat 2 SOC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculation&lt;/ins&gt;]]）。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1010:rev-1021:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:25:23 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_sysfs</comments>
		</item>
		<item>
			<title>Photonicat 2 SOC Calculation</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_SOC_Calculation&amp;diff=1020&amp;oldid=1017</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_SOC_Calculation&amp;diff=1020&amp;oldid=1017</guid>
			<description>&lt;p&gt;Point cross-links at the renamed SOC pages directly instead of via redirects&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:25的版本&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-l8&quot;&gt;第8行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第8行：&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;For the indicator see [[Photonicat 2 LED Indicator]]; for sysfs paths see&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;For the indicator see [[Photonicat 2 LED Indicator]]; for sysfs paths see&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;[[Photonicat 2 sysfs]]. 中文版见 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;光影猫2 是如何计算电量的&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;[[Photonicat 2 sysfs]]. 中文版见 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 SOC 计算&lt;/ins&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;== Why voltage alone is not enough ==&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;== Why voltage alone is not enough ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1017:rev-1020:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:25:21 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_SOC_Calculation</comments>
		</item>
		<item>
			<title>Photonicat 2 SOC 计算</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&amp;diff=1019&amp;oldid=1015</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&amp;diff=1019&amp;oldid=1015</guid>
			<description>&lt;p&gt;Point cross-links at the renamed SOC pages directly instead of via redirects&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:25的版本&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-l7&quot;&gt;第7行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第7行：&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;指示灯说明见 [[Photonicat 2 LED 指示灯]]，sysfs 路径见 [[Photonicat 2 sysfs]]。&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;指示灯说明见 [[Photonicat 2 LED 指示灯]]，sysfs 路径见 [[Photonicat 2 sysfs]]。&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;English: [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;How &lt;/del&gt;Photonicat 2 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculates &lt;/del&gt;SOC]]。&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;English: [[Photonicat 2 SOC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Calculation&lt;/ins&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;== 为什么不能只看电压 ==&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;== 为什么不能只看电压 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1015:rev-1019:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:25:18 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_SOC_%E8%AE%A1%E7%AE%97</comments>
		</item>
		<item>
			<title>How Photonicat 2 Calculates SOC</title>
			<link>https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1017&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1017&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;移动页面&lt;a href=&quot;/index.php?title=How_Photonicat_2_Calculates_SOC&amp;amp;redirect=no&quot; class=&quot;mw-redirect&quot; title=&quot;How Photonicat 2 Calculates SOC&quot;&gt;How Photonicat 2 Calculates SOC&lt;/a&gt;至&lt;a href=&quot;/wiki/Photonicat_2_SOC_Calculation&quot; title=&quot;Photonicat 2 SOC Calculation&quot;&gt;Photonicat 2 SOC Calculation&lt;/a&gt; Align with the Photonicat 2 topic prefix used by sibling pages&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Photonicat 2&amp;#039;&amp;#039;&amp;#039; does not guess the battery level from voltage. It runs a&lt;br /&gt;
proper &amp;#039;&amp;#039;&amp;#039;coulomb counter&amp;#039;&amp;#039;&amp;#039; (also called a fuel gauge): think of it as a water&lt;br /&gt;
meter on the battery, accounting for every milliamp-second in and out.&lt;br /&gt;
&lt;br /&gt;
This page explains how that system works — from the measuring hardware, through&lt;br /&gt;
the firmware&amp;#039;s integration, self-learning and temperature compensation, to the&lt;br /&gt;
Linux kernel driver that turns it all into ordinary sysfs files.&lt;br /&gt;
&lt;br /&gt;
For the indicator see [[Photonicat 2 LED Indicator]]; for sysfs paths see&lt;br /&gt;
[[Photonicat 2 sysfs]]. 中文版见 [[光影猫2 是如何计算电量的]]。&lt;br /&gt;
&lt;br /&gt;
== Why voltage alone is not enough ==&lt;br /&gt;
&lt;br /&gt;
This is the first problem every fuel gauge has to solve. A lithium cell&amp;#039;s&lt;br /&gt;
voltage-vs-charge curve is remarkably flat in the middle. The figures below come&lt;br /&gt;
from the firmware&amp;#039;s &amp;#039;&amp;#039;&amp;#039;discharge OCV table&amp;#039;&amp;#039;&amp;#039; (IR-compensated pack voltage):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pack OCV (open-circuit voltage) !! Charge level&lt;br /&gt;
|-&lt;br /&gt;
| 7.58 V || 70 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.50 V || 60 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.44 V || 50 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.36 V || 40 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.28 V || 30 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Going from 70 % down to 30 % moves the voltage by just &amp;#039;&amp;#039;&amp;#039;0.30 V&amp;#039;&amp;#039;&amp;#039; — roughly&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 mV per percent&amp;#039;&amp;#039;&amp;#039;. Put a load on the battery and the IR drop across its&lt;br /&gt;
internal resistance easily amounts to tens of millivolts. In other words,&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;voltage alone can be off by more than 10 %&amp;#039;&amp;#039;&amp;#039;, and it gets worse the heavier&lt;br /&gt;
the load.&lt;br /&gt;
&lt;br /&gt;
The two ends, by contrast, are steep: in this table 8.34 V is 100 % and 6.34 V is&lt;br /&gt;
0 %. So the right approach is to &amp;#039;&amp;#039;&amp;#039;anchor at the ends with voltage and advance&lt;br /&gt;
through the middle by integration&amp;#039;&amp;#039;&amp;#039; — which is exactly what the system below&lt;br /&gt;
does.&lt;br /&gt;
&lt;br /&gt;
== The idea in one line ==&lt;br /&gt;
&lt;br /&gt;
  charge = starting charge − ∫(discharge current)dt + ∫(charge current)dt&lt;br /&gt;
&lt;br /&gt;
The integral itself is accurate, provided the current measurement is. But it has&lt;br /&gt;
two weaknesses: &amp;#039;&amp;#039;&amp;#039;where does the starting point come from&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;error&lt;br /&gt;
accumulates&amp;#039;&amp;#039;&amp;#039;. So a real fuel gauge is integration &amp;#039;&amp;#039;plus&amp;#039;&amp;#039; a set of correction&lt;br /&gt;
mechanisms. Photonicat 2 layers them like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Layer !! Job&lt;br /&gt;
|-&lt;br /&gt;
| Measurement hardware || TPA626 samples voltage/current every 100 ms&lt;br /&gt;
|-&lt;br /&gt;
| Coulomb integration || Accumulates current into a µAs ledger every 200 ms&lt;br /&gt;
|-&lt;br /&gt;
| OCV fusion || At rest, looks up charge from voltage and gently pulls the integral back&lt;br /&gt;
|-&lt;br /&gt;
| Anchors || At full/empty, pins the value directly to 100 % / 0 %&lt;br /&gt;
|-&lt;br /&gt;
| Self-learning || Capacity, resistance, empty point and charge gain — learned per unit&lt;br /&gt;
|-&lt;br /&gt;
| Temperature || Cold raises resistance and shrinks usable capacity; both corrected&lt;br /&gt;
|-&lt;br /&gt;
| Display layer || Maps internal charge to the 1–100 % the user sees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 1. Hardware: how it measures ==&lt;br /&gt;
&lt;br /&gt;
The measuring chip is a &amp;#039;&amp;#039;&amp;#039;TPA626&amp;#039;&amp;#039;&amp;#039; (an I²C current/voltage monitor, in the same&lt;br /&gt;
family as the INA226). It sits across a milliohm-class shunt resistor in the&lt;br /&gt;
battery path, deriving current from the voltage drop while also measuring bus&lt;br /&gt;
voltage.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sampling&amp;#039;&amp;#039;&amp;#039;: roughly every 100 ms (&amp;lt;code&amp;gt;VD1_Collect&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Median filtering&amp;#039;&amp;#039;&amp;#039;: voltage and current each pass through a median filter&lt;br /&gt;
  that rejects occasional I²C glitches and load spikes&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Raw values kept separately&amp;#039;&amp;#039;&amp;#039;: the median filter lags by about 3 s, which&lt;br /&gt;
  would smear out the voltage step when a charger is plugged or unplugged — and&lt;br /&gt;
  the internal-resistance learning depends on exactly that step, so the firmware&lt;br /&gt;
  keeps unfiltered raw values alongside&lt;br /&gt;
&lt;br /&gt;
=== Current calibration ===&lt;br /&gt;
&lt;br /&gt;
The shunt and amplifier have unit-to-unit variation, so each board is calibrated&lt;br /&gt;
against a precision multimeter and fitted to a quadratic:&lt;br /&gt;
&lt;br /&gt;
  I_true(mA) = C2·x² + C1·x + C0&lt;br /&gt;
&lt;br /&gt;
Current coefficients (second calibration round, 2026-07-24; residuals ≤3 mA&lt;br /&gt;
across four points):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Term !! Value !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| C2 || −4.444×10⁻⁵ || Quadratic term, corrects high-current nonlinearity&lt;br /&gt;
|-&lt;br /&gt;
| C1 || 1.0411 || Linear term (gain)&lt;br /&gt;
|-&lt;br /&gt;
| C0 || +20 mA (discharge) / 0 mA (charge) || Zero offset, per direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A few engineering details worth calling out:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Clamp before evaluating&amp;#039;&amp;#039;&amp;#039;: outside the calibrated range the parabola bends&lt;br /&gt;
  back on itself (vertex near +11.7 A), so the input is clamped to ±3 A and&lt;br /&gt;
  extended linearly by the endpoint slope beyond that.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;64-bit arithmetic&amp;#039;&amp;#039;&amp;#039;: x² reaches 9×10⁶, which overflows int32 once scaled.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;55 mA dead band&amp;#039;&amp;#039;&amp;#039;: anything smaller counts as zero, so idle noise cannot&lt;br /&gt;
  slowly skew the ledger.&lt;br /&gt;
&lt;br /&gt;
== 2. Coulomb integration: the ledger ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;coulomb_counter_update()&amp;lt;/code&amp;gt; runs every &amp;#039;&amp;#039;&amp;#039;200 ms&amp;#039;&amp;#039;&amp;#039;, multiplying current&lt;br /&gt;
by elapsed time into a 64-bit &amp;#039;&amp;#039;&amp;#039;µAs (microamp-second)&amp;#039;&amp;#039;&amp;#039; ledger. µAs rather than&lt;br /&gt;
mAh avoids fixed-point rounding error piling up over long runs.&lt;br /&gt;
&lt;br /&gt;
* Discharge subtracts, charge adds&lt;br /&gt;
* Currents under &amp;#039;&amp;#039;&amp;#039;30 mA&amp;#039;&amp;#039;&amp;#039; in magnitude are ignored (dead band, anti-drift)&lt;br /&gt;
* The charge direction carries its own learned &amp;#039;&amp;#039;&amp;#039;gain&amp;#039;&amp;#039;&amp;#039; — charging is not 100 %&lt;br /&gt;
  efficient&lt;br /&gt;
&lt;br /&gt;
== 3. OCV fusion: pulling the drift back ==&lt;br /&gt;
&lt;br /&gt;
Integration error accumulates, so whenever the battery is &amp;#039;&amp;#039;&amp;#039;near rest&amp;#039;&amp;#039;&amp;#039; the&lt;br /&gt;
firmware looks up charge from voltage and applies a gentle correction.&lt;br /&gt;
&lt;br /&gt;
The entry conditions are strict, because misjudging &amp;quot;at rest&amp;quot; would drag a&lt;br /&gt;
perfectly good integral off course:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Condition !! Threshold !! Why&lt;br /&gt;
|-&lt;br /&gt;
| Current small enough || &amp;amp;#124;I&amp;amp;#124; ≤ 340 mA (~0.05C) || IR-model error is amplified at higher current&lt;br /&gt;
|-&lt;br /&gt;
| Held long enough || ≥ 30 s || Lets polarisation and surface charge relax&lt;br /&gt;
|-&lt;br /&gt;
| Voltage slew || ≤ 20 mV/s || Still in a transient, so not really at rest&lt;br /&gt;
|-&lt;br /&gt;
| Current slew || ≤ 2000 mA/s || Likewise&lt;br /&gt;
|-&lt;br /&gt;
| Plug/unplug grace || 10 s || Voltage has not settled after a charger event&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Even then it does not overwrite — it &amp;#039;&amp;#039;&amp;#039;blends&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* Weight capped at &amp;#039;&amp;#039;&amp;#039;α = 0.07&amp;#039;&amp;#039;&amp;#039; (OCV contributes at most 7 %), ramping linearly&lt;br /&gt;
  from 0 over 8 s&lt;br /&gt;
* Any single correction is limited to &amp;#039;&amp;#039;&amp;#039;0.20 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So OCV nudges the integral back rather than yanking it, and the user never sees&lt;br /&gt;
the reading jump.&lt;br /&gt;
&lt;br /&gt;
=== Three OCV tables ===&lt;br /&gt;
&lt;br /&gt;
Lithium cells show &amp;#039;&amp;#039;&amp;#039;hysteresis&amp;#039;&amp;#039;&amp;#039;: at the same charge level, terminal voltage&lt;br /&gt;
reads higher while charging and lower while discharging (about 30 mV per cell,&lt;br /&gt;
so roughly ±60 mV for a 2S pack). The firmware therefore carries three tables:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Discharge table&amp;#039;&amp;#039;&amp;#039; — used in discharge mode (&amp;amp;#124;I&amp;amp;#124; &amp;gt; 900 mA)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Charge table&amp;#039;&amp;#039;&amp;#039; — used in charge mode&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rest table&amp;#039;&amp;#039;&amp;#039; — the average of the two, used at low current (&amp;amp;#124;I&amp;amp;#124; ≤ 600 mA)&lt;br /&gt;
&lt;br /&gt;
Mode switching is &amp;#039;&amp;#039;&amp;#039;hysteretic&amp;#039;&amp;#039;&amp;#039; (enter at 900 mA, leave at 600 mA) so it does&lt;br /&gt;
not chatter around the threshold.&lt;br /&gt;
&lt;br /&gt;
Before any lookup the reading is &amp;#039;&amp;#039;&amp;#039;IR-compensated&amp;#039;&amp;#039;&amp;#039;: OCV = terminal voltage −&lt;br /&gt;
I×R_pack, using the learned resistance described below.&lt;br /&gt;
&lt;br /&gt;
== 4. Anchors: getting the ends right ==&lt;br /&gt;
&lt;br /&gt;
The middle is carried by integration; the two ends are pinned directly:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Full anchor&amp;#039;&amp;#039;&amp;#039;: charger present, vbus ≥ 8 V, and current has fallen low →&lt;br /&gt;
  charge = 100 %. Requiring the charger is deliberate: &amp;#039;&amp;#039;&amp;#039;resting OCV at 95 % is&lt;br /&gt;
  about 8.16 V&amp;#039;&amp;#039;&amp;#039;, so a high but resting pack is easy to mistake for full. A poor&lt;br /&gt;
  or under-voltage charger cannot push the pack to true full, and is refused.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Empty anchor&amp;#039;&amp;#039;&amp;#039;: discharged to the cutoff point → charge = 0 %, which also&lt;br /&gt;
  triggers empty-point learning.&lt;br /&gt;
&lt;br /&gt;
== 5. Self-learning: every unit is different ==&lt;br /&gt;
&lt;br /&gt;
This is the most interesting part of the system. Even within one batch of cells&lt;br /&gt;
and boards, unit-to-unit variation can exceed 10 %. So the firmware &amp;#039;&amp;#039;&amp;#039;learns&lt;br /&gt;
four quantities per unit&amp;#039;&amp;#039;&amp;#039; and stores them in data flash, where they survive&lt;br /&gt;
power loss.&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Full-capacity learning (ageing) ===&lt;br /&gt;
&lt;br /&gt;
A cell rated 6800 mAh may be down to 5500 mAh after two years. With capacity&lt;br /&gt;
hard-coded, an aged pack reads optimistically — the display still shows charge&lt;br /&gt;
remaining when the device is about to cut out.&lt;br /&gt;
&lt;br /&gt;
How it learns:&lt;br /&gt;
&lt;br /&gt;
# The full anchor opens a window and zeroes the discharge accumulator&lt;br /&gt;
# The pack discharges all the way to the low-voltage cutoff&lt;br /&gt;
# Full capacity = accumulated discharge + &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Detecting any charging mid-window voids that attempt&lt;br /&gt;
&lt;br /&gt;
That &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039; matters: the device never runs the pack down to a true 0 V, so&lt;br /&gt;
at the cutoff (around 6.3–6.45 V) roughly 700 mAh is still left inside and must&lt;br /&gt;
be added back.&lt;br /&gt;
&lt;br /&gt;
The learned value also yields &amp;#039;&amp;#039;&amp;#039;health&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
  health = learned capacity / 6800 mAh&lt;br /&gt;
&lt;br /&gt;
Health is folded in slowly via an EMA (Apple-style gradual change), so a single&lt;br /&gt;
measurement never makes it plunge.&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Internal-resistance learning (voltage-step method) ===&lt;br /&gt;
&lt;br /&gt;
IR compensation needs a resistance value. The firmware gets it neatly: at the&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;instant a charger is plugged or unplugged&amp;#039;&amp;#039;&amp;#039;, current steps by ΔI and voltage&lt;br /&gt;
steps by ΔV, so&lt;br /&gt;
&lt;br /&gt;
  R = ΔV / ΔI&lt;br /&gt;
&lt;br /&gt;
Conditions: voltage &amp;gt; 7.8 V (near full, otherwise OCV itself drifts with charge&lt;br /&gt;
and spoils the measurement), current step ≥ 300 mA, voltage step ≥ 15 mV. Results&lt;br /&gt;
fold in by EMA at 3/10 weight, clamped to 10–200 mΩ, defaulting to 50 mΩ.&lt;br /&gt;
&lt;br /&gt;
Note this measures the &amp;#039;&amp;#039;&amp;#039;whole loop&amp;#039;&amp;#039;&amp;#039;: cell body + wiring/connectors (20 mΩ) +&lt;br /&gt;
protection-board MOSFET (15 mΩ). IR compensation wants exactly that series total,&lt;br /&gt;
so nothing is subtracted; only when the host wants to display &amp;quot;cell internal&lt;br /&gt;
resistance&amp;quot; does it subtract the 35 mΩ of board parasitics.&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Empty-point learning ===&lt;br /&gt;
&lt;br /&gt;
A problem found in the field: &amp;#039;&amp;#039;&amp;#039;the device cut out while still showing 20 %&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Each unit&amp;#039;s current-sense gain and true capacity differ slightly, so the moment&lt;br /&gt;
internal SOC reaches zero and the moment the hardware actually gives up do not&lt;br /&gt;
line up.&lt;br /&gt;
&lt;br /&gt;
The fix is not to touch the current/mAh chain — that would introduce new error —&lt;br /&gt;
but to apply a per-unit learned linear map at the &amp;#039;&amp;#039;&amp;#039;display layer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
  displayed = (internal SOC − empty) × 100 / (100 − empty)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Empty&amp;#039;&amp;#039;&amp;#039; is the internal SOC recorded the last time the battery genuinely ran&lt;br /&gt;
out. Learning events: a low-voltage shutdown command, an unexpected host death&lt;br /&gt;
while discharging at low voltage, or the empty anchor.&lt;br /&gt;
&lt;br /&gt;
There is also &amp;#039;&amp;#039;&amp;#039;downward self-correction&amp;#039;&amp;#039;&amp;#039;: if voltage is still healthy&lt;br /&gt;
(&amp;gt; 6.8 V) during discharge but internal SOC has already fallen below the empty&lt;br /&gt;
point, then empty was learned too high and follows the reading down. A replaced&lt;br /&gt;
battery, or an overshoot, heals within one discharge cycle.&lt;br /&gt;
&lt;br /&gt;
=== 5.4 Charge-gain learning ===&lt;br /&gt;
&lt;br /&gt;
Charging is not 100 % efficient, so charge pushed in differs from charge actually&lt;br /&gt;
stored. This gain is learned at the full anchor and written to flash when it moves&lt;br /&gt;
by ≥1 %.&lt;br /&gt;
&lt;br /&gt;
== 6. Temperature compensation ==&lt;br /&gt;
&lt;br /&gt;
Lithium cells dislike the cold. An on-board NTC feeds temperature to the coulomb&lt;br /&gt;
counter every 200 ms, driving two corrections.&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Resistance temperature factor k(T) ===&lt;br /&gt;
&lt;br /&gt;
Internal resistance varies strongly with temperature, which directly affects IR&lt;br /&gt;
compensation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Temperature !! Resistance factor k(T)&lt;br /&gt;
|-&lt;br /&gt;
| −20 °C || ×3.00&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || ×2.30&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || ×1.80&lt;br /&gt;
|-&lt;br /&gt;
| 10 °C || ×1.35&lt;br /&gt;
|-&lt;br /&gt;
| 25 °C || ×1.00 (reference)&lt;br /&gt;
|-&lt;br /&gt;
| 40 °C || ×0.85&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At −20 °C the resistance is &amp;#039;&amp;#039;&amp;#039;three times&amp;#039;&amp;#039;&amp;#039; its room-temperature value. The&lt;br /&gt;
learned resistance is normalised to 25 °C and multiplied by k(T) in use.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Cold-weather capacity compensation ===&lt;br /&gt;
&lt;br /&gt;
In the cold, usable capacity shrinks — the energy is not gone, it just cannot be&lt;br /&gt;
drawn out. The firmware handles this by &amp;#039;&amp;#039;&amp;#039;raising the display empty point&amp;#039;&amp;#039;&amp;#039;, so&lt;br /&gt;
the reading falls earlier and nobody is misled by &amp;quot;15 % left&amp;quot; outdoors at −10 °C:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Temperature !! Empty point raised by&lt;br /&gt;
|-&lt;br /&gt;
| ≥ 15 °C || 0 (no compensation)&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || about +4 %&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || about +8 %&lt;br /&gt;
|-&lt;br /&gt;
| ≤ −20 °C || +12 % (capped)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An NTC reading outside −30…70 °C is treated as a fault, and the last valid&lt;br /&gt;
temperature is held (initially 25 °C).&lt;br /&gt;
&lt;br /&gt;
== 7. The display curve, and why it is &amp;quot;Tesla-style&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The internally computed SOC is not shown directly. One more mapping sits in&lt;br /&gt;
between:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 % → displays 1 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;96 % → displays 100 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Linear in between (slope 99/92), clipped at both ends&lt;br /&gt;
&lt;br /&gt;
The point is that &amp;#039;&amp;#039;&amp;#039;when the display reads 0 %, roughly 4 % is still in the&lt;br /&gt;
pack&amp;#039;&amp;#039;&amp;#039; (plus the hardware margin below the empty point), giving time to save work&lt;br /&gt;
and shut down cleanly. Likewise 96 % shows as 100 % so nobody agonises over the&lt;br /&gt;
last few percent — both are standard consumer-electronics practice.&lt;br /&gt;
&lt;br /&gt;
The reported percentage is also &amp;#039;&amp;#039;&amp;#039;clamped to a minimum of 1 %&amp;#039;&amp;#039;&amp;#039;: as long as the&lt;br /&gt;
device is running, it will not show 0 %.&lt;br /&gt;
&lt;br /&gt;
== 8. After power-off: not losing the reading ==&lt;br /&gt;
&lt;br /&gt;
This is where many fuel gauges fall down. Photonicat 2 has three paths.&lt;br /&gt;
&lt;br /&gt;
=== 8.1 SOC snapshot ===&lt;br /&gt;
&lt;br /&gt;
While running, SOC is written to flash whenever it drifts by ≥5 %; shutdown, host&lt;br /&gt;
power-down, standby entry and OTA reset all force a write and refresh the&lt;br /&gt;
timestamp.&lt;br /&gt;
&lt;br /&gt;
On boot:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;≤12 hours&amp;#039;&amp;#039;&amp;#039;: SOC = snapshot − 2.0 mA × Δt (standby current), and OCV&lt;br /&gt;
  re-estimation is &amp;#039;&amp;#039;&amp;#039;blocked&amp;#039;&amp;#039;&amp;#039; from overriding it. This is what fixed the old&lt;br /&gt;
  &amp;quot;10 % becomes 1 % after a quick reboot&amp;quot; behaviour.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;gt;12 hours&amp;#039;&amp;#039;&amp;#039;: the snapshot is stale, so a cold-start OCV estimate is used.&lt;br /&gt;
&lt;br /&gt;
=== 8.2 Deep-sleep discharge estimation ===&lt;br /&gt;
&lt;br /&gt;
In deep sleep the TPA626 is powered down and no current can be measured. The&lt;br /&gt;
firmware records an RTC minute stamp on the way in and, on waking, subtracts the&lt;br /&gt;
whole-device standby draw of about &amp;#039;&amp;#039;&amp;#039;2.0 mA&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== 8.3 Detecting a battery swap ===&lt;br /&gt;
&lt;br /&gt;
Remove the battery and the RTC loses power and resets, so its time runs backwards.&lt;br /&gt;
The firmware treats that as a battery swap, voids the snapshot and re-estimates&lt;br /&gt;
from cold. (A 10-minute tolerance is allowed; without it, a valid snapshot could&lt;br /&gt;
be discarded after an update reboot and the SOC would visibly step.)&lt;br /&gt;
&lt;br /&gt;
== 9. How the data reaches Linux ==&lt;br /&gt;
&lt;br /&gt;
Once the MCU has computed everything, it sends status frames to the host&lt;br /&gt;
(RK3576) over &amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039;. Two consumers sit on the host side.&lt;br /&gt;
&lt;br /&gt;
=== 9.1 Kernel driver: photonicat-pm ===&lt;br /&gt;
&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;serdev&amp;#039;&amp;#039;&amp;#039; driver (&amp;lt;code&amp;gt;990-photonicat-pm-add-driver.patch&amp;lt;/code&amp;gt;,&lt;br /&gt;
kernel 6.12) that attaches to the serial port, parses status frames, and&lt;br /&gt;
registers as standard Linux devices:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;power_supply&amp;#039;&amp;#039;&amp;#039; class → &amp;lt;code&amp;gt;/sys/class/power_supply/battery&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RTC&amp;#039;&amp;#039;&amp;#039; class → &amp;lt;code&amp;gt;/dev/rtc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because these are &amp;#039;&amp;#039;&amp;#039;standard subsystems&amp;#039;&amp;#039;&amp;#039;, any existing Linux tool works&lt;br /&gt;
directly — nothing needs to know the private protocol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Charge level (%) — the final output of everything described above&lt;br /&gt;
cat /sys/class/power_supply/battery/capacity&lt;br /&gt;
&lt;br /&gt;
# Voltage µV / current µA / power µW&lt;br /&gt;
cat /sys/class/power_supply/battery/voltage_now&lt;br /&gt;
cat /sys/class/power_supply/battery/current_now&lt;br /&gt;
cat /sys/class/power_supply/battery/power_now&lt;br /&gt;
&lt;br /&gt;
# Energy µWh: energy_full is the learned capacity — compare against&lt;br /&gt;
# energy_full_design to see ageing&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_now&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full_design&lt;br /&gt;
&lt;br /&gt;
# Charger online&lt;br /&gt;
cat /sys/class/power_supply/charger/online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The MCU is the hardware RTC.&amp;#039;&amp;#039;&amp;#039; There is no separate RTC chip on the board —&lt;br /&gt;
the MCU is always powered, keeps time itself, and sends it up with the status&lt;br /&gt;
frames. The driver registers this through &amp;lt;code&amp;gt;rtc_class_ops&amp;lt;/code&amp;gt;, so standard&lt;br /&gt;
tools just work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hwclock -r          # read the time from the MCU&lt;br /&gt;
hwclock -w          # write system time back to the MCU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is why &amp;#039;&amp;#039;&amp;#039;the clock is still right after days unplugged and offline&amp;#039;&amp;#039;&amp;#039; — and&lt;br /&gt;
it is also the mechanism behind the battery-swap detection in 8.3, since a&lt;br /&gt;
battery removal resets the RTC and time runs backwards.&lt;br /&gt;
&lt;br /&gt;
=== 9.2 Userspace daemon: pcat-manager ===&lt;br /&gt;
&lt;br /&gt;
The kernel driver only consumes the power-related part of the status frame.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The rest of the UART protocol is handled by pcat-manager&amp;#039;&amp;#039;&amp;#039;: modem management,&lt;br /&gt;
watchdog, power on/off policy, button events, pushing the charge threshold down,&lt;br /&gt;
MCU firmware updates and so on.&lt;br /&gt;
&lt;br /&gt;
The division of labour:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Component !! Responsibility&lt;br /&gt;
|-&lt;br /&gt;
| MCU firmware || Measurement, integration, learning, compensation — all the algorithms&lt;br /&gt;
|-&lt;br /&gt;
| photonicat-pm (kernel) || Power/RTC data → standard sysfs interfaces&lt;br /&gt;
|-&lt;br /&gt;
| pcat-manager (userspace) || Everything else: modem, watchdog, power policy, OTA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A concrete example is the &amp;#039;&amp;#039;&amp;#039;charge limit&amp;#039;&amp;#039;&amp;#039;. Set 80 % in the web UI and&lt;br /&gt;
pcat-manager sends it to the MCU over UART; the MCU stores it in data flash and&lt;br /&gt;
drives the charging MOSFET directly. From firmware &amp;#039;&amp;#039;&amp;#039;RA2E1260726005&amp;#039;&amp;#039;&amp;#039; the&lt;br /&gt;
setting persists on the MCU side and survives resets and OTA updates, while&lt;br /&gt;
pcat-manager also keeps its own mirror and re-sends it if it detects an MCU&lt;br /&gt;
restart — belt and braces.&lt;br /&gt;
&lt;br /&gt;
== 10. FAQ ==&lt;br /&gt;
&lt;br /&gt;
;Why does the reading occasionally jump?&lt;br /&gt;
:Usually OCV fusion or an anchor correcting integration drift. A single&lt;br /&gt;
 correction is capped at 0.20 %, so you should not see large jumps in normal use;&lt;br /&gt;
 a large one generally means a stale snapshot led to a cold-start re-estimate.&lt;br /&gt;
&lt;br /&gt;
;Why does charge drop faster in winter?&lt;br /&gt;
:Two effects together: the pack genuinely has less usable capacity when cold, and&lt;br /&gt;
 the firmware deliberately raises the display empty point (about +8 % at −10 °C)&lt;br /&gt;
 so you learn early that it needs charging. It recovers as things warm up.&lt;br /&gt;
&lt;br /&gt;
;Why does 96 % show as 100 %?&lt;br /&gt;
:The display curve is designed that way — see section 7. By the same token, there&lt;br /&gt;
 is still margin left when it reads 0 %.&lt;br /&gt;
&lt;br /&gt;
;Does a new battery need &amp;quot;calibration&amp;quot;?&lt;br /&gt;
:Not deliberately. One full discharge (from full down to automatic shutdown) lets&lt;br /&gt;
 the firmware learn true capacity and the empty point; ordinary use gets there&lt;br /&gt;
 gradually anyway.&lt;br /&gt;
&lt;br /&gt;
;How often does health update?&lt;br /&gt;
:It needs a complete discharge window (full anchor → cutoff), and any charging&lt;br /&gt;
 mid-window voids it. So it updates slowly and changes gradually by EMA — that is&lt;br /&gt;
 intentional, so one bad measurement cannot make health plunge.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:24:51 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:How_Photonicat_2_Calculates_SOC</comments>
		</item>
		<item>
			<title>光影猫2 是如何计算电量的</title>
			<link>https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1015&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1015&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;移动页面&lt;a href=&quot;/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;amp;redirect=no&quot; class=&quot;mw-redirect&quot; title=&quot;光影猫2 是如何计算电量的&quot;&gt;光影猫2 是如何计算电量的&lt;/a&gt;至&lt;a href=&quot;/wiki/Photonicat_2_SOC_%E8%AE%A1%E7%AE%97&quot; title=&quot;Photonicat 2 SOC 计算&quot;&gt;Photonicat 2 SOC 计算&lt;/a&gt; Align with the Photonicat 2 topic prefix used by sibling pages&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 不靠&amp;quot;看电压猜电量&amp;quot;，而是用一套完整的&amp;#039;&amp;#039;&amp;#039;库仑计&amp;#039;&amp;#039;&amp;#039;（Coulomb&lt;br /&gt;
counter，又叫电量计 / fuel gauge）来算电量：像给电池装了一个水表，&lt;br /&gt;
进出的每一毫安秒都记账。&lt;br /&gt;
&lt;br /&gt;
本页讲清楚这套系统怎么工作——从硬件怎么测，到固件怎么积分、怎么自学习、&lt;br /&gt;
怎么做温度补偿，再到 Linux 内核怎么把它变成 sysfs 文件。&lt;br /&gt;
&lt;br /&gt;
指示灯说明见 [[Photonicat 2 LED 指示灯]]，sysfs 路径见 [[Photonicat 2 sysfs]]。&lt;br /&gt;
English: [[How Photonicat 2 Calculates SOC]]。&lt;br /&gt;
&lt;br /&gt;
== 为什么不能只看电压 ==&lt;br /&gt;
&lt;br /&gt;
这是所有电量计要解决的第一个问题。锂电池的&amp;quot;电压—电量&amp;quot;曲线中段非常平。&lt;br /&gt;
下面取固件里的&amp;#039;&amp;#039;&amp;#039;放电 OCV 表&amp;#039;&amp;#039;&amp;#039;（去 IR 后的整包电压）：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 整包 OCV（开路电压） !! 对应电量&lt;br /&gt;
|-&lt;br /&gt;
| 7.58 V || 70 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.50 V || 60 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.44 V || 50 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.36 V || 40 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.28 V || 30 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
从 70 % 掉到 30 %，电压只降了 &amp;#039;&amp;#039;&amp;#039;0.30 V&amp;#039;&amp;#039;&amp;#039;——平均每 1 % 电量只对应约&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 mV&amp;#039;&amp;#039;&amp;#039;。而电池一带负载，内阻上的压降（I×R）轻松就有几十毫伏。也就是说：&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;只看电压，误差可以轻松超过 10 %&amp;#039;&amp;#039;&amp;#039;，而且负载越大错得越离谱。&lt;br /&gt;
&lt;br /&gt;
反过来，两端却很陡：这张表里 8.34 V 是 100 %、6.34 V 是 0 %。所以正确做法是&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;两端用电压定位，中间靠积分推进&amp;#039;&amp;#039;&amp;#039;——这正是下面这套系统在做的事。&lt;br /&gt;
&lt;br /&gt;
== 一句话原理 ==&lt;br /&gt;
&lt;br /&gt;
  电量 = 起点电量 − ∫(放电电流)dt + ∫(充电电流)dt&lt;br /&gt;
&lt;br /&gt;
积分本身很准（电流测得准的话），但有两个毛病：&amp;#039;&amp;#039;&amp;#039;起点从哪来&amp;#039;&amp;#039;&amp;#039;，以及&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;误差会累积&amp;#039;&amp;#039;&amp;#039;。所以真正的电量计 = 积分 + 一套修正机制。光影猫2 的做法是：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 层 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| 硬件测量 || TPA626 每 100 ms 测一次电压/电流&lt;br /&gt;
|-&lt;br /&gt;
| 库仑积分 || 每 200 ms 把电流累加进 µAs 账本&lt;br /&gt;
|-&lt;br /&gt;
| OCV 融合 || 静置时用电压表反查电量，轻轻拉回积分漂移&lt;br /&gt;
|-&lt;br /&gt;
| 锚点 || 充满 / 欠压时直接把电量钉死到 100 % / 0 %&lt;br /&gt;
|-&lt;br /&gt;
| 自学习 || 满容量、内阻、空点、充电增益，每台机器各学各的&lt;br /&gt;
|-&lt;br /&gt;
| 温度补偿 || 冷天内阻变大、可用容量变少，都要修正&lt;br /&gt;
|-&lt;br /&gt;
| 显示层 || 把内部电量映射成用户看到的 1–100 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 一、硬件：怎么测 ==&lt;br /&gt;
&lt;br /&gt;
测量芯片是 &amp;#039;&amp;#039;&amp;#039;TPA626&amp;#039;&amp;#039;&amp;#039;（I²C 电流/电压监测器，与 INA226 同类）。它串一个&lt;br /&gt;
毫欧级采样电阻在电池回路上，测电阻两端压降换算电流，同时测总线电压。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;采样周期&amp;#039;&amp;#039;&amp;#039;：约 100 ms 一次（&amp;lt;code&amp;gt;VD1_Collect&amp;lt;/code&amp;gt;）&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;中值滤波&amp;#039;&amp;#039;&amp;#039;：电压和电流各过一个中值滤波器，滤掉 I²C 偶发抖动和负载尖峰&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;原始值另存一份&amp;#039;&amp;#039;&amp;#039;：中值滤波有约 3 s 滞后，会把&amp;quot;充电器插拔的电压台阶&amp;quot;&lt;br /&gt;
  抹平，而内阻自学习恰恰要看这个瞬间台阶，所以固件同时保留未滤波的原始值&lt;br /&gt;
&lt;br /&gt;
=== 电流校准 ===&lt;br /&gt;
&lt;br /&gt;
采样电阻和运放都有个体误差，出厂靠精密万用表实测标定，拟合成二次多项式：&lt;br /&gt;
&lt;br /&gt;
  I_真实(mA) = C2·x² + C1·x + C0&lt;br /&gt;
&lt;br /&gt;
当前系数（2026-07-24 二轮标定，四点残差 ≤3 mA）：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 项 !! 值 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| C2 || −4.444×10⁻⁵ || 二次项，修大电流段的非线性&lt;br /&gt;
|-&lt;br /&gt;
| C1 || 1.0411 || 一次项（增益）&lt;br /&gt;
|-&lt;br /&gt;
| C0 || +20 mA（放电）/ 0 mA（充电） || 零点偏移，分方向&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
几个工程细节值得一提：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;先夹再算&amp;#039;&amp;#039;&amp;#039;：抛物线在标定范围外会&amp;quot;反向弯&amp;quot;（顶点约 +11.7 A），所以先把&lt;br /&gt;
  输入夹到 ±3 A，域外按端点斜率线性延伸，不让二次项跑飞。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;int64 运算&amp;#039;&amp;#039;&amp;#039;：x² 最大到 9×10⁶，乘上系数会溢出 int32。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;55 mA 死区&amp;#039;&amp;#039;&amp;#039;：小于这个值直接当 0，避免待机时账本被噪声慢慢推歪。&lt;br /&gt;
&lt;br /&gt;
== 二、库仑积分：账本 ==&lt;br /&gt;
&lt;br /&gt;
每 &amp;#039;&amp;#039;&amp;#039;200 ms&amp;#039;&amp;#039;&amp;#039; 调一次 &amp;lt;code&amp;gt;coulomb_counter_update()&amp;lt;/code&amp;gt;，把电流乘以时间&lt;br /&gt;
累加进一个 &amp;#039;&amp;#039;&amp;#039;µAs（微安秒）&amp;#039;&amp;#039;&amp;#039;的 64 位账本。用 µAs 而不是 mAh 是为了避免定点&lt;br /&gt;
除法的舍入误差在长时间运行后累积。&lt;br /&gt;
&lt;br /&gt;
* 放电减、充电加&lt;br /&gt;
* 电流绝对值小于 &amp;#039;&amp;#039;&amp;#039;30 mA&amp;#039;&amp;#039;&amp;#039; 的部分不计入（死区，防噪声漂移）&lt;br /&gt;
* 充电方向另有一个自学习的&amp;#039;&amp;#039;&amp;#039;增益系数&amp;#039;&amp;#039;&amp;#039;（充电效率不是 100 %）&lt;br /&gt;
&lt;br /&gt;
== 三、OCV 融合：把漂移拉回来 ==&lt;br /&gt;
&lt;br /&gt;
积分误差会累积，所以在&amp;#039;&amp;#039;&amp;#039;电池接近静置&amp;#039;&amp;#039;&amp;#039;时，用电压反查电量表来轻轻纠正。&lt;br /&gt;
&lt;br /&gt;
触发条件很严格，因为静置判断错了反而会把正确的积分带偏：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 条件 !! 阈值 !! 为什么&lt;br /&gt;
|-&lt;br /&gt;
| 电流足够小 || &amp;amp;#124;I&amp;amp;#124; ≤ 340 mA（约 0.05C） || 电流大时内阻压降的模型误差会放大&lt;br /&gt;
|-&lt;br /&gt;
| 持续足够久 || ≥ 30 s || 让极化电压和表面电荷弛豫掉&lt;br /&gt;
|-&lt;br /&gt;
| 电压变化率 || ≤ 20 mV/s || 还在动态过程中就不算静置&lt;br /&gt;
|-&lt;br /&gt;
| 电流变化率 || ≤ 2000 mA/s || 同上&lt;br /&gt;
|-&lt;br /&gt;
| 插拔宽限期 || 10 s || 充电器刚插拔，电压还没稳&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
满足后也不是直接覆盖，而是&amp;#039;&amp;#039;&amp;#039;加权融合&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
&lt;br /&gt;
* 权重上限 &amp;#039;&amp;#039;&amp;#039;α = 0.07&amp;#039;&amp;#039;&amp;#039;（OCV 最多只占 7 %），且在 8 s 内从 0 线性爬升&lt;br /&gt;
* 单次修正最多 &amp;#039;&amp;#039;&amp;#039;0.20 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
换句话说，OCV 是&amp;quot;温柔地把积分往回拽&amp;quot;，而不是&amp;quot;一把拽过去&amp;quot;——这样用户看到的&lt;br /&gt;
电量不会跳变。&lt;br /&gt;
&lt;br /&gt;
=== 三张 OCV 表 ===&lt;br /&gt;
&lt;br /&gt;
锂电池有&amp;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;现象：同样的电量，充电时端电压偏高、放电时偏低（约&lt;br /&gt;
30 mV/芯，2S 约 ±60 mV）。所以固件带三张表：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;放电表&amp;#039;&amp;#039;&amp;#039;：进入放电模式（&amp;amp;#124;I&amp;amp;#124; &amp;gt; 900 mA）时用&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;充电表&amp;#039;&amp;#039;&amp;#039;：进入充电模式时用&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;静置表（REST）&amp;#039;&amp;#039;&amp;#039;：充放两表的平均，小电流（&amp;amp;#124;I&amp;amp;#124; ≤ 600 mA）时用&lt;br /&gt;
&lt;br /&gt;
模式切换带&amp;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;（进 900 mA / 出 600 mA），避免在阈值附近反复横跳。&lt;br /&gt;
&lt;br /&gt;
查表前还要先&amp;#039;&amp;#039;&amp;#039;去 IR&amp;#039;&amp;#039;&amp;#039;：OCV = 端电压 − I×R_pack，用的就是下面自学习到的内阻。&lt;br /&gt;
&lt;br /&gt;
== 四、锚点：两端归位 ==&lt;br /&gt;
&lt;br /&gt;
中段靠积分，两端靠锚点直接钉死：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;满电锚点&amp;#039;&amp;#039;&amp;#039;：充电器在位、且 vbus ≥ 8 V、且电流已经很小 → 电量 = 100 %。&lt;br /&gt;
  要求充电器在位是有原因的：&amp;#039;&amp;#039;&amp;#039;95 % 的静置 OCV 约 8.16 V&amp;#039;&amp;#039;&amp;#039;，一块高电量的&lt;br /&gt;
  电池静置着很容易被误判成满电。劣质或欠压的充电器推不到真满，也不给锚。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;欠压锚点&amp;#039;&amp;#039;&amp;#039;：放到欠压关机点 → 电量 = 0 %，同时触发空点学习。&lt;br /&gt;
&lt;br /&gt;
== 五、自学习：每台机器都不一样 ==&lt;br /&gt;
&lt;br /&gt;
这是这套系统最有意思的部分。同一批电池、同一批板子，个体差异也能有&lt;br /&gt;
10 % 以上。所以固件会&amp;#039;&amp;#039;&amp;#039;为每台机器单独学习&amp;#039;&amp;#039;&amp;#039;四个量，学到的值存进 data flash，&lt;br /&gt;
掉电不丢。&lt;br /&gt;
&lt;br /&gt;
=== 5.1 满容量学习（电池老化） ===&lt;br /&gt;
&lt;br /&gt;
标称 6800 mAh 的电池，用两年可能只剩 5500 mAh。如果满容量写死，老化后&lt;br /&gt;
SOC 就会偏乐观——显示还有电，实际已经关机了。&lt;br /&gt;
&lt;br /&gt;
学习方法：&lt;br /&gt;
&lt;br /&gt;
# 满电锚点触发时开窗口，累计放电清零&lt;br /&gt;
# 一路放电到欠压关机点&lt;br /&gt;
# 满容量 = 累计放出的电量 + &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 中途检测到充电 → 本次窗口作废&lt;br /&gt;
&lt;br /&gt;
那个 &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039; 是关键：整机不会把电池放到真正的 0 V，在关机点&lt;br /&gt;
（约 6.3–6.45 V）时电池包里还剩约 700 mAh 没放出来，必须补回去。&lt;br /&gt;
&lt;br /&gt;
学到的值还会换算成&amp;#039;&amp;#039;&amp;#039;健康度&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
&lt;br /&gt;
  健康度 = 学习容量 / 6800 mAh&lt;br /&gt;
&lt;br /&gt;
健康度采用 EMA 缓慢融入（Apple 式缓变），不会因为一次测量就跳水。&lt;br /&gt;
&lt;br /&gt;
=== 5.2 内阻学习（电压台阶法） ===&lt;br /&gt;
&lt;br /&gt;
去 IR 计算需要知道内阻。固件用一个很巧的办法：&amp;#039;&amp;#039;&amp;#039;充电器插拔的瞬间&amp;#039;&amp;#039;&amp;#039;，&lt;br /&gt;
电流突变 ΔI，电压随之突变 ΔV，那么&lt;br /&gt;
&lt;br /&gt;
  R = ΔV / ΔI&lt;br /&gt;
&lt;br /&gt;
条件：电压 &amp;gt; 7.8 V（近满电区，否则 OCV 本身会随电量移动而测不准）、&lt;br /&gt;
电流台阶 ≥ 300 mA、电压台阶 ≥ 15 mV。测量结果按 3/10 的权重 EMA 融入，&lt;br /&gt;
范围限制在 10–200 mΩ，默认值 50 mΩ。&lt;br /&gt;
&lt;br /&gt;
注意这测到的是&amp;#039;&amp;#039;&amp;#039;整包回路电阻&amp;#039;&amp;#039;&amp;#039; = 电芯本体 + 线缆/接插件（20 mΩ）+&lt;br /&gt;
保护板 MOSFET（15 mΩ）。去 IR 需要的正是这个整包串联值，不做扣减；&lt;br /&gt;
上位机若要显示&amp;quot;电芯本体内阻&amp;quot;，才减掉那 35 mΩ 的板级寄生。&lt;br /&gt;
&lt;br /&gt;
=== 5.3 显示空点学习 ===&lt;br /&gt;
&lt;br /&gt;
实测踩过的坑：&amp;#039;&amp;#039;&amp;#039;显示还有 20 % 时整机突然断电&amp;#039;&amp;#039;&amp;#039;。原因是每台机器的电流计&lt;br /&gt;
增益和实际容量都有偏差，内部 SOC 到 0 的那一刻和硬件真正撑不住的那一刻对不齐。&lt;br /&gt;
&lt;br /&gt;
解法不是去改电流链路（那会引入新的误差），而是在&amp;#039;&amp;#039;&amp;#039;显示层&amp;#039;&amp;#039;&amp;#039;加一个&lt;br /&gt;
每台机器自学习的线性映射：&lt;br /&gt;
&lt;br /&gt;
  显示值 = (内部SOC − 空点) × 100 / (100 − 空点)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;空点&amp;#039;&amp;#039;&amp;#039;（empty）= 上一次&amp;quot;电池真的没电了&amp;quot;时的内部 SOC。学习事件包括：&lt;br /&gt;
低压关机命令、低压下主机意外死机、欠压锚点。&lt;br /&gt;
&lt;br /&gt;
还有&amp;#039;&amp;#039;&amp;#039;向下自纠&amp;#039;&amp;#039;&amp;#039;：如果放电时电压还很健康（&amp;gt; 6.8 V）但内部 SOC 已经低于&lt;br /&gt;
空点，说明空点学高了，就让空点跟着降。这样换了新电池或学过头，都能在一个&lt;br /&gt;
放电周期内自愈。&lt;br /&gt;
&lt;br /&gt;
=== 5.4 充电增益学习 ===&lt;br /&gt;
&lt;br /&gt;
充电效率不是 100 %，充进去的电荷和实际存住的电荷有差异。这个增益在满电&lt;br /&gt;
锚点时学习，变化 ≥1 % 才落盘。&lt;br /&gt;
&lt;br /&gt;
== 六、温度补偿 ==&lt;br /&gt;
&lt;br /&gt;
锂电池怕冷。板载 NTC 每 200 ms 把温度喂给库仑计，做两件事：&lt;br /&gt;
&lt;br /&gt;
=== 6.1 内阻温度倍率 k(T) ===&lt;br /&gt;
&lt;br /&gt;
内阻随温度显著变化，直接影响去 IR 的准确性：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 温度 !! 内阻倍率 k(T)&lt;br /&gt;
|-&lt;br /&gt;
| −20 °C || ×3.00&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || ×2.30&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || ×1.80&lt;br /&gt;
|-&lt;br /&gt;
| 10 °C || ×1.35&lt;br /&gt;
|-&lt;br /&gt;
| 25 °C || ×1.00（基准）&lt;br /&gt;
|-&lt;br /&gt;
| 40 °C || ×0.85&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
也就是说 −20 °C 时内阻是常温的&amp;#039;&amp;#039;&amp;#039;三倍&amp;#039;&amp;#039;&amp;#039;。学习到的内阻归一在 25 °C 域，&lt;br /&gt;
用的时候再乘 k(T)。&lt;br /&gt;
&lt;br /&gt;
=== 6.2 低温可用容量补偿 ===&lt;br /&gt;
&lt;br /&gt;
冷天电池的可用容量会缩水——不是电&amp;quot;没了&amp;quot;，而是低温下拿不出来。固件的处理是&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;把显示空点上移&amp;#039;&amp;#039;&amp;#039;，让显示电量提前走低，用户就不会在 −10 °C 的户外被&lt;br /&gt;
&amp;quot;还有 15 %&amp;quot;骗了：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 温度 !! 空点上移&lt;br /&gt;
|-&lt;br /&gt;
| ≥ 15 °C || 0（不补偿）&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || 约 +4 %&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || 约 +8 %&lt;br /&gt;
|-&lt;br /&gt;
| ≤ −20 °C || +12 %（封顶）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NTC 读数超出 −30…70 °C 视为故障，保持上一次有效温度（初值 25 °C）。&lt;br /&gt;
&lt;br /&gt;
== 七、显示曲线：为什么是&amp;quot;特斯拉式&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
内部算出来的 SOC 不会直接给用户看，中间还有一层映射：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 % → 显示 1 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;96 % → 显示 100 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 中段线性（斜率 99/92），两端截断&lt;br /&gt;
&lt;br /&gt;
这样做的意思是：&amp;#039;&amp;#039;&amp;#039;显示到 0 % 时，电池里其实还留着约 4 % 的余量&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
（再加上空点以下的硬件余量），用户有时间保存工作、正常关机。同理，充到&lt;br /&gt;
96 % 就显示 100 %，避免用户盯着最后几个百分点焦虑——这些都是消费电子的&lt;br /&gt;
常规做法。&lt;br /&gt;
&lt;br /&gt;
另外固件上报的百分比&amp;#039;&amp;#039;&amp;#039;下限钳在 1 %&amp;#039;&amp;#039;&amp;#039;：只要还没关机，就不显示 0 %。&lt;br /&gt;
&lt;br /&gt;
== 八、关机之后：电量怎么不丢 ==&lt;br /&gt;
&lt;br /&gt;
这是很多电量计做不好的地方。光影猫2 有三条路径：&lt;br /&gt;
&lt;br /&gt;
=== 8.1 SOC 快照 ===&lt;br /&gt;
&lt;br /&gt;
运行时 SOC 每漂移 ≥5 % 就自动落盘；关机、主机断电、进待机、OTA 复位前&lt;br /&gt;
强制落盘并刷新时间戳。&lt;br /&gt;
&lt;br /&gt;
开机恢复策略：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;≤12 小时&amp;#039;&amp;#039;&amp;#039;：SOC = 快照 − 2.0 mA × Δt（按待机电流扣减），并&amp;#039;&amp;#039;&amp;#039;禁止&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  OCV 重估覆盖。这条修的是&amp;quot;短时重启后 10 % 变 1 %&amp;quot;的老问题。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;gt;12 小时&amp;#039;&amp;#039;&amp;#039;：快照过期，走冷启动 OCV 重估。&lt;br /&gt;
&lt;br /&gt;
=== 8.2 深睡放电估计 ===&lt;br /&gt;
&lt;br /&gt;
电池深睡时 TPA626 会掉电，采不到电流。固件在进睡前记下 RTC 分钟戳，&lt;br /&gt;
醒来后按整机待机约 &amp;#039;&amp;#039;&amp;#039;2.0 mA&amp;#039;&amp;#039;&amp;#039; 恒流扣减。&lt;br /&gt;
&lt;br /&gt;
=== 8.3 换电池识别 ===&lt;br /&gt;
&lt;br /&gt;
电池拔掉 → RTC 掉电重置 → 时间倒退。固件据此判定&amp;quot;换过电池&amp;quot;，让快照作废，&lt;br /&gt;
重新冷启动估计。（这里留了 10 分钟容差，否则升级重启后一条有效快照会被误判&lt;br /&gt;
丢掉，SOC 就会出现台阶跳变。）&lt;br /&gt;
&lt;br /&gt;
== 九、数据怎么到 Linux ==&lt;br /&gt;
&lt;br /&gt;
MCU 算完，通过 &amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039; 把状态帧发给主机（RK3576）。主机侧有两个消费者：&lt;br /&gt;
&lt;br /&gt;
=== 9.1 内核驱动：photonicat-pm ===&lt;br /&gt;
&lt;br /&gt;
这是一个 &amp;#039;&amp;#039;&amp;#039;serdev&amp;#039;&amp;#039;&amp;#039; 驱动（&amp;lt;code&amp;gt;990-photonicat-pm-add-driver.patch&amp;lt;/code&amp;gt;，&lt;br /&gt;
内核 6.12），直接挂在串口上解析状态帧，然后注册成标准 Linux 设备：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;power_supply&amp;#039;&amp;#039;&amp;#039; 类 → &amp;lt;code&amp;gt;/sys/class/power_supply/battery&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RTC&amp;#039;&amp;#039;&amp;#039; 类 → &amp;lt;code&amp;gt;/dev/rtc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
因为注册的是&amp;#039;&amp;#039;&amp;#039;标准子系统&amp;#039;&amp;#039;&amp;#039;，所以任何现成的 Linux 工具都能直接用，&lt;br /&gt;
不需要认识光影猫的私有协议：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 电量（%），这就是上面整套算法的最终输出&lt;br /&gt;
cat /sys/class/power_supply/battery/capacity&lt;br /&gt;
&lt;br /&gt;
# 电压 µV / 电流 µA / 功率 µW&lt;br /&gt;
cat /sys/class/power_supply/battery/voltage_now&lt;br /&gt;
cat /sys/class/power_supply/battery/current_now&lt;br /&gt;
cat /sys/class/power_supply/battery/power_now&lt;br /&gt;
&lt;br /&gt;
# 能量 µWh：energy_full 是学习到的满容量，对比 energy_full_design 看老化&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_now&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full_design&lt;br /&gt;
&lt;br /&gt;
# 充电器在线&lt;br /&gt;
cat /sys/class/power_supply/charger/online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MCU 就是硬件 RTC。&amp;#039;&amp;#039;&amp;#039;板子上没有单独的 RTC 芯片——MCU 一直有电，它自己&lt;br /&gt;
就在走时，时间随状态帧一起送上来。驱动把它注册成 &amp;lt;code&amp;gt;rtc_class_ops&amp;lt;/code&amp;gt;，&lt;br /&gt;
于是标准工具直接可用：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hwclock -r          # 读 MCU 里的时间&lt;br /&gt;
hwclock -w          # 把系统时间写回 MCU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这也是为什么&amp;#039;&amp;#039;&amp;#039;断网断电放几天，开机时间还是准的&amp;#039;&amp;#039;&amp;#039;。前面 8.3 讲的&lt;br /&gt;
&amp;quot;换电池识别&amp;quot;也是靠它——RTC 掉电重置，时间就会倒退。&lt;br /&gt;
&lt;br /&gt;
=== 9.2 用户态守护进程：pcat-manager ===&lt;br /&gt;
&lt;br /&gt;
内核驱动只认状态帧里的电源部分。&amp;#039;&amp;#039;&amp;#039;其余的 UART 协议由 pcat-manager 处理&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
调制解调器管理、看门狗、开关机策略、按键事件、充电阈值下发、MCU 固件升级等。&lt;br /&gt;
&lt;br /&gt;
分工可以这么理解：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 组件 !! 负责&lt;br /&gt;
|-&lt;br /&gt;
| MCU 固件 || 测量、积分、学习、补偿——所有算法&lt;br /&gt;
|-&lt;br /&gt;
| photonicat-pm（内核） || 电源/RTC 数据 → 标准 sysfs 接口&lt;br /&gt;
|-&lt;br /&gt;
| pcat-manager（用户态） || 其余协议：调制解调器、看门狗、电源策略、OTA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
一个具体例子是&amp;#039;&amp;#039;&amp;#039;充电上限&amp;#039;&amp;#039;&amp;#039;：你在网页里设 80 %，pcat-manager 通过 UART 下发给&lt;br /&gt;
MCU，MCU 把它存进 data flash 并直接控制充电 MOSFET。固件&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;RA2E1260726005&amp;#039;&amp;#039;&amp;#039; 起这个设置在 MCU 侧持久化，MCU 复位或 OTA 之后不会丢；&lt;br /&gt;
同时 pcat-manager 也保留一份镜像并在检测到 MCU 重启时重新下发，双保险。&lt;br /&gt;
&lt;br /&gt;
== 十、常见问题 ==&lt;br /&gt;
&lt;br /&gt;
;为什么电量偶尔会&amp;quot;跳一下&amp;quot;？&lt;br /&gt;
:多半是 OCV 融合或锚点在纠正积分漂移。单次修正被限制在 0.20 %，所以正常情况&lt;br /&gt;
 你不会看到大跳变；如果出现大跳变，通常是快照过期后走了冷启动重估。&lt;br /&gt;
&lt;br /&gt;
;为什么冬天电量掉得快？&lt;br /&gt;
:两个原因叠加：低温下电池可用容量本来就少，加上固件主动把显示空点上移&lt;br /&gt;
 （−10 °C 约 +8 %），让你提前知道该充电了。回暖后会恢复。&lt;br /&gt;
&lt;br /&gt;
;为什么充到 96 % 就显示 100 %？&lt;br /&gt;
:显示曲线刻意这么设计的，见第七节。同理显示 0 % 时电池还有余量。&lt;br /&gt;
&lt;br /&gt;
;新电池要不要&amp;quot;校准&amp;quot;？&lt;br /&gt;
:不用刻意做。完整放一次电（从满电放到自动关机）会让固件学到真实满容量和&lt;br /&gt;
 空点；平时正常使用也会慢慢学到。&lt;br /&gt;
&lt;br /&gt;
;健康度多久更新一次？&lt;br /&gt;
:需要一次完整的放电窗口（满电锚点 → 欠压），中途充电会作废。所以它更新得慢，&lt;br /&gt;
 而且是 EMA 缓变的，这是刻意的——避免单次误测就让健康度跳水。&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:24:50 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1014&amp;oldid=1011</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1014&amp;oldid=1011</guid>
			<description>&lt;p&gt;Move the SOC cross-link above the category tag&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:22的版本&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-l111&quot;&gt;第111行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第111行：&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;* 🔴 红色仅用于低电量提示，会持续闪烁直到电压回升或接入充电器。&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;* 🔴 红色仅用于低电量提示，会持续闪烁直到电压回升或接入充电器。&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;div&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;* 指示灯可通过上位机协议整体关闭，关闭后所有状态均不亮灯。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 指示灯依据的电量是怎么算出来的，见 [[光影猫2 是如何计算电量的]]。&lt;/ins&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&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;* 指示灯依据的电量是怎么算出来的，见 [[光影猫2 是如何计算电量的]]。&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;!-- diff cache key pcat_wiki:diff:1.41:old-1011:rev-1014:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:22:57 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1013&amp;oldid=1005</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1013&amp;oldid=1005</guid>
			<description>&lt;p&gt;Move the SOC cross-link above the category tag&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:22的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-multi&quot; lang=&quot;zh-Hans-CN&quot;&gt;（未显示同一用户的1个中间版本）&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-l111&quot;&gt;第111行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第111行：&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;* 🔴 Red is only ever used for low battery, and keeps flashing until the voltage recovers or a charger is connected.&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;* 🔴 Red is only ever used for low battery, and keeps flashing until the voltage recovers or a charger is connected.&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;div&gt;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&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;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* For how the charge level behind these indications is computed, see [[How Photonicat 2 Calculates SOC]].&lt;/ins&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1005:rev-1013:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:22:56 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1011&amp;oldid=1004</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1011&amp;oldid=1004</guid>
			<description>&lt;p&gt;Link to the coulomb-counter/SOC explainer&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:22的版本&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-l113&quot;&gt;第113行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第113行：&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 指示灯依据的电量是怎么算出来的，见 [[光影猫2 是如何计算电量的]]。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1004:rev-1011:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:22:30 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>Photonicat 2 sysfs</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_sysfs&amp;diff=1010&amp;oldid=843</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_sysfs&amp;diff=1010&amp;oldid=843</guid>
			<description>&lt;p&gt;Link to the new coulomb-counter/SOC explainer&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:22的版本&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-l75&quot;&gt;第75行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第75行：&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;* 写操作（风扇档位、背光）需 root；接口是否存在取决于驱动与机型。   &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;* 写操作（风扇档位、背光）需 root；接口是否存在取决于驱动与机型。   &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;div&gt;* 从一代迁移到二代：优先改为读取上述 sysfs 路径，原 socket 方案仅作为兼容保留。&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;* 从一代迁移到二代：优先改为读取上述 sysfs 路径，原 socket 方案仅作为兼容保留。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* &#039;&#039;&#039;capacity 这个数字是怎么来的&#039;&#039;&#039; —— 库仑计的完整原理（硬件测量、积分、OCV 融合、自学习、温度补偿）见 [[光影猫2 是如何计算电量的]]（English: [[How Photonicat 2 Calculates SOC]]）。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-843:rev-1010:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:22:20 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_sysfs</comments>
		</item>
		<item>
			<title>How Photonicat 2 Calculates SOC</title>
			<link>https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1009&amp;oldid=1007</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1009&amp;oldid=1007</guid>
			<description>&lt;p&gt;Fix: use | entity for absolute-value bars; backslash escapes are not MediaWiki syntax and rendered literally&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:21的版本&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-l134&quot;&gt;第134行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第134行：&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;! Condition !! Threshold !! Why&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;! Condition !! Threshold !! Why&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;div&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;|-&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;| Current small enough || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;≤ 340 mA (~0.05C) || IR-model error is amplified at higher current&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;| Current small enough || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;≤ 340 mA (~0.05C) || IR-model error is amplified at higher current&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;div&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;|-&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;div&gt;| Held long enough || ≥ 30 s || Lets polarisation and surface charge relax&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;| Held long enough || ≥ 30 s || Lets polarisation and surface charge relax&lt;/div&gt;&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-l160&quot;&gt;第160行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第160行：&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;so roughly ±60 mV for a 2S pack). The firmware therefore carries three tables:&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;so roughly ±60 mV for a 2S pack). The firmware therefore carries three tables:&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; 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;* &#039;&#039;&#039;Discharge table&#039;&#039;&#039; — used in discharge mode (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;&amp;gt; 900 mA)&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;* &#039;&#039;&#039;Discharge table&#039;&#039;&#039; — used in discharge mode (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;&amp;gt; 900 mA)&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;div&gt;* &amp;#039;&amp;#039;&amp;#039;Charge table&amp;#039;&amp;#039;&amp;#039; — used in charge mode&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;#039;&amp;#039;&amp;#039;Charge table&amp;#039;&amp;#039;&amp;#039; — used in charge mode&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;* &#039;&#039;&#039;Rest table&#039;&#039;&#039; — the average of the two, used at low current (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;≤ 600 mA)&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;* &#039;&#039;&#039;Rest table&#039;&#039;&#039; — the average of the two, used at low current (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;≤ 600 mA)&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;Mode switching is &amp;#039;&amp;#039;&amp;#039;hysteretic&amp;#039;&amp;#039;&amp;#039; (enter at 900 mA, leave at 600 mA) so it does&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;Mode switching is &amp;#039;&amp;#039;&amp;#039;hysteretic&amp;#039;&amp;#039;&amp;#039; (enter at 900 mA, leave at 600 mA) so it does&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1007:rev-1009:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:21:37 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:How_Photonicat_2_Calculates_SOC</comments>
		</item>
		<item>
			<title>光影猫2 是如何计算电量的</title>
			<link>https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1008&amp;oldid=1006</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1008&amp;oldid=1006</guid>
			<description>&lt;p&gt;Fix: use | entity for absolute-value bars; backslash escapes are not MediaWiki syntax and rendered literally&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 17:21的版本&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-l114&quot;&gt;第114行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第114行：&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;! 条件 !! 阈值 !! 为什么&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;! 条件 !! 阈值 !! 为什么&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;div&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;|-&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;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;≤ 340 mA（约 0.05C） || 电流大时内阻压降的模型误差会放大&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;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;≤ 340 mA（约 0.05C） || 电流大时内阻压降的模型误差会放大&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;div&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;|-&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;div&gt;| 持续足够久 || ≥ 30 s || 让极化电压和表面电荷弛豫掉&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;| 持续足够久 || ≥ 30 s || 让极化电压和表面电荷弛豫掉&lt;/div&gt;&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-l138&quot;&gt;第138行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第138行：&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;30 mV/芯，2S 约 ±60 mV）。所以固件带三张表：&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;30 mV/芯，2S 约 ±60 mV）。所以固件带三张表：&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; 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;* &#039;&#039;&#039;放电表&#039;&#039;&#039;：进入放电模式（&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;&amp;gt; 900 mA）时用&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;* &#039;&#039;&#039;放电表&#039;&#039;&#039;：进入放电模式（&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;&amp;gt; 900 mA）时用&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;div&gt;* &amp;#039;&amp;#039;&amp;#039;充电表&amp;#039;&amp;#039;&amp;#039;：进入充电模式时用&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;#039;&amp;#039;&amp;#039;充电表&amp;#039;&amp;#039;&amp;#039;：进入充电模式时用&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;* &#039;&#039;&#039;静置表（REST）&#039;&#039;&#039;：充放两表的平均，小电流（&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\|&lt;/del&gt;I&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;\| &lt;/del&gt;≤ 600 mA）时用&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;* &#039;&#039;&#039;静置表（REST）&#039;&#039;&#039;：充放两表的平均，小电流（&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124;&lt;/ins&gt;I&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;#124; &lt;/ins&gt;≤ 600 mA）时用&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;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;（进 900 mA / 出 600 mA），避免在阈值附近反复横跳。&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;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;（进 900 mA / 出 600 mA），避免在阈值附近反复横跳。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1006:rev-1008:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:21:36 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84</comments>
		</item>
		<item>
			<title>How Photonicat 2 Calculates SOC</title>
			<link>https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1007&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=How_Photonicat_2_Calculates_SOC&amp;diff=1007&amp;oldid=0</guid>
			<description>&lt;p&gt;Create: how the coulomb counter computes SOC (hardware, integration, OCV fusion, self-learning, temperature, Linux sysfs/RTC chain)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Photonicat 2&amp;#039;&amp;#039;&amp;#039; does not guess the battery level from voltage. It runs a&lt;br /&gt;
proper &amp;#039;&amp;#039;&amp;#039;coulomb counter&amp;#039;&amp;#039;&amp;#039; (also called a fuel gauge): think of it as a water&lt;br /&gt;
meter on the battery, accounting for every milliamp-second in and out.&lt;br /&gt;
&lt;br /&gt;
This page explains how that system works — from the measuring hardware, through&lt;br /&gt;
the firmware&amp;#039;s integration, self-learning and temperature compensation, to the&lt;br /&gt;
Linux kernel driver that turns it all into ordinary sysfs files.&lt;br /&gt;
&lt;br /&gt;
For the indicator see [[Photonicat 2 LED Indicator]]; for sysfs paths see&lt;br /&gt;
[[Photonicat 2 sysfs]]. 中文版见 [[光影猫2 是如何计算电量的]]。&lt;br /&gt;
&lt;br /&gt;
== Why voltage alone is not enough ==&lt;br /&gt;
&lt;br /&gt;
This is the first problem every fuel gauge has to solve. A lithium cell&amp;#039;s&lt;br /&gt;
voltage-vs-charge curve is remarkably flat in the middle. The figures below come&lt;br /&gt;
from the firmware&amp;#039;s &amp;#039;&amp;#039;&amp;#039;discharge OCV table&amp;#039;&amp;#039;&amp;#039; (IR-compensated pack voltage):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Pack OCV (open-circuit voltage) !! Charge level&lt;br /&gt;
|-&lt;br /&gt;
| 7.58 V || 70 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.50 V || 60 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.44 V || 50 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.36 V || 40 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.28 V || 30 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Going from 70 % down to 30 % moves the voltage by just &amp;#039;&amp;#039;&amp;#039;0.30 V&amp;#039;&amp;#039;&amp;#039; — roughly&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 mV per percent&amp;#039;&amp;#039;&amp;#039;. Put a load on the battery and the IR drop across its&lt;br /&gt;
internal resistance easily amounts to tens of millivolts. In other words,&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;voltage alone can be off by more than 10 %&amp;#039;&amp;#039;&amp;#039;, and it gets worse the heavier&lt;br /&gt;
the load.&lt;br /&gt;
&lt;br /&gt;
The two ends, by contrast, are steep: in this table 8.34 V is 100 % and 6.34 V is&lt;br /&gt;
0 %. So the right approach is to &amp;#039;&amp;#039;&amp;#039;anchor at the ends with voltage and advance&lt;br /&gt;
through the middle by integration&amp;#039;&amp;#039;&amp;#039; — which is exactly what the system below&lt;br /&gt;
does.&lt;br /&gt;
&lt;br /&gt;
== The idea in one line ==&lt;br /&gt;
&lt;br /&gt;
  charge = starting charge − ∫(discharge current)dt + ∫(charge current)dt&lt;br /&gt;
&lt;br /&gt;
The integral itself is accurate, provided the current measurement is. But it has&lt;br /&gt;
two weaknesses: &amp;#039;&amp;#039;&amp;#039;where does the starting point come from&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;error&lt;br /&gt;
accumulates&amp;#039;&amp;#039;&amp;#039;. So a real fuel gauge is integration &amp;#039;&amp;#039;plus&amp;#039;&amp;#039; a set of correction&lt;br /&gt;
mechanisms. Photonicat 2 layers them like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Layer !! Job&lt;br /&gt;
|-&lt;br /&gt;
| Measurement hardware || TPA626 samples voltage/current every 100 ms&lt;br /&gt;
|-&lt;br /&gt;
| Coulomb integration || Accumulates current into a µAs ledger every 200 ms&lt;br /&gt;
|-&lt;br /&gt;
| OCV fusion || At rest, looks up charge from voltage and gently pulls the integral back&lt;br /&gt;
|-&lt;br /&gt;
| Anchors || At full/empty, pins the value directly to 100 % / 0 %&lt;br /&gt;
|-&lt;br /&gt;
| Self-learning || Capacity, resistance, empty point and charge gain — learned per unit&lt;br /&gt;
|-&lt;br /&gt;
| Temperature || Cold raises resistance and shrinks usable capacity; both corrected&lt;br /&gt;
|-&lt;br /&gt;
| Display layer || Maps internal charge to the 1–100 % the user sees&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 1. Hardware: how it measures ==&lt;br /&gt;
&lt;br /&gt;
The measuring chip is a &amp;#039;&amp;#039;&amp;#039;TPA626&amp;#039;&amp;#039;&amp;#039; (an I²C current/voltage monitor, in the same&lt;br /&gt;
family as the INA226). It sits across a milliohm-class shunt resistor in the&lt;br /&gt;
battery path, deriving current from the voltage drop while also measuring bus&lt;br /&gt;
voltage.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sampling&amp;#039;&amp;#039;&amp;#039;: roughly every 100 ms (&amp;lt;code&amp;gt;VD1_Collect&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Median filtering&amp;#039;&amp;#039;&amp;#039;: voltage and current each pass through a median filter&lt;br /&gt;
  that rejects occasional I²C glitches and load spikes&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Raw values kept separately&amp;#039;&amp;#039;&amp;#039;: the median filter lags by about 3 s, which&lt;br /&gt;
  would smear out the voltage step when a charger is plugged or unplugged — and&lt;br /&gt;
  the internal-resistance learning depends on exactly that step, so the firmware&lt;br /&gt;
  keeps unfiltered raw values alongside&lt;br /&gt;
&lt;br /&gt;
=== Current calibration ===&lt;br /&gt;
&lt;br /&gt;
The shunt and amplifier have unit-to-unit variation, so each board is calibrated&lt;br /&gt;
against a precision multimeter and fitted to a quadratic:&lt;br /&gt;
&lt;br /&gt;
  I_true(mA) = C2·x² + C1·x + C0&lt;br /&gt;
&lt;br /&gt;
Current coefficients (second calibration round, 2026-07-24; residuals ≤3 mA&lt;br /&gt;
across four points):&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Term !! Value !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| C2 || −4.444×10⁻⁵ || Quadratic term, corrects high-current nonlinearity&lt;br /&gt;
|-&lt;br /&gt;
| C1 || 1.0411 || Linear term (gain)&lt;br /&gt;
|-&lt;br /&gt;
| C0 || +20 mA (discharge) / 0 mA (charge) || Zero offset, per direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A few engineering details worth calling out:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Clamp before evaluating&amp;#039;&amp;#039;&amp;#039;: outside the calibrated range the parabola bends&lt;br /&gt;
  back on itself (vertex near +11.7 A), so the input is clamped to ±3 A and&lt;br /&gt;
  extended linearly by the endpoint slope beyond that.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;64-bit arithmetic&amp;#039;&amp;#039;&amp;#039;: x² reaches 9×10⁶, which overflows int32 once scaled.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;55 mA dead band&amp;#039;&amp;#039;&amp;#039;: anything smaller counts as zero, so idle noise cannot&lt;br /&gt;
  slowly skew the ledger.&lt;br /&gt;
&lt;br /&gt;
== 2. Coulomb integration: the ledger ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;coulomb_counter_update()&amp;lt;/code&amp;gt; runs every &amp;#039;&amp;#039;&amp;#039;200 ms&amp;#039;&amp;#039;&amp;#039;, multiplying current&lt;br /&gt;
by elapsed time into a 64-bit &amp;#039;&amp;#039;&amp;#039;µAs (microamp-second)&amp;#039;&amp;#039;&amp;#039; ledger. µAs rather than&lt;br /&gt;
mAh avoids fixed-point rounding error piling up over long runs.&lt;br /&gt;
&lt;br /&gt;
* Discharge subtracts, charge adds&lt;br /&gt;
* Currents under &amp;#039;&amp;#039;&amp;#039;30 mA&amp;#039;&amp;#039;&amp;#039; in magnitude are ignored (dead band, anti-drift)&lt;br /&gt;
* The charge direction carries its own learned &amp;#039;&amp;#039;&amp;#039;gain&amp;#039;&amp;#039;&amp;#039; — charging is not 100 %&lt;br /&gt;
  efficient&lt;br /&gt;
&lt;br /&gt;
== 3. OCV fusion: pulling the drift back ==&lt;br /&gt;
&lt;br /&gt;
Integration error accumulates, so whenever the battery is &amp;#039;&amp;#039;&amp;#039;near rest&amp;#039;&amp;#039;&amp;#039; the&lt;br /&gt;
firmware looks up charge from voltage and applies a gentle correction.&lt;br /&gt;
&lt;br /&gt;
The entry conditions are strict, because misjudging &amp;quot;at rest&amp;quot; would drag a&lt;br /&gt;
perfectly good integral off course:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Condition !! Threshold !! Why&lt;br /&gt;
|-&lt;br /&gt;
| Current small enough || \|I\| ≤ 340 mA (~0.05C) || IR-model error is amplified at higher current&lt;br /&gt;
|-&lt;br /&gt;
| Held long enough || ≥ 30 s || Lets polarisation and surface charge relax&lt;br /&gt;
|-&lt;br /&gt;
| Voltage slew || ≤ 20 mV/s || Still in a transient, so not really at rest&lt;br /&gt;
|-&lt;br /&gt;
| Current slew || ≤ 2000 mA/s || Likewise&lt;br /&gt;
|-&lt;br /&gt;
| Plug/unplug grace || 10 s || Voltage has not settled after a charger event&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Even then it does not overwrite — it &amp;#039;&amp;#039;&amp;#039;blends&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* Weight capped at &amp;#039;&amp;#039;&amp;#039;α = 0.07&amp;#039;&amp;#039;&amp;#039; (OCV contributes at most 7 %), ramping linearly&lt;br /&gt;
  from 0 over 8 s&lt;br /&gt;
* Any single correction is limited to &amp;#039;&amp;#039;&amp;#039;0.20 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
So OCV nudges the integral back rather than yanking it, and the user never sees&lt;br /&gt;
the reading jump.&lt;br /&gt;
&lt;br /&gt;
=== Three OCV tables ===&lt;br /&gt;
&lt;br /&gt;
Lithium cells show &amp;#039;&amp;#039;&amp;#039;hysteresis&amp;#039;&amp;#039;&amp;#039;: at the same charge level, terminal voltage&lt;br /&gt;
reads higher while charging and lower while discharging (about 30 mV per cell,&lt;br /&gt;
so roughly ±60 mV for a 2S pack). The firmware therefore carries three tables:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Discharge table&amp;#039;&amp;#039;&amp;#039; — used in discharge mode (\|I\| &amp;gt; 900 mA)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Charge table&amp;#039;&amp;#039;&amp;#039; — used in charge mode&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Rest table&amp;#039;&amp;#039;&amp;#039; — the average of the two, used at low current (\|I\| ≤ 600 mA)&lt;br /&gt;
&lt;br /&gt;
Mode switching is &amp;#039;&amp;#039;&amp;#039;hysteretic&amp;#039;&amp;#039;&amp;#039; (enter at 900 mA, leave at 600 mA) so it does&lt;br /&gt;
not chatter around the threshold.&lt;br /&gt;
&lt;br /&gt;
Before any lookup the reading is &amp;#039;&amp;#039;&amp;#039;IR-compensated&amp;#039;&amp;#039;&amp;#039;: OCV = terminal voltage −&lt;br /&gt;
I×R_pack, using the learned resistance described below.&lt;br /&gt;
&lt;br /&gt;
== 4. Anchors: getting the ends right ==&lt;br /&gt;
&lt;br /&gt;
The middle is carried by integration; the two ends are pinned directly:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Full anchor&amp;#039;&amp;#039;&amp;#039;: charger present, vbus ≥ 8 V, and current has fallen low →&lt;br /&gt;
  charge = 100 %. Requiring the charger is deliberate: &amp;#039;&amp;#039;&amp;#039;resting OCV at 95 % is&lt;br /&gt;
  about 8.16 V&amp;#039;&amp;#039;&amp;#039;, so a high but resting pack is easy to mistake for full. A poor&lt;br /&gt;
  or under-voltage charger cannot push the pack to true full, and is refused.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Empty anchor&amp;#039;&amp;#039;&amp;#039;: discharged to the cutoff point → charge = 0 %, which also&lt;br /&gt;
  triggers empty-point learning.&lt;br /&gt;
&lt;br /&gt;
== 5. Self-learning: every unit is different ==&lt;br /&gt;
&lt;br /&gt;
This is the most interesting part of the system. Even within one batch of cells&lt;br /&gt;
and boards, unit-to-unit variation can exceed 10 %. So the firmware &amp;#039;&amp;#039;&amp;#039;learns&lt;br /&gt;
four quantities per unit&amp;#039;&amp;#039;&amp;#039; and stores them in data flash, where they survive&lt;br /&gt;
power loss.&lt;br /&gt;
&lt;br /&gt;
=== 5.1 Full-capacity learning (ageing) ===&lt;br /&gt;
&lt;br /&gt;
A cell rated 6800 mAh may be down to 5500 mAh after two years. With capacity&lt;br /&gt;
hard-coded, an aged pack reads optimistically — the display still shows charge&lt;br /&gt;
remaining when the device is about to cut out.&lt;br /&gt;
&lt;br /&gt;
How it learns:&lt;br /&gt;
&lt;br /&gt;
# The full anchor opens a window and zeroes the discharge accumulator&lt;br /&gt;
# The pack discharges all the way to the low-voltage cutoff&lt;br /&gt;
# Full capacity = accumulated discharge + &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Detecting any charging mid-window voids that attempt&lt;br /&gt;
&lt;br /&gt;
That &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039; matters: the device never runs the pack down to a true 0 V, so&lt;br /&gt;
at the cutoff (around 6.3–6.45 V) roughly 700 mAh is still left inside and must&lt;br /&gt;
be added back.&lt;br /&gt;
&lt;br /&gt;
The learned value also yields &amp;#039;&amp;#039;&amp;#039;health&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
  health = learned capacity / 6800 mAh&lt;br /&gt;
&lt;br /&gt;
Health is folded in slowly via an EMA (Apple-style gradual change), so a single&lt;br /&gt;
measurement never makes it plunge.&lt;br /&gt;
&lt;br /&gt;
=== 5.2 Internal-resistance learning (voltage-step method) ===&lt;br /&gt;
&lt;br /&gt;
IR compensation needs a resistance value. The firmware gets it neatly: at the&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;instant a charger is plugged or unplugged&amp;#039;&amp;#039;&amp;#039;, current steps by ΔI and voltage&lt;br /&gt;
steps by ΔV, so&lt;br /&gt;
&lt;br /&gt;
  R = ΔV / ΔI&lt;br /&gt;
&lt;br /&gt;
Conditions: voltage &amp;gt; 7.8 V (near full, otherwise OCV itself drifts with charge&lt;br /&gt;
and spoils the measurement), current step ≥ 300 mA, voltage step ≥ 15 mV. Results&lt;br /&gt;
fold in by EMA at 3/10 weight, clamped to 10–200 mΩ, defaulting to 50 mΩ.&lt;br /&gt;
&lt;br /&gt;
Note this measures the &amp;#039;&amp;#039;&amp;#039;whole loop&amp;#039;&amp;#039;&amp;#039;: cell body + wiring/connectors (20 mΩ) +&lt;br /&gt;
protection-board MOSFET (15 mΩ). IR compensation wants exactly that series total,&lt;br /&gt;
so nothing is subtracted; only when the host wants to display &amp;quot;cell internal&lt;br /&gt;
resistance&amp;quot; does it subtract the 35 mΩ of board parasitics.&lt;br /&gt;
&lt;br /&gt;
=== 5.3 Empty-point learning ===&lt;br /&gt;
&lt;br /&gt;
A problem found in the field: &amp;#039;&amp;#039;&amp;#039;the device cut out while still showing 20 %&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Each unit&amp;#039;s current-sense gain and true capacity differ slightly, so the moment&lt;br /&gt;
internal SOC reaches zero and the moment the hardware actually gives up do not&lt;br /&gt;
line up.&lt;br /&gt;
&lt;br /&gt;
The fix is not to touch the current/mAh chain — that would introduce new error —&lt;br /&gt;
but to apply a per-unit learned linear map at the &amp;#039;&amp;#039;&amp;#039;display layer&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
  displayed = (internal SOC − empty) × 100 / (100 − empty)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Empty&amp;#039;&amp;#039;&amp;#039; is the internal SOC recorded the last time the battery genuinely ran&lt;br /&gt;
out. Learning events: a low-voltage shutdown command, an unexpected host death&lt;br /&gt;
while discharging at low voltage, or the empty anchor.&lt;br /&gt;
&lt;br /&gt;
There is also &amp;#039;&amp;#039;&amp;#039;downward self-correction&amp;#039;&amp;#039;&amp;#039;: if voltage is still healthy&lt;br /&gt;
(&amp;gt; 6.8 V) during discharge but internal SOC has already fallen below the empty&lt;br /&gt;
point, then empty was learned too high and follows the reading down. A replaced&lt;br /&gt;
battery, or an overshoot, heals within one discharge cycle.&lt;br /&gt;
&lt;br /&gt;
=== 5.4 Charge-gain learning ===&lt;br /&gt;
&lt;br /&gt;
Charging is not 100 % efficient, so charge pushed in differs from charge actually&lt;br /&gt;
stored. This gain is learned at the full anchor and written to flash when it moves&lt;br /&gt;
by ≥1 %.&lt;br /&gt;
&lt;br /&gt;
== 6. Temperature compensation ==&lt;br /&gt;
&lt;br /&gt;
Lithium cells dislike the cold. An on-board NTC feeds temperature to the coulomb&lt;br /&gt;
counter every 200 ms, driving two corrections.&lt;br /&gt;
&lt;br /&gt;
=== 6.1 Resistance temperature factor k(T) ===&lt;br /&gt;
&lt;br /&gt;
Internal resistance varies strongly with temperature, which directly affects IR&lt;br /&gt;
compensation:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Temperature !! Resistance factor k(T)&lt;br /&gt;
|-&lt;br /&gt;
| −20 °C || ×3.00&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || ×2.30&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || ×1.80&lt;br /&gt;
|-&lt;br /&gt;
| 10 °C || ×1.35&lt;br /&gt;
|-&lt;br /&gt;
| 25 °C || ×1.00 (reference)&lt;br /&gt;
|-&lt;br /&gt;
| 40 °C || ×0.85&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
At −20 °C the resistance is &amp;#039;&amp;#039;&amp;#039;three times&amp;#039;&amp;#039;&amp;#039; its room-temperature value. The&lt;br /&gt;
learned resistance is normalised to 25 °C and multiplied by k(T) in use.&lt;br /&gt;
&lt;br /&gt;
=== 6.2 Cold-weather capacity compensation ===&lt;br /&gt;
&lt;br /&gt;
In the cold, usable capacity shrinks — the energy is not gone, it just cannot be&lt;br /&gt;
drawn out. The firmware handles this by &amp;#039;&amp;#039;&amp;#039;raising the display empty point&amp;#039;&amp;#039;&amp;#039;, so&lt;br /&gt;
the reading falls earlier and nobody is misled by &amp;quot;15 % left&amp;quot; outdoors at −10 °C:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Temperature !! Empty point raised by&lt;br /&gt;
|-&lt;br /&gt;
| ≥ 15 °C || 0 (no compensation)&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || about +4 %&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || about +8 %&lt;br /&gt;
|-&lt;br /&gt;
| ≤ −20 °C || +12 % (capped)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
An NTC reading outside −30…70 °C is treated as a fault, and the last valid&lt;br /&gt;
temperature is held (initially 25 °C).&lt;br /&gt;
&lt;br /&gt;
== 7. The display curve, and why it is &amp;quot;Tesla-style&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
The internally computed SOC is not shown directly. One more mapping sits in&lt;br /&gt;
between:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 % → displays 1 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;96 % → displays 100 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Linear in between (slope 99/92), clipped at both ends&lt;br /&gt;
&lt;br /&gt;
The point is that &amp;#039;&amp;#039;&amp;#039;when the display reads 0 %, roughly 4 % is still in the&lt;br /&gt;
pack&amp;#039;&amp;#039;&amp;#039; (plus the hardware margin below the empty point), giving time to save work&lt;br /&gt;
and shut down cleanly. Likewise 96 % shows as 100 % so nobody agonises over the&lt;br /&gt;
last few percent — both are standard consumer-electronics practice.&lt;br /&gt;
&lt;br /&gt;
The reported percentage is also &amp;#039;&amp;#039;&amp;#039;clamped to a minimum of 1 %&amp;#039;&amp;#039;&amp;#039;: as long as the&lt;br /&gt;
device is running, it will not show 0 %.&lt;br /&gt;
&lt;br /&gt;
== 8. After power-off: not losing the reading ==&lt;br /&gt;
&lt;br /&gt;
This is where many fuel gauges fall down. Photonicat 2 has three paths.&lt;br /&gt;
&lt;br /&gt;
=== 8.1 SOC snapshot ===&lt;br /&gt;
&lt;br /&gt;
While running, SOC is written to flash whenever it drifts by ≥5 %; shutdown, host&lt;br /&gt;
power-down, standby entry and OTA reset all force a write and refresh the&lt;br /&gt;
timestamp.&lt;br /&gt;
&lt;br /&gt;
On boot:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;≤12 hours&amp;#039;&amp;#039;&amp;#039;: SOC = snapshot − 2.0 mA × Δt (standby current), and OCV&lt;br /&gt;
  re-estimation is &amp;#039;&amp;#039;&amp;#039;blocked&amp;#039;&amp;#039;&amp;#039; from overriding it. This is what fixed the old&lt;br /&gt;
  &amp;quot;10 % becomes 1 % after a quick reboot&amp;quot; behaviour.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;gt;12 hours&amp;#039;&amp;#039;&amp;#039;: the snapshot is stale, so a cold-start OCV estimate is used.&lt;br /&gt;
&lt;br /&gt;
=== 8.2 Deep-sleep discharge estimation ===&lt;br /&gt;
&lt;br /&gt;
In deep sleep the TPA626 is powered down and no current can be measured. The&lt;br /&gt;
firmware records an RTC minute stamp on the way in and, on waking, subtracts the&lt;br /&gt;
whole-device standby draw of about &amp;#039;&amp;#039;&amp;#039;2.0 mA&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== 8.3 Detecting a battery swap ===&lt;br /&gt;
&lt;br /&gt;
Remove the battery and the RTC loses power and resets, so its time runs backwards.&lt;br /&gt;
The firmware treats that as a battery swap, voids the snapshot and re-estimates&lt;br /&gt;
from cold. (A 10-minute tolerance is allowed; without it, a valid snapshot could&lt;br /&gt;
be discarded after an update reboot and the SOC would visibly step.)&lt;br /&gt;
&lt;br /&gt;
== 9. How the data reaches Linux ==&lt;br /&gt;
&lt;br /&gt;
Once the MCU has computed everything, it sends status frames to the host&lt;br /&gt;
(RK3576) over &amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039;. Two consumers sit on the host side.&lt;br /&gt;
&lt;br /&gt;
=== 9.1 Kernel driver: photonicat-pm ===&lt;br /&gt;
&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;serdev&amp;#039;&amp;#039;&amp;#039; driver (&amp;lt;code&amp;gt;990-photonicat-pm-add-driver.patch&amp;lt;/code&amp;gt;,&lt;br /&gt;
kernel 6.12) that attaches to the serial port, parses status frames, and&lt;br /&gt;
registers as standard Linux devices:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;power_supply&amp;#039;&amp;#039;&amp;#039; class → &amp;lt;code&amp;gt;/sys/class/power_supply/battery&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RTC&amp;#039;&amp;#039;&amp;#039; class → &amp;lt;code&amp;gt;/dev/rtc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Because these are &amp;#039;&amp;#039;&amp;#039;standard subsystems&amp;#039;&amp;#039;&amp;#039;, any existing Linux tool works&lt;br /&gt;
directly — nothing needs to know the private protocol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Charge level (%) — the final output of everything described above&lt;br /&gt;
cat /sys/class/power_supply/battery/capacity&lt;br /&gt;
&lt;br /&gt;
# Voltage µV / current µA / power µW&lt;br /&gt;
cat /sys/class/power_supply/battery/voltage_now&lt;br /&gt;
cat /sys/class/power_supply/battery/current_now&lt;br /&gt;
cat /sys/class/power_supply/battery/power_now&lt;br /&gt;
&lt;br /&gt;
# Energy µWh: energy_full is the learned capacity — compare against&lt;br /&gt;
# energy_full_design to see ageing&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_now&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full_design&lt;br /&gt;
&lt;br /&gt;
# Charger online&lt;br /&gt;
cat /sys/class/power_supply/charger/online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The MCU is the hardware RTC.&amp;#039;&amp;#039;&amp;#039; There is no separate RTC chip on the board —&lt;br /&gt;
the MCU is always powered, keeps time itself, and sends it up with the status&lt;br /&gt;
frames. The driver registers this through &amp;lt;code&amp;gt;rtc_class_ops&amp;lt;/code&amp;gt;, so standard&lt;br /&gt;
tools just work:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hwclock -r          # read the time from the MCU&lt;br /&gt;
hwclock -w          # write system time back to the MCU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is why &amp;#039;&amp;#039;&amp;#039;the clock is still right after days unplugged and offline&amp;#039;&amp;#039;&amp;#039; — and&lt;br /&gt;
it is also the mechanism behind the battery-swap detection in 8.3, since a&lt;br /&gt;
battery removal resets the RTC and time runs backwards.&lt;br /&gt;
&lt;br /&gt;
=== 9.2 Userspace daemon: pcat-manager ===&lt;br /&gt;
&lt;br /&gt;
The kernel driver only consumes the power-related part of the status frame.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;The rest of the UART protocol is handled by pcat-manager&amp;#039;&amp;#039;&amp;#039;: modem management,&lt;br /&gt;
watchdog, power on/off policy, button events, pushing the charge threshold down,&lt;br /&gt;
MCU firmware updates and so on.&lt;br /&gt;
&lt;br /&gt;
The division of labour:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Component !! Responsibility&lt;br /&gt;
|-&lt;br /&gt;
| MCU firmware || Measurement, integration, learning, compensation — all the algorithms&lt;br /&gt;
|-&lt;br /&gt;
| photonicat-pm (kernel) || Power/RTC data → standard sysfs interfaces&lt;br /&gt;
|-&lt;br /&gt;
| pcat-manager (userspace) || Everything else: modem, watchdog, power policy, OTA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A concrete example is the &amp;#039;&amp;#039;&amp;#039;charge limit&amp;#039;&amp;#039;&amp;#039;. Set 80 % in the web UI and&lt;br /&gt;
pcat-manager sends it to the MCU over UART; the MCU stores it in data flash and&lt;br /&gt;
drives the charging MOSFET directly. From firmware &amp;#039;&amp;#039;&amp;#039;RA2E1260726005&amp;#039;&amp;#039;&amp;#039; the&lt;br /&gt;
setting persists on the MCU side and survives resets and OTA updates, while&lt;br /&gt;
pcat-manager also keeps its own mirror and re-sends it if it detects an MCU&lt;br /&gt;
restart — belt and braces.&lt;br /&gt;
&lt;br /&gt;
== 10. FAQ ==&lt;br /&gt;
&lt;br /&gt;
;Why does the reading occasionally jump?&lt;br /&gt;
:Usually OCV fusion or an anchor correcting integration drift. A single&lt;br /&gt;
 correction is capped at 0.20 %, so you should not see large jumps in normal use;&lt;br /&gt;
 a large one generally means a stale snapshot led to a cold-start re-estimate.&lt;br /&gt;
&lt;br /&gt;
;Why does charge drop faster in winter?&lt;br /&gt;
:Two effects together: the pack genuinely has less usable capacity when cold, and&lt;br /&gt;
 the firmware deliberately raises the display empty point (about +8 % at −10 °C)&lt;br /&gt;
 so you learn early that it needs charging. It recovers as things warm up.&lt;br /&gt;
&lt;br /&gt;
;Why does 96 % show as 100 %?&lt;br /&gt;
:The display curve is designed that way — see section 7. By the same token, there&lt;br /&gt;
 is still margin left when it reads 0 %.&lt;br /&gt;
&lt;br /&gt;
;Does a new battery need &amp;quot;calibration&amp;quot;?&lt;br /&gt;
:Not deliberately. One full discharge (from full down to automatic shutdown) lets&lt;br /&gt;
 the firmware learn true capacity and the empty point; ordinary use gets there&lt;br /&gt;
 gradually anyway.&lt;br /&gt;
&lt;br /&gt;
;How often does health update?&lt;br /&gt;
:It needs a complete discharge window (full anchor → cutoff), and any charging&lt;br /&gt;
 mid-window voids it. So it updates slowly and changes gradually by EMA — that is&lt;br /&gt;
 intentional, so one bad measurement cannot make health plunge.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:21:09 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:How_Photonicat_2_Calculates_SOC</comments>
		</item>
		<item>
			<title>光影猫2 是如何计算电量的</title>
			<link>https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1006&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84&amp;diff=1006&amp;oldid=0</guid>
			<description>&lt;p&gt;Create: how the coulomb counter computes SOC (hardware, integration, OCV fusion, self-learning, temperature, Linux sysfs/RTC chain)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 不靠&amp;quot;看电压猜电量&amp;quot;，而是用一套完整的&amp;#039;&amp;#039;&amp;#039;库仑计&amp;#039;&amp;#039;&amp;#039;（Coulomb&lt;br /&gt;
counter，又叫电量计 / fuel gauge）来算电量：像给电池装了一个水表，&lt;br /&gt;
进出的每一毫安秒都记账。&lt;br /&gt;
&lt;br /&gt;
本页讲清楚这套系统怎么工作——从硬件怎么测，到固件怎么积分、怎么自学习、&lt;br /&gt;
怎么做温度补偿，再到 Linux 内核怎么把它变成 sysfs 文件。&lt;br /&gt;
&lt;br /&gt;
指示灯说明见 [[Photonicat 2 LED 指示灯]]，sysfs 路径见 [[Photonicat 2 sysfs]]。&lt;br /&gt;
English: [[How Photonicat 2 Calculates SOC]]。&lt;br /&gt;
&lt;br /&gt;
== 为什么不能只看电压 ==&lt;br /&gt;
&lt;br /&gt;
这是所有电量计要解决的第一个问题。锂电池的&amp;quot;电压—电量&amp;quot;曲线中段非常平。&lt;br /&gt;
下面取固件里的&amp;#039;&amp;#039;&amp;#039;放电 OCV 表&amp;#039;&amp;#039;&amp;#039;（去 IR 后的整包电压）：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 整包 OCV（开路电压） !! 对应电量&lt;br /&gt;
|-&lt;br /&gt;
| 7.58 V || 70 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.50 V || 60 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.44 V || 50 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.36 V || 40 %&lt;br /&gt;
|-&lt;br /&gt;
| 7.28 V || 30 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
从 70 % 掉到 30 %，电压只降了 &amp;#039;&amp;#039;&amp;#039;0.30 V&amp;#039;&amp;#039;&amp;#039;——平均每 1 % 电量只对应约&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 mV&amp;#039;&amp;#039;&amp;#039;。而电池一带负载，内阻上的压降（I×R）轻松就有几十毫伏。也就是说：&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;只看电压，误差可以轻松超过 10 %&amp;#039;&amp;#039;&amp;#039;，而且负载越大错得越离谱。&lt;br /&gt;
&lt;br /&gt;
反过来，两端却很陡：这张表里 8.34 V 是 100 %、6.34 V 是 0 %。所以正确做法是&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;两端用电压定位，中间靠积分推进&amp;#039;&amp;#039;&amp;#039;——这正是下面这套系统在做的事。&lt;br /&gt;
&lt;br /&gt;
== 一句话原理 ==&lt;br /&gt;
&lt;br /&gt;
  电量 = 起点电量 − ∫(放电电流)dt + ∫(充电电流)dt&lt;br /&gt;
&lt;br /&gt;
积分本身很准（电流测得准的话），但有两个毛病：&amp;#039;&amp;#039;&amp;#039;起点从哪来&amp;#039;&amp;#039;&amp;#039;，以及&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;误差会累积&amp;#039;&amp;#039;&amp;#039;。所以真正的电量计 = 积分 + 一套修正机制。光影猫2 的做法是：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 层 !! 作用&lt;br /&gt;
|-&lt;br /&gt;
| 硬件测量 || TPA626 每 100 ms 测一次电压/电流&lt;br /&gt;
|-&lt;br /&gt;
| 库仑积分 || 每 200 ms 把电流累加进 µAs 账本&lt;br /&gt;
|-&lt;br /&gt;
| OCV 融合 || 静置时用电压表反查电量，轻轻拉回积分漂移&lt;br /&gt;
|-&lt;br /&gt;
| 锚点 || 充满 / 欠压时直接把电量钉死到 100 % / 0 %&lt;br /&gt;
|-&lt;br /&gt;
| 自学习 || 满容量、内阻、空点、充电增益，每台机器各学各的&lt;br /&gt;
|-&lt;br /&gt;
| 温度补偿 || 冷天内阻变大、可用容量变少，都要修正&lt;br /&gt;
|-&lt;br /&gt;
| 显示层 || 把内部电量映射成用户看到的 1–100 %&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 一、硬件：怎么测 ==&lt;br /&gt;
&lt;br /&gt;
测量芯片是 &amp;#039;&amp;#039;&amp;#039;TPA626&amp;#039;&amp;#039;&amp;#039;（I²C 电流/电压监测器，与 INA226 同类）。它串一个&lt;br /&gt;
毫欧级采样电阻在电池回路上，测电阻两端压降换算电流，同时测总线电压。&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;采样周期&amp;#039;&amp;#039;&amp;#039;：约 100 ms 一次（&amp;lt;code&amp;gt;VD1_Collect&amp;lt;/code&amp;gt;）&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;中值滤波&amp;#039;&amp;#039;&amp;#039;：电压和电流各过一个中值滤波器，滤掉 I²C 偶发抖动和负载尖峰&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;原始值另存一份&amp;#039;&amp;#039;&amp;#039;：中值滤波有约 3 s 滞后，会把&amp;quot;充电器插拔的电压台阶&amp;quot;&lt;br /&gt;
  抹平，而内阻自学习恰恰要看这个瞬间台阶，所以固件同时保留未滤波的原始值&lt;br /&gt;
&lt;br /&gt;
=== 电流校准 ===&lt;br /&gt;
&lt;br /&gt;
采样电阻和运放都有个体误差，出厂靠精密万用表实测标定，拟合成二次多项式：&lt;br /&gt;
&lt;br /&gt;
  I_真实(mA) = C2·x² + C1·x + C0&lt;br /&gt;
&lt;br /&gt;
当前系数（2026-07-24 二轮标定，四点残差 ≤3 mA）：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 项 !! 值 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| C2 || −4.444×10⁻⁵ || 二次项，修大电流段的非线性&lt;br /&gt;
|-&lt;br /&gt;
| C1 || 1.0411 || 一次项（增益）&lt;br /&gt;
|-&lt;br /&gt;
| C0 || +20 mA（放电）/ 0 mA（充电） || 零点偏移，分方向&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
几个工程细节值得一提：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;先夹再算&amp;#039;&amp;#039;&amp;#039;：抛物线在标定范围外会&amp;quot;反向弯&amp;quot;（顶点约 +11.7 A），所以先把&lt;br /&gt;
  输入夹到 ±3 A，域外按端点斜率线性延伸，不让二次项跑飞。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;int64 运算&amp;#039;&amp;#039;&amp;#039;：x² 最大到 9×10⁶，乘上系数会溢出 int32。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;55 mA 死区&amp;#039;&amp;#039;&amp;#039;：小于这个值直接当 0，避免待机时账本被噪声慢慢推歪。&lt;br /&gt;
&lt;br /&gt;
== 二、库仑积分：账本 ==&lt;br /&gt;
&lt;br /&gt;
每 &amp;#039;&amp;#039;&amp;#039;200 ms&amp;#039;&amp;#039;&amp;#039; 调一次 &amp;lt;code&amp;gt;coulomb_counter_update()&amp;lt;/code&amp;gt;，把电流乘以时间&lt;br /&gt;
累加进一个 &amp;#039;&amp;#039;&amp;#039;µAs（微安秒）&amp;#039;&amp;#039;&amp;#039;的 64 位账本。用 µAs 而不是 mAh 是为了避免定点&lt;br /&gt;
除法的舍入误差在长时间运行后累积。&lt;br /&gt;
&lt;br /&gt;
* 放电减、充电加&lt;br /&gt;
* 电流绝对值小于 &amp;#039;&amp;#039;&amp;#039;30 mA&amp;#039;&amp;#039;&amp;#039; 的部分不计入（死区，防噪声漂移）&lt;br /&gt;
* 充电方向另有一个自学习的&amp;#039;&amp;#039;&amp;#039;增益系数&amp;#039;&amp;#039;&amp;#039;（充电效率不是 100 %）&lt;br /&gt;
&lt;br /&gt;
== 三、OCV 融合：把漂移拉回来 ==&lt;br /&gt;
&lt;br /&gt;
积分误差会累积，所以在&amp;#039;&amp;#039;&amp;#039;电池接近静置&amp;#039;&amp;#039;&amp;#039;时，用电压反查电量表来轻轻纠正。&lt;br /&gt;
&lt;br /&gt;
触发条件很严格，因为静置判断错了反而会把正确的积分带偏：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 条件 !! 阈值 !! 为什么&lt;br /&gt;
|-&lt;br /&gt;
| 电流足够小 || \|I\| ≤ 340 mA（约 0.05C） || 电流大时内阻压降的模型误差会放大&lt;br /&gt;
|-&lt;br /&gt;
| 持续足够久 || ≥ 30 s || 让极化电压和表面电荷弛豫掉&lt;br /&gt;
|-&lt;br /&gt;
| 电压变化率 || ≤ 20 mV/s || 还在动态过程中就不算静置&lt;br /&gt;
|-&lt;br /&gt;
| 电流变化率 || ≤ 2000 mA/s || 同上&lt;br /&gt;
|-&lt;br /&gt;
| 插拔宽限期 || 10 s || 充电器刚插拔，电压还没稳&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
满足后也不是直接覆盖，而是&amp;#039;&amp;#039;&amp;#039;加权融合&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
&lt;br /&gt;
* 权重上限 &amp;#039;&amp;#039;&amp;#039;α = 0.07&amp;#039;&amp;#039;&amp;#039;（OCV 最多只占 7 %），且在 8 s 内从 0 线性爬升&lt;br /&gt;
* 单次修正最多 &amp;#039;&amp;#039;&amp;#039;0.20 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
换句话说，OCV 是&amp;quot;温柔地把积分往回拽&amp;quot;，而不是&amp;quot;一把拽过去&amp;quot;——这样用户看到的&lt;br /&gt;
电量不会跳变。&lt;br /&gt;
&lt;br /&gt;
=== 三张 OCV 表 ===&lt;br /&gt;
&lt;br /&gt;
锂电池有&amp;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;现象：同样的电量，充电时端电压偏高、放电时偏低（约&lt;br /&gt;
30 mV/芯，2S 约 ±60 mV）。所以固件带三张表：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;放电表&amp;#039;&amp;#039;&amp;#039;：进入放电模式（\|I\| &amp;gt; 900 mA）时用&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;充电表&amp;#039;&amp;#039;&amp;#039;：进入充电模式时用&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;静置表（REST）&amp;#039;&amp;#039;&amp;#039;：充放两表的平均，小电流（\|I\| ≤ 600 mA）时用&lt;br /&gt;
&lt;br /&gt;
模式切换带&amp;#039;&amp;#039;&amp;#039;滞回&amp;#039;&amp;#039;&amp;#039;（进 900 mA / 出 600 mA），避免在阈值附近反复横跳。&lt;br /&gt;
&lt;br /&gt;
查表前还要先&amp;#039;&amp;#039;&amp;#039;去 IR&amp;#039;&amp;#039;&amp;#039;：OCV = 端电压 − I×R_pack，用的就是下面自学习到的内阻。&lt;br /&gt;
&lt;br /&gt;
== 四、锚点：两端归位 ==&lt;br /&gt;
&lt;br /&gt;
中段靠积分，两端靠锚点直接钉死：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;满电锚点&amp;#039;&amp;#039;&amp;#039;：充电器在位、且 vbus ≥ 8 V、且电流已经很小 → 电量 = 100 %。&lt;br /&gt;
  要求充电器在位是有原因的：&amp;#039;&amp;#039;&amp;#039;95 % 的静置 OCV 约 8.16 V&amp;#039;&amp;#039;&amp;#039;，一块高电量的&lt;br /&gt;
  电池静置着很容易被误判成满电。劣质或欠压的充电器推不到真满，也不给锚。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;欠压锚点&amp;#039;&amp;#039;&amp;#039;：放到欠压关机点 → 电量 = 0 %，同时触发空点学习。&lt;br /&gt;
&lt;br /&gt;
== 五、自学习：每台机器都不一样 ==&lt;br /&gt;
&lt;br /&gt;
这是这套系统最有意思的部分。同一批电池、同一批板子，个体差异也能有&lt;br /&gt;
10 % 以上。所以固件会&amp;#039;&amp;#039;&amp;#039;为每台机器单独学习&amp;#039;&amp;#039;&amp;#039;四个量，学到的值存进 data flash，&lt;br /&gt;
掉电不丢。&lt;br /&gt;
&lt;br /&gt;
=== 5.1 满容量学习（电池老化） ===&lt;br /&gt;
&lt;br /&gt;
标称 6800 mAh 的电池，用两年可能只剩 5500 mAh。如果满容量写死，老化后&lt;br /&gt;
SOC 就会偏乐观——显示还有电，实际已经关机了。&lt;br /&gt;
&lt;br /&gt;
学习方法：&lt;br /&gt;
&lt;br /&gt;
# 满电锚点触发时开窗口，累计放电清零&lt;br /&gt;
# 一路放电到欠压关机点&lt;br /&gt;
# 满容量 = 累计放出的电量 + &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 中途检测到充电 → 本次窗口作废&lt;br /&gt;
&lt;br /&gt;
那个 &amp;#039;&amp;#039;&amp;#039;700 mAh&amp;#039;&amp;#039;&amp;#039; 是关键：整机不会把电池放到真正的 0 V，在关机点&lt;br /&gt;
（约 6.3–6.45 V）时电池包里还剩约 700 mAh 没放出来，必须补回去。&lt;br /&gt;
&lt;br /&gt;
学到的值还会换算成&amp;#039;&amp;#039;&amp;#039;健康度&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
&lt;br /&gt;
  健康度 = 学习容量 / 6800 mAh&lt;br /&gt;
&lt;br /&gt;
健康度采用 EMA 缓慢融入（Apple 式缓变），不会因为一次测量就跳水。&lt;br /&gt;
&lt;br /&gt;
=== 5.2 内阻学习（电压台阶法） ===&lt;br /&gt;
&lt;br /&gt;
去 IR 计算需要知道内阻。固件用一个很巧的办法：&amp;#039;&amp;#039;&amp;#039;充电器插拔的瞬间&amp;#039;&amp;#039;&amp;#039;，&lt;br /&gt;
电流突变 ΔI，电压随之突变 ΔV，那么&lt;br /&gt;
&lt;br /&gt;
  R = ΔV / ΔI&lt;br /&gt;
&lt;br /&gt;
条件：电压 &amp;gt; 7.8 V（近满电区，否则 OCV 本身会随电量移动而测不准）、&lt;br /&gt;
电流台阶 ≥ 300 mA、电压台阶 ≥ 15 mV。测量结果按 3/10 的权重 EMA 融入，&lt;br /&gt;
范围限制在 10–200 mΩ，默认值 50 mΩ。&lt;br /&gt;
&lt;br /&gt;
注意这测到的是&amp;#039;&amp;#039;&amp;#039;整包回路电阻&amp;#039;&amp;#039;&amp;#039; = 电芯本体 + 线缆/接插件（20 mΩ）+&lt;br /&gt;
保护板 MOSFET（15 mΩ）。去 IR 需要的正是这个整包串联值，不做扣减；&lt;br /&gt;
上位机若要显示&amp;quot;电芯本体内阻&amp;quot;，才减掉那 35 mΩ 的板级寄生。&lt;br /&gt;
&lt;br /&gt;
=== 5.3 显示空点学习 ===&lt;br /&gt;
&lt;br /&gt;
实测踩过的坑：&amp;#039;&amp;#039;&amp;#039;显示还有 20 % 时整机突然断电&amp;#039;&amp;#039;&amp;#039;。原因是每台机器的电流计&lt;br /&gt;
增益和实际容量都有偏差，内部 SOC 到 0 的那一刻和硬件真正撑不住的那一刻对不齐。&lt;br /&gt;
&lt;br /&gt;
解法不是去改电流链路（那会引入新的误差），而是在&amp;#039;&amp;#039;&amp;#039;显示层&amp;#039;&amp;#039;&amp;#039;加一个&lt;br /&gt;
每台机器自学习的线性映射：&lt;br /&gt;
&lt;br /&gt;
  显示值 = (内部SOC − 空点) × 100 / (100 − 空点)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;空点&amp;#039;&amp;#039;&amp;#039;（empty）= 上一次&amp;quot;电池真的没电了&amp;quot;时的内部 SOC。学习事件包括：&lt;br /&gt;
低压关机命令、低压下主机意外死机、欠压锚点。&lt;br /&gt;
&lt;br /&gt;
还有&amp;#039;&amp;#039;&amp;#039;向下自纠&amp;#039;&amp;#039;&amp;#039;：如果放电时电压还很健康（&amp;gt; 6.8 V）但内部 SOC 已经低于&lt;br /&gt;
空点，说明空点学高了，就让空点跟着降。这样换了新电池或学过头，都能在一个&lt;br /&gt;
放电周期内自愈。&lt;br /&gt;
&lt;br /&gt;
=== 5.4 充电增益学习 ===&lt;br /&gt;
&lt;br /&gt;
充电效率不是 100 %，充进去的电荷和实际存住的电荷有差异。这个增益在满电&lt;br /&gt;
锚点时学习，变化 ≥1 % 才落盘。&lt;br /&gt;
&lt;br /&gt;
== 六、温度补偿 ==&lt;br /&gt;
&lt;br /&gt;
锂电池怕冷。板载 NTC 每 200 ms 把温度喂给库仑计，做两件事：&lt;br /&gt;
&lt;br /&gt;
=== 6.1 内阻温度倍率 k(T) ===&lt;br /&gt;
&lt;br /&gt;
内阻随温度显著变化，直接影响去 IR 的准确性：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 温度 !! 内阻倍率 k(T)&lt;br /&gt;
|-&lt;br /&gt;
| −20 °C || ×3.00&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || ×2.30&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || ×1.80&lt;br /&gt;
|-&lt;br /&gt;
| 10 °C || ×1.35&lt;br /&gt;
|-&lt;br /&gt;
| 25 °C || ×1.00（基准）&lt;br /&gt;
|-&lt;br /&gt;
| 40 °C || ×0.85&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
也就是说 −20 °C 时内阻是常温的&amp;#039;&amp;#039;&amp;#039;三倍&amp;#039;&amp;#039;&amp;#039;。学习到的内阻归一在 25 °C 域，&lt;br /&gt;
用的时候再乘 k(T)。&lt;br /&gt;
&lt;br /&gt;
=== 6.2 低温可用容量补偿 ===&lt;br /&gt;
&lt;br /&gt;
冷天电池的可用容量会缩水——不是电&amp;quot;没了&amp;quot;，而是低温下拿不出来。固件的处理是&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;把显示空点上移&amp;#039;&amp;#039;&amp;#039;，让显示电量提前走低，用户就不会在 −10 °C 的户外被&lt;br /&gt;
&amp;quot;还有 15 %&amp;quot;骗了：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 温度 !! 空点上移&lt;br /&gt;
|-&lt;br /&gt;
| ≥ 15 °C || 0（不补偿）&lt;br /&gt;
|-&lt;br /&gt;
| 0 °C || 约 +4 %&lt;br /&gt;
|-&lt;br /&gt;
| −10 °C || 约 +8 %&lt;br /&gt;
|-&lt;br /&gt;
| ≤ −20 °C || +12 %（封顶）&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
NTC 读数超出 −30…70 °C 视为故障，保持上一次有效温度（初值 25 °C）。&lt;br /&gt;
&lt;br /&gt;
== 七、显示曲线：为什么是&amp;quot;特斯拉式&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
内部算出来的 SOC 不会直接给用户看，中间还有一层映射：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 % → 显示 1 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;96 % → 显示 100 %&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 中段线性（斜率 99/92），两端截断&lt;br /&gt;
&lt;br /&gt;
这样做的意思是：&amp;#039;&amp;#039;&amp;#039;显示到 0 % 时，电池里其实还留着约 4 % 的余量&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
（再加上空点以下的硬件余量），用户有时间保存工作、正常关机。同理，充到&lt;br /&gt;
96 % 就显示 100 %，避免用户盯着最后几个百分点焦虑——这些都是消费电子的&lt;br /&gt;
常规做法。&lt;br /&gt;
&lt;br /&gt;
另外固件上报的百分比&amp;#039;&amp;#039;&amp;#039;下限钳在 1 %&amp;#039;&amp;#039;&amp;#039;：只要还没关机，就不显示 0 %。&lt;br /&gt;
&lt;br /&gt;
== 八、关机之后：电量怎么不丢 ==&lt;br /&gt;
&lt;br /&gt;
这是很多电量计做不好的地方。光影猫2 有三条路径：&lt;br /&gt;
&lt;br /&gt;
=== 8.1 SOC 快照 ===&lt;br /&gt;
&lt;br /&gt;
运行时 SOC 每漂移 ≥5 % 就自动落盘；关机、主机断电、进待机、OTA 复位前&lt;br /&gt;
强制落盘并刷新时间戳。&lt;br /&gt;
&lt;br /&gt;
开机恢复策略：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;≤12 小时&amp;#039;&amp;#039;&amp;#039;：SOC = 快照 − 2.0 mA × Δt（按待机电流扣减），并&amp;#039;&amp;#039;&amp;#039;禁止&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
  OCV 重估覆盖。这条修的是&amp;quot;短时重启后 10 % 变 1 %&amp;quot;的老问题。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;gt;12 小时&amp;#039;&amp;#039;&amp;#039;：快照过期，走冷启动 OCV 重估。&lt;br /&gt;
&lt;br /&gt;
=== 8.2 深睡放电估计 ===&lt;br /&gt;
&lt;br /&gt;
电池深睡时 TPA626 会掉电，采不到电流。固件在进睡前记下 RTC 分钟戳，&lt;br /&gt;
醒来后按整机待机约 &amp;#039;&amp;#039;&amp;#039;2.0 mA&amp;#039;&amp;#039;&amp;#039; 恒流扣减。&lt;br /&gt;
&lt;br /&gt;
=== 8.3 换电池识别 ===&lt;br /&gt;
&lt;br /&gt;
电池拔掉 → RTC 掉电重置 → 时间倒退。固件据此判定&amp;quot;换过电池&amp;quot;，让快照作废，&lt;br /&gt;
重新冷启动估计。（这里留了 10 分钟容差，否则升级重启后一条有效快照会被误判&lt;br /&gt;
丢掉，SOC 就会出现台阶跳变。）&lt;br /&gt;
&lt;br /&gt;
== 九、数据怎么到 Linux ==&lt;br /&gt;
&lt;br /&gt;
MCU 算完，通过 &amp;#039;&amp;#039;&amp;#039;UART&amp;#039;&amp;#039;&amp;#039; 把状态帧发给主机（RK3576）。主机侧有两个消费者：&lt;br /&gt;
&lt;br /&gt;
=== 9.1 内核驱动：photonicat-pm ===&lt;br /&gt;
&lt;br /&gt;
这是一个 &amp;#039;&amp;#039;&amp;#039;serdev&amp;#039;&amp;#039;&amp;#039; 驱动（&amp;lt;code&amp;gt;990-photonicat-pm-add-driver.patch&amp;lt;/code&amp;gt;，&lt;br /&gt;
内核 6.12），直接挂在串口上解析状态帧，然后注册成标准 Linux 设备：&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;power_supply&amp;#039;&amp;#039;&amp;#039; 类 → &amp;lt;code&amp;gt;/sys/class/power_supply/battery&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;RTC&amp;#039;&amp;#039;&amp;#039; 类 → &amp;lt;code&amp;gt;/dev/rtc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
因为注册的是&amp;#039;&amp;#039;&amp;#039;标准子系统&amp;#039;&amp;#039;&amp;#039;，所以任何现成的 Linux 工具都能直接用，&lt;br /&gt;
不需要认识光影猫的私有协议：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# 电量（%），这就是上面整套算法的最终输出&lt;br /&gt;
cat /sys/class/power_supply/battery/capacity&lt;br /&gt;
&lt;br /&gt;
# 电压 µV / 电流 µA / 功率 µW&lt;br /&gt;
cat /sys/class/power_supply/battery/voltage_now&lt;br /&gt;
cat /sys/class/power_supply/battery/current_now&lt;br /&gt;
cat /sys/class/power_supply/battery/power_now&lt;br /&gt;
&lt;br /&gt;
# 能量 µWh：energy_full 是学习到的满容量，对比 energy_full_design 看老化&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_now&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full&lt;br /&gt;
cat /sys/class/power_supply/battery/energy_full_design&lt;br /&gt;
&lt;br /&gt;
# 充电器在线&lt;br /&gt;
cat /sys/class/power_supply/charger/online&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;MCU 就是硬件 RTC。&amp;#039;&amp;#039;&amp;#039;板子上没有单独的 RTC 芯片——MCU 一直有电，它自己&lt;br /&gt;
就在走时，时间随状态帧一起送上来。驱动把它注册成 &amp;lt;code&amp;gt;rtc_class_ops&amp;lt;/code&amp;gt;，&lt;br /&gt;
于是标准工具直接可用：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
hwclock -r          # 读 MCU 里的时间&lt;br /&gt;
hwclock -w          # 把系统时间写回 MCU&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这也是为什么&amp;#039;&amp;#039;&amp;#039;断网断电放几天，开机时间还是准的&amp;#039;&amp;#039;&amp;#039;。前面 8.3 讲的&lt;br /&gt;
&amp;quot;换电池识别&amp;quot;也是靠它——RTC 掉电重置，时间就会倒退。&lt;br /&gt;
&lt;br /&gt;
=== 9.2 用户态守护进程：pcat-manager ===&lt;br /&gt;
&lt;br /&gt;
内核驱动只认状态帧里的电源部分。&amp;#039;&amp;#039;&amp;#039;其余的 UART 协议由 pcat-manager 处理&amp;#039;&amp;#039;&amp;#039;：&lt;br /&gt;
调制解调器管理、看门狗、开关机策略、按键事件、充电阈值下发、MCU 固件升级等。&lt;br /&gt;
&lt;br /&gt;
分工可以这么理解：&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 组件 !! 负责&lt;br /&gt;
|-&lt;br /&gt;
| MCU 固件 || 测量、积分、学习、补偿——所有算法&lt;br /&gt;
|-&lt;br /&gt;
| photonicat-pm（内核） || 电源/RTC 数据 → 标准 sysfs 接口&lt;br /&gt;
|-&lt;br /&gt;
| pcat-manager（用户态） || 其余协议：调制解调器、看门狗、电源策略、OTA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
一个具体例子是&amp;#039;&amp;#039;&amp;#039;充电上限&amp;#039;&amp;#039;&amp;#039;：你在网页里设 80 %，pcat-manager 通过 UART 下发给&lt;br /&gt;
MCU，MCU 把它存进 data flash 并直接控制充电 MOSFET。固件&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;RA2E1260726005&amp;#039;&amp;#039;&amp;#039; 起这个设置在 MCU 侧持久化，MCU 复位或 OTA 之后不会丢；&lt;br /&gt;
同时 pcat-manager 也保留一份镜像并在检测到 MCU 重启时重新下发，双保险。&lt;br /&gt;
&lt;br /&gt;
== 十、常见问题 ==&lt;br /&gt;
&lt;br /&gt;
;为什么电量偶尔会&amp;quot;跳一下&amp;quot;？&lt;br /&gt;
:多半是 OCV 融合或锚点在纠正积分漂移。单次修正被限制在 0.20 %，所以正常情况&lt;br /&gt;
 你不会看到大跳变；如果出现大跳变，通常是快照过期后走了冷启动重估。&lt;br /&gt;
&lt;br /&gt;
;为什么冬天电量掉得快？&lt;br /&gt;
:两个原因叠加：低温下电池可用容量本来就少，加上固件主动把显示空点上移&lt;br /&gt;
 （−10 °C 约 +8 %），让你提前知道该充电了。回暖后会恢复。&lt;br /&gt;
&lt;br /&gt;
;为什么充到 96 % 就显示 100 %？&lt;br /&gt;
:显示曲线刻意这么设计的，见第七节。同理显示 0 % 时电池还有余量。&lt;br /&gt;
&lt;br /&gt;
;新电池要不要&amp;quot;校准&amp;quot;？&lt;br /&gt;
:不用刻意做。完整放一次电（从满电放到自动关机）会让固件学到真实满容量和&lt;br /&gt;
 空点；平时正常使用也会慢慢学到。&lt;br /&gt;
&lt;br /&gt;
;健康度多久更新一次？&lt;br /&gt;
:需要一次完整的放电窗口（满电锚点 → 欠压），中途充电会作废。所以它更新得慢，&lt;br /&gt;
 而且是 EMA 缓变的，这是刻意的——避免单次误测就让健康度跳水。&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 09:21:06 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%94%B5%E9%87%8F%E7%9A%84</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1005&amp;oldid=1003</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1005&amp;oldid=1003</guid>
			<description>&lt;p&gt;Low-battery red now flashes continuously (firmware RA2E1260726003+) instead of stopping after 3 flashes&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:50的版本&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-l27&quot;&gt;第27行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第27行：&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 Red, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3 flashes &lt;/del&gt;|| Low battery (below 6500 mV&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, 3 flashes only &lt;/del&gt;— see [[#Low battery red light|Low battery red light]])&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 Red, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;flashing &lt;/ins&gt;|| Low battery (below 6500 mV — see [[#Low battery red light|Low battery red light]])&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;div&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;|-&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;div&gt;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&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;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&lt;/div&gt;&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-l55&quot;&gt;第55行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第55行：&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;| Above 6600 mV, system off || None || [[File:Pcat2-led-green-solid-v2.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;| Above 6600 mV, system off || None || [[File:Pcat2-led-green-solid-v2.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;div&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;|-&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;| Below 6500 mV, system on || None || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 Red || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Flicker &lt;/del&gt;|| 1 s on / 1 s off&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, 3 flashes&lt;/del&gt;, begins after 60 s&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;| Below 6500 mV, system on || None || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 Red || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Continuous flashing &lt;/ins&gt;|| 1 s on / 1 s off, begins after 60 s&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, until the voltage recovers&lt;/ins&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;div&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;|-&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;| Below 6500 mV, short press || None || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3 flashes&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;| Below 6500 mV, short press || None || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;while held or until the voltage recovers&lt;/ins&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;div&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;|-&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;div&gt;| Charger removed, system off || None || [[File:Pcat2-led-off-v2.gif|44px|link=]] || colspan=&amp;quot;2&amp;quot; | ⚫ Off&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;| Charger removed, system off || None || [[File:Pcat2-led-off-v2.gif|44px|link=]] || colspan=&amp;quot;2&amp;quot; | ⚫ Off&lt;/div&gt;&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-l87&quot;&gt;第87行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第87行：&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;| Rhythm || 1 second on / 1 second off&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;| Rhythm || 1 second on / 1 second off&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;div&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;|-&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;| Repeats || &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Stops after 3 flashes&lt;/del&gt;&#039;&#039;&#039; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;— it does not keep flashing&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;| Repeats || &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Flashes continuously&lt;/ins&gt;&#039;&#039;&#039; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;until the voltage recovers or a charger is connected&lt;/ins&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;div&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;|-&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;div&gt;| While running || Starts only after the voltage has stayed below the threshold for &amp;#039;&amp;#039;&amp;#039;60 seconds&amp;#039;&amp;#039;&amp;#039;&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;| While running || Starts only after the voltage has stayed below the threshold for &amp;#039;&amp;#039;&amp;#039;60 seconds&amp;#039;&amp;#039;&amp;#039;&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;div&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;|-&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;| Short press || With a low battery, a short press of the power button &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;shows it &lt;/del&gt;immediately (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3 flashes &lt;/del&gt;after a 0.5 s debounce)&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;| Short press || With a low battery, a short press of the power button &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;triggers the red flashing &lt;/ins&gt;immediately (after a 0.5 s debounce)&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;div&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;|-&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;div&gt;| Effect on green || The green heartbeat stops while red is active; the two never show together&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;| Effect on green || The green heartbeat stops while red is active; the two never show together&lt;/div&gt;&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-l98&quot;&gt;第98行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第98行：&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;#039;&amp;#039;&amp;#039;⚠️ Important&amp;#039;&amp;#039;&amp;#039;&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;#039;&amp;#039;&amp;#039;⚠️ Important&amp;#039;&amp;#039;&amp;#039;&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; 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;* The red warning &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stops after 3 flashes&lt;/del&gt;&#039;&#039;&#039;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;If you miss it, there is no further light warning &lt;/del&gt;before &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the device shuts down.&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;* The red warning &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keeps flashing until the voltage recovers or a charger is connected&lt;/ins&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; it does not stop on its own&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(Firmware &lt;/ins&gt;before &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;RA2E1260726003 flashed only 3 times and then went quiet&lt;/ins&gt;.&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;* To check the level again, &#039;&#039;&#039;press the power button once&#039;&#039;&#039; to re-trigger the warning&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;div&gt;* The red threshold (6500 mV) is only &amp;#039;&amp;#039;&amp;#039;200 mV above the hard shutdown point (6300 mV)&amp;#039;&amp;#039;&amp;#039;. That is a very steep part of the 2S li-ion discharge curve, so connect a charger promptly once you see red.&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;* The red threshold (6500 mV) is only &amp;#039;&amp;#039;&amp;#039;200 mV above the hard shutdown point (6300 mV)&amp;#039;&amp;#039;&amp;#039;. That is a very steep part of the 2S li-ion discharge curve, so connect a charger promptly once you see red.&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;div&gt;* The trigger is &amp;#039;&amp;#039;&amp;#039;voltage, not a percentage&amp;#039;&amp;#039;&amp;#039;. Under heavy load the voltage sags and the warning can appear while a useful charge remains; when the load drops the voltage recovers and the warning stops.&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;* The trigger is &amp;#039;&amp;#039;&amp;#039;voltage, not a percentage&amp;#039;&amp;#039;&amp;#039;. Under heavy load the voltage sags and the warning can appear while a useful charge remains; when the load drops the voltage recovers and the warning stops.&lt;/div&gt;&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-l110&quot;&gt;第110行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第109行：&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;* Breathing runs at a lower peak brightness (25 % duty) than steady (50 %), so a breathing indicator looks dimmer than a steady one of the same colour.&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;* Breathing runs at a lower peak brightness (25 % duty) than steady (50 %), so a breathing indicator looks dimmer than a steady one of the same colour.&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;* 🔴 Red is only ever used for low battery, and &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stops after three flashes rather than &lt;/del&gt;flashing &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;continuously&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;* 🔴 Red is only ever used for low battery, and &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;keeps &lt;/ins&gt;flashing &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;until the voltage recovers or a charger is connected&lt;/ins&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;div&gt;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&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;* The indicator can be disabled entirely through the host protocol, in which case it stays off in all states.&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1003:rev-1005:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:50:15 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1004&amp;oldid=1002</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1004&amp;oldid=1002</guid>
			<description>&lt;p&gt;低电红灯改为持续闪烁（固件 RA2E1260726003 起），不再闪 3 次即停&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:50的版本&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-l27&quot;&gt;第27行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第27行：&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;红色闪 3 次 &lt;/del&gt;|| 电量低（低于 6500 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mV，仅闪 3 次，详见下方&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;红色持续闪烁 &lt;/ins&gt;|| 电量低（低于 6500 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mV，详见下方&lt;/ins&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;div&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;|-&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;div&gt;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&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;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&lt;/div&gt;&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-l55&quot;&gt;第55行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第55行：&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;| 高于 6600 mV，关机 || 未插入 || [[File:Pcat2-led-green-solid-v2.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;| 高于 6600 mV，关机 || 未插入 || [[File:Pcat2-led-green-solid-v2.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;div&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;|-&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;| 低于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 红色 || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;闪烁 &lt;/del&gt;|| 亮 1 s / 灭 1 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s，共 3 次，60 &lt;/del&gt;s &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;后开始&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;| 低于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 红色 || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;持续闪烁 &lt;/ins&gt;|| 亮 1 s / 灭 1 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s，60 &lt;/ins&gt;s &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;&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;|-&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;|-&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;| 低于 6500 mV，短按一次 || 未插入 || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s，共 3 次&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;| 低于 6500 mV，短按一次 || 未插入 || [[File:Pcat2-led-red-lowbatt-v2.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;s，持续到松开或电压回升&lt;/ins&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;div&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;|-&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;div&gt;| 拔出充电器且关机 || 未插入 || [[File:Pcat2-led-off-v2.gif|44px|link=]] || colspan=&amp;quot;2&amp;quot; | ⚫ 熄灭&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;| 拔出充电器且关机 || 未插入 || [[File:Pcat2-led-off-v2.gif|44px|link=]] || colspan=&amp;quot;2&amp;quot; | ⚫ 熄灭&lt;/div&gt;&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-l87&quot;&gt;第87行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第87行：&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;| 闪烁节奏 || 亮 1 秒 / 灭 1 秒&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;| 闪烁节奏 || 亮 1 秒 / 灭 1 秒&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;div&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;|-&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;| 闪烁次数 || &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;仅 3 次即停止&lt;/del&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，不会持续闪烁&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;| 闪烁次数 || &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;持续闪烁&lt;/ins&gt;&#039;&#039;&#039;&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;&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;|-&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;|-&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;div&gt;| 开机状态下 || 电压持续低于门限 &amp;#039;&amp;#039;&amp;#039;60 秒&amp;#039;&amp;#039;&amp;#039;后才开始闪&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;#039;&amp;#039;&amp;#039;60 秒&amp;#039;&amp;#039;&amp;#039;后才开始闪&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;div&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;|-&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;电压低时短按一下可立即查看（约 &lt;/del&gt;0.5 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;秒防抖后闪 3 次）&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;电压低时短按一下可立即触发红闪（约 &lt;/ins&gt;0.5 &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;&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;|-&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;|-&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;div&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;| 绿灯会怎样 || 红灯期间绿色心跳会停止，两者不会同时亮&lt;/div&gt;&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-l98&quot;&gt;第98行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第98行：&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;#039;&amp;#039;&amp;#039;⚠️ 重要提醒&amp;#039;&amp;#039;&amp;#039;&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;#039;&amp;#039;&amp;#039;⚠️ 重要提醒&amp;#039;&amp;#039;&amp;#039;&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; 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;红灯&lt;/del&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;闪 3 次后就不再提示&lt;/del&gt;&#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;。错过之后在关机前不会再有任何灯光警告。&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;红灯会&lt;/ins&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;一直闪到电压回升或接入充电器&lt;/ins&gt;&#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;，不会自行停止。（RA2E1260726003 之前的固件只闪 3 次就不再提示。）&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;* 若要确认当前电量，可&#039;&#039;&#039;短按一次电源键&#039;&#039;&#039;重新触发提示。&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;div&gt;* 红灯触发点（6500 mV）与&amp;#039;&amp;#039;&amp;#039;强制关机点（6300 mV）只差 200 mV&amp;#039;&amp;#039;&amp;#039;，在 2S 锂电的放电末端属于很陡的一段，看到红灯应尽快接入充电器。&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;* 红灯触发点（6500 mV）与&amp;#039;&amp;#039;&amp;#039;强制关机点（6300 mV）只差 200 mV&amp;#039;&amp;#039;&amp;#039;，在 2S 锂电的放电末端属于很陡的一段，看到红灯应尽快接入充电器。&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;div&gt;* 判据是&amp;#039;&amp;#039;&amp;#039;电压不是百分比&amp;#039;&amp;#039;&amp;#039;：大负载下电压会被拉低，可能在剩余电量还不算太少时就提前告警；负载减轻后电压回升，告警也会随之消失。&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;#039;&amp;#039;&amp;#039;电压不是百分比&amp;#039;&amp;#039;&amp;#039;：大负载下电压会被拉低，可能在剩余电量还不算太少时就提前告警；负载减轻后电压回升，告警也会随之消失。&lt;/div&gt;&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-l110&quot;&gt;第110行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第109行：&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;* 呼吸的峰值亮度（25 % 占空）低于常亮（50 %），因此同色下呼吸看起来更暗。&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;* 呼吸的峰值亮度（25 % 占空）低于常亮（50 %），因此同色下呼吸看起来更暗。&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;红色仅用于低电量提示，闪 3 次后停止，不会持续闪烁。&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;红色仅用于低电量提示，会持续闪烁直到电压回升或接入充电器。&lt;/ins&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;div&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;* 指示灯可通过上位机协议整体关闭，关闭后所有状态均不亮灯。&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;[[Category:Photonicat 2]]&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;[[Category:Photonicat 2]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1002:rev-1004:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:50:14 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1003&amp;oldid=1001</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1003&amp;oldid=1001</guid>
			<description>&lt;p&gt;Add &amp;#039;Low battery red light&amp;#039; section: 6500 mV trigger, 60 s delay, stops after 3 flashes, and only 200 mV above the 6300 mV shutdown point&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:46的版本&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-l27&quot;&gt;第27行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第27行：&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 Red, 3 flashes || Low battery&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 Red, 3 flashes || Low battery &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(below 6500 mV, 3 flashes only — see [[#Low battery red light|Low battery red light]])&lt;/ins&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;div&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;|-&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;div&gt;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&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;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&lt;/div&gt;&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-l75&quot;&gt;第75行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第75行：&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;| Reset / factory restore mode || [[File:Pcat2-led-orange-blink-slow-v2.gif|44px|link=]] || 🟠 Yellow || Slow blink || ≈1 s period&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;| Reset / factory restore mode || [[File:Pcat2-led-orange-blink-slow-v2.gif|44px|link=]] || 🟠 Yellow || Slow blink || ≈1 s period&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;div&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;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;==Low battery red light==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;When the battery runs low the indicator turns 🔴 &#039;&#039;&#039;flashing red&#039;&#039;&#039;. This is the only situation in which red is used.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;{| class=&quot;wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;! Item !! Detail&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| Trigger || Battery below &#039;&#039;&#039;6500 mV&#039;&#039;&#039; (2S pack, about 3.25 V per cell) with &#039;&#039;&#039;no charger connected&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| Rhythm || 1 second on / 1 second off&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| Repeats || &#039;&#039;&#039;Stops after 3 flashes&#039;&#039;&#039; — it does not keep flashing&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| While running || Starts only after the voltage has stayed below the threshold for &#039;&#039;&#039;60 seconds&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| Short press || With a low battery, a short press of the power button shows it immediately (3 flashes after a 0.5 s debounce)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| Effect on green || The green heartbeat stops while red is active; the two never show together&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&#039;&#039;&#039;⚠️ Important&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* The red warning &#039;&#039;&#039;stops after 3 flashes&#039;&#039;&#039;. If you miss it, there is no further light warning before the device shuts down.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* To check the level again, &#039;&#039;&#039;press the power button once&#039;&#039;&#039; to re-trigger the warning.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* The red threshold (6500 mV) is only &#039;&#039;&#039;200 mV above the hard shutdown point (6300 mV)&#039;&#039;&#039;. That is a very steep part of the 2S li-ion discharge curve, so connect a charger promptly once you see red.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* The trigger is &#039;&#039;&#039;voltage, not a percentage&#039;&#039;&#039;. Under heavy load the voltage sags and the warning can appear while a useful charge remains; when the load drops the voltage recovers and the warning stops.&lt;/ins&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;==Charge limit==&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;==Charge limit==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1001:rev-1003:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:46:11 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1002&amp;oldid=1000</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1002&amp;oldid=1000</guid>
			<description>&lt;p&gt;新增「低电量红灯」章节：明确 6500 mV 触发点、60 秒延迟、仅闪 3 次即停止，以及与 6300 mV 关机点仅差 200 mV 的提醒&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:45的版本&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-l27&quot;&gt;第27行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第27行：&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;| [[File:Pcat2-led-green-heartbeat-v2.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 红色闪 3 次 || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;电量低&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;| [[File:Pcat2-led-red-lowbatt-v2.gif|52px|link=]] || 🔴 红色闪 3 次 || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;电量低（低于 6500 mV，仅闪 3 次，详见下方[[#低电量红灯|低电量红灯]]）&lt;/ins&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;div&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;|-&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;div&gt;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&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;| [[File:Pcat2-led-off-v2.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&lt;/div&gt;&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-l75&quot;&gt;第75行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第75行：&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;| 复位 / 恢复出厂模式 || [[File:Pcat2-led-orange-blink-slow-v2.gif|44px|link=]] || 🟠 黄色 || 慢闪 || 周期约 1 s&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;| 复位 / 恢复出厂模式 || [[File:Pcat2-led-orange-blink-slow-v2.gif|44px|link=]] || 🟠 黄色 || 慢闪 || 周期约 1 s&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;div&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;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;==低电量红灯==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;电量过低时指示灯会变为 🔴 &#039;&#039;&#039;红色闪烁&#039;&#039;&#039;，这是唯一使用红色的场合。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;{| class=&quot;wikitable&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;! 项目 !! 说明&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 触发条件 || 电池电压低于 &#039;&#039;&#039;6500 mV&#039;&#039;&#039;（2S 电池组，约 3.25 V/节），且&#039;&#039;&#039;未插充电器&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 闪烁节奏 || 亮 1 秒 / 灭 1 秒&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 闪烁次数 || &#039;&#039;&#039;仅 3 次即停止&#039;&#039;&#039;，不会持续闪烁&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 开机状态下 || 电压持续低于门限 &#039;&#039;&#039;60 秒&#039;&#039;&#039;后才开始闪&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 短按电源键 || 电压低时短按一下可立即查看（约 0.5 秒防抖后闪 3 次）&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|-&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;| 绿灯会怎样 || 红灯期间绿色心跳会停止，两者不会同时亮&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;|}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&#039;&#039;&#039;⚠️ 重要提醒&#039;&#039;&#039;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 红灯&#039;&#039;&#039;闪 3 次后就不再提示&#039;&#039;&#039;。错过之后在关机前不会再有任何灯光警告。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 若要确认当前电量，可&#039;&#039;&#039;短按一次电源键&#039;&#039;&#039;重新触发提示。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 红灯触发点（6500 mV）与&#039;&#039;&#039;强制关机点（6300 mV）只差 200 mV&#039;&#039;&#039;，在 2S 锂电的放电末端属于很陡的一段，看到红灯应尽快接入充电器。&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;* 判据是&#039;&#039;&#039;电压不是百分比&#039;&#039;&#039;：大负载下电压会被拉低，可能在剩余电量还不算太少时就提前告警；负载减轻后电压回升，告警也会随之消失。&lt;/ins&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;==充电上限==&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;==充电上限==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-1000:rev-1002:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:45:53 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1001&amp;oldid=986</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=1001&amp;oldid=986</guid>
			<description>&lt;p&gt;改用 -v2 文件名，绕过浏览器缓存中旧的深色背景动画&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:41的版本&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-l17&quot;&gt;第17行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第17行：&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;! Animation !! Indicator !! Meaning&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;! Animation !! Indicator !! Meaning&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;div&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;|-&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;| [[File:Pcat2-led-orange-breathing.gif|52px|link=]] || 🟠 Yellow, breathing || Charging, system running&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;| [[File:Pcat2-led-orange-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟠 Yellow, breathing || Charging, system running&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;div&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;|-&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;| [[File:Pcat2-led-orange-solid.gif|52px|link=]] || 🟠 Yellow, steady || Charging, system off&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;| [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟠 Yellow, steady || Charging, system off&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;div&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;|-&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;| [[File:Pcat2-led-green-breathing.gif|52px|link=]] || 🟢 Green, breathing || Fully charged (or at charge limit), system running&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;| [[File:Pcat2-led-green-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 Green, breathing || Fully charged (or at charge limit), system running&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;div&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;|-&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;| [[File:Pcat2-led-green-solid.gif|52px|link=]] || 🟢 Green, steady || Fully charged (or at charge limit), system off&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;| [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 Green, steady || Fully charged (or at charge limit), system off&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;div&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;|-&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;| [[File:Pcat2-led-green-heartbeat.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;| [[File:Pcat2-led-green-heartbeat&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 Green, heartbeat pulse || Running on battery, charge level normal&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt.gif|52px|link=]] || 🔴 Red, 3 flashes || Low battery&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;| [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🔴 Red, 3 flashes || Low battery&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;div&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;|-&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;| [[File:Pcat2-led-off.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&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;| [[File:Pcat2-led-off&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || ⚫ Off || Idle on battery, system off&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;div&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;|}&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;第39行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第39行：&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;! Power level !! Charger !! Animation !! Colour !! Pattern !! Timing&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;! Power level !! Charger !! Animation !! Colour !! Pattern !! Timing&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;div&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;|-&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;| Charging, any level || Connected || [[File:Pcat2-led-orange-breathing.gif|44px|link=]] || 🟠 Yellow || Breathing (system on) || 2.8 s up / 2.8 s down / 0.24 s off, ≈5.84 s cycle&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;| Charging, any level || Connected || [[File:Pcat2-led-orange-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 Yellow || Breathing (system on) || 2.8 s up / 2.8 s down / 0.24 s off, ≈5.84 s cycle&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;div&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;|-&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;| Charging, any level || Connected || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 Yellow || Steady (system off) || Constant&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;| Charging, any level || Connected || [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 Yellow || Steady (system off) || Constant&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;div&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;|-&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;| Full, or at charge limit || Connected || [[File:Pcat2-led-green-breathing.gif|44px|link=]] || 🟢 Green || Breathing (system on) || Same 5.84 s cycle, after 10 s delay&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;| Full, or at charge limit || Connected || [[File:Pcat2-led-green-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Breathing (system on) || Same 5.84 s cycle, after 10 s delay&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;div&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;|-&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;| Full, or at charge limit || Connected || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 Green || Steady (system off) || Constant, after 10 s delay&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;| Full, or at charge limit || Connected || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Steady (system off) || Constant, after 10 s delay&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;div&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;|-&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;| Below 6600 mV, DC ≥ 8 V, no charge current || Connected || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 Yellow || Steady || Constant&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;| Below 6600 mV, DC ≥ 8 V, no charge current || Connected || [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 Yellow || Steady || Constant&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;div&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;|-&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;| Above 6500 mV, system on || None || [[File:Pcat2-led-green-heartbeat.gif|44px|link=]] || 🟢 Green || Heartbeat pulse || 2 s period&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;| Above 6500 mV, system on || None || [[File:Pcat2-led-green-heartbeat&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Heartbeat pulse || 2 s period&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;div&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;|-&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;| Above 6500 mV, system starting || None || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;| Above 6500 mV, system starting || None || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;div&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;|-&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;| Above 6600 mV, system off || None || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;| Above 6600 mV, system off || None || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Steady || Constant&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;div&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;|-&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;| Below 6500 mV, system on || None || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, 3 flashes, begins after 60 s&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;| Below 6500 mV, system on || None || [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, 3 flashes, begins after 60 s&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;div&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;|-&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;| Below 6500 mV, short press || None || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, 3 flashes&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;| Below 6500 mV, short press || None || [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🔴 Red || Flicker || 1 s on / 1 s off, 3 flashes&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;div&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;|-&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;| Charger removed, system off || None || [[File:Pcat2-led-off.gif|44px|link=]] || colspan=&quot;2&quot; | ⚫ Off&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;| Charger removed, system off || None || [[File:Pcat2-led-off&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || colspan=&quot;2&quot; | ⚫ Off&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;div&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;|}&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot;&gt;第69行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第69行：&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;! State !! Animation !! Colour !! Pattern !! Timing&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;! State !! Animation !! Colour !! Pattern !! Timing&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;div&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;|-&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;| Shutting down || [[File:Pcat2-led-green-blink-shutdown.gif|44px|link=]] || 🟢 Green || Blink || ≈0.5 s on / 1.5 s off&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;| Shutting down || [[File:Pcat2-led-green-blink-shutdown&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 Green || Blink || ≈0.5 s on / 1.5 s off&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;div&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;|-&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;| Firmware download mode || [[File:Pcat2-led-orange-blink-fast.gif|44px|link=]] || 🟠 Yellow || Fast blink || ≈0.5 s period&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;| Firmware download mode || [[File:Pcat2-led-orange-blink-fast&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 Yellow || Fast blink || ≈0.5 s period&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;div&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;|-&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;| Reset / factory restore mode || [[File:Pcat2-led-orange-blink-slow.gif|44px|link=]] || 🟠 Yellow || Slow blink || ≈1 s period&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;| Reset / factory restore mode || [[File:Pcat2-led-orange-blink-slow&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 Yellow || Slow blink || ≈1 s period&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;div&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;|}&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;!-- diff cache key pcat_wiki:diff:1.41:old-986:rev-1001:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:41:39 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1000&amp;oldid=984</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=1000&amp;oldid=984</guid>
			<description>&lt;p&gt;改用 -v2 文件名，绕过浏览器缓存中旧的深色背景动画&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:41的版本&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-l17&quot;&gt;第17行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第17行：&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;! 动画 !! 指示灯 !! 含义&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;! 动画 !! 指示灯 !! 含义&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;div&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;|-&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;| [[File:Pcat2-led-orange-breathing.gif|52px|link=]] || 🟠 黄色呼吸 || 正在充电，系统运行中&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;| [[File:Pcat2-led-orange-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟠 黄色呼吸 || 正在充电，系统运行中&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;div&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;|-&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;| [[File:Pcat2-led-orange-solid.gif|52px|link=]] || 🟠 黄色常亮 || 正在充电，系统已关机&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;| [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟠 黄色常亮 || 正在充电，系统已关机&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;div&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;|-&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;| [[File:Pcat2-led-green-breathing.gif|52px|link=]] || 🟢 绿色呼吸 || 已充满（或已达充电上限），系统运行中&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;| [[File:Pcat2-led-green-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 绿色呼吸 || 已充满（或已达充电上限），系统运行中&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;div&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;|-&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;| [[File:Pcat2-led-green-solid.gif|52px|link=]] || 🟢 绿色常亮 || 已充满（或已达充电上限），系统已关机&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;| [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 绿色常亮 || 已充满（或已达充电上限），系统已关机&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;div&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;|-&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;| [[File:Pcat2-led-green-heartbeat.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;| [[File:Pcat2-led-green-heartbeat&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&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;div&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;|-&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;| [[File:Pcat2-led-red-lowbatt.gif|52px|link=]] || 🔴 红色闪 3 次 || 电量低&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;| [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || 🔴 红色闪 3 次 || 电量低&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;div&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;|-&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;| [[File:Pcat2-led-off.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&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;| [[File:Pcat2-led-off&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&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;div&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;|}&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;第39行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第39行：&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;! 电量 !! 充电器 !! 动画 !! 颜色 !! 形态 !! 节奏&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;! 电量 !! 充电器 !! 动画 !! 颜色 !! 形态 !! 节奏&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;div&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;|-&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;| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-breathing.gif|44px|link=]] || 🟠 黄色 || 呼吸（开机） || 渐亮 2.8 s / 渐暗 2.8 s / 熄灭 0.24 s，周期约 5.84 s&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;| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 黄色 || 呼吸（开机） || 渐亮 2.8 s / 渐暗 2.8 s / 熄灭 0.24 s，周期约 5.84 s&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;div&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;|-&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;| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 黄色 || 常亮（关机） || 持续&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;| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 黄色 || 常亮（关机） || 持续&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;div&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;|-&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;| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-breathing.gif|44px|link=]] || 🟢 绿色 || 呼吸（开机） || 同为 5.84 s 周期，延迟 10 s 后生效&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;| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-breathing&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 呼吸（开机） || 同为 5.84 s 周期，延迟 10 s 后生效&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;div&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;|-&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;| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮（关机） || 持续，延迟 10 s 后生效&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;| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 常亮（关机） || 持续，延迟 10 s 后生效&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;div&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;|-&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;| 低于 6600 mV，DC ≥ 8 V 且无充电电流 || 已插入 || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 黄色 || 常亮 || 持续&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;| 低于 6600 mV，DC ≥ 8 V 且无充电电流 || 已插入 || [[File:Pcat2-led-orange-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 黄色 || 常亮 || 持续&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;div&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;|-&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;| 高于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-green-heartbeat.gif|44px|link=]] || 🟢 绿色 || 心跳脉冲 || 周期 2 s&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;| 高于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-green-heartbeat&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 心跳脉冲 || 周期 2 s&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;div&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;|-&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;| 高于 6500 mV，正在开机 || 未插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;| 高于 6500 mV，正在开机 || 未插入 || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;div&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;|-&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;| 高于 6600 mV，关机 || 未插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;| 高于 6600 mV，关机 || 未插入 || [[File:Pcat2-led-green-solid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&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;div&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;|-&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;| 低于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次，60 s 后开始&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;| 低于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次，60 s 后开始&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;div&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;|-&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;| 低于 6500 mV，短按一次 || 未插入 || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次&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;| 低于 6500 mV，短按一次 || 未插入 || [[File:Pcat2-led-red-lowbatt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次&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;div&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;|-&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;| 拔出充电器且关机 || 未插入 || [[File:Pcat2-led-off.gif|44px|link=]] || colspan=&quot;2&quot; | ⚫ 熄灭&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;| 拔出充电器且关机 || 未插入 || [[File:Pcat2-led-off&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || colspan=&quot;2&quot; | ⚫ 熄灭&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;div&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;|}&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l69&quot;&gt;第69行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第69行：&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;! 状态 !! 动画 !! 颜色 !! 形态 !! 节奏&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;! 状态 !! 动画 !! 颜色 !! 形态 !! 节奏&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;div&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;|-&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;| 正在关机 || [[File:Pcat2-led-green-blink-shutdown.gif|44px|link=]] || 🟢 绿色 || 闪烁 || 约亮 0.5 s / 灭 1.5 s&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;| 正在关机 || [[File:Pcat2-led-green-blink-shutdown&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟢 绿色 || 闪烁 || 约亮 0.5 s / 灭 1.5 s&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;div&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;|-&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;| 固件烧录模式 || [[File:Pcat2-led-orange-blink-fast.gif|44px|link=]] || 🟠 黄色 || 快闪 || 周期约 0.5 s&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;| 固件烧录模式 || [[File:Pcat2-led-orange-blink-fast&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 黄色 || 快闪 || 周期约 0.5 s&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;div&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;|-&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;| 复位 / 恢复出厂模式 || [[File:Pcat2-led-orange-blink-slow.gif|44px|link=]] || 🟠 黄色 || 慢闪 || 周期约 1 s&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;| 复位 / 恢复出厂模式 || [[File:Pcat2-led-orange-blink-slow&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-v2&lt;/ins&gt;.gif|44px|link=]] || 🟠 黄色 || 慢闪 || 周期约 1 s&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;div&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;|}&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;!-- diff cache key pcat_wiki:diff:1.41:old-984:rev-1000:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:41:07 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-red-lowbatt-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt-v2.gif&amp;diff=999&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt-v2.gif&amp;diff=999&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt-v2.gif&quot; title=&quot;文件:Pcat2-led-red-lowbatt-v2.gif&quot;&gt;文件:Pcat2-led-red-lowbatt-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:56 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-red-lowbatt-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-orange-solid-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-solid-v2.gif&amp;diff=998&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-solid-v2.gif&amp;diff=998&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-orange-solid-v2.gif&quot; title=&quot;文件:Pcat2-led-orange-solid-v2.gif&quot;&gt;文件:Pcat2-led-orange-solid-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:55 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-orange-solid-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-orange-breathing-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-breathing-v2.gif&amp;diff=997&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-breathing-v2.gif&amp;diff=997&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-orange-breathing-v2.gif&quot; title=&quot;文件:Pcat2-led-orange-breathing-v2.gif&quot;&gt;文件:Pcat2-led-orange-breathing-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:54 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-orange-breathing-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-orange-blink-slow-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-slow-v2.gif&amp;diff=996&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-slow-v2.gif&amp;diff=996&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-slow-v2.gif&quot; title=&quot;文件:Pcat2-led-orange-blink-slow-v2.gif&quot;&gt;文件:Pcat2-led-orange-blink-slow-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:52 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-orange-blink-slow-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-orange-blink-fast-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-fast-v2.gif&amp;diff=995&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-fast-v2.gif&amp;diff=995&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-orange-blink-fast-v2.gif&quot; title=&quot;文件:Pcat2-led-orange-blink-fast-v2.gif&quot;&gt;文件:Pcat2-led-orange-blink-fast-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:51 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-orange-blink-fast-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-off-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-off-v2.gif&amp;diff=994&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-off-v2.gif&amp;diff=994&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-off-v2.gif&quot; title=&quot;文件:Pcat2-led-off-v2.gif&quot;&gt;文件:Pcat2-led-off-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:49 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-off-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-green-solid-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-solid-v2.gif&amp;diff=993&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-solid-v2.gif&amp;diff=993&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-green-solid-v2.gif&quot; title=&quot;文件:Pcat2-led-green-solid-v2.gif&quot;&gt;文件:Pcat2-led-green-solid-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:47 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-green-solid-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-green-heartbeat-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-heartbeat-v2.gif&amp;diff=992&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-heartbeat-v2.gif&amp;diff=992&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-green-heartbeat-v2.gif&quot; title=&quot;文件:Pcat2-led-green-heartbeat-v2.gif&quot;&gt;文件:Pcat2-led-green-heartbeat-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:46 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-green-heartbeat-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-green-breathing-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-breathing-v2.gif&amp;diff=991&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-breathing-v2.gif&amp;diff=991&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-green-breathing-v2.gif&quot; title=&quot;文件:Pcat2-led-green-breathing-v2.gif&quot;&gt;文件:Pcat2-led-green-breathing-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:44 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-green-breathing-v2.gif</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-green-blink-shutdown-v2.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-blink-shutdown-v2.gif&amp;diff=990&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-green-blink-shutdown-v2.gif&amp;diff=990&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-green-blink-shutdown-v2.gif&quot; title=&quot;文件:Pcat2-led-green-blink-shutdown-v2.gif&quot;&gt;文件:Pcat2-led-green-blink-shutdown-v2.gif&lt;/a&gt; Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED animation, white background. New filename to bypass browser/CDN caching of the previous dark-background version.&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:40:42 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-green-blink-shutdown-v2.gif</comments>
		</item>
		<item>
			<title>Main Page</title>
			<link>https://photonicat.com/index.php?title=Main_Page&amp;diff=989&amp;oldid=937</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Main_Page&amp;diff=989&amp;oldid=937</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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-l79&quot;&gt;第79行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第79行：&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;{|width=&amp;quot;90%&amp;quot;&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;{|width=&amp;quot;90%&amp;quot;&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;div&gt;|[[Photonicat 2 新手入门指南]]&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;|[[Photonicat 2 新手入门指南]]&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;光影猫2 &lt;/del&gt;LED 指示灯]]（[[Photonicat 2 LED Indicator|EN]]）&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;Photonicat 2 &lt;/ins&gt;LED 指示灯]]（[[Photonicat 2 LED Indicator|EN]]）&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;光影猫2 &lt;/del&gt;提示音说明]]（[[Photonicat 2 Sound Guide|EN]]）&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;Photonicat 2 &lt;/ins&gt;提示音说明]]（[[Photonicat 2 Sound Guide|EN]]）&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;div&gt;|[[Photonicat 2 小屏幕自定义]]&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;|[[Photonicat 2 小屏幕自定义]]&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;div&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;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-937:rev-989:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:53 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Main_Page</comments>
		</item>
		<item>
			<title>Photonicat 2 新手入门指南</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&amp;diff=988&amp;oldid=932</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97&amp;diff=988&amp;oldid=932</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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-l39&quot;&gt;第39行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第39行：&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;Photonicat 2 只有 1 颗 LED 灯来显示相关的工作状态。颜色表示充电状态（🟠 黄色 = 充电中，🟢 绿色 = 已充满），呼吸与否表示主机状态（呼吸 = 系统运行中，常亮 = 系统已关机）。&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;Photonicat 2 只有 1 颗 LED 灯来显示相关的工作状态。颜色表示充电状态（🟠 黄色 = 充电中，🟢 绿色 = 已充满），呼吸与否表示主机状态（呼吸 = 系统运行中，常亮 = 系统已关机）。&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; 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;&#039;&#039;&#039;完整说明（含全部状态、电压门限与节奏）见 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;光影猫2 &lt;/del&gt;LED 指示灯]]，English: [[Photonicat 2 LED Indicator]]。&#039;&#039;&#039;&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;&#039;&#039;&#039;完整说明（含全部状态、电压门限与节奏）见 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 &lt;/ins&gt;LED 指示灯]]，English: [[Photonicat 2 LED Indicator]]。&#039;&#039;&#039;&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;=== LED灯工作状态表 ===&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;=== LED灯工作状态表 ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-932:rev-988:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:50 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_%E6%96%B0%E6%89%8B%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97</comments>
		</item>
		<item>
			<title>Photonicat 2 Sound Guide</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_Sound_Guide&amp;diff=987&amp;oldid=956</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_Sound_Guide&amp;diff=987&amp;oldid=956</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&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;#039;&amp;#039;&amp;#039;Photonicat 2&amp;#039;&amp;#039;&amp;#039; uses a single buzzer to signal system events. This page lists every tone, its pitch and duration, and what triggers it, and you can play each one here.&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;#039;&amp;#039;&amp;#039;Photonicat 2&amp;#039;&amp;#039;&amp;#039; uses a single buzzer to signal system events. This page lists every tone, its pitch and duration, and what triggers it, and you can play each one here.&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; 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;For the indicator LED see [[Photonicat 2 LED Indicator]]. 中文版见 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;光影猫2 &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;For the indicator LED see [[Photonicat 2 LED Indicator]]. 中文版见 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 &lt;/ins&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;The buzzer can be disabled through the host protocol. Sound and the indicator LED are controlled separately, so either can be silenced without affecting the other.&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;The buzzer can be disabled through the host protocol. Sound and the indicator LED are controlled separately, so either can be silenced without affecting the other.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-956:rev-987:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:48 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_Sound_Guide</comments>
		</item>
		<item>
			<title>Photonicat 2 LED Indicator</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=986&amp;oldid=968</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_Indicator&amp;diff=986&amp;oldid=968</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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-l7&quot;&gt;第7行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第7行：&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;Applies to firmware &amp;#039;&amp;#039;&amp;#039;RA2E1260726001&amp;#039;&amp;#039;&amp;#039; and later. Earlier firmware did not distinguish system on/off while charging or charged.&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;Applies to firmware &amp;#039;&amp;#039;&amp;#039;RA2E1260726001&amp;#039;&amp;#039;&amp;#039; and later. Earlier firmware did not distinguish system on/off while charging or charged.&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; 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;光影猫2 &lt;/del&gt;LED 指示灯]]. For buzzer tones see [[Photonicat 2 Sound Guide]].&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;Photonicat 2 &lt;/ins&gt;LED 指示灯]]. For buzzer tones see [[Photonicat 2 Sound Guide]].&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;==Quick reference==&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;==Quick reference==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-968:rev-986:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:46 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_Indicator</comments>
		</item>
		<item>
			<title>Photonicat 2 提示音说明</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&amp;diff=985&amp;oldid=982</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&amp;diff=985&amp;oldid=982</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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;第1行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第1行：&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;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 用一颗蜂鸣器提示工作状态。本页列出全部提示音的音高、时长与触发条件，并可直接在线试听。&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;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 用一颗蜂鸣器提示工作状态。本页列出全部提示音的音高、时长与触发条件，并可直接在线试听。&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; 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;光影猫2 &lt;/del&gt;LED 指示灯]]。English: [[Photonicat 2 Sound Guide]]。&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;Photonicat 2 &lt;/ins&gt;LED 指示灯]]。English: [[Photonicat 2 Sound Guide]]。&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;蜂鸣器可通过上位机协议关闭（与指示灯共用一个开关设置，可分别控制声音与灯光）。关闭后所有提示音均不发声。&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;蜂鸣器可通过上位机协议关闭（与指示灯共用一个开关设置，可分别控制声音与灯光）。关闭后所有提示音均不发声。&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-982:rev-985:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:44 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E</comments>
		</item>
		<item>
			<title>Photonicat 2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=984&amp;oldid=980</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=984&amp;oldid=980</guid>
			<description>&lt;p&gt;更新链接指向重命名后的页面标题（Photonicat 2 …）&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;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月26日 (日) 11:39的版本&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-l7&quot;&gt;第7行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第7行：&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;#039;&amp;#039;&amp;#039;RA2E1260726001&amp;#039;&amp;#039;&amp;#039; 及之后版本。较早的固件在充电和充满时不区分开关机状态。&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;#039;&amp;#039;&amp;#039;RA2E1260726001&amp;#039;&amp;#039;&amp;#039; 及之后版本。较早的固件在充电和充满时不区分开关机状态。&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; 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;英文版见 [[Photonicat 2 LED Indicator]]。提示音说明见 [[&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;光影猫2 &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;英文版见 [[Photonicat 2 LED Indicator]]。提示音说明见 [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Photonicat 2 &lt;/ins&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;==速查==&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;==速查==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-980:rev-984:php=table --&gt;
&lt;/table&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:42 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>光影猫2 提示音说明</title>
			<link>https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&amp;diff=982&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&amp;diff=982&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;移动页面&lt;a href=&quot;/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&amp;amp;redirect=no&quot; class=&quot;mw-redirect&quot; title=&quot;光影猫2 提示音说明&quot;&gt;光影猫2 提示音说明&lt;/a&gt;至&lt;a href=&quot;/wiki/Photonicat_2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E&quot; title=&quot;Photonicat 2 提示音说明&quot;&gt;Photonicat 2 提示音说明&lt;/a&gt; 统一命名：与其它 Photonicat 2 中文页面保持一致&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 用一颗蜂鸣器提示工作状态。本页列出全部提示音的音高、时长与触发条件，并可直接在线试听。&lt;br /&gt;
&lt;br /&gt;
指示灯说明见 [[光影猫2 LED 指示灯]]。English: [[Photonicat 2 Sound Guide]]。&lt;br /&gt;
&lt;br /&gt;
蜂鸣器可通过上位机协议关闭（与指示灯共用一个开关设置，可分别控制声音与灯光）。关闭后所有提示音均不发声。&lt;br /&gt;
&lt;br /&gt;
==速查==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 提示音 !! 听感 !! 含义&lt;br /&gt;
|-&lt;br /&gt;
| 🔔 两声短促上行 || 嘀-嘀 || 开机&lt;br /&gt;
|-&lt;br /&gt;
| 🔕 三声下行 || 嘀-嘟-哆 || 关机&lt;br /&gt;
|-&lt;br /&gt;
| 🔌 两声上行 || 嘀-嘀（低起） || 插入充电器&lt;br /&gt;
|-&lt;br /&gt;
| ⚡ 明亮三连音 || 嘀-嘀-嘀（上行） || 正在给外接设备供电&lt;br /&gt;
|-&lt;br /&gt;
| 🔊 单声短促 || 嘀 || 充电电流达到标准&lt;br /&gt;
|-&lt;br /&gt;
| 🚨 四组高低交替 || 嘀-嘟 ×4 || 温度过高，已关闭主机&lt;br /&gt;
|-&lt;br /&gt;
| 🛠 高低交替两轮 || 嘟-嘀 ×2 || 进入固件烧录模式&lt;br /&gt;
|-&lt;br /&gt;
| ♻ 八声高低交替 || 长串高低音 || 进入恢复出厂设置模式&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 上行琶音 3 秒 || 由低到高一串 || 数据擦除成功，即将重启&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 下行低音 2 秒 || 由高到低，低沉 || 数据擦除失败，即将重启&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 明亮上行 2 秒 || 短促上行动机 || 固件升级成功，即将重启&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==完整提示音表==&lt;br /&gt;
&lt;br /&gt;
频率单位 Hz，时长单位 ms。“静音”表示该步不发声只等待。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 提示音 !! 试听 !! 序列（频率 Hz / 时长 ms） !! 总时长 !! 触发条件&lt;br /&gt;
|-&lt;br /&gt;
| 开机 || [[File:Pcat2-boot.mp3|noicon]] || 1300/75 → 1500/75 || 0.15 s || 长按电源键开机&lt;br /&gt;
|-&lt;br /&gt;
| 关机 || [[File:Pcat2-shutdown.mp3|noicon]] || 2000/150 → 1500/150 → 1000/150 || 0.45 s || 长按电源键关机，或低电量自动关机&lt;br /&gt;
|-&lt;br /&gt;
| 插入充电器 || [[File:Pcat2-charger-in.mp3|noicon]] || 432/150 → 528/75 || 0.23 s || 检测到充电器接入&lt;br /&gt;
|-&lt;br /&gt;
| 对外供电 || [[File:Pcat2-powering-device.mp3|noicon]] || 523/55 → 659/55 → 784/80 || 0.19 s || DC 在位且电池在放电，即正在给外接设备供电（需持续 4 秒才提示）&lt;br /&gt;
|-&lt;br /&gt;
| 充电电流达标 || [[File:Pcat2-charge-current-ok.mp3|noicon]] || 2500/100 || 0.10 s || 充电电流达到设定标准&lt;br /&gt;
|-&lt;br /&gt;
| 温度过高 || [[File:Pcat2-over-temperature.mp3|noicon]] || (2500/100 → 500/100) ×4 || 0.80 s || 温度超过门限，已关闭主机&lt;br /&gt;
|-&lt;br /&gt;
| 烧录模式 || [[File:Pcat2-download-mode.mp3|noicon]] || (3000/300 → 2000/300) ×2 || 1.20 s || 关机状态下短按 3 下再长按 10 秒以上&lt;br /&gt;
|-&lt;br /&gt;
| 恢复出厂 || [[File:Pcat2-factory-reset.mp3|noicon]] || 4000/300 → 1000/300 → 2000/300 → 3000/300 → 2000/300 → 4000/300 → 3000/300 → 1000/300 || 2.40 s || 关机状态下短按 1 下再长按 17 秒以上&lt;br /&gt;
|-&lt;br /&gt;
| MCU 上电（新 bootloader） || [[File:Pcat2-mcu-boot-new.mp3|noicon]] || 4000/30 → 静音 1000 → 4000/200 || 1.23 s || MCU 上电自检&lt;br /&gt;
|-&lt;br /&gt;
| MCU 上电（旧 bootloader） || [[File:Pcat2-mcu-boot-old.mp3|noicon]] || 4000/200 || 0.20 s || MCU 上电自检&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==重启前提示音==&lt;br /&gt;
&lt;br /&gt;
以下三段为&amp;#039;&amp;#039;&amp;#039;阻塞播放&amp;#039;&amp;#039;&amp;#039;：播完整段才会执行复位，因此时长即为复位前的等待时间。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 提示音 !! 试听 !! 序列（频率 Hz / 时长 ms） !! 总时长 !! 触发条件&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 擦除成功 || [[File:Pcat2-wipe-ok.mp3|noicon]]&amp;lt;br/&amp;gt;[[:File:Pcat2-wipe-ok.mid|MIDI]] || 523/160 → 659/160 → 784/160 → 1047/160 → 1319/160 → 1568/160 → 2093/258 → 静音 74 → 1568/135 → 2093/135 → 2637/429 → 静音 92 → 2093/184 → 2637/184 → 3136/552 || 3.00 s || 出厂数据擦除成功，随即重启&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 擦除失败 || [[File:Pcat2-wipe-fail.mp3|noicon]]&amp;lt;br/&amp;gt;[[:File:Pcat2-wipe-fail.mid|MIDI]] || 440/357 → 静音 51 → 415/357 → 静音 51 → 392/357 → 静音 51 → 330/765 || 1.99 s || 出厂数据擦除失败，随即重启&lt;br /&gt;
|-&lt;br /&gt;
| 🎵 升级成功 || [[File:Pcat2-update-ok.mp3|noicon]]&amp;lt;br/&amp;gt;[[:File:Pcat2-update-ok.mid|MIDI]] || 784/170 → 1047/170 → 1319/170 → 1568/382 → 静音 102 → 1319/170 → 1568/170 → 2093/638 || 1.97 s || MCU 固件升级成功，随即重启&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;注：&amp;#039;&amp;#039;&amp;#039;自固件 RA2E1260726002 起，这三段整体加快（擦除成功由 4.89 s 压到 3.00 s，另两段各加快约 15 %），音型不变，只是节奏更紧凑，重启等待更短。&lt;br /&gt;
&lt;br /&gt;
==关于试听文件==&lt;br /&gt;
&lt;br /&gt;
试听用的 mp3 由固件里的实际音符表（频率+时长）直接合成，采用方波，与蜂鸣器的听感一致；实际设备上的音色会因蜂鸣器与腔体而略有差别。三段重启前旋律另附 MIDI 文件，方便二次编辑。&lt;br /&gt;
&lt;br /&gt;
==说明==&lt;br /&gt;
&lt;br /&gt;
* 提示音与指示灯可分别开关：声音关闭后指示灯仍正常工作，反之亦然。&lt;br /&gt;
* “对外供电”提示需放电条件连续保持 4 秒才触发，避免插拔充电器的瞬态误报。&lt;br /&gt;
* 重启前的三段提示音播放期间会正常喂看门狗，不会因为播放时间长而触发意外复位。&lt;br /&gt;
&lt;br /&gt;
[[Category:Photonicat 2]]&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:18 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:%E5%85%89%E5%BD%B1%E7%8C%AB2_%E6%8F%90%E7%A4%BA%E9%9F%B3%E8%AF%B4%E6%98%8E</comments>
		</item>
		<item>
			<title>光影猫2 LED 指示灯</title>
			<link>https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=980&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;diff=980&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;移动页面&lt;a href=&quot;/index.php?title=%E5%85%89%E5%BD%B1%E7%8C%AB2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&amp;amp;redirect=no&quot; class=&quot;mw-redirect&quot; title=&quot;光影猫2 LED 指示灯&quot;&gt;光影猫2 LED 指示灯&lt;/a&gt;至&lt;a href=&quot;/wiki/Photonicat_2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF&quot; title=&quot;Photonicat 2 LED 指示灯&quot;&gt;Photonicat 2 LED 指示灯&lt;/a&gt; 统一命名：与其它 Photonicat 2 中文页面保持一致&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;光影猫2&amp;#039;&amp;#039;&amp;#039; 只有一颗双色指示灯（红 + 绿）。黄色（橙色）由红绿同时点亮合成，没有蓝色。&lt;br /&gt;
&lt;br /&gt;
指示灯采用 MacBook 式的表示方式：&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;颜色表示充电状态&amp;#039;&amp;#039;&amp;#039; —— 🟠 黄色 = 正在充电，🟢 绿色 = 已充满。&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;呼吸与否表示主机状态&amp;#039;&amp;#039;&amp;#039; —— 呼吸 = 系统运行中，常亮 = 系统已关机。&lt;br /&gt;
&lt;br /&gt;
适用于固件 &amp;#039;&amp;#039;&amp;#039;RA2E1260726001&amp;#039;&amp;#039;&amp;#039; 及之后版本。较早的固件在充电和充满时不区分开关机状态。&lt;br /&gt;
&lt;br /&gt;
英文版见 [[Photonicat 2 LED Indicator]]。提示音说明见 [[光影猫2 提示音说明]]。&lt;br /&gt;
&lt;br /&gt;
==速查==&lt;br /&gt;
&lt;br /&gt;
以下动画为示意，节奏与实际固件一致（呼吸周期 5.84 秒、心跳周期 2 秒）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 动画 !! 指示灯 !! 含义&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-orange-breathing.gif|52px|link=]] || 🟠 黄色呼吸 || 正在充电，系统运行中&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-orange-solid.gif|52px|link=]] || 🟠 黄色常亮 || 正在充电，系统已关机&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-green-breathing.gif|52px|link=]] || 🟢 绿色呼吸 || 已充满（或已达充电上限），系统运行中&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-green-solid.gif|52px|link=]] || 🟢 绿色常亮 || 已充满（或已达充电上限），系统已关机&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-green-heartbeat.gif|52px|link=]] || 🟢 绿色心跳脉冲 || 电池供电运行中，电量正常&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-red-lowbatt.gif|52px|link=]] || 🔴 红色闪 3 次 || 电量低&lt;br /&gt;
|-&lt;br /&gt;
| [[File:Pcat2-led-off.gif|52px|link=]] || ⚫ 熄灭 || 电池供电待机，系统已关机&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==完整状态表==&lt;br /&gt;
&lt;br /&gt;
电压门限为固件默认值，可由上位机覆盖。以下为 2S 电池组数值：满电 8280 mV、低电告警 6500 mV、最低开机 6600 mV、强制关机 6300 mV。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 电量 !! 充电器 !! 动画 !! 颜色 !! 形态 !! 节奏&lt;br /&gt;
|-&lt;br /&gt;
| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-breathing.gif|44px|link=]] || 🟠 黄色 || 呼吸（开机） || 渐亮 2.8 s / 渐暗 2.8 s / 熄灭 0.24 s，周期约 5.84 s&lt;br /&gt;
|-&lt;br /&gt;
| 充电中，任意电量 || 已插入 || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 黄色 || 常亮（关机） || 持续&lt;br /&gt;
|-&lt;br /&gt;
| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-breathing.gif|44px|link=]] || 🟢 绿色 || 呼吸（开机） || 同为 5.84 s 周期，延迟 10 s 后生效&lt;br /&gt;
|-&lt;br /&gt;
| 已充满或达充电上限 || 已插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮（关机） || 持续，延迟 10 s 后生效&lt;br /&gt;
|-&lt;br /&gt;
| 低于 6600 mV，DC ≥ 8 V 且无充电电流 || 已插入 || [[File:Pcat2-led-orange-solid.gif|44px|link=]] || 🟠 黄色 || 常亮 || 持续&lt;br /&gt;
|-&lt;br /&gt;
| 高于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-green-heartbeat.gif|44px|link=]] || 🟢 绿色 || 心跳脉冲 || 周期 2 s&lt;br /&gt;
|-&lt;br /&gt;
| 高于 6500 mV，正在开机 || 未插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&lt;br /&gt;
|-&lt;br /&gt;
| 高于 6600 mV，关机 || 未插入 || [[File:Pcat2-led-green-solid.gif|44px|link=]] || 🟢 绿色 || 常亮 || 持续&lt;br /&gt;
|-&lt;br /&gt;
| 低于 6500 mV，开机 || 未插入 || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次，60 s 后开始&lt;br /&gt;
|-&lt;br /&gt;
| 低于 6500 mV，短按一次 || 未插入 || [[File:Pcat2-led-red-lowbatt.gif|44px|link=]] || 🔴 红色 || 闪烁 || 亮 1 s / 灭 1 s，共 3 次&lt;br /&gt;
|-&lt;br /&gt;
| 拔出充电器且关机 || 未插入 || [[File:Pcat2-led-off.gif|44px|link=]] || colspan=&amp;quot;2&amp;quot; | ⚫ 熄灭&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==服务与过渡状态==&lt;br /&gt;
&lt;br /&gt;
以下状态优先级高于上表。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 状态 !! 动画 !! 颜色 !! 形态 !! 节奏&lt;br /&gt;
|-&lt;br /&gt;
| 正在关机 || [[File:Pcat2-led-green-blink-shutdown.gif|44px|link=]] || 🟢 绿色 || 闪烁 || 约亮 0.5 s / 灭 1.5 s&lt;br /&gt;
|-&lt;br /&gt;
| 固件烧录模式 || [[File:Pcat2-led-orange-blink-fast.gif|44px|link=]] || 🟠 黄色 || 快闪 || 周期约 0.5 s&lt;br /&gt;
|-&lt;br /&gt;
| 复位 / 恢复出厂模式 || [[File:Pcat2-led-orange-blink-slow.gif|44px|link=]] || 🟠 黄色 || 慢闪 || 周期约 1 s&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==充电上限==&lt;br /&gt;
&lt;br /&gt;
若设置了充电上限（例如 80 %），电量达到上限后会断开充电，充电电流归零，设备据此按“已充满”处理并显示 🟢 &amp;#039;&amp;#039;&amp;#039;绿色&amp;#039;&amp;#039;&amp;#039;。此后由电池给负载供电并缓慢放电，低于恢复门限后重新开始充电，指示灯回到 🟠 黄色。每次切换约有 10 秒延迟。&lt;br /&gt;
&lt;br /&gt;
==说明==&lt;br /&gt;
&lt;br /&gt;
* 呼吸的峰值亮度（25 % 占空）低于常亮（50 %），因此同色下呼吸看起来更暗。&lt;br /&gt;
* 🔴 红色仅用于低电量提示，闪 3 次后停止，不会持续闪烁。&lt;br /&gt;
* 指示灯可通过上位机协议整体关闭，关闭后所有状态均不亮灯。&lt;br /&gt;
&lt;br /&gt;
[[Category:Photonicat 2]]&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:39:17 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E8%AE%A8%E8%AE%BA:%E5%85%89%E5%BD%B1%E7%8C%AB2_LED_%E6%8C%87%E7%A4%BA%E7%81%AF</comments>
		</item>
		<item>
			<title>文件:Pcat2-led-red-lowbatt.gif</title>
			<link>https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt.gif&amp;diff=979&amp;oldid=0</link>
			<guid isPermaLink="false">https://photonicat.com/index.php?title=%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt.gif&amp;diff=979&amp;oldid=0</guid>
			<description>&lt;p&gt;&lt;a href=&quot;/index.php?title=%E7%94%A8%E6%88%B7:C2h2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;mw-userlink new&quot; title=&quot;用户:C2h2（页面不存在）&quot;&gt;&lt;bdi&gt;C2h2&lt;/bdi&gt;&lt;/a&gt;上传&lt;a href=&quot;/wiki/%E6%96%87%E4%BB%B6:Pcat2-led-red-lowbatt.gif&quot; title=&quot;文件:Pcat2-led-red-lowbatt.gif&quot;&gt;文件:Pcat2-led-red-lowbatt.gif&lt;/a&gt;的新版本 White background version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Photonicat 2 LED indicator animation, timing generated from firmware RA2E1260726002 (sine_q16 table, 20ms/step)&lt;/div&gt;</description>
			<pubDate>Sun, 26 Jul 2026 03:25:28 GMT</pubDate>
			<dc:creator>C2h2</dc:creator>
			<comments>https://photonicat.com/wiki/%E6%96%87%E4%BB%B6%E8%AE%A8%E8%AE%BA:Pcat2-led-red-lowbatt.gif</comments>
		</item>
</channel></rss>