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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 8,319
» Latest member: Lupi84
» Forum threads: 3,632
» Forum posts: 18,759

Full Statistics

Online Users
There are currently 45 online users.
» 0 Member(s) | 32 Guest(s)
AhrefsBot, Amazonbot, Applebot, Bing, Crawl, PetalBot, bot

Latest Threads
sample code to receive ht...
Forum: F16
Last Post: telinda
1 hour ago
» Replies: 7
» Views: 27
OUTPUT DO1
Forum: KC868-AIO
Last Post: admin
2 hours ago
» Replies: 3
» Views: 15
N30 Energy entry not work...
Forum: N30
Last Post: Vega
Yesterday, 01:15 PM
» Replies: 13
» Views: 111
KC868-M16v2 configure yam...
Forum: KC868-M16 / M1 / MB / M30
Last Post: admin
Yesterday, 08:45 AM
» Replies: 127
» Views: 25,309
N20 Problem with Home Ass...
Forum: N20
Last Post: admin
Yesterday, 08:44 AM
» Replies: 1
» Views: 6
Replacing ESP32 with Kinc...
Forum: KC868-A16
Last Post: admin
12-24-2025, 11:43 PM
» Replies: 1
» Views: 21
KC868-Server ESP32 Ethern...
Forum: KC868-Server Raspberry Pi4 local server
Last Post: admin
12-24-2025, 11:41 PM
» Replies: 7
» Views: 87
Single Moment switch
Forum: DIY Project
Last Post: admin
12-24-2025, 11:37 PM
» Replies: 1
» Views: 23
Help with Product Slectio...
Forum: Suggestions and feedback on KinCony's products
Last Post: admin
12-24-2025, 12:06 AM
» Replies: 5
» Views: 69
Loxone RS485
Forum: KinCony integrate with Loxone home automation
Last Post: admin
12-24-2025, 12:03 AM
» Replies: 9
» Views: 1,136

  how to install KC868-AG without HA
Posted by: ahiel - 01-26-2025, 10:55 AM - Forum: KC868-AG / AG Pro / AG8 / Z1 - Replies (5)

I've just got KC868-AG and want to install it to use it with MQTT (I'm using openhab).
how can I configure it?
just connected it to power (see green light). but can't see any new wifi network. 
any manual?

thanks!

Print this item

  ESP32-S3 Core Development Board ESP-IDF SSD1306 Demo
Posted by: egionet - 01-26-2025, 09:41 AM - Forum: G1 - No Replies

This driver was developed for generic SSD1306 OLED displays.  Information on features and functionality are documented and can be found in the `ssd1306.h` 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.

The example initializes a 128x64 SSD1306 display and demonstrates the following features:
- Display large text (x3)
- Display file receive and transmit bitmap icons
- Display medium text (x2)
- Display text
- Display countdown timer
- Display text scrolling up
- Display text scrolling down
- Display text paging down and up
- Display text scrolling horizontally from right and left
- Display text scrolling vertically downwards and upwards
- Display bitmap images
- Display inverted text and fadeout


Generic 128x64 SSD1306 OLED display example:

