Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 9,269
» Latest member: rvdstam
» Forum threads: 4,107
» Forum posts: 20,587

Full Statistics

Online Users
There are currently 232 online users.
» 0 Member(s) | 216 Guest(s)
Amazonbot, Applebot, Baidu, Bytespider, Semrush, bot

Latest Threads
How to get started
Forum: KC868-A16
Last Post: Lomagno
19 minutes ago
» Replies: 15
» Views: 7,022
ESP32 Smart Controller – ...
Forum: Schematic & diagram & Dimensions of KinCony PCB layout CAD file
Last Post: admin
5 hours ago
» Replies: 6
» Views: 683
KC868-COLB Tuya Integrati...
Forum: Development
Last Post: namalumfard
Yesterday, 01:42 PM
» Replies: 11
» Views: 1,406
N30 power supply
Forum: N30
Last Post: admin
06-27-2026, 11:55 PM
» Replies: 1
» Views: 32
Force sensitive sensor wi...
Forum: KC868-A series and Uair Smart Controller
Last Post: Elgatoguiri
06-27-2026, 11:51 AM
» Replies: 6
» Views: 150
G1 powerup issue
Forum: G1
Last Post: admin
06-27-2026, 06:47 AM
» Replies: 1
» Views: 25
DM16 output not turning o...
Forum: DM16
Last Post: admin
06-26-2026, 01:11 PM
» Replies: 26
» Views: 2,840
A Project in Saudi Arabia...
Forum: Apply for free sample product
Last Post: Maxsys249
06-26-2026, 07:56 AM
» Replies: 2
» Views: 115
KinCony Pi5M32 – Raspberr...
Forum: News
Last Post: admin
06-25-2026, 10:40 AM
» Replies: 0
» Views: 64
RS485 issue
Forum: B4M
Last Post: admin
06-25-2026, 02:04 AM
» Replies: 6
» Views: 85

  1-wire GPIOs
Posted by: JuDie07 - 09-16-2025, 08:08 AM - Forum: KC868-A8v3 - Replies (1)

KC868A8-V3 under ESPHome 2025.8.4

Hello,
Question: Can the 1-wire GPIOs be connected to the (with pull-up resistance on PCB):
S1:GPIO40
S2:GPIO13
S3:GPIO48
S4:GPIO14

Can other sensors be connected that do not require a pull-up resistor?
For example one:
- platform: ledc
  id: solar_pum_speed
  pin: GPIO40
  inverted: false

Print this item

  A32Pro Firmware Update Fail
Posted by: keithc - 09-15-2025, 07:36 PM - Forum: "KCS" v3 firmware - Replies (7)

I'm unable to update firmware on my A32Pro.  

The flash downloader works fine, ESP32S3, develop, USB.  Port COM3 good.  Start.  Green bar grows, but finishes at 40% (between STOP and ERASE).

Tried holding DL button and turn on device.  No change.

Device now appears to be locked.  No LCD display, no network connection, no Wifi.

How do I restore to factory and or hard reset?

Print this item

  trying to flash the kc868 A16
Posted by: wdiechmann - 09-15-2025, 09:24 AM - Forum: KC868-A series and Uair Smart Controller - Replies (3)

I am literally in kindergarten  
Sad
I finally got som help from a friend to flash the KC868 A16 with v2.2 firmware (version number major 2 but the .2 i am not so sure about). That left me with the A16 responding on HTTP - so I can see settings, network, and stuff - and I have both an ethernet connection and a WiFi connection working (the A16 responding to GET requests on both IP Addresses). I am macOS (M4) user and I run most everything in Docker containers on a Synology NAS, so I had to ask for help to upgrade the firmware from PC.

I have used the yaml I found in this forum - https://www.kincony.com/forum/showthread.php?tid=1772 - with changes to network to match my situation.

But when I try to write that configuration yaml - the output is always an error. Whether a 111 or this:

