<?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 - KC868-AGv3]]></title>
		<link>https://www.kincony.com/forum/</link>
		<description><![CDATA[Smart Home Automation Forum - https://www.kincony.com/forum]]></description>
		<pubDate>Sun, 21 Jun 2026 21:51:33 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[[arduino code examples for KC868-AGv3]-03 IR send & receive]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9472</link>
			<pubDate>Fri, 12 Jun 2026 04:44:20 +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=9472</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * SimpleReceiver.cpp<br />
 *<br />
 * Demonstrates receiving ONLY NEC protocol IR codes with IRremote<br />
 * If no protocol is defined, all protocols (except Bang&amp;Olufsen) are active.<br />
 *<br />
 *  This file is part of Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.<br />
 *<br />
 ************************************************************************************<br />
 * MIT License<br />
 *<br />
 * Copyright (c) 2020-2025 Armin Joachimsmeyer<br />
 *<br />
 * Permission is hereby granted, free of charge, to any person obtaining a copy<br />
 * of this software and associated documentation files (the "Software"), to deal<br />
 * in the Software without restriction, including without limitation the rights<br />
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br />
 * copies of the Software, and to permit persons to whom the Software is furnished<br />
 * to do so, subject to the following conditions:<br />
 *<br />
 * The above copyright notice and this permission notice shall be included in all<br />
 * copies or substantial portions of the Software.<br />
 *<br />
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,<br />
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A<br />
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br />
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF<br />
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE<br />
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br />
 *<br />
 ************************************************************************************<br />
 */<br />
<br />
#include &lt;Arduino.h&gt;<br />
#include &lt;IRremote.hpp&gt; // include the library<br />
<br />
uint8_t sender_pins[] = {47, 43,44};<br />
uint8_t receiver_pin = 1;<br />
<br />
int sender_pin_num = sizeof(sender_pins) / sizeof(sender_pins[0]);<br />
uint8_t sender_pin_idx = 0;<br />
uint8_t receive_cnt = 0;<br />
uint8_t sCommand = 0x34;<br />
uint8_t sRepeats = 0;<br />
<br />
void setup() {<br />
    Serial.begin(115200);<br />
    IrReceiver.begin(receiver_pin, false);<br />
    IrSender.begin(sender_pins[0]);<br />
<br />
    xTaskCreate(<br />
      sendIr,    // Function that should be called<br />
      "Send IR", &nbsp;&nbsp;// Name of the task (for debugging)<br />
      4096,            // Stack size (bytes)<br />
      NULL,            // Parameter to pass<br />
      1,             &nbsp;&nbsp;// Task priority<br />
      NULL           &nbsp;&nbsp;// Task handle<br />
  );<br />
}<br />
<br />
void sendIr(void * parameter) {<br />
  <br />
  delay(1000);<br />
  IrSender.setSendPin(47);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 47);<br />
  delay(1000);<br />
<br />
  IrSender.setSendPin(43);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 43);<br />
<br />
  delay(1000);<br />
  IrSender.setSendPin(44);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 44);<br />
  delay(1000);<br />
<br />
  vTaskDelete(NULL);<br />
}<br />
<br />
void loop() {<br />
  if (IrReceiver.decode()) {<br />
      Serial.println("recv data");<br />
      if (IrReceiver.decodedIRData.protocol == UNKNOWN) {<br />
          Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));<br />
          // We have an unknown protocol here, print extended info<br />
          IrReceiver.printIRResultRawFormatted(&amp;Serial, true);<br />
<br />
          IrReceiver.resume(); // Do it here, to preserve raw data for printing with printIRResultRawFormatted()<br />
      } else {<br />
          IrReceiver.resume(); // Early enable receiving of the next IR frame<br />
<br />
          IrReceiver.printIRResultShort(&amp;Serial);<br />
          IrReceiver.printIRSendUsage(&amp;Serial);<br />
      }<br />
  } else {<br />
    // Serial.println("no data");<br />
  }<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10032" target="_blank" title="">SimpleSendReceiver.zip</a> (Size: 1.63 KB / Downloads: 47)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10033" target="_blank" title="">SimpleSendReceiver.ino.merged.zip</a> (Size: 198.05 KB / Downloads: 46)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
 * SimpleReceiver.cpp<br />
 *<br />
 * Demonstrates receiving ONLY NEC protocol IR codes with IRremote<br />
 * If no protocol is defined, all protocols (except Bang&amp;Olufsen) are active.<br />
 *<br />
 *  This file is part of Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.<br />
 *<br />
 ************************************************************************************<br />
 * MIT License<br />
 *<br />
 * Copyright (c) 2020-2025 Armin Joachimsmeyer<br />
 *<br />
 * Permission is hereby granted, free of charge, to any person obtaining a copy<br />
 * of this software and associated documentation files (the "Software"), to deal<br />
 * in the Software without restriction, including without limitation the rights<br />
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell<br />
 * copies of the Software, and to permit persons to whom the Software is furnished<br />
 * to do so, subject to the following conditions:<br />
 *<br />
 * The above copyright notice and this permission notice shall be included in all<br />
 * copies or substantial portions of the Software.<br />
 *<br />
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,<br />
 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A<br />
 * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT<br />
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF<br />
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE<br />
 * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.<br />
 *<br />
 ************************************************************************************<br />
 */<br />