Code:
void i2c0_ssd1306_task( void *pvParameters ) {
    // initialize the xLastWakeTime variable with the current time.
    TickType_t          last_wake_time   = xTaskGetTickCount ();
    //
    // initialize i2c device configuration
    i2c_ssd1306_config_t dev_cfg         = I2C_SSD1306_128x64_CONFIG_DEFAULT;
    i2c_ssd1306_handle_t dev_hdl;
    //
    // init device
    i2c_ssd1306_init(i2c0_bus_hdl, &dev_cfg, &dev_hdl);
    if (dev_hdl == NULL) {
        ESP_LOGE(APP_TAG, "ssd1306 handle init failed");
        assert(dev_hdl);
    }
    //
    // task loop entry point
    for ( ;; ) {
        ESP_LOGI(APP_TAG, "######################## SSD1306 - START #########################");
        //
        int center = 1, top = 1, bottom = 4;
        char lineChar[16];
        uint8_t image[24];
        ESP_LOGI(APP_TAG, "Panel is 128x64");
        // Display x3 text
        ESP_LOGI(APP_TAG, "Display x3 Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text_x3(dev_hdl, 0, "Hello", 5, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display bitmap icons
        ESP_LOGI(APP_TAG, "Display bitmap icons");
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_rx_img_32x32, 32, 32, false);
        vTaskDelay(500 / portTICK_PERIOD_MS);
        i2c_ssd1306_display_bitmap(dev_hdl, 31, 0, data_tx_img_32x32, 32, 32, false);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
        // Display x2 text
        ESP_LOGI(APP_TAG, "Display x2 Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text_x2(dev_hdl, 0, "{xTEXTx}", 8, false);
        i2c_ssd1306_display_text_x2(dev_hdl, 2, " X2-X2", 6, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display text
        ESP_LOGI(APP_TAG, "Display Text");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, 0, "SSD1306 128x64", 14, false);
        i2c_ssd1306_display_text(dev_hdl, 1, "Hello World!!", 13, false);
        i2c_ssd1306_display_text(dev_hdl, 2, "SSD1306 128x64", 14, true);
        i2c_ssd1306_display_text(dev_hdl, 3, "Hello World!!", 13, true);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Display Count Down
        ESP_LOGI(APP_TAG, "Display Count Down");
        memset(image, 0, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top, (6*8-1), image, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top+1, (6*8-1), image, sizeof(image));
        i2c_ssd1306_display_image(dev_hdl, top+2, (6*8-1), image, sizeof(image));
        for(int font = 0x39; font > 0x30; font--) {
            memset(image, 0, sizeof(image));
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);
            memcpy(image, font8x8_latin_tr, 8);
            if (dev_hdl->flip_enabled) i2c_ssd1306_flip_buffer(image, 8);
            i2c_ssd1306_display_image(dev_hdl, top+1, (7*8-1), image, 8);
            vTaskDelay(1000 / portTICK_PERIOD_MS);
        }
        // Page Down
        ESP_LOGI(APP_TAG, "Page Down");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, 0, "---Page   DOWN---", 16, true);
        i2c_ssd1306_set_software_scroll(dev_hdl, 1, (dev_hdl->pages-1) );
        for (int page = 0; page < bottom+10; page++) {
            if ( (page % (dev_hdl->pages-1)) == 0) i2c_ssd1306_clear_scroll_display(dev_hdl);
            lineChar[0] = 0x02;
            sprintf(&lineChar[1], " Line %02d", page);
            i2c_ssd1306_display_scroll_text(dev_hdl, lineChar, strlen(lineChar), false);
            vTaskDelay(500 / portTICK_PERIOD_MS);
        }
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        // Horizontal Scroll
        ESP_LOGI(APP_TAG, "Horizontal Scroll");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "Horizontal", 10, false);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_LEFT, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);
        // Vertical Scroll
        ESP_LOGI(APP_TAG, "Vertical Scroll");
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "Vertical", 8, false);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_DOWN, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_UP, I2C_SSD1306_SCROLL_2_FRAMES);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        i2c_ssd1306_set_hardware_scroll(dev_hdl, I2C_SSD1306_SCROLL_STOP, I2C_SSD1306_SCROLL_2_FRAMES);
        // Bitmaps
        ESP_LOGI(APP_TAG, "Bitmaps");
        i2c_ssd1306_display_text(dev_hdl, 1, "BATMAN", 6, false);
        int bitmapWidth = 4*8;
        int width = dev_hdl->width;
        int xpos = width / 2; // center of width
        xpos = xpos - bitmapWidth/2;
        int ypos = 16;
        ESP_LOGD(APP_TAG, "width=%d xpos=%d", width, xpos);
        i2c_ssd1306_display_bitmap(dev_hdl, xpos, ypos, batman, 32, 13, false);
        vTaskDelay(3000 / portTICK_PERIOD_MS);
        for(int i=0;i<128;i++) {
            i2c_ssd1306_set_display_wrap_arround(dev_hdl, I2C_SSD1306_SCROLL_RIGHT, 2, 3, 0);
        }
        vTaskDelay(2000 / portTICK_PERIOD_MS);
        i2c_ssd1306_clear_display(dev_hdl, false);
        i2c_ssd1306_display_bitmap(dev_hdl, 0, 0, fleischer, 128, 64, false);
        vTaskDelay(2000 / portTICK_PERIOD_MS);
        // Invert
        ESP_LOGI(APP_TAG, "Invert");
        i2c_ssd1306_clear_display(dev_hdl, true);
        i2c_ssd1306_set_display_contrast(dev_hdl, 0xff);
        i2c_ssd1306_display_text(dev_hdl, center, "  Good Bye!!", 12, true);
        vTaskDelay(5000 / portTICK_PERIOD_MS);
        // Fade Out
        ESP_LOGI(APP_TAG, "Fade Out");
        i2c_ssd1306_fadeout_display(dev_hdl);
        //
        ESP_LOGI(APP_TAG, "######################## SSD1306 - END ###########################");
        //
        //
        // pause the task per defined wait period
        vTaskDelaySecUntil( &last_wake_time, I2C0_TASK_SAMPLING_RATE + 10 );
    }
    //
    // free resources
    i2c_ssd1306_delete( dev_hdl );
    vTaskDelete( NULL );
}

The source code for the above example and component are available here:
- Example: https://github.com/K0I05/ESP32-S3_ESP-ID...306_task.c
- Component: https://github.com/K0I05/ESP32-S3_ESP-ID...sp_ssd1306

Print this item

  KC868-A16
