<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Smart Home Automation Forum - G1]]></title>
		<link>https://www.kincony.com/forum/</link>
		<description><![CDATA[Smart Home Automation Forum - https://www.kincony.com/forum]]></description>
		<pubDate>Sun, 26 Apr 2026 17:08:30 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[G1 cannot flash latest firmware]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9113</link>
			<pubDate>Thu, 12 Mar 2026 17:20:33 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=8270">Bodad</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9113</guid>
			<description><![CDATA[Hi.  My G1 isn't connecting to the mobile network.  This happens regularly.  A simple reboot sometimes corrects this but ultimately, a firmware flash is the only way to reinstate mobile connectivity.  However, when I try to re-flash the G1 with KCS_G1_V3.19.1.bin, the flash <!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9355" target="_blank" title="">Screenshot 2026-03-12 090902.png</a> (Size: 9.81 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><br />
interface starts the erase process but when the installation process starts, it report that the device has been reset to firmware mode?<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9356" target="_blank" title="">Screenshot 2026-03-12 091613.png</a> (Size: 13.19 KB / Downloads: 88)
<!-- end: postbit_attachments_attachment --> <br />
<br />
I'm using Tasmota web installer to flash.  It has always worked before.  How can I re-flash the G1?<br />
<br />
Thanks in anticipation.]]></description>
			<content:encoded><![CDATA[Hi.  My G1 isn't connecting to the mobile network.  This happens regularly.  A simple reboot sometimes corrects this but ultimately, a firmware flash is the only way to reinstate mobile connectivity.  However, when I try to re-flash the G1 with KCS_G1_V3.19.1.bin, the flash <!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9355" target="_blank" title="">Screenshot 2026-03-12 090902.png</a> (Size: 9.81 KB / Downloads: 96)
<!-- end: postbit_attachments_attachment --><br />
interface starts the erase process but when the installation process starts, it report that the device has been reset to firmware mode?<br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/image.png" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=9356" target="_blank" title="">Screenshot 2026-03-12 091613.png</a> (Size: 13.19 KB / Downloads: 88)
<!-- end: postbit_attachments_attachment --> <br />
<br />
I'm using Tasmota web installer to flash.  It has always worked before.  How can I re-flash the G1?<br />
<br />
Thanks in anticipation.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Incoming SMS not reported via MQTT]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9068</link>
			<pubDate>Sun, 22 Feb 2026 05:12:12 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1292">JCh</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9068</guid>
			<description><![CDATA[Hello,<br />
I am using <span style="font-weight: bold;" class="mycode_b">Kincony G1</span> with <span style="font-weight: bold;" class="mycode_b">SIM7600</span> module fw <span style="font-weight: bold;" class="mycode_b">KCS 3.19.1</span> and MQTT integration.<br />
<br />
According to the forum documentation, incoming SMS should be reported via MQTT STATE  topic in this format: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>{<br />
 "sms_recv": {<br />
 "phone": "+8612345678901",<br />
 "content": "example"<br />
 }<br />
}</code></div></div><br />
<br />
Unfortunately, I am unable to get this working.<br />
My setup:<ul class="mycode_list"><li>Device: <span style="font-weight: bold;" class="mycode_b">Kincony G1</span><br />
</li>
<li>GSM module: <span style="font-weight: bold;" class="mycode_b">SIM7600</span><br />
</li>
<li>Firmware: <span style="font-weight: bold;" class="mycode_b">KCS v3.19.1</span><br />
</li>
<li>MQTT broker: working correctly<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Home Assistant 2026.2.3</span><br />
</li>
<li>Topics: <br />
 G1/XXXXXXXXXXXX/SET -  working (sending SMS works)<br />
 G1/XXXXXXXXXXXX/STATE -  working (inputs, call_ring, etc.)<br />
</li>
</ul>
What works:<ul class="mycode_list"><li>MQTT STATE reporting for inputs (input1…input12)<br />
</li>
<li>Outgoing SMS via MQTT (run_sms)<br />
</li>
</ul>
<br />
What does NOT work:<ul class="mycode_list"><li>Incoming SMS and calling are not reported to MQTT<br />
</li>
<li>No (sms_recv) payload is published to STATE topic<br />
</li>
</ul>
<br />
Tests performed:<ul class="mycode_list"><li>Clean SIM card (no stored SMS)<br />
</li>
<li>Very simple SMS content: TEST (no diacritics, no multipart)<br />
</li>
</ul>
When an SMS is received, no new MQTT message is published at all.<br />
<br />
Question: Is sms_recv currently supported on Kincony G1 with SIM7600 in official KCS v3 firmware?<br />
<br />
If yes:<ul class="mycode_list"><li>Is there any additional configuration required?<br />
</li>
<li>Is SMS TEXT mode (AT+CMGF=1) required and handled automatically by firmware?<br />
</li>
</ul>
<br />
If not:<ul class="mycode_list"><li>Can you confirm that incoming SMS → MQTT reporting is currently not supported / disabled for this hardware?<br />
</li>
</ul>
Thank you for clarification.]]></description>
			<content:encoded><![CDATA[Hello,<br />
I am using <span style="font-weight: bold;" class="mycode_b">Kincony G1</span> with <span style="font-weight: bold;" class="mycode_b">SIM7600</span> module fw <span style="font-weight: bold;" class="mycode_b">KCS 3.19.1</span> and MQTT integration.<br />
<br />
According to the forum documentation, incoming SMS should be reported via MQTT STATE  topic in this format: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>{<br />
 "sms_recv": {<br />
 "phone": "+8612345678901",<br />
 "content": "example"<br />
 }<br />
}</code></div></div><br />
<br />
Unfortunately, I am unable to get this working.<br />
My setup:<ul class="mycode_list"><li>Device: <span style="font-weight: bold;" class="mycode_b">Kincony G1</span><br />
</li>
<li>GSM module: <span style="font-weight: bold;" class="mycode_b">SIM7600</span><br />
</li>
<li>Firmware: <span style="font-weight: bold;" class="mycode_b">KCS v3.19.1</span><br />
</li>
<li>MQTT broker: working correctly<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Home Assistant 2026.2.3</span><br />
</li>
<li>Topics: <br />
 G1/XXXXXXXXXXXX/SET -  working (sending SMS works)<br />
 G1/XXXXXXXXXXXX/STATE -  working (inputs, call_ring, etc.)<br />
</li>
</ul>
What works:<ul class="mycode_list"><li>MQTT STATE reporting for inputs (input1…input12)<br />
</li>
<li>Outgoing SMS via MQTT (run_sms)<br />
</li>
</ul>
<br />
What does NOT work:<ul class="mycode_list"><li>Incoming SMS and calling are not reported to MQTT<br />
</li>
<li>No (sms_recv) payload is published to STATE topic<br />
</li>
</ul>
<br />
Tests performed:<ul class="mycode_list"><li>Clean SIM card (no stored SMS)<br />
</li>
<li>Very simple SMS content: TEST (no diacritics, no multipart)<br />
</li>
</ul>
When an SMS is received, no new MQTT message is published at all.<br />
<br />
Question: Is sms_recv currently supported on Kincony G1 with SIM7600 in official KCS v3 firmware?<br />
<br />
If yes:<ul class="mycode_list"><li>Is there any additional configuration required?<br />
</li>
<li>Is SMS TEXT mode (AT+CMGF=1) required and handled automatically by firmware?<br />
</li>
</ul>
<br />
If not:<ul class="mycode_list"><li>Can you confirm that incoming SMS → MQTT reporting is currently not supported / disabled for this hardware?<br />
</li>
</ul>
Thank you for clarification.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9034</link>
			<pubDate>Tue, 10 Feb 2026 08:44:09 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=485">mcdave</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=9034</guid>
			<description><![CDATA[Hi Admin,<br />
<br />
<span style="color: #1f1f1f;" class="mycode_color"><span style="font-family: Roboto, Helvetica, Arial, sans-serif;" class="mycode_font">I am planning to add a relay module to the G1, and I was wondering if you have any diagrams that I could use as a reference for how to properly add it.</span></span><br />
<br />
This correct?<br />
<br />
GPIO12 → relay IN<br />
GND    → relay GND<br />
5V    → relay VCC<br />
<br />
12V+  → COM<br />
NO    → Siren+<br />
Siren- → GND<br />
<br />
<br />
<span style="color: #1f1f1f;" class="mycode_color"><span style="font-family: Roboto, Helvetica, Arial, sans-serif;" class="mycode_font">Thank you for your help.</span></span>]]></description>
			<content:encoded><![CDATA[Hi Admin,<br />
<br />
<span style="color: #1f1f1f;" class="mycode_color"><span style="font-family: Roboto, Helvetica, Arial, sans-serif;" class="mycode_font">I am planning to add a relay module to the G1, and I was wondering if you have any diagrams that I could use as a reference for how to properly add it.</span></span><br />
<br />
This correct?<br />
<br />
GPIO12 → relay IN<br />
GND    → relay GND<br />
5V    → relay VCC<br />
<br />
12V+  → COM<br />
NO    → Siren+<br />
Siren- → GND<br />
<br />
<br />
<span style="color: #1f1f1f;" class="mycode_color"><span style="font-family: Roboto, Helvetica, Arial, sans-serif;" class="mycode_font">Thank you for your help.</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[RS485 communicattion]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8620</link>
			<pubDate>Thu, 02 Oct 2025 16:57:18 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=5409">SixSixOne</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8620</guid>
			<description><![CDATA[Hello again,<br />
I have one KC868-G1 and one KC868-AI could you please assit on how to connect each other with RS485 connection and use the G1 to read all digital inputs from the AI in home assistant.<br />
<br />
The reason I need RS485 is for redundancy in case network drops.<br />
<br />
Thank tou<br />
Dimitris]]></description>
			<content:encoded><![CDATA[Hello again,<br />
I have one KC868-G1 and one KC868-AI could you please assit on how to connect each other with RS485 connection and use the G1 to read all digital inputs from the AI in home assistant.<br />
<br />
The reason I need RS485 is for redundancy in case network drops.<br />
<br />
Thank tou<br />
Dimitris]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[KinCony G1 - RS485 with expansion card]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8422</link>
			<pubDate>Thu, 07 Aug 2025 07:25:31 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=5409">SixSixOne</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8422</guid>
			<description><![CDATA[Hello,<br />
I've received a G1 device and my intention is to connect it with an RS485 IO expansion card 16In - 16Out (Maker: Eletechsup // N4D2E16).<br />
The issue is that although I can send commands to the card and enable the Outputs by using custom RS485 protocol and IFTTT command (from the DI of the G1 board), I cannot receive info from N4D2E16 Inputs to the G1 in order to use them in Home Assistant.<br />
<br />
How can I see the inputs of the board as well?<br />
Tks<br />
SSO]]></description>
			<content:encoded><![CDATA[Hello,<br />
I've received a G1 device and my intention is to connect it with an RS485 IO expansion card 16In - 16Out (Maker: Eletechsup // N4D2E16).<br />
The issue is that although I can send commands to the card and enable the Outputs by using custom RS485 protocol and IFTTT command (from the DI of the G1 board), I cannot receive info from N4D2E16 Inputs to the G1 in order to use them in Home Assistant.<br />
<br />
How can I see the inputs of the board as well?<br />
Tks<br />
SSO]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 fails to register incoming calls]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=8087</link>
			<pubDate>Sun, 18 May 2025 21:50:52 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=8270">Bodad</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=8087</guid>
			<description><![CDATA[Hi!<br />
<br />
I've been using the G1 with 4G SIM as a gate opener for a few months now.  Some time ago, the G1 stopped registering incoming calls (RING +441234567890 etc not appearing on screen) and the number was not being sent to my MQTT broker.  I reflashed with the latest firmware available at the time (3.9.1) and everything started working OK again.  The problem has returned.  I've reflashed with the latest firmware (3.9.2) but the incoming call isn't being registered on the screen or being sent over MQTT.  I can send and receive text messages OK and the 4G online signal is 64%.  I can also make a test call from the G1 to my mobile which does cause my phone to ring.<br />
<br />
When I first installed the G1, calls to it rang until I cancelled the call.  Shortly after, incoming calls were rejected after 1 ring but the SSID was displayed on the screen and passed over MQTT, a better solution for my use case.  The incoming calls are still rejected after 1 ring, but the call isn't being registered.<br />
<br />
Is there something that I can do to return the incoming call/CallerID functionality?<br />
<br />
Thanks,<br />
<br />
Bodad<br />
<hr class="mycode_hr" />
Hi again,<br />
<br />
Scratch that.  I tried a different SIM and it all worked fine.  It must be something about the SIM which is a provider issue, not a G1 issue.  However, it would still be helpful to have a setting that allows the number to ring a set number of times (or just until the CallerID is captured) and then rejects the call.<br />
<br />
Thanks,<br />
<br />
Bodad]]></description>
			<content:encoded><![CDATA[Hi!<br />
<br />
I've been using the G1 with 4G SIM as a gate opener for a few months now.  Some time ago, the G1 stopped registering incoming calls (RING +441234567890 etc not appearing on screen) and the number was not being sent to my MQTT broker.  I reflashed with the latest firmware available at the time (3.9.1) and everything started working OK again.  The problem has returned.  I've reflashed with the latest firmware (3.9.2) but the incoming call isn't being registered on the screen or being sent over MQTT.  I can send and receive text messages OK and the 4G online signal is 64%.  I can also make a test call from the G1 to my mobile which does cause my phone to ring.<br />
<br />
When I first installed the G1, calls to it rang until I cancelled the call.  Shortly after, incoming calls were rejected after 1 ring but the SSID was displayed on the screen and passed over MQTT, a better solution for my use case.  The incoming calls are still rejected after 1 ring, but the call isn't being registered.<br />
<br />
Is there something that I can do to return the incoming call/CallerID functionality?<br />
<br />
Thanks,<br />
<br />
Bodad<br />
<hr class="mycode_hr" />
Hi again,<br />
<br />
Scratch that.  I tried a different SIM and it all worked fine.  It must be something about the SIM which is a provider issue, not a G1 issue.  However, it would still be helpful to have a setting that allows the number to ring a set number of times (or just until the CallerID is captured) and then rejects the call.<br />
<br />
Thanks,<br />
<br />
Bodad]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 External Antenna for 4G]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7880</link>
			<pubDate>Sat, 29 Mar 2025 00:01:34 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=8270">Bodad</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7880</guid>
			<description><![CDATA[Hi,<br />
<br />
Can you tell me what type of antenna I would have to buy if I wanted to position one away from the G1?  Are all the three supplied antenna the same?<br />
<br />
Thanks,<br />
<br />
Bodad]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
Can you tell me what type of antenna I would have to buy if I wanted to position one away from the G1?  Are all the three supplied antenna the same?<br />
<br />
Thanks,<br />
<br />
Bodad]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 connection problem to KC868-A16v3]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7875</link>
			<pubDate>Thu, 27 Mar 2025 00:08:26 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=8145">classiccars</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7875</guid>
			<description><![CDATA[I get no Test SMS going out via A16v3<br />
<br />
Test SMS with standalone G1 worked, so SIM ist OK. <br />
<br />
Connected G1 GPIO 13 (TX) with A16v3 GPIO 40 (RX)<br />
Connected G1 GPIO 14 (RX) with A16v3 GPIO 39 (TX) <br />
<br />
Network/GSM is enabled on A16v3 <br />
GSM Bridge is enabled on G1<br />
<br />
<br />
<br />
What might be wrong?]]></description>
			<content:encoded><![CDATA[I get no Test SMS going out via A16v3<br />
<br />
Test SMS with standalone G1 worked, so SIM ist OK. <br />
<br />
Connected G1 GPIO 13 (TX) with A16v3 GPIO 40 (RX)<br />
Connected G1 GPIO 14 (RX) with A16v3 GPIO 39 (TX) <br />
<br />
Network/GSM is enabled on A16v3 <br />
GSM Bridge is enabled on G1<br />
<br />
<br />
<br />
What might be wrong?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 Incoming Call Handling]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7874</link>
			<pubDate>Wed, 26 Mar 2025 19:12:31 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=8270">Bodad</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7874</guid>
			<description><![CDATA[Hi,<br />
<br />
I've recently taken delivery of a G1 and it's working as per your YouTube videos. My application is as a gate opener, so I have a few requests for development into the KCS interface:<br />
<ol type="1" class="mycode_list"><li>Add an option to reject (ie hang up) incoming calls once the CallerId has been captured (simple enabled/disabled switch).<br />
</li>
<li>Add the option of creating a "whitelist" of incoming numbers which are "allowed".  If the CallerId is in the whitelist, it gets passed on via whichever protocol is used.  Ideally, it would be helpful to have a name associated with the number so that it's easier to work out who is on the list and not.<br />
</li>
<li>Add the name from the whitelist to the CallerId e.g.<br />
</li>
</ol>
<br />
           { <br />
               "call_ring": {<br />
                       "phone": "+8612345678901", <br />
                       "name": "Kincony Test"<br />
               } <br />
            }<br />
<br />
      4. Add MQTT to the IFTTT protocol as both an input and output.<br />
<br />
Thank you,<br />
<br />
Bodad]]></description>
			<content:encoded><![CDATA[Hi,<br />
<br />
I've recently taken delivery of a G1 and it's working as per your YouTube videos. My application is as a gate opener, so I have a few requests for development into the KCS interface:<br />
<ol type="1" class="mycode_list"><li>Add an option to reject (ie hang up) incoming calls once the CallerId has been captured (simple enabled/disabled switch).<br />
</li>
<li>Add the option of creating a "whitelist" of incoming numbers which are "allowed".  If the CallerId is in the whitelist, it gets passed on via whichever protocol is used.  Ideally, it would be helpful to have a name associated with the number so that it's easier to work out who is on the list and not.<br />
</li>
<li>Add the name from the whitelist to the CallerId e.g.<br />
</li>
</ol>
<br />
           { <br />
               "call_ring": {<br />
                       "phone": "+8612345678901", <br />
                       "name": "Kincony Test"<br />
               } <br />
            }<br />
<br />
      4. Add MQTT to the IFTTT protocol as both an input and output.<br />
<br />
Thank you,<br />
<br />
Bodad]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 keypad and LCD display information]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7785</link>
			<pubDate>Tue, 11 Mar 2025 21:26:28 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7785</guid>
			<description><![CDATA[The LCD screen displays the mobile signal strength in the top-left corner.<br />
The LCD screen displays the time in the top-right corner.<br />
<br />
Keyboard functions:<br />
<br />
* Delete key<br />
# Call key<br />
When a call is received, the LCD screen displays "RING".]]></description>
			<content:encoded><![CDATA[The LCD screen displays the mobile signal strength in the top-left corner.<br />
The LCD screen displays the time in the top-right corner.<br />
<br />
Keyboard functions:<br />
<br />
* Delete key<br />
# Call key<br />
When a call is received, the LCD screen displays "RING".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[KCS v3 GSM MQTT protocol]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7784</link>
			<pubDate>Tue, 11 Mar 2025 21:01:29 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=1">admin</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7784</guid>
			<description><![CDATA[MQTT:<br />
<br />
Making a Call<br />
<br />
{<br />
  "run_call": {<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Successful Response:<br />
<br />
{<br />
  "run_call": {<br />
    "value": "success"<br />
  }<br />
}<br />
<br />
Failed Response:<br />
Possible reasons: GPRS is not initialized, or the phone number is not set.<br />
<br />
{<br />
  "run_call": {<br />
    "value": "error"<br />
  }<br />
}<br />
<br />
--------------------------------<br />
<br />
Sending an SMS<br />
<br />
{<br />
  "run_sms": {<br />
    "content": "sms content example",<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Successful Response:<br />
<br />
{<br />
  "run_sms": {<br />
    "value": "success"<br />
  }<br />
}<br />
<br />
Failed Response:<br />
Possible reasons: GPRS is not initialized, the phone number is not set, or the SMS content is not set.<br />
<br />
{<br />
  "run_sms": {<br />
    "value": "error"<br />
  }<br />
}<br />
<br />
--------------------------------<br />
MQTT STATE Reporting Received SMS and Incoming Calls<br />
<br />
Incoming Call<br />
<br />
{<br />
  "call_ring": {<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Received SMS<br />
<br />
{<br />
  "sms_recv": {<br />
    "phone": "+8612345678901",<br />
    "content": "example"<br />
  }<br />
}]]></description>
			<content:encoded><![CDATA[MQTT:<br />
<br />
Making a Call<br />
<br />
{<br />
  "run_call": {<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Successful Response:<br />
<br />
{<br />
  "run_call": {<br />
    "value": "success"<br />
  }<br />
}<br />
<br />
Failed Response:<br />
Possible reasons: GPRS is not initialized, or the phone number is not set.<br />
<br />
{<br />
  "run_call": {<br />
    "value": "error"<br />
  }<br />
}<br />
<br />
--------------------------------<br />
<br />
Sending an SMS<br />
<br />
{<br />
  "run_sms": {<br />
    "content": "sms content example",<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Successful Response:<br />
<br />
{<br />
  "run_sms": {<br />
    "value": "success"<br />
  }<br />
}<br />
<br />
Failed Response:<br />
Possible reasons: GPRS is not initialized, the phone number is not set, or the SMS content is not set.<br />
<br />
{<br />
  "run_sms": {<br />
    "value": "error"<br />
  }<br />
}<br />
<br />
--------------------------------<br />
MQTT STATE Reporting Received SMS and Incoming Calls<br />
<br />
Incoming Call<br />
<br />
{<br />
  "call_ring": {<br />
    "phone": "+8612345678901"<br />
  }<br />
}<br />
<br />
Received SMS<br />
<br />
{<br />
  "sms_recv": {<br />
    "phone": "+8612345678901",<br />
    "content": "example"<br />
  }<br />
}]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[GI - ESPHOME]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7633</link>
			<pubDate>Mon, 17 Feb 2025 18:41:45 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=7793">Trikinov</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7633</guid>
			<description><![CDATA[Will G1 be  suported under ESPHOME ?<br />
<br />
Do you have information on how to send SMS from Home Assistant over Ethernet ?]]></description>
			<content:encoded><![CDATA[Will G1 be  suported under ESPHOME ?<br />
<br />
Do you have information on how to send SMS from Home Assistant over Ethernet ?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ESP32-S3 Core Development Board ESP-IDF SSD1306 Demo]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7480</link>
			<pubDate>Sun, 26 Jan 2025 17:41:21 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=7416">egionet</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7480</guid>
			<description><![CDATA[<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">This driver was developed for generic SSD1306 OLED displays.  Information on features and functionality are documented and can be found in the <span style="color: #ce9178;" class="mycode_color">`ssd1306.h`</span> header file.  The SSD1306 component is a compact and simplified driver compatible with 128x64 and 128x32 displays.  There are three font sizes supported, hardware and software scrolling capabilities, bitmap visualization, and more.  This component has one font implemented now (i.e. 8x8 basic Latin + control + extended Latin) but is ideal for most use cases.</span></span><br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
The example initializes a 128x64 SSD1306 display and demonstrates the following features:<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display large text (x3)<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display file receive and transmit bitmap icons<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display medium text (x2)<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display countdown timer<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling up<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling down<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text paging down and up<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling horizontally from right and left<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling vertically downwards and upwards<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display bitmap images<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display inverted text and fadeout</span></span><br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
Generic 128x64 SSD1306 OLED display example:</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void i2c0_ssd1306_task( void *pvParameters ) {<br />
    // initialize the xLastWakeTime variable with the current time.<br />
    TickType_t          last_wake_time   = xTaskGetTickCount ();<br />
    //<br />
    // initialize i2c device configuration<br />
    i2c_ssd1306_config_t dev_cfg         = I2C_SSD1306_128x64_CONFIG_DEFAULT;<br />
    i2c_ssd1306_handle_t dev_hdl;<br />
    //<br />
    // init device<br />
    i2c_ssd1306_init(i2c0_bus_hdl, &amp;dev_cfg, &amp;dev_hdl);<br />
    if (dev_hdl == NULL) {<br />
        ESP_LOGE(APP_TAG, "ssd1306 handle init failed");<br />
        assert(dev_hdl);<br />
    }<br />
    //<br />
    // task loop entry point<br />
    for ( ;; ) {<br />
        ESP_LOGI(APP_TAG, "######################## SSD1306 - START #########################");<br />
        //<br />
        int center = 1, top = 1, bottom = 4;<br />
        char lineChar[16];<br />
        uint8_t image[24];<br />
        ESP_LOGI(APP_TAG, "Panel is 128x64");<br />
        // Display x3 text<br />
        ESP_LOGI(APP_TAG, "Display x3 Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text_x3(dev_hdl, 0, "Hello", 5, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display bitmap icons<br />
        ESP_LOGI(APP_TAG, "Display bitmap icons");<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_rx_img_32x32, 32, 32, false);<br />
        vTaskDelay(500 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_tx_img_32x32, 32, 32, false);<br />
        vTaskDelay(1000 / portTICK_PERIOD_MS);<br />
        // Display x2 text<br />
        ESP_LOGI(APP_TAG, "Display x2 Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text_x2(dev_hdl, 0, "{xTEXTx}", 8, false);<br />
        i2c_ssd1306_display_text_x2(dev_hdl, 2, " X2-X2", 6, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display text<br />
        ESP_LOGI(APP_TAG, "Display Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, 0, "SSD1306 128x64", 14, false);<br />
        i2c_ssd1306_display_text(dev_hdl, 1, "Hello World!!", 13, false);<br />
        i2c_ssd1306_display_text(dev_hdl, 2, "SSD1306 128x64", 14, true);<br />
        i2c_ssd1306_display_text(dev_hdl, 3, "Hello World!!", 13, true);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display Count Down<br />
        ESP_LOGI(APP_TAG, "Display Count Down");<br />
        memset(image, 0, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top, (6*8-1), image, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top+1, (6*8-1), image, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top+2, (6*8-1), image, sizeof(image));<br />
        for(int font = 0x39; font &gt; 0x30; font--) {<br />
            memset(image, 0, sizeof(image));<br />
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);<br />
            memcpy(image, font8x8_latin_tr, 8);<br />
            if (dev_hdl-&gt;flip_enabled) i2c_ssd1306_flip_buffer(image, 8);<br />
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);<br />
            vTaskDelay(1000 / portTICK_PERIOD_MS);<br />
        }<br />
        // Page Down<br />
        ESP_LOGI(APP_TAG, "Page Down");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, 0, "---Page   DOWN---", 16, true);<br />
        i2c_ssd1306_set_software_scroll(dev_hdl, 1, (dev_hdl-&gt;pages-1) );<br />
        for (int page = 0; page &lt; bottom+10; page++) {<br />
            if ( (page % (dev_hdl-&gt;pages-1)) == 0) i2c_ssd1306_clear_scroll_display(dev_hdl);<br />
            lineChar[0] = 0x02;<br />
            sprintf(&amp;lineChar[1], " Line %02d", page);<br />
            i2c_ssd1306_display_scroll_text(dev_hdl, lineChar, strlen(lineChar), false);<br />
            vTaskDelay(500 / portTICK_PERIOD_MS);<br />
        }<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Horizontal Scroll<br />
        ESP_LOGI(APP_TAG, "Horizontal Scroll");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "Horizontal", 10, false);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_LEFT, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        // Vertical Scroll<br />
        ESP_LOGI(APP_TAG, "Vertical Scroll");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "Vertical", 8, false);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_DOWN, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_UP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        // Bitmaps<br />
        ESP_LOGI(APP_TAG, "Bitmaps");<br />
        i2c_ssd1306_display_text(dev_hdl, 1, "BATMAN", 6, false);<br />
        int bitmapWidth = 4*8;<br />
        int width = dev_hdl-&gt;width;<br />
        int xpos = width / 2; // center of width<br />
        xpos = xpos - bitmapWidth/2;<br />
        int ypos = 16;<br />
        ESP_LOGD(APP_TAG, "width=%d xpos=%d", width, xpos);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, xpos, ypos, batman, 32, 13, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        for(int i=0;i&lt;128;i++) {<br />
            i2c_ssd1306_set_display_wrap_arround(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, 2, 3, 0);<br />
        }<br />
        vTaskDelay(2000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 0, 0, fleischer, 128, 64, false);<br />
        vTaskDelay(2000 / portTICK_PERIOD_MS);<br />
        // Invert<br />
        ESP_LOGI(APP_TAG, "Invert");<br />
        i2c_ssd1306_clear_display(dev_hdl, true);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "  Good Bye!!", 12, true);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        // Fade Out<br />
        ESP_LOGI(APP_TAG, "Fade Out");<br />
        i2c_ssd1306_fadeout_display(dev_hdl);<br />
        //<br />
        ESP_LOGI(APP_TAG, "######################## SSD1306 - END ###########################");<br />
        //<br />
        //<br />
        // pause the task per defined wait period<br />
        vTaskDelaySecUntil( &amp;last_wake_time, I2C0_TASK_SAMPLING_RATE + 10 );<br />
    }<br />
    //<br />
    // free resources<br />
    i2c_ssd1306_delete( dev_hdl );<br />
    vTaskDelete( NULL );<br />
}</code></div></div><span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
The source code for the above example and component are available here:<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Example: <a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS/blob/main/src/ssd1306_task.c" target="_blank" rel="noopener" class="mycode_url">https://github.com/K0I05/ESP32-S3_ESP-ID...306_task.c</a><br />
<span style="color: #6796e6;" class="mycode_color">-</span> Component: <a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS/tree/main/components/peripherals/i2c/esp_ssd1306" target="_blank" rel="noopener" class="mycode_url">https://github.com/K0I05/ESP32-S3_ESP-ID...sp_ssd1306</a></span></span>]]></description>
			<content:encoded><![CDATA[<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font">This driver was developed for generic SSD1306 OLED displays.  Information on features and functionality are documented and can be found in the <span style="color: #ce9178;" class="mycode_color">`ssd1306.h`</span> header file.  The SSD1306 component is a compact and simplified driver compatible with 128x64 and 128x32 displays.  There are three font sizes supported, hardware and software scrolling capabilities, bitmap visualization, and more.  This component has one font implemented now (i.e. 8x8 basic Latin + control + extended Latin) but is ideal for most use cases.</span></span><br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
The example initializes a 128x64 SSD1306 display and demonstrates the following features:<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display large text (x3)<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display file receive and transmit bitmap icons<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display medium text (x2)<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display countdown timer<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling up<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling down<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text paging down and up<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling horizontally from right and left<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display text scrolling vertically downwards and upwards<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display bitmap images<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Display inverted text and fadeout</span></span><br />
<span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
Generic 128x64 SSD1306 OLED display example:</span></span><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>void i2c0_ssd1306_task( void *pvParameters ) {<br />
    // initialize the xLastWakeTime variable with the current time.<br />
    TickType_t          last_wake_time   = xTaskGetTickCount ();<br />
    //<br />
    // initialize i2c device configuration<br />
    i2c_ssd1306_config_t dev_cfg         = I2C_SSD1306_128x64_CONFIG_DEFAULT;<br />
    i2c_ssd1306_handle_t dev_hdl;<br />
    //<br />
    // init device<br />
    i2c_ssd1306_init(i2c0_bus_hdl, &amp;dev_cfg, &amp;dev_hdl);<br />
    if (dev_hdl == NULL) {<br />
        ESP_LOGE(APP_TAG, "ssd1306 handle init failed");<br />
        assert(dev_hdl);<br />
    }<br />
    //<br />
    // task loop entry point<br />
    for ( ;; ) {<br />
        ESP_LOGI(APP_TAG, "######################## SSD1306 - START #########################");<br />
        //<br />
        int center = 1, top = 1, bottom = 4;<br />
        char lineChar[16];<br />
        uint8_t image[24];<br />
        ESP_LOGI(APP_TAG, "Panel is 128x64");<br />
        // Display x3 text<br />
        ESP_LOGI(APP_TAG, "Display x3 Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text_x3(dev_hdl, 0, "Hello", 5, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display bitmap icons<br />
        ESP_LOGI(APP_TAG, "Display bitmap icons");<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_rx_img_32x32, 32, 32, false);<br />
        vTaskDelay(500 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_tx_img_32x32, 32, 32, false);<br />
        vTaskDelay(1000 / portTICK_PERIOD_MS);<br />
        // Display x2 text<br />
        ESP_LOGI(APP_TAG, "Display x2 Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text_x2(dev_hdl, 0, "{xTEXTx}", 8, false);<br />
        i2c_ssd1306_display_text_x2(dev_hdl, 2, " X2-X2", 6, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display text<br />
        ESP_LOGI(APP_TAG, "Display Text");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, 0, "SSD1306 128x64", 14, false);<br />
        i2c_ssd1306_display_text(dev_hdl, 1, "Hello World!!", 13, false);<br />
        i2c_ssd1306_display_text(dev_hdl, 2, "SSD1306 128x64", 14, true);<br />
        i2c_ssd1306_display_text(dev_hdl, 3, "Hello World!!", 13, true);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Display Count Down<br />
        ESP_LOGI(APP_TAG, "Display Count Down");<br />
        memset(image, 0, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top, (6*8-1), image, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top+1, (6*8-1), image, sizeof(image));<br />
        i2c_ssd1306_display_image(dev_hdl, top+2, (6*8-1), image, sizeof(image));<br />
        for(int font = 0x39; font &gt; 0x30; font--) {<br />
            memset(image, 0, sizeof(image));<br />
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);<br />
            memcpy(image, font8x8_latin_tr, 8);<br />
            if (dev_hdl-&gt;flip_enabled) i2c_ssd1306_flip_buffer(image, 8);<br />
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);<br />
            vTaskDelay(1000 / portTICK_PERIOD_MS);<br />
        }<br />
        // Page Down<br />
        ESP_LOGI(APP_TAG, "Page Down");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, 0, "---Page   DOWN---", 16, true);<br />
        i2c_ssd1306_set_software_scroll(dev_hdl, 1, (dev_hdl-&gt;pages-1) );<br />
        for (int page = 0; page &lt; bottom+10; page++) {<br />
            if ( (page % (dev_hdl-&gt;pages-1)) == 0) i2c_ssd1306_clear_scroll_display(dev_hdl);<br />
            lineChar[0] = 0x02;<br />
            sprintf(&amp;lineChar[1], " Line %02d", page);<br />
            i2c_ssd1306_display_scroll_text(dev_hdl, lineChar, strlen(lineChar), false);<br />
            vTaskDelay(500 / portTICK_PERIOD_MS);<br />
        }<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        // Horizontal Scroll<br />
        ESP_LOGI(APP_TAG, "Horizontal Scroll");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "Horizontal", 10, false);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_LEFT, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        // Vertical Scroll<br />
        ESP_LOGI(APP_TAG, "Vertical Scroll");<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "Vertical", 8, false);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_DOWN, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_UP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);<br />
        // Bitmaps<br />
        ESP_LOGI(APP_TAG, "Bitmaps");<br />
        i2c_ssd1306_display_text(dev_hdl, 1, "BATMAN", 6, false);<br />
        int bitmapWidth = 4*8;<br />
        int width = dev_hdl-&gt;width;<br />
        int xpos = width / 2; // center of width<br />
        xpos = xpos - bitmapWidth/2;<br />
        int ypos = 16;<br />
        ESP_LOGD(APP_TAG, "width=%d xpos=%d", width, xpos);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, xpos, ypos, batman, 32, 13, false);<br />
        vTaskDelay(3000 / portTICK_PERIOD_MS);<br />
        for(int i=0;i&lt;128;i++) {<br />
            i2c_ssd1306_set_display_wrap_arround(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, 2, 3, 0);<br />
        }<br />
        vTaskDelay(2000 / portTICK_PERIOD_MS);<br />
        i2c_ssd1306_clear_display(dev_hdl, false);<br />
        i2c_ssd1306_display_bitmap(dev_hdl, 0, 0, fleischer, 128, 64, false);<br />
        vTaskDelay(2000 / portTICK_PERIOD_MS);<br />
        // Invert<br />
        ESP_LOGI(APP_TAG, "Invert");<br />
        i2c_ssd1306_clear_display(dev_hdl, true);<br />
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);<br />
        i2c_ssd1306_display_text(dev_hdl, center, "  Good Bye!!", 12, true);<br />
        vTaskDelay(5000 / portTICK_PERIOD_MS);<br />
        // Fade Out<br />
        ESP_LOGI(APP_TAG, "Fade Out");<br />
        i2c_ssd1306_fadeout_display(dev_hdl);<br />
        //<br />
        ESP_LOGI(APP_TAG, "######################## SSD1306 - END ###########################");<br />
        //<br />
        //<br />
        // pause the task per defined wait period<br />
        vTaskDelaySecUntil( &amp;last_wake_time, I2C0_TASK_SAMPLING_RATE + 10 );<br />
    }<br />
    //<br />
    // free resources<br />
    i2c_ssd1306_delete( dev_hdl );<br />
    vTaskDelete( NULL );<br />
}</code></div></div><span style="color: #cccccc;" class="mycode_color"><span style="font-family: Consolas, 'Courier New', monospace;" class="mycode_font"><br />
The source code for the above example and component are available here:<br />
<span style="color: #6796e6;" class="mycode_color">-</span> Example: <a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS/blob/main/src/ssd1306_task.c" target="_blank" rel="noopener" class="mycode_url">https://github.com/K0I05/ESP32-S3_ESP-ID...306_task.c</a><br />
<span style="color: #6796e6;" class="mycode_color">-</span> Component: <a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS/tree/main/components/peripherals/i2c/esp_ssd1306" target="_blank" rel="noopener" class="mycode_url">https://github.com/K0I05/ESP32-S3_ESP-ID...sp_ssd1306</a></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[ESP32-S3 Core Development Board RTU, I2C, 1-wire Demo ESP-IDF Application]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7462</link>
			<pubDate>Sat, 25 Jan 2025 06:44:00 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=7416">egionet</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7462</guid>
			<description><![CDATA[Hello,<br />
<br />
This demo application utilizes RS-485, 1-Wire, and I2C under the ESP-IDF environment.<br />
<br />
<a href="https://github.com/K0I05/KINCONY-S3_RTU_20250110" target="_blank" rel="noopener" class="mycode_url">KinCony S3 Core Development Board RTU, I2C, 1-wire Demo Application</a><br />
<span style="color: #f0f6fc;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">The demo application interfaces the following sensors:</span></span></span><br />
<br />
The demo application interfaces the following sensors:<br />
<ul class="mycode_list"><li>MODBUS RTU - RS2E radar precipitation sensor with temperature and humidity sensor<br />
</li>
<li>MODBUS RTU - WDC2E ultrasonic anemometer<br />
</li>
<li>I2C - BMP280 atmospheric pressure sensor<br />
</li>
<li>1-Wire - DS18B20 ground temperature sensor<br />
</li>
</ul>
<br />
The RS2E and WDC2E sensors are configured as MODBUS RTUs and interfaced to the core development board via the RS-485 port. The BMP280 sensor is interfaced to the core development board via I2C and the DS18B20 sensor is interfaced to the board via 1-wire.<br />
<br />
<a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS" target="_blank" rel="noopener" class="mycode_url">ESP-IDF Components Library</a><br />
<br />
The demo application attempts to connect to a WiFi network, once connected, the system clock is synchronized over SNTP and then it will poll all four sensors at a user-defined interval (6-seconds). As each sensor is polled the application prints the results via the serial debug port.<br />
<br />
Serial debug port print example:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>E (23447) RTU [APP]: ################## KINCONY-S3 ##################<br />
I (23477) RTU [APP]: RS2E Air Temperature:        20.93°C<br />
I (23517) RTU [APP]: RS2E Relative Humidity:      29.30 %<br />
I (23527) RTU [APP]: RS2E Dewpoint Temperature:   2.35°C<br />
I (23567) RTU [APP]: RS2E Precipitation Rate:     0.00 mm/h<br />
I (23607) RTU [APP]: RS2E Precipitation Type:     No Rain<br />
I (23647) RTU [APP]: WDC2E Wind Direction:        0°<br />
I (23687) RTU [APP]: WDC2E Wind Speed:            0.00 m/s<br />
I (23907) RTU [APP]: DS18B20 Ground Temperature:  22.25°C<br />
I (23917) RTU [APP]: BMP280 Atmospheric Pressure: 994.46 hPa</code></div></div>]]></description>
			<content:encoded><![CDATA[Hello,<br />
<br />
This demo application utilizes RS-485, 1-Wire, and I2C under the ESP-IDF environment.<br />
<br />
<a href="https://github.com/K0I05/KINCONY-S3_RTU_20250110" target="_blank" rel="noopener" class="mycode_url">KinCony S3 Core Development Board RTU, I2C, 1-wire Demo Application</a><br />
<span style="color: #f0f6fc;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size"><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';" class="mycode_font">The demo application interfaces the following sensors:</span></span></span><br />
<br />
The demo application interfaces the following sensors:<br />
<ul class="mycode_list"><li>MODBUS RTU - RS2E radar precipitation sensor with temperature and humidity sensor<br />
</li>
<li>MODBUS RTU - WDC2E ultrasonic anemometer<br />
</li>
<li>I2C - BMP280 atmospheric pressure sensor<br />
</li>
<li>1-Wire - DS18B20 ground temperature sensor<br />
</li>
</ul>
<br />
The RS2E and WDC2E sensors are configured as MODBUS RTUs and interfaced to the core development board via the RS-485 port. The BMP280 sensor is interfaced to the core development board via I2C and the DS18B20 sensor is interfaced to the board via 1-wire.<br />
<br />
<a href="https://github.com/K0I05/ESP32-S3_ESP-IDF_COMPONENTS" target="_blank" rel="noopener" class="mycode_url">ESP-IDF Components Library</a><br />
<br />
The demo application attempts to connect to a WiFi network, once connected, the system clock is synchronized over SNTP and then it will poll all four sensors at a user-defined interval (6-seconds). As each sensor is polled the application prints the results via the serial debug port.<br />
<br />
Serial debug port print example:<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>E (23447) RTU [APP]: ################## KINCONY-S3 ##################<br />
I (23477) RTU [APP]: RS2E Air Temperature:        20.93°C<br />
I (23517) RTU [APP]: RS2E Relative Humidity:      29.30 %<br />
I (23527) RTU [APP]: RS2E Dewpoint Temperature:   2.35°C<br />
I (23567) RTU [APP]: RS2E Precipitation Rate:     0.00 mm/h<br />
I (23607) RTU [APP]: RS2E Precipitation Type:     No Rain<br />
I (23647) RTU [APP]: WDC2E Wind Direction:        0°<br />
I (23687) RTU [APP]: WDC2E Wind Speed:            0.00 m/s<br />
I (23907) RTU [APP]: DS18B20 Ground Temperature:  22.25°C<br />
I (23917) RTU [APP]: BMP280 Atmospheric Pressure: 994.46 hPa</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[G1 firmware flash problems]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=7251</link>
			<pubDate>Sun, 22 Dec 2024 03:18:01 +0800</pubDate>
			<dc:creator><![CDATA[<a href="https://www.kincony.com/forum/member.php?action=profile&uid=6745">gal</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.kincony.com/forum/showthread.php?tid=7251</guid>
			<description><![CDATA[I have tried to flash firmware as shown in video sim7600e at comand...... and after flashing and repower the led display is blank and doesnt work tried many times same result.]]></description>
			<content:encoded><![CDATA[I have tried to flash firmware as shown in video sim7600e at comand...... and after flashing and repower the led display is blank and doesnt work tried many times same result.]]></content:encoded>
		</item>
	</channel>
</rss>