Code:
Successfully created ESP32 image.
merge_factory_bin([".pioenvs/kincony/firmware.bin"], [".pioenvs/kincony/firmware.elf"])
Info: bootloader.bin not found - skipping
Info: partition-table.bin not found - skipping
Info: ota_data_initial.bin not found - skipping
Info: kincony.bin not found - skipping
Using FLASH_EXTRA_IMAGES from PlatformIO environment
Merging binaries into /config/.esphome/build/kincony/.pioenvs/kincony/firmware.factory.bin
Merging binaries with esptool
SHA digest in image updated.
Wrote 0x7ed80 bytes to file '/config/.esphome/build/kincony/.pioenvs/kincony/firmware.factory.bin', ready to flash to offset 0x0.
Successfully created /config/.esphome/build/kincony/.pioenvs/kincony/firmware.factory.bin
esp32_copy_ota_bin([".pioenvs/kincony/firmware.bin"], [".pioenvs/kincony/firmware.elf"])
Copied firmware to /config/.esphome/build/kincony/.pioenvs/kincony/firmware.ota.bin
========================= [SUCCESS] Took 26.04 seconds =========================
INFO Package configuration completed successfully
INFO Package configuration completed successfully
INFO Successfully compiled program.
INFO Uploading to 10.4.3.33
ERROR Cannot upload Over the Air as the ota configuration is not present or does not include platform: esphome

Print this item

  KinCony AIO Hybrid ALL IN ONE controller rleased
Posted by: admin - 09-15-2025, 01:48 AM - Forum: News - Replies (2)

KinCony AIO Hybrid ESP32 smart controller based on ESP32-S3-WROOM-1U (N16R8) wifi chip. It's ALL IN ONE module. It have 5 manual control switch buttons can turn ON/OFF relay even if system is broken. 5 channel removable OMRON high-quality relay, 2 free GPIOs use for LED strip, such as WS2812B LED strip. 4 channel analog input ports. One SD card using SPI bus. KinCony AIO Hybrid include DS3231 high precision RTC clock chip. OLED display will show wifi and ethernet IP address and Tuya connection state. AIO Hybrid have RS485 port and RF433MHz RF receiver. 4 channel DAC 0-10v output user for dimmer or control motor speed. Tuya APP support work with IR and RF 433MHz devices. IR receiver use for ESP32 and Tuya module. Two IR senders use for ESP32S3 module and Tuya module.
[Image: AIO-Hybrid-1.jpg]
You can define RF and IR buttons to control TV or air conditioner or other IR devices by IR signal.
AIO Hybrid can pair with zigbee3.0 standard protocol products. create IFTTT command for zigbee sensor, so that zigbee sensor automatic send command to relay board or other devices using customize command.
[Image: AIO-Hybrid-2.jpg]
You can write any code by Arduino IDE / MicroPython / ESP-IDF development tool to ESP32 module. We will supply Arduino / ESP-IDF demo code for different samples. Everyone can modify and change the code for your own smart home automation system project. it support use by ESPHome for home assistant or tasmota firmware for smart home automation DIY. AIO Hybrid use KCS v3 firmware, it support home assistant auto discovery function by MQTT, so without write any config code (zero code) for home assistant.
Model No. KinCony AIO Hybrid
Description: KinCony ALL IN ONE ESP32-S3 Controller – AIO Hybrid
Power supply: 12/24V DC (Default install by 12V OMRON relay)
Processor: ESP32-S3-WROOM-1U (N16R8)
Size: 218mm*127mm*64mm
interfaces: Ethernet(RJ45)-LAN 100Mbps IPv4/IPv6,WiFi,RS485,Bluetooth,USB-C,OLED, Tuya Module,Zigbee
RTC: DS3231 high precision chip (battery socket on PCB)
SD Card: SPI bus
Installation method: DIN RAIL
OLED: SSD1306 I2C display
Outputs:
5CH OMRON removable relay, every channel have "COM"(common) and "NO"(normal open) ports.
MAX load 250VAC/16A 30VDC/16A
4CH DAC 0-10V output
Tuya IR sender
ESP32S3 IR sender
Tuya RF433MHz sender
Inputs:
4CH analog input DC0-5V (A1,A2) 2CH analog input 4-20mA (A3,A4)
12CH dry contact inputs (optocoupler isolation, long distance circuit for MAX 500 meters cable)
3 buttons: 1:ESP32 Reset 2:ESP32 Download 3:Tuya relay config, 4:Tuya IR/RF module config
free GPIO: 2CH (without pull-up resistance on PCB, connect with ESP32 pin directly)
RF receiver socket: 433MHz RF receiver
Tuya RF433MHz receiver
[Image: AIO-Hybrid_diagram.jpg]