<br />
#include &lt;Arduino.h&gt;<br />
#include &lt;IRremote.hpp&gt; // include the library<br />
<br />
uint8_t sender_pins[] = {47, 43,44};<br />
uint8_t receiver_pin = 1;<br />
<br />
int sender_pin_num = sizeof(sender_pins) / sizeof(sender_pins[0]);<br />
uint8_t sender_pin_idx = 0;<br />
uint8_t receive_cnt = 0;<br />
uint8_t sCommand = 0x34;<br />
uint8_t sRepeats = 0;<br />
<br />
void setup() {<br />
    Serial.begin(115200);<br />
    IrReceiver.begin(receiver_pin, false);<br />
    IrSender.begin(sender_pins[0]);<br />
<br />
    xTaskCreate(<br />
      sendIr,    // Function that should be called<br />
      "Send IR", &nbsp;&nbsp;// Name of the task (for debugging)<br />
      4096,            // Stack size (bytes)<br />
      NULL,            // Parameter to pass<br />
      1,             &nbsp;&nbsp;// Task priority<br />
      NULL           &nbsp;&nbsp;// Task handle<br />
  );<br />
}<br />
<br />
void sendIr(void * parameter) {<br />
  <br />
  delay(1000);<br />
  IrSender.setSendPin(47);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 47);<br />
  delay(1000);<br />
<br />
  IrSender.setSendPin(43);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 43);<br />
<br />
  delay(1000);<br />
  IrSender.setSendPin(44);<br />
  IrSender.sendNEC(0x00, sCommand, sRepeats);<br />
  Serial.printf("send by pin: %d&#92;n", 44);<br />
  delay(1000);<br />
<br />
  vTaskDelete(NULL);<br />
}<br />
<br />
void loop() {<br />
  if (IrReceiver.decode()) {<br />
      Serial.println("recv data");<br />
      if (IrReceiver.decodedIRData.protocol == UNKNOWN) {<br />
          Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));<br />
          // We have an unknown protocol here, print extended info<br />
          IrReceiver.printIRResultRawFormatted(&amp;Serial, true);<br />
<br />
          IrReceiver.resume(); // Do it here, to preserve raw data for printing with printIRResultRawFormatted()<br />
      } else {<br />
          IrReceiver.resume(); // Early enable receiving of the next IR frame<br />
<br />
          IrReceiver.printIRResultShort(&amp;Serial);<br />
          IrReceiver.printIRSendUsage(&amp;Serial);<br />
      }<br />
  } else {<br />
    // Serial.println("no data");<br />
  }<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10032" target="_blank" title="">SimpleSendReceiver.zip</a> (Size: 1.63 KB / Downloads: 47)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10033" target="_blank" title="">SimpleSendReceiver.ino.merged.zip</a> (Size: 198.05 KB / Downloads: 46)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[arduino code examples for KC868-AGv3]-02 RF 433MHz sender]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9470</link>
			<pubDate>Fri, 12 Jun 2026 04:42:39 +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=9470</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
  Example for different sending methods<br />
  <br />
  https://github.com/sui77/rc-switch/<br />
  <br />