Posted by: juansa2 - 01-25-2025, 11:37 PM - Forum: "KCS" v2 firmware system - Replies (6)

can i extend IO A16 with two A16?

Print this item

  Problem with KC868-A16 Firmware
Posted by: jvargas - 01-25-2025, 10:35 PM - Forum: "KCS" v2 firmware system - Replies (9)

I have problems. It doesn't connect.
[Image: 1AjSOhWGY7Vq9yZ1nK5C_iwLsPlDhnFFJ]

Print this item

  Industrial sensor compatibility (4-20ma - NTC)
Posted by: Balteck - 01-25-2025, 04:25 PM - Forum: KC868-A16 - Replies (1)

Hello, I discover this item recently.
Before order one, I wish to now if it is possibile to connect an industrial sensor (Temperature and Humidity) that works in this way:

2-wires NTC 10K for the temperature
2-wires 4-20ma for the humidity

I need that the board sends values to a MQTT broker with ethernet. 

any help?

Thank you very much

Print this item

  Reset Board ? product reliability
Posted by: jltluc57 - 01-25-2025, 03:33 PM - Forum: Development - Replies (16)

Hello,


After a modification via the web page of a parameter, the system says reboot in 5 seconds.

except that the system will never reboot, you always have to cut and reconnect the power supply.

It's exactly the same thing with the reset button..
Just ping the port and you can see that the card is not rebooted.

This is not normal.

I also noticed that after loading a firmware, the visible parameters (Example Modbus slave 1) are wrong.
Indeed it displays 1 but in fact it probably has another value because for it to be recognized as slave one you have to re-enter the value and save it, and then it works.


I test this product, I realize that it has no problems (see my posts) this is only on this card model or dear colleague have you seen this also on other card references?

I have the impression that the product is debugged by customers as bugs are found.

Print this item

  KinCony S3 Core Development Board - ESP-IDF Examples
Posted by: egionet - 01-24-2025, 10:54 PM - Forum: Apply for free sample product - No Replies

Hello,

In exchange for hardware (433M Receiver, SIM7600 4G, sensors), I would happily develop and/or validate components under the ESP-IDF environment with examples.

ESP-IDF components available at the moment: ESP-IDF Components (ESP32-S3)

KinCony S3 Core Development Board ESP-IDF demo application: RTU, I2C, 1-wire Demo Application

The development environment is under Visual Studio Code with the PlatformIO and ESP-IDF (>=v5.3.1) extensions.

Print this item

  ESP32-S3 Core Development Board RTU, I2C, 1-wire Demo ESP-IDF Application
Posted by: egionet - 01-24-2025, 10:44 PM - Forum: G1 - Replies (1)

Hello,

This demo application utilizes RS-485, 1-Wire, and I2C under the ESP-IDF environment.

KinCony S3 Core Development Board RTU, I2C, 1-wire Demo Application
The demo application interfaces the following sensors:

The demo application interfaces the following sensors:

  • MODBUS RTU - RS2E radar precipitation sensor with temperature and humidity sensor
  • MODBUS RTU - WDC2E ultrasonic anemometer
  • I2C - BMP280 atmospheric pressure sensor
  • 1-Wire - DS18B20 ground temperature sensor

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.

ESP-IDF Components Library

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.

Serial debug port print example:
Code:
E (23447) RTU [APP]: ################## KINCONY-S3 ##################
I (23477) RTU [APP]: RS2E Air Temperature:        20.93°C
I (23517) RTU [APP]: RS2E Relative Humidity:      29.30 %
I (23527) RTU [APP]: RS2E Dewpoint Temperature:   2.35°C
I (23567) RTU [APP]: RS2E Precipitation Rate:     0.00 mm/h
I (23607) RTU [APP]: RS2E Precipitation Type:     No Rain
I (23647) RTU [APP]: WDC2E Wind Direction:        0°
I (23687) RTU [APP]: WDC2E Wind Speed:            0.00 m/s
I (23907) RTU [APP]: DS18B20 Ground Temperature:  22.25°C
I (23917) RTU [APP]: BMP280 Atmospheric Pressure: 994.46 hPa

Print this item

  868-A6 Tasmota and DS18x20
Posted by: MikeFFB - 01-24-2025, 11:19 AM - Forum: KC868-A6 - Replies (1)

I have Problems with Tasmota and the DS18x20 Temp sensor.....what is the config for the sensor ...in Tasmota ? I can not find the right configuration ? Need help please...

Print this item

  868-A6 Tasmota and DS18x20
Posted by: MikeFFB - 01-24-2025, 11:11 AM - Forum: KC868-A6 - Replies (1)

can you help me please....I conected the DS18x20 in correct way to the 868-A6 board. What do I need to change in TASMOTA to see the temperature ??? right now there is nothing to see...not over MQTT , not on the config Page of Tasmota board. (Server) I need help please !

Print this item