Print this item

  [arduino code examples for AIO Hybrid]-13 RF433M receiver
Posted by: admin - 09-15-2025, 01:40 AM - Forum: AIO Hybrid - No Replies

Code:
/*
  Simple example for receiving
 
  https://github.com/sui77/rc-switch/
*/

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
  Serial.begin(9600);
  mySwitch.enableReceive(digitalPinToInterrupt(40));
  Serial.print("begin test");
}

void loop() {
  if (mySwitch.available()) {
   
    Serial.print("Received ");
    Serial.print( mySwitch.getReceivedValue() );
    Serial.print(" / ");
    Serial.print( mySwitch.getReceivedBitlength() );
    Serial.print("bit ");
    Serial.print("Protocol: ");
    Serial.println( mySwitch.getReceivedProtocol() );

    mySwitch.resetAvailable();
  }
}
arduino ino file download:

.zip   13-433-decode.zip (Size: 457 bytes / Downloads: 409)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   13-433-decode.ino.merged.zip (Size: 185.99 KB / Downloads: 409)
   

Print this item

  [arduino code examples for AIO Hybrid]-12 DAC MCP4728 analog output
Posted by: admin - 09-15-2025, 01:39 AM - Forum: AIO Hybrid - No Replies

Code:
// Basic demo for configuring the MCP4728 4-Channel 12-bit I2C DAC
#include <Adafruit_MCP4728.h>
#include <Wire.h>

// I2C pin definitions
#define I2C_SDA 8
#define I2C_SCL 18

Adafruit_MCP4728 mcp;

void setup(void) {
  Serial.begin(115200);
  while (!Serial)
    delay(10); // will pause Zero, Leonardo, etc until serial console opens

  Serial.println("Adafruit MCP4728 test!");

  Wire.begin(I2C_SDA, I2C_SCL);

  // Try to initialize!
  if (!mcp.begin()) {
    Serial.println("Failed to find MCP4728 chip");
    while (1) {
      delay(10);
    }
  }

  mcp.setChannelValue(MCP4728_CHANNEL_A, 4095);
  mcp.setChannelValue(MCP4728_CHANNEL_B, 2048);
  mcp.setChannelValue(MCP4728_CHANNEL_C, 1024);
  mcp.setChannelValue(MCP4728_CHANNEL_D, 0);
}

void loop() { delay(1000); }
arduino ino file download:

.zip   12-DAC-MCP4728.zip (Size: 566 bytes / Downloads: 401)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   12-DAC-MCP4728.ino.merged.zip (Size: 198.76 KB / Downloads: 405)

Print this item

  [arduino code examples for AIO Hybrid]-11 IR send and receive
Posted by: admin - 09-15-2025, 01:37 AM - Forum: AIO Hybrid - No Replies

Code:
/*
* SimpleReceiver.cpp
*
* Demonstrates receiving ONLY NEC protocol IR codes with IRremote
* If no protocol is defined, all protocols (except Bang&Olufsen) are active.
*
*  This file is part of Arduino-IRremote https://github.com/Arduino-IRremote/Arduino-IRremote.
*
************************************************************************************
* MIT License
*
* Copyright (c) 2020-2025 Armin Joachimsmeyer
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is furnished
* to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
* INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
* OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
************************************************************************************
*/

#include <Arduino.h>
#include <IRremote.hpp> // include the library


uint8_t receiver_pin = 17;

void setup() {
    Serial.begin(115200);
    IrReceiver.begin(receiver_pin, false);
}