*/<br />
<br />
#include &lt;RCSwitch.h&gt;<br />
<br />
RCSwitch mySwitch = RCSwitch();<br />
<br />
void setup() {<br />
<br />
  Serial.begin(9600);<br />
  <br />
  // Transmitter is connected to Arduino Pin #10  <br />
  mySwitch.enableTransmit(digitalPinToInterrupt(2));<br />
  delay(500);<br />
  mySwitch.send(5396, 24);<br />
  <br />
  // Optional set protocol (default is 1, will work for most outlets)<br />
  // mySwitch.setProtocol(2);<br />
<br />
  // Optional set pulse length.<br />
  // mySwitch.setPulseLength(320);<br />
  <br />
  // Optional set number of transmission repetitions.<br />
 &nbsp;&nbsp;mySwitch.setRepeatTransmit(15);<br />
  <br />
}<br />
<br />
void loop() {<br />
<br />
  /* See Example: TypeA_WithDIPSwitches */<br />
  mySwitch.switchOn("11111", "00010");<br />
  delay(1000);<br />
  mySwitch.switchOff("11111", "00010");<br />
  delay(1000);<br />
<br />
  /* Same switch as above, but using decimal code */<br />
  mySwitch.send(5393, 24);<br />
  delay(1000);  <br />
  mySwitch.send(5396, 24);<br />
  delay(1000);  <br />
<br />
  /* Same switch as above, but using binary code */<br />
  mySwitch.send("000000000001010100010001");<br />
  delay(1000);  <br />
  mySwitch.send("000000000001010100010100");<br />
  delay(1000);<br />
<br />
  /* Same switch as above, but tri-state code */ <br />
  mySwitch.sendTriState("00000FFF0F0F");<br />
  delay(1000);  <br />
  mySwitch.sendTriState("00000FFF0FF0");<br />
  delay(1000);<br />
<br />
 // delay(20000); <br />
  ;<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10030" target="_blank" title="">433-send.zip</a> (Size: 685 bytes / Downloads: 55)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10031" target="_blank" title="">433-send.ino.merged.zip</a> (Size: 186.47 KB / Downloads: 48)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
  Example for different sending methods<br />
  <br />
  https://github.com/sui77/rc-switch/<br />
  <br />
*/<br />
<br />
#include &lt;RCSwitch.h&gt;<br />
<br />
RCSwitch mySwitch = RCSwitch();<br />
<br />
void setup() {<br />
<br />
  Serial.begin(9600);<br />
  <br />
  // Transmitter is connected to Arduino Pin #10  <br />
  mySwitch.enableTransmit(digitalPinToInterrupt(2));<br />
  delay(500);<br />
  mySwitch.send(5396, 24);<br />
  <br />
  // Optional set protocol (default is 1, will work for most outlets)<br />
  // mySwitch.setProtocol(2);<br />
<br />
  // Optional set pulse length.<br />
  // mySwitch.setPulseLength(320);<br />
  <br />
  // Optional set number of transmission repetitions.<br />
 &nbsp;&nbsp;mySwitch.setRepeatTransmit(15);<br />
  <br />
}<br />
<br />
void loop() {<br />
<br />
  /* See Example: TypeA_WithDIPSwitches */<br />
  mySwitch.switchOn("11111", "00010");<br />
  delay(1000);<br />
  mySwitch.switchOff("11111", "00010");<br />
  delay(1000);<br />
<br />
  /* Same switch as above, but using decimal code */<br />
  mySwitch.send(5393, 24);<br />
  delay(1000);  <br />
  mySwitch.send(5396, 24);<br />
  delay(1000);  <br />
<br />
  /* Same switch as above, but using binary code */<br />
  mySwitch.send("000000000001010100010001");<br />
  delay(1000);  <br />
  mySwitch.send("000000000001010100010100");<br />
  delay(1000);<br />
<br />
  /* Same switch as above, but tri-state code */ <br />
  mySwitch.sendTriState("00000FFF0F0F");<br />
  delay(1000);  <br />
  mySwitch.sendTriState("00000FFF0FF0");<br />
  delay(1000);<br />
<br />
 // delay(20000); <br />
  ;<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10030" target="_blank" title="">433-send.zip</a> (Size: 685 bytes / Downloads: 55)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10031" target="_blank" title="">433-send.ino.merged.zip</a> (Size: 186.47 KB / Downloads: 48)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[arduino code examples for KC868-AGv3]-01 RF 433MHz decode]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9469</link>
			<pubDate>Fri, 12 Jun 2026 04:41:18 +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=9469</guid>
			<description><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
  Simple example for receiving<br />
  <br />
  https://github.com/sui77/rc-switch/<br />
*/<br />
<br />
#include &lt;RCSwitch.h&gt;<br />
<br />
RCSwitch mySwitch = RCSwitch();<br />
<br />
void setup() {<br />
  Serial.begin(9600);<br />
  mySwitch.enableReceive(digitalPinToInterrupt(9)); <br />
  Serial.print("begin test");<br />
}<br />
<br />
void loop() {<br />
  if (mySwitch.available()) {<br />
    <br />
    Serial.print("Received ");<br />
    Serial.print( mySwitch.getReceivedValue() );<br />
    Serial.print(" / ");<br />
    Serial.print( mySwitch.getReceivedBitlength() );<br />
    Serial.print("bit ");<br />
    Serial.print("Protocol: ");<br />
    Serial.println( mySwitch.getReceivedProtocol() );<br />
<br />
    mySwitch.resetAvailable();<br />
  }<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10027" target="_blank" title="">433-decode.zip</a> (Size: 450 bytes / Downloads: 37)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10028" target="_blank" title="">433-decode.ino.merged.zip</a> (Size: 185.98 KB / Downloads: 34)
<!-- end: postbit_attachments_attachment --><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=10029" target="_blank" title="">arduino.png</a> (Size: 131.43 KB / Downloads: 41)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>/*<br />
  Simple example for receiving<br />
  <br />
  https://github.com/sui77/rc-switch/<br />
*/<br />
<br />
#include &lt;RCSwitch.h&gt;<br />
<br />
RCSwitch mySwitch = RCSwitch();<br />
<br />
void setup() {<br />
  Serial.begin(9600);<br />
  mySwitch.enableReceive(digitalPinToInterrupt(9)); <br />
  Serial.print("begin test");<br />
}<br />
<br />
void loop() {<br />
  if (mySwitch.available()) {<br />
    <br />
    Serial.print("Received ");<br />
    Serial.print( mySwitch.getReceivedValue() );<br />
    Serial.print(" / ");<br />
    Serial.print( mySwitch.getReceivedBitlength() );<br />
    Serial.print("bit ");<br />
    Serial.print("Protocol: ");<br />
    Serial.println( mySwitch.getReceivedProtocol() );<br />
<br />
    mySwitch.resetAvailable();<br />
  }<br />
}</code></div></div> arduino ino file download:  <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10027" target="_blank" title="">433-decode.zip</a> (Size: 450 bytes / Downloads: 37)
<!-- end: postbit_attachments_attachment --><br />
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download: <br />
<!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.kincony.com/forum/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=10028" target="_blank" title="">433-decode.ino.merged.zip</a> (Size: 185.98 KB / Downloads: 34)
<!-- end: postbit_attachments_attachment --><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=10029" target="_blank" title="">arduino.png</a> (Size: 131.43 KB / Downloads: 41)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[KC868-AGv3 ESP32S3 I/O pin define]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9468</link>
			<pubDate>Fri, 12 Jun 2026 04:38:23 +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=9468</guid>
			<description><![CDATA[ESP32 download: GPIO0<br />
<br />
I2C bus:<br />
SDA:GPIO11<br />
SCL:GPIO10<br />
<br />
24C02 EPROM i2c address: 0x50<br />
<br />
RF433M Sender:GPIO2<br />
RF433M Receiver:GPIO9<br />
<br />
IR Receiver:GPIO1<br />
<br />
IR Sender: GPIO47 (7pcs IR tube inside of box)<br />
IR extend cable-1:GPIO43<br />
IR extend cable-2:GPIO44<br />
<br />
beep: GPIO21<br />
<br />
Free GPIOs:<br />
GPIO4<br />
GPIO5<br />
GPIO6<br />
GPIO7<br />
GPIO15<br />
GPIO16<br />
GPIO17<br />
GPIO18<br />
GPIO42<br />
GPIO8<br />
GPIO40<br />
GPIO41<br />
GPIO38<br />
GPIO39<br />
GPIO13<br />
GPIO14<br />
GPIO12<br />
GPIO48]]></description>
			<content:encoded><![CDATA[ESP32 download: GPIO0<br />
<br />
I2C bus:<br />
SDA:GPIO11<br />
SCL:GPIO10<br />
<br />
24C02 EPROM i2c address: 0x50<br />
<br />
RF433M Sender:GPIO2<br />
RF433M Receiver:GPIO9<br />
<br />
IR Receiver:GPIO1<br />
<br />
IR Sender: GPIO47 (7pcs IR tube inside of box)<br />
IR extend cable-1:GPIO43<br />
IR extend cable-2:GPIO44<br />
<br />
beep: GPIO21<br />
<br />
Free GPIOs:<br />
GPIO4<br />
GPIO5<br />
GPIO6<br />
GPIO7<br />
GPIO15<br />
GPIO16<br />
GPIO17<br />
GPIO18<br />
GPIO42<br />
GPIO8<br />
GPIO40<br />
GPIO41<br />
GPIO38<br />
GPIO39<br />
GPIO13<br />
GPIO14<br />
GPIO12<br />
GPIO48]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[KCS v3 for IR protocol]]></title>
			<link>https://www.kincony.com/forum/showthread.php?tid=9473</link>
			<pubDate>Fri, 14 Feb 2025 13:27:16 +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=9473</guid>
			<description><![CDATA[UDP Server / TCP Server / Loxone / RS232:<br />
<br />
Learn IR (MAX support 192 IR signals):<br />
<br />
send:  RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2<br />
receive: RELAY-IR-LEARN-255,1,OK  // success<br />
receive: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout<br />
<br />
send: RELAY-IR-LEARN-255,200  // if send IR exceeding the maximum IR ID(MAX=192)<br />
receive: RELAY-IR-LEARN-255,200,ERROR  // error<br />
<br />
Send IR:<br />
<br />
send: RELAY-IR-RUN-255,1  // send IR signal ID=1<br />
receive: RELAY-IR-RUN-255,1,OK<br />
<br />
Delete IR:<br />
<br />
send: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1<br />
receive: RELAY-IR-DEL-255,1,OK<br />
---------------------------------------------------------------<br />
UDP Client / TCP Client / Loxone / RS232:<br />
<br />
IR triggered and auto feedback: (ONLY use for NEC and RC5 IR code)<br />
<br />
RELAY-GET_IR-255,1,1,OK  // trigger<br />
RELAY-GET_IR-255,1,0,OK  // not trigger<br />
<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=10037" target="_blank" title="">AG8-String-IR-Network.png</a> (Size: 144.99 KB / Downloads: 903)
<!-- end: postbit_attachments_attachment --><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=10038" target="_blank" title="">AG8-String-IR-RS232.png</a> (Size: 115.65 KB / Downloads: 941)
<!-- end: postbit_attachments_attachment --><br />
---------------------------------------------------------------<br />
<br />
MQTT:<br />
<br />
Learn IR:  // begin learn IR signal ID=1, send by IR tube-2<br />
payload:<br />
{<br />
  "learn_ir": {<br />
    "value": 1,<br />
    "tx_channel": 2<br />
  }<br />
}<br />
<br />
Delete IR:  // delete learned IR signal ID=1<br />
<br />
payload:<br />
{<br />
  "run_ir": {<br />
    "value": 1<br />
  }<br />
}<br />
<br />
IR triggered and auto feedback:  // trigger when value=1  (ONLY use for NEC and RC5 IR code)<br />
<br />
payload:<br />
<br />
// trigger begin<br />
{<br />
  "ir1": {<br />
    "value": 1<br />
  }<br />
}<br />
<br />
// trigger end<br />
{<br />
  "ir1": {<br />
    "value": 0<br />
  }<br />
}<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=10035" target="_blank" title="">AG8-MQTT-IR-Learn.png</a> (Size: 80.12 KB / Downloads: 878)
<!-- end: postbit_attachments_attachment --><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=10036" target="_blank" title="">AG8-MQTT-IR-Send.png</a> (Size: 92.25 KB / Downloads: 904)
<!-- end: postbit_attachments_attachment --><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=10034" target="_blank" title="">AG8-MQTT-IR-Delete.png</a> (Size: 98.23 KB / Downloads: 898)
<!-- end: postbit_attachments_attachment --><br />
---------------------------------------------------------------<br />
RS485 Modbus<br />
<br />
// 01: Address  <br />
// 08: Function code - Learn IR<br />
// 00 05: Register address, 05 means ID=6 because ID begin with 0 <br />
// 00 04: Send IR tube, values range from 1-8. 04 means the 4th channel  <br />
// F1 C9: CRC  <br />
[Tx] 01 08 00 05 00 04 F1 C9  <br />
<br />
// 01: Address  <br />
// 08: Function code - Learn IR<br />
// 02: Data length  <br />
// 00 05: Data value, corresponding to the register address when transmitting  <br />
// 7A 63: CRC  <br />
[Rx] 01 08 02 00 05 7A 63  <br />
<br />
---------------------------<br />
<br />
// 01: Address  <br />
// 07: Function code - Send IR<br />
// 00 02: Register address, send IR at index 2, which ID=3  <br />
// 00 01: Register count, fixed value 1, only one infrared can be controlled at a time  <br />
// D4 0A: CRC  <br />
[Tx] 01 07 00 02 00 01 D4 0A  <br />
<br />
// 01: Address  <br />
// 07: Function code - Send IR<br />
// 02: Data length  <br />
// 00 02: Data value, corresponding to the register address when transmitting  <br />
// 38 B5: CRC  <br />
[Rx] 01 07 02 00 02 38 B5  <br />
<br />
---------------------------<br />
<br />
// 01: Address  <br />
// 09: Function code - Delete IR<br />
// 00 07: Register address, 07 means ID=8  <br />
// 00 01: Register count, fixed value 1, only one infrared can be deleted at a time  <br />
// AD CA: CRC  <br />
[Tx][11:32:00.669] 01 09 00 07 00 01 AD CA  <br />
<br />
// 01: Address  <br />
// 09: Function code - Delete IR<br />
// 02: Data length  <br />
// 00 07: Data value, corresponding to the register address when transmitting  <br />
// FA 5E: CRC  <br />
[Rx][11:32:01.959] 01 09 02 00 07 FA 5E  <br />
<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=10040" target="_blank" title="">AG8-Modbus-Learn-IR.png</a> (Size: 75.85 KB / Downloads: 942)
<!-- end: postbit_attachments_attachment --><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=10041" target="_blank" title="">AG8-Modbus-Send-IR.png</a> (Size: 75.49 KB / Downloads: 911)
<!-- end: postbit_attachments_attachment --><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=10039" target="_blank" title="">AG8-Modbus-Delete-IR.png</a> (Size: 74.99 KB / Downloads: 903)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[UDP Server / TCP Server / Loxone / RS232:<br />
<br />
Learn IR (MAX support 192 IR signals):<br />
<br />
send:  RELAY-IR-LEARN-255,1,2    // begin learn IR signal ID=1, send by IR tube-2<br />
receive: RELAY-IR-LEARN-255,1,OK  // success<br />
receive: RELAY-IR-LEARN-255,1,TIMEOUT  // timeout<br />
<br />
send: RELAY-IR-LEARN-255,200  // if send IR exceeding the maximum IR ID(MAX=192)<br />
receive: RELAY-IR-LEARN-255,200,ERROR  // error<br />
<br />
Send IR:<br />
<br />
send: RELAY-IR-RUN-255,1  // send IR signal ID=1<br />
receive: RELAY-IR-RUN-255,1,OK<br />
<br />
Delete IR:<br />
<br />
send: RELAY-IR-DEL-255,1  // delete learned IR signal ID=1<br />
receive: RELAY-IR-DEL-255,1,OK<br />
---------------------------------------------------------------<br />
UDP Client / TCP Client / Loxone / RS232:<br />
<br />
IR triggered and auto feedback: (ONLY use for NEC and RC5 IR code)<br />
<br />
RELAY-GET_IR-255,1,1,OK  // trigger<br />
RELAY-GET_IR-255,1,0,OK  // not trigger<br />
<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=10037" target="_blank" title="">AG8-String-IR-Network.png</a> (Size: 144.99 KB / Downloads: 903)
<!-- end: postbit_attachments_attachment --><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=10038" target="_blank" title="">AG8-String-IR-RS232.png</a> (Size: 115.65 KB / Downloads: 941)
<!-- end: postbit_attachments_attachment --><br />
---------------------------------------------------------------<br />
<br />
MQTT:<br />
<br />
Learn IR:  // begin learn IR signal ID=1, send by IR tube-2<br />
payload:<br />
{<br />
  "learn_ir": {<br />
    "value": 1,<br />
    "tx_channel": 2<br />
  }<br />
}<br />
<br />
Delete IR:  // delete learned IR signal ID=1<br />
<br />
payload:<br />
{<br />
  "run_ir": {<br />
    "value": 1<br />
  }<br />
}<br />
<br />
IR triggered and auto feedback:  // trigger when value=1  (ONLY use for NEC and RC5 IR code)<br />
<br />
payload:<br />
<br />
// trigger begin<br />
{<br />
  "ir1": {<br />
    "value": 1<br />
  }<br />
}<br />
<br />
// trigger end<br />
{<br />
  "ir1": {<br />
    "value": 0<br />
  }<br />
}<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=10035" target="_blank" title="">AG8-MQTT-IR-Learn.png</a> (Size: 80.12 KB / Downloads: 878)
<!-- end: postbit_attachments_attachment --><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=10036" target="_blank" title="">AG8-MQTT-IR-Send.png</a> (Size: 92.25 KB / Downloads: 904)
<!-- end: postbit_attachments_attachment --><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=10034" target="_blank" title="">AG8-MQTT-IR-Delete.png</a> (Size: 98.23 KB / Downloads: 898)
<!-- end: postbit_attachments_attachment --><br />
---------------------------------------------------------------<br />
RS485 Modbus<br />
<br />
// 01: Address  <br />
// 08: Function code - Learn IR<br />
// 00 05: Register address, 05 means ID=6 because ID begin with 0 <br />
// 00 04: Send IR tube, values range from 1-8. 04 means the 4th channel  <br />
// F1 C9: CRC  <br />
[Tx] 01 08 00 05 00 04 F1 C9  <br />
<br />
// 01: Address  <br />
// 08: Function code - Learn IR<br />
// 02: Data length  <br />
// 00 05: Data value, corresponding to the register address when transmitting  <br />
// 7A 63: CRC  <br />
[Rx] 01 08 02 00 05 7A 63  <br />
<br />
---------------------------<br />
<br />
// 01: Address  <br />
// 07: Function code - Send IR<br />
// 00 02: Register address, send IR at index 2, which ID=3  <br />
// 00 01: Register count, fixed value 1, only one infrared can be controlled at a time  <br />
// D4 0A: CRC  <br />
[Tx] 01 07 00 02 00 01 D4 0A  <br />
<br />
// 01: Address  <br />
// 07: Function code - Send IR<br />
// 02: Data length  <br />
// 00 02: Data value, corresponding to the register address when transmitting  <br />
// 38 B5: CRC  <br />
[Rx] 01 07 02 00 02 38 B5  <br />
<br />
---------------------------<br />
<br />
// 01: Address  <br />
// 09: Function code - Delete IR<br />
// 00 07: Register address, 07 means ID=8  <br />
// 00 01: Register count, fixed value 1, only one infrared can be deleted at a time  <br />
// AD CA: CRC  <br />
[Tx][11:32:00.669] 01 09 00 07 00 01 AD CA  <br />
<br />
// 01: Address  <br />
// 09: Function code - Delete IR<br />
// 02: Data length  <br />
// 00 07: Data value, corresponding to the register address when transmitting  <br />
// FA 5E: CRC  <br />
[Rx][11:32:01.959] 01 09 02 00 07 FA 5E  <br />
<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=10040" target="_blank" title="">AG8-Modbus-Learn-IR.png</a> (Size: 75.85 KB / Downloads: 942)
<!-- end: postbit_attachments_attachment --><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=10041" target="_blank" title="">AG8-Modbus-Send-IR.png</a> (Size: 75.49 KB / Downloads: 911)
<!-- end: postbit_attachments_attachment --><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=10039" target="_blank" title="">AG8-Modbus-Delete-IR.png</a> (Size: 74.99 KB / Downloads: 903)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
	</channel>
</rss>