void loop() {
  if (IrReceiver.decode()) {
      Serial.println("recv data");
      if (IrReceiver.decodedIRData.protocol == UNKNOWN) {
          Serial.println(F("Received noise or an unknown (or not yet enabled) protocol"));
          // We have an unknown protocol here, print extended info
          IrReceiver.printIRResultRawFormatted(&Serial, true);

          IrReceiver.resume(); // Do it here, to preserve raw data for printing with printIRResultRawFormatted()
      } else {
          IrReceiver.resume(); // Early enable receiving of the next IR frame

          IrReceiver.printIRResultShort(&Serial);
          IrReceiver.printIRSendUsage(&Serial);
      }
  } else {
    // Serial.println("no data");
  }
}
arduino ino file download:

.zip   11-SimpleSendReceiver.zip (Size: 1.31 KB / Downloads: 416)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   11-SimpleSendReceiver.ino.merged.zip (Size: 197.43 KB / Downloads: 402)

Print this item

  [arduino code examples for AIO Hybrid]-10 Print TEXT on SSD1306 OLED displayer
Posted by: admin - 09-15-2025, 01:36 AM - Forum: AIO Hybrid - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* This Arduino program demonstrates how to display text on an SSD1306 128x64 OLED display using the U8g2 library.
* The program draws two lines of text on the display:
* - The first line is "KINCONY" in a larger font.
* - The second line is "www.kincony.com" in a smaller font.
*
* The display is connected via I2C (software implementation) with:
* - SCL (clock) on pin IO18
* - SDA (data) on pin IO8
*
* The display's I2C address is set to 0x3C.
*/

#include <U8g2lib.h>  // Include the U8g2 library for controlling the OLED display
#include <Wire.h>     // Include the Wire library for I2C communication

// Initialize the display using the software I2C method (SCL = IO18, SDA = IO8)
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,  18, 8, U8X8_PIN_NONE);  // Screen rotation: U8G2_R0

// Function to display page 1 content
void page1() {
  // Set font size 18 for the larger "KINCONY" text
  u8g2.setFont(u8g2_font_timR18_tf);  // Use the Times Roman font, size 18
  u8g2.setFontPosTop();               // Set the text position at the top of the display
  u8g2.setCursor(5, 0);               // Position the cursor at coordinates (5, 0)
  u8g2.print("KINCONY");              // Display the text "KINCONY" on the screen

  // Set font size 12 for the smaller "www.kincony.com" text
  u8g2.setFont(u8g2_font_timR12_tf);  // Use the Times Roman font, size 12
  u8g2.setCursor(0, 40);              // Position the cursor at coordinates (0, 40)
  u8g2.print("www.kincony.com");      // Display the text "www.kincony.com"
}

// Setup function, runs once when the program starts
void setup() {
  // Set the I2C address for the display to 0x3C
  u8g2.setI2CAddress(0x3C*2);  // I2C address shift for 8-bit format
 
  // Initialize the display
  u8g2.begin();
 
  // Enable UTF-8 character printing for the display
  u8g2.enableUTF8Print();  // Allow UTF-8 encoded text to be printed
}

// Main loop function, continuously runs after setup()
void loop() {
  // Begin the display drawing process
  u8g2.firstPage();  // Prepare the first page for drawing
  do {
    // Call the page1() function to draw content on the display
    page1();
  } while (u8g2.nextPage());  // Continue to the next page until all pages are drawn
}
arduino ino file download:

.zip   10-oled-ssd1306.zip (Size: 1.11 KB / Downloads: 404)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   10-oled-ssd1306.ino.merged.zip (Size: 201.24 KB / Downloads: 379)

Print this item

  [arduino code examples for AIO Hybrid]-09 how to communication with Tuya Zigbee modul
Posted by: admin - 09-15-2025, 01:35 AM - Forum: AIO Hybrid - No Replies

Code:
#define TUYA_RXD 15
#define TUYA_TXD 48

void setup() {
  Serial0.begin(115200);  // Serial0
  while (!Serial0);

  Serial2.begin(115200, SERIAL_8N1, TUYA_RXD, TUYA_TXD);
  delay(100);

  byte tuya_cmd[] = {0x55, 0xAA, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04};
  Serial0.println("send data to Tuya module:");
  for (int i = 0; i < sizeof(tuya_cmd); i++) {
    Serial0.printf("%02X ", tuya_cmd[i]);
    Serial2.write(tuya_cmd[i]);
  }
  Serial0.println();
}

void loop() {
  if (Serial2.available()) {
    Serial0.print("received from tuya: ");
    while (Serial2.available()) {
      byte b = Serial2.read();
      Serial0.printf("%02X ", b);
    }
    Serial0.println();
  }

  delay(100);
}
arduino ino file download:

.zip   9-Zigbee-ZSU.zip (Size: 496 bytes / Downloads: 365)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   9-Zigbee-ZSU.ino.merged.zip (Size: 190.24 KB / Downloads: 369)

Print this item

  [arduino code examples for AIO Hybrid]-08 Ethernet W5500 chip work with TCP Server mo
Posted by: admin - 09-15-2025, 01:32 AM - Forum: AIO Hybrid - No Replies

Code:
/*
* Made by KinCony IoT: https://www.kincony.com
*
* This Arduino program sets up an ESP32-S3 with a W5500 Ethernet module
* as a TCP server. It listens on port 4196 and echoes back any string
* received from a client.
*
* Hardware connections:
* - CLK: GPIO42
* - MOSI: GPIO43
* - MISO: GPIO44
* - CS: GPIO41
* - RST: GPIO1
* - INT: GPIO2
*
* Static IP address: 192.168.3.55
* Subnet Mask: 255.255.255.0
* Gateway: 192.168.3.1
* DNS: 192.168.3.1
*/

#include <SPI.h>
#include <Ethernet.h>

// Define the W5500 Ethernet module pins
#define W5500_CS_PIN  41
#define W5500_RST_PIN 1
#define W5500_INT_PIN 2
#define W5500_CLK_PIN 42
#define W5500_MOSI_PIN 43
#define W5500_MISO_PIN 44

// MAC address for your Ethernet shield (must be unique on your network)
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Static IP address configuration
IPAddress ip(192, 168, 3, 55);       // Static IP address
IPAddress subnet(255, 255, 255, 0);   // Subnet mask
IPAddress gateway(192, 168, 3, 1);    // Default gateway
IPAddress dns(192, 168, 3, 1);        // DNS server address

// Create an EthernetServer object to handle TCP connections
EthernetServer server(4196);

void setup() {
  // Initialize serial communication
  Serial.begin(115200);
  while (!Serial) {
    ; // Wait for serial port to connect
  }

  // Initialize the W5500 module
  pinMode(W5500_RST_PIN, OUTPUT);
  pinMode(W5500_INT_PIN, INPUT);
  digitalWrite(W5500_RST_PIN, LOW);  // Reset the W5500 module
  delay(100);                       // Wait for reset to complete
  digitalWrite(W5500_RST_PIN, HIGH); // Release reset

  // Initialize SPI with the correct pin definitions
  SPI.begin(W5500_CLK_PIN, W5500_MISO_PIN, W5500_MOSI_PIN);

  // Set up the Ethernet library with W5500-specific pins
  Ethernet.init(W5500_CS_PIN);

  // Start the Ethernet connection with static IP configuration
  Ethernet.begin(mac, ip, dns, gateway, subnet);

  // Print the IP address to the serial monitor
  Serial.print("IP Address: ");
  Serial.println(Ethernet.localIP());

  // Start listening for incoming TCP connections
  server.begin();
}

void loop() {
  // Check for incoming client connections
  EthernetClient client = server.available();
  if (client) {
    Serial.println("New client connected");

    // Read data from the client and echo it back
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        server.write(c);
      }
    }

    // Close the connection when done
    client.stop();
    Serial.println("Client disconnected");
  }
}
arduino ino file download:

.zip   8-Ethernet-W5500.zip (Size: 1.23 KB / Downloads: 374)
BIN file (you can use esp32 download tool download to ESP32-S3 with address 0x0 then directly to use) download:

.zip   8-Ethernet-W5500.ino.merged.zip (Size: 188.93 KB / Downloads: 399)

Print this item