Tasmota/tasmota/include/tasmota_template.h

3332 lines
162 KiB
C
Raw Normal View History

/*
2019-10-27 11:04:08 +00:00
tasmota_template.h - template settings for Tasmota
2021-01-01 12:44:04 +00:00
Copyright (C) 2021 Theo Arends
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
2017-01-28 13:41:01 +00:00
2019-10-27 11:04:08 +00:00
#ifndef _TASMOTA_TEMPLATE_H_
#define _TASMOTA_TEMPLATE_H_
// User selectable GPIO functionality
// ATTENTION: Only add at the end of this list just before GPIO_SENSOR_END
// Then add the same name(s) in a nice location in array kGpioNiceList
enum UserSelectablePins {
2020-09-25 17:15:31 +01:00
GPIO_NONE, // Not used
GPIO_KEY1, GPIO_KEY1_NP, GPIO_KEY1_INV, GPIO_KEY1_INV_NP, // 4 x Button
GPIO_SWT1, GPIO_SWT1_NP, // 8 x User connected external switches
GPIO_REL1, GPIO_REL1_INV, // 8 x Relays
GPIO_LED1, GPIO_LED1_INV, // 4 x Leds
GPIO_CNTR1, GPIO_CNTR1_NP, // 4 x Counter
GPIO_PWM1, GPIO_PWM1_INV, // 5 x PWM
GPIO_BUZZER, GPIO_BUZZER_INV, // Buzzer
GPIO_LEDLNK, GPIO_LEDLNK_INV, // Link led
GPIO_I2C_SCL, GPIO_I2C_SDA, // Software I2C
GPIO_SPI_MISO, GPIO_SPI_MOSI, GPIO_SPI_CLK, GPIO_SPI_CS, GPIO_SPI_DC, // Hardware SPI
GPIO_SSPI_MISO, GPIO_SSPI_MOSI, GPIO_SSPI_SCLK, GPIO_SSPI_CS, GPIO_SSPI_DC, // Software SPI
GPIO_BACKLIGHT, // Display backlight control
GPIO_OLED_RESET, // OLED Display Reset
GPIO_IRSEND, GPIO_IRRECV, // IR interface
GPIO_RFSEND, GPIO_RFRECV, // RF interface
GPIO_DHT11, GPIO_DHT22, GPIO_SI7021, GPIO_DHT11_OUT, // DHT11, DHT21, DHT22, AM2301, AM2302, AM2321
GPIO_DSB, GPIO_DSB_OUT, // DS18B20 or DS18S20
GPIO_WS2812, // WS2812 Led string
GPIO_MHZ_TXD, GPIO_MHZ_RXD, // MH-Z19 Serial interface
GPIO_PZEM0XX_TX, GPIO_PZEM004_RX, GPIO_PZEM016_RX, GPIO_PZEM017_RX, // PZEM Serial Modbus interface
GPIO_SAIR_TX, GPIO_SAIR_RX, // SenseAir Serial interface
GPIO_PMS5003_TX, GPIO_PMS5003_RX, // Plantower PMS5003 Serial interface
GPIO_SDS0X1_TX, GPIO_SDS0X1_RX, // Nova Fitness SDS011 Serial interface
GPIO_SBR_TX, GPIO_SBR_RX, // Serial Bridge Serial interface
GPIO_SR04_TRIG, GPIO_SR04_ECHO, // SR04 interface
GPIO_SDM120_TX, GPIO_SDM120_RX, // SDM120 Serial interface
GPIO_SDM630_TX, GPIO_SDM630_RX, // SDM630 Serial interface
2021-03-19 09:33:46 +00:00
GPIO_TM1638CLK, GPIO_TM1638DIO, GPIO_TM1638STB, // TM1638 interface
2020-09-25 17:15:31 +01:00
GPIO_MP3_DFR562, // RB-DFR-562, DFPlayer Mini MP3 Player
GPIO_HX711_SCK, GPIO_HX711_DAT, // HX711 Load Cell interface
GPIO_TX2X_TXD_BLACK, // TX20/TX23 Transmission Pin
GPIO_TUYA_TX, GPIO_TUYA_RX, // Tuya Serial interface
GPIO_MGC3130_XFER, GPIO_MGC3130_RESET, // MGC3130 interface
GPIO_RF_SENSOR, // Rf receiver with sensor decoding
GPIO_AZ_TXD, GPIO_AZ_RXD, // AZ-Instrument 7798 Serial interface
GPIO_MAX31855CS, GPIO_MAX31855CLK, GPIO_MAX31855DO, // MAX31855 Serial interface
GPIO_NRG_SEL, GPIO_NRG_SEL_INV, GPIO_NRG_CF1, GPIO_HLW_CF, GPIO_HJL_CF, // HLW8012/HJL-01/BL0937 energy monitoring
GPIO_MCP39F5_TX, GPIO_MCP39F5_RX, GPIO_MCP39F5_RST, // MCP39F501 Energy monitoring (Shelly2)
GPIO_PN532_TXD, GPIO_PN532_RXD, // PN532 NFC Serial interface
GPIO_SM16716_CLK, GPIO_SM16716_DAT, GPIO_SM16716_SEL, // SM16716 SELECT
GPIO_DI, GPIO_DCKI, // my92x1 PWM controller
GPIO_CSE7766_TX, GPIO_CSE7766_RX, // CSE7766 Serial interface (S31 and Pow R2)
GPIO_ARIRFRCV, GPIO_ARIRFSEL, // Arilux RF Receive input
GPIO_TXD, GPIO_RXD, // Serial interface
GPIO_ROT1A, GPIO_ROT1B, // Rotary switch
GPIO_ADC_JOY, // Analog joystick
GPIO_SSPI_MAX31865_CS1, // MAX31865 Chip Select
GPIO_HRE_CLOCK, GPIO_HRE_DATA, // HR-E Water Meter
GPIO_ADE7953_IRQ, // ADE7953 IRQ
GPIO_SOLAXX1_TX, GPIO_SOLAXX1_RX, // Solax Inverter Serial interface
2020-09-25 17:15:31 +01:00
GPIO_ZIGBEE_TX, GPIO_ZIGBEE_RX, // Zigbee Serial interface
GPIO_RDM6300_RX, // RDM6300 RX
GPIO_IBEACON_TX, GPIO_IBEACON_RX, // HM17 IBEACON Serial interface
GPIO_A4988_DIR, GPIO_A4988_STP, GPIO_A4988_ENA, GPIO_A4988_MS1, // A4988 interface
GPIO_OUTPUT_HI, GPIO_OUTPUT_LO, // Fixed output state
2020-09-25 17:15:31 +01:00
GPIO_DDS2382_TX, GPIO_DDS2382_RX, // DDS2382 Serial interface
GPIO_DDSU666_TX, GPIO_DDSU666_RX, // DDSU666 Serial interface
GPIO_SM2135_CLK, GPIO_SM2135_DAT, // SM2135 PWM controller
GPIO_DEEPSLEEP, // Kill switch for deepsleep
GPIO_EXS_ENABLE, // EXS MCU Enable
GPIO_TASMOTACLIENT_TXD, GPIO_TASMOTACLIENT_RXD, // Client Serial interface
GPIO_TASMOTACLIENT_RST, GPIO_TASMOTACLIENT_RST_INV, // Client Reset
GPIO_HPMA_RX, GPIO_HPMA_TX, // Honeywell HPMA115S0 Serial interface
GPIO_GPS_RX, GPIO_GPS_TX, // GPS Serial interface
GPIO_HM10_RX, GPIO_HM10_TX, // HM10-BLE-Mijia-bridge Serial interface
GPIO_LE01MR_RX, GPIO_LE01MR_TX, // F&F LE-01MR energy meter
GPIO_CC1101_GDO0, GPIO_CC1101_GDO2, // CC1101 Serial interface
GPIO_HRXL_RX, // Data from MaxBotix HRXL sonar range sensor
GPIO_ELECTRIQ_MOODL_TX, // ElectriQ iQ-wifiMOODL Serial TX
GPIO_AS3935, // Franklin Lightning Sensor
GPIO_ADC_INPUT, // Analog input
GPIO_ADC_TEMP, // Analog Thermistor
GPIO_ADC_LIGHT, // Analog Light sensor
GPIO_ADC_BUTTON, GPIO_ADC_BUTTON_INV, // Analog Button
GPIO_ADC_RANGE, // Analog Range
GPIO_ADC_CT_POWER, // ANalog Current
#ifdef ESP32
GPIO_WEBCAM_PWDN, GPIO_WEBCAM_RESET, GPIO_WEBCAM_XCLK, // Webcam
GPIO_WEBCAM_SIOD, GPIO_WEBCAM_SIOC, // Webcam I2C
GPIO_WEBCAM_DATA,
GPIO_WEBCAM_VSYNC, GPIO_WEBCAM_HREF, GPIO_WEBCAM_PCLK,
GPIO_WEBCAM_PSCLK,
GPIO_WEBCAM_HSD,
GPIO_WEBCAM_PSRCS,
#endif
GPIO_BOILER_OT_RX, GPIO_BOILER_OT_TX, // OpenTherm Boiler TX pin
GPIO_WINDMETER_SPEED, // WindMeter speed counter pin
GPIO_KEY1_TC, // Touch pin as button
GPIO_BL0940_RX, // BL0940 serial interface
GPIO_TCP_TX, GPIO_TCP_RX, // TCP to serial bridge
#ifdef ESP32
GPIO_ETH_PHY_POWER, GPIO_ETH_PHY_MDC, GPIO_ETH_PHY_MDIO, // Ethernet
#endif
GPIO_TELEINFO_RX, // Teleinfo telemetry data receive pin
GPIO_TELEINFO_ENABLE, // Teleinfo Enable Receive Pin
GPIO_LMT01, // LMT01 input counting pin
GPIO_IEM3000_TX, GPIO_IEM3000_RX, // IEM3000 Serial interface
GPIO_ZIGBEE_RST, // Zigbee reset
GPIO_DYP_RX,
GPIO_MIEL_HVAC_TX, GPIO_MIEL_HVAC_RX, // Mitsubishi Electric HVAC
GPIO_WE517_TX, GPIO_WE517_RX, // ORNO WE517 Serial interface
GPIO_AS608_TX, GPIO_AS608_RX, // Serial interface AS608 / R503
GPIO_SHELLY_DIMMER_BOOT0, GPIO_SHELLY_DIMMER_RST_INV,
2020-11-30 11:52:59 +00:00
GPIO_RC522_RST, // RC522 reset
GPIO_P9813_CLK, GPIO_P9813_DAT, // P9813 Clock and Data
GPIO_OPTION_A, // Specific device options to be served in code
GPIO_FTC532, // FTC532 touch ctrlr serial input
2020-12-29 11:06:47 +00:00
GPIO_RC522_CS,
GPIO_NRF24_CS, GPIO_NRF24_DC,
GPIO_ILI9341_CS, GPIO_ILI9341_DC,
GPIO_ILI9488_CS,
GPIO_EPAPER29_CS,
GPIO_EPAPER42_CS,
GPIO_SSD1351_CS,
GPIO_RA8876_CS,
GPIO_ST7789_CS, GPIO_ST7789_DC,
2021-01-01 15:05:06 +00:00
GPIO_SSD1331_CS, GPIO_SSD1331_DC,
2021-01-04 14:03:56 +00:00
GPIO_SDCARD_CS,
GPIO_ROT1A_NP, GPIO_ROT1B_NP, // Rotary switch
GPIO_ADC_PH, // Analog PH Sensor
2021-01-07 15:39:41 +00:00
GPIO_BS814_CLK, GPIO_BS814_DAT, // Holtek BS814A2 touch ctrlr
GPIO_WIEGAND_D0, GPIO_WIEGAND_D1, // Wiegand Data lines
2021-01-20 12:56:57 +00:00
GPIO_NEOPOOL_TX, GPIO_NEOPOOL_RX, // Sugar Valley RS485 interface
2021-02-09 15:13:40 +00:00
GPIO_SDM72_TX, GPIO_SDM72_RX, // SDM72 Serial interface
GPIO_TM1637CLK, GPIO_TM1637DIO, // TM1637 interface
GPIO_PROJECTOR_CTRL_TX, GPIO_PROJECTOR_CTRL_RX, // LCD/DLP Projector Serial Control
2021-02-28 15:09:57 +00:00
GPIO_SSD1351_DC,
2021-02-25 09:58:33 +00:00
GPIO_XPT2046_CS, // XPT2046 SPI Chip Select
2021-03-01 17:22:26 +00:00
GPIO_CSE7761_TX, GPIO_CSE7761_RX, // CSE7761 Serial interface (Dual R3)
GPIO_VL53LXX_XSHUT1, // VL53LXX_XSHUT (the max number of sensors is VL53LXX_MAX_SENSORS)- Used when connecting multiple VL53LXX
GPIO_MAX7219CLK, GPIO_MAX7219DIN, GPIO_MAX7219CS, // MAX7219 interface
2021-03-23 14:02:35 +00:00
GPIO_TFMINIPLUS_TX, GPIO_TFMINIPLUS_RX, // TFmini Plus ToF sensor
2021-03-23 14:17:32 +00:00
GPIO_ZEROCROSS,
#ifdef ESP32
GPIO_HALLEFFECT,
2021-04-09 15:42:51 +01:00
GPIO_EPD_DATA, // Base connection EPD driver
#endif
GPIO_INPUT,
#ifdef ESP32
GPIO_KEY1_PD, GPIO_KEY1_INV_PD, GPIO_SWT1_PD,
#endif
2022-07-11 14:49:57 +01:00
GPIO_I2S_DOUT, GPIO_I2S_BCLK, GPIO_I2S_WS,
GPIO_I2S_DIN, GPIO_I2S_BCLK_IN, GPIO_I2S_WS_IN,
2021-05-25 19:14:15 +01:00
GPIO_INTERRUPT,
2021-07-14 10:54:54 +01:00
GPIO_MCP2515_CS, // MCP2515 Chip Select
GPIO_HRG15_TX, GPIO_HRG15_RX, // Hydreon RG-15 rain sensor serial interface
GPIO_VINDRIKTNING_RX, // IKEA VINDRIKTNING Serial interface
GPIO_BL0939_RX, // BL0939 Serial interface (Dual R3 v2)
GPIO_BL0942_RX, // BL0942 Serial interface
GPIO_HM330X_SET, // HM330X SET pin (sleep when low)
2021-11-03 10:58:05 +00:00
GPIO_HEARTBEAT, GPIO_HEARTBEAT_INV,
2021-12-04 14:42:20 +00:00
GPIO_SHIFT595_SRCLK, GPIO_SHIFT595_RCLK, GPIO_SHIFT595_OE, GPIO_SHIFT595_SER, // 74x595 Shift register
GPIO_SOLAXX1_RTS, // Solax Inverter Serial interface
GPIO_OPTION_E, // Emulated module
GPIO_SDM230_TX, GPIO_SDM230_RX, // SDM230 Serial interface
GPIO_ADC_MQ, // Analog MQ Sensor
GPIO_CM11_TXD, GPIO_CM11_RXD, // CM11 Serial interface
2022-02-15 09:41:25 +00:00
GPIO_BL6523_TX, GPIO_BL6523_RX, // BL6523 based Watt meter Serial interface
2022-03-05 14:09:17 +00:00
GPIO_ADE7880_IRQ, // ADE7880 IRQ
GPIO_RESET, // Generic reset
GPIO_MS01, // Sonoff MS01 Moisture Sensor 1wire interface
2022-04-19 18:17:04 +01:00
GPIO_SDIO_CMD, GPIO_SDIO_CLK, GPIO_SDIO_D0, GPIO_SDIO_D1, GPIO_SDIO_D2, GPIO_SDIO_D3, // SD Card SDIO interface, including 1-bit and 4-bit modes
2022-04-27 15:49:16 +01:00
GPIO_FLOWRATEMETER_IN, // Flowrate Meter
GPIO_BP5758D_CLK, GPIO_BP5758D_DAT, // BP5758D PWM controller
GPIO_SM2335_CLK, GPIO_SM2335_DAT, // SM2335 PWM controller
2022-06-24 13:55:19 +01:00
GPIO_MP3_DFR562_BUSY, // RB-DFR-562, DFPlayer Mini MP3 Player busy flag
2022-07-04 09:46:35 +01:00
GPIO_TM1621_CS, GPIO_TM1621_WR, GPIO_TM1621_RD, GPIO_TM1621_DAT, // Sonoff POWR3xxD and THR3xxD LCD display
GPIO_REL1_BI, GPIO_REL1_BI_INV, // 8 x Relays bistable
2022-07-11 14:49:57 +01:00
GPIO_I2S_MCLK,
2022-07-19 09:37:03 +01:00
GPIO_MBR_TX, GPIO_MBR_RX, // Modbus Bridge Serial interface
GPIO_ADE7953_RST, // ADE7953 Reset
2022-10-06 18:22:46 +01:00
GPIO_NRG_MBS_TX, GPIO_NRG_MBS_RX, // Generic Energy Modbus device
2022-10-21 14:06:52 +01:00
GPIO_ADE7953_CS, // ADE7953 SPI Chip Select
2022-10-28 15:08:02 +01:00
GPIO_DALI_RX, GPIO_DALI_TX, // Dali
GPIO_BP1658CJ_CLK, GPIO_BP1658CJ_DAT,// BP1658CJ
2022-10-29 20:38:22 +01:00
GPIO_DINGTIAN_CLK, GPIO_DINGTIAN_SDI, GPIO_DINGTIAN_Q7, GPIO_DINGTIAN_PL, GPIO_DINGTIAN_RCK, // Dingtian relay board - 595's & 165's pins
2022-11-21 13:07:25 +00:00
GPIO_LD2410_TX, GPIO_LD2410_RX, // HLK-LD2410
Adding support for ME007-ULS narrow FoV ultrasonic distance sensor (#17376) * Squashed commit of the following: commit 1441459a47cff0a43aa61ce47510585ee03649f3 Merge: a9fcbd342 7e27945e5 Author: Mathias Buder <mathias_buder@bose.com> Date: Tue Dec 13 09:00:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit a9fcbd3428445eb914816f608e064568d16b41e9 Merge: 7bb1049f5 d83119897 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 12 10:33:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 7bb1049f51da8d064462b9499ed479a7675b368e Merge: 83a5afa7a eee86f01a Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 9 09:30:29 2022 +0100 Merge remote-tracking branch 'github/development' into me007-narrow-fov-ultrasonic-sensor commit 83a5afa7ad27fcde1e67008e41a9bfd9c680cccd Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 14:47:13 2022 +0100 [ME007] Added driver version number to MQTT message, small delay between consecutive measurement commit 9b8667843154f02a23020e655d806ed76ae2e530 Merge: 39180f345 de408921e Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 10:12:45 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 39180f3451fce5f06504195faea0124d73dac1ee Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Dec 7 16:41:26 2022 +0100 [ME007] Added median filter commit 01b68e0e6ca147ac03b63b8c71d035563e3bf13b Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 23:08:57 2022 +0100 [ME007] Simplified state maschine within me007_measure() commit 1c74c6ed3e4097f09792a48420b2016c92e10353 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 22:21:16 2022 +0100 [ME007] Fixed issues from previous pull-request commit 25b667120fd8d70fcfed36de44f1b7a17d0686be Merge: 01e0b1809 e7d40b8d1 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 10:46:25 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor # Conflicts: # tasmota/include/tasmota_template.h commit 01e0b18096bfffc67673e25152114694caaf110a Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Dec 4 20:53:39 2022 +0100 [ME007] Minor changes commit ec00c9b85d223b78586c464bb92d1c7894357a40 Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 2 13:08:06 2022 +0100 [ME007] Added some measurement error statistics commit c5cf65f82c42195752a88fd1553c74ab68c39cb2 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 22:38:07 2022 +0100 [ME007] Fixed MQTT message commit ae07d8dd77db47e20578f655ec057a63b30e65ce Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 21:56:20 2022 +0100 [ME007] Minor code refactoring commit d2b43ca70c716e1b637b9efd3b536506233e5365 Merge: 292f5f6c8 816fd78fb Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:48:38 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 292f5f6c81f1659eb225271cdd025eb77da02c6f Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:47:03 2022 +0100 [ME007] Added logic to detect sensor at boot and during runtime commit f17af404fee76bf63b30ed3c9d2175c4e01c03ca Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:32:19 2022 +0100 [ME007] Added missing define into language files commit 7a271abeca36139a43ef96bd461d46ba0c662901 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:19:23 2022 +0100 [ME007] Improved snesor measuremnt function commit fe42ebd1124e2246e4d7afd63c905c251e084b27 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 00:43:13 2022 +0100 [ME007] Updated state maschine to trigger and receive sensor measurements commit d137e6dec5104b4716428849d99c68bbf407ab42 Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Nov 30 20:35:31 2022 +0100 [ME007] Added initial state maschine to trigger and receive sensor measurements commit fc3da7b36849df162d9d5496a763ab2beb096aff Author: Mathias Buder <mathias.buder@gmail.com> Date: Tue Nov 29 21:28:28 2022 +0100 [ME007] Updated pin name commit e9fa9fb771cf15dcd9ed8b63b9194154543ef10e Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 22:02:34 2022 +0100 [ME007] Fixed issue that sensor GPIOs not shown in drop-down list commit a13e42660183eb4ab91007ca0ea6bf1544687556 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:06:34 2022 +0100 [ME007] Added sensor into supported feature list commit dec17b59ce2905124386f8c90d81656bf104c844 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:01:58 2022 +0100 [ME007] Removed log message in Xsns23() commit 11f479d2ec9d3f4e7552c2f78cdc83914c5b8b94 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 10:47:55 2022 +0100 [ME007] Added GPIOs to tasmota_template_legacy.h and berry commit 23aec8e5ff4e9fb8ef7d3b01a707641accc1e01e Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Nov 27 20:10:53 2022 +0100 [ME007] Initial ME007 driver API setup * [ME007] Reverted change in .gitignore and platform.ini * [ME007] Removed dependency to stdlib.h * [ME007] Adjusted unit to cm * [ME007] Reverted change in tasmota_template_legacy.h * [ME007] Changed sensor message tag to three characters * [ME007] Disabled sensor in my_user_config.h * [ME007] Added driver code size into commente Co-authored-by: Mathias Buder <mathias_buder@bose.com>
2022-12-14 10:52:26 +00:00
GPIO_MBR_TX_ENA, GPIO_NRG_MBS_TX_ENA, // Modbus Bridge Serial Transmit Enable
GPIO_ME007_TRIG, GPIO_ME007_RX, // ME007 Serial/Trigger interface
GPIO_TUYAMCUBR_TX, GPIO_TUYAMCUBR_RX, // TuyaMCU Bridge
GPIO_BIOPDU_PZEM0XX_TX, GPIO_BIOPDU_PZEM016_RX, GPIO_BIOPDU_BIT, // Biomine BioPDU 625x12
GPIO_MCP23XXX_INT, GPIO_MCP23SXX_CS, // MCP23xxx Int and SPI Chip select
GPIO_PCF8574_INT, // PCF8574 interrupt
GPIO_LOX_O2_RX, // LOX-O2 RX
2023-04-27 16:44:33 +01:00
GPIO_GM861_TX, GPIO_GM861_RX, // GM861 Serial interface
GPIO_DINGTIAN_OE, // New version of Dingtian relay board where PL is not shared with OE
GPIO_SENSOR_END };
2022-10-06 18:22:46 +01:00
// Error as warning to rethink GPIO usage with max 2045
static_assert(GPIO_SENSOR_END < 2000, "Too many UserSelectablePins");
enum ProgramSelectablePins {
2020-09-25 17:15:31 +01:00
GPIO_FIX_START = 2046,
GPIO_USER, // User configurable needs to be 2047
GPIO_MAX };
2017-01-28 13:41:01 +00:00
#define MAX_OPTIONS_A 7 // Increase if more bits are used from GpioOptionABits
typedef union { // Restricted by MISRA-C Rule 18.4 but so useful...
uint32_t data; // Allow bit manipulation using SetOption
struct { // GPIO Option_A1 .. Option_A32
uint32_t pwm1_input : 1; // bit 0 (v9.2.0.1) - Option_A1 - (Light) Change PWM1 to input on power off and no fade running (1)
uint32_t dummy_energy : 1; // bit 1 (v9.3.1.2) - Option_A2 - (Energy) Enable dummy values
uint32_t udisplay_driver : 1; // bit 2 (v9.3.1.2) - Option_A3 - (Display) Universal display driver
uint32_t enable_ccloader : 1; // bit 3 (v9.4.0.5) - Option_A4 - (Zigbee) Enable CCLoader using Zigbee Rx/Tx/Rst Gpios
uint32_t rotary_mi_desk : 1; // bit 4 (v9.5.0.5) - Option_A5 - (Rotary) Enable Mi Desk emulation
2022-02-05 14:50:04 +00:00
uint32_t linkind_support : 1; // bit 5 (v10.1.0.4) - Option_A6 - (Light) LinkInd support
uint32_t shelly_pro : 1; // bit 6 (v12.2.0.1) - Option_A7 - (Device) Shelly Pro
uint32_t spare07 : 1; // bit 7
uint32_t spare08 : 1; // bit 8
uint32_t spare09 : 1; // bit 9
uint32_t spare10 : 1; // bit 10
uint32_t spare11 : 1; // bit 11
uint32_t spare12 : 1; // bit 12
uint32_t spare13 : 1; // bit 13
uint32_t spare14 : 1; // bit 14
uint32_t spare15 : 1; // bit 15
uint32_t spare16 : 1; // bit 16
uint32_t spare17 : 1; // bit 17
uint32_t spare18 : 1; // bit 18
uint32_t spare19 : 1; // bit 19
uint32_t spare20 : 1; // bit 20
uint32_t spare21 : 1; // bit 21
uint32_t spare22 : 1; // bit 22
uint32_t spare23 : 1; // bit 23
uint32_t spare24 : 1; // bit 24
uint32_t spare25 : 1; // bit 25
uint32_t spare26 : 1; // bit 26
uint32_t spare27 : 1; // bit 27
uint32_t spare28 : 1; // bit 28
uint32_t spare29 : 1; // bit 29
uint32_t spare30 : 1; // bit 30
uint32_t spare31 : 1; // bit 31
};
} GpioOptionABits;
2022-01-07 16:08:17 +00:00
#ifdef ESP32
enum SupportedEmulationModules {
SONOFF_BASIC, SONOFF_RF, SONOFF_SV, SONOFF_TH, SONOFF_DUAL, SONOFF_POW, SONOFF_4CH, SONOFF_S2X, SLAMPHER, SONOFF_TOUCH,
SONOFF_LED, CH1, CH4, MOTOR, ELECTRODRAGON, EXS_RELAY, WION, WEMOS_DUMMY, SONOFF_DEV, H801,
SONOFF_SC, SONOFF_BN, SONOFF_4CHPRO, HUAFAN_SS, SONOFF_BRIDGE, SONOFF_B1, AILIGHT, SONOFF_T11, SONOFF_T12, SONOFF_T13,
SUPLA1, WITTY, YUNSHAN, MAGICHOME, LUANIHVIO, KMC_70011, ARILUX_LC01, ARILUX_LC11, SONOFF_DUAL_R2, ARILUX_LC06,
SONOFF_S31, ZENGGE_ZF_WF017, SONOFF_POW_R2, SONOFF_IFAN02, BLITZWOLF_BWSHP, SHELLY1, SHELLY2, PHILIPS, NEO_COOLCAM, ESP_SWITCH,
OBI, TECKIN, APLIC_WDP303075, TUYA_DIMMER, GOSUND, ARMTRONIX_DIMMERS, SK03_TUYA, PS_16_DZ, TECKIN_US, MANZOKU_EU_4,
OBI2, YTF_IR_BRIDGE, DIGOO, KA10, ZX2820, MI_DESK_LAMP, SP10, WAGA, SYF05, SONOFF_L1,
SONOFF_IFAN03, EXS_DIMMER, PWM_DIMMER, SONOFF_D1, SONOFF_ZB_BRIDGE,
MAXMODULE_EMULATION };
#define MAX_OPTIONS_E 1 // Increase if more emulated modules are supported from kModuleEmulationList
const uint8_t kModuleEmulationList[] PROGMEM = {
2022-02-05 14:50:04 +00:00
PWM_DIMMER // (v10.1.0.4) - Option_E1 - (Light) USE_PWM_DIMMER support
};
2022-01-07 16:08:17 +00:00
#endif // ESP32
// Text in webpage Module Parameters and commands GPIOS and GPIO
const char kSensorNames[] PROGMEM =
D_SENSOR_NONE "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_BUTTON "|" D_SENSOR_BUTTON "_n|" D_SENSOR_BUTTON "_i|" D_SENSOR_BUTTON "_in|"
D_SENSOR_SWITCH "|" D_SENSOR_SWITCH "_n|"
D_SENSOR_RELAY "|" D_SENSOR_RELAY "_i|"
D_SENSOR_LED "|" D_SENSOR_LED "_i|"
D_SENSOR_COUNTER "|" D_SENSOR_COUNTER "_n|"
D_SENSOR_PWM "|" D_SENSOR_PWM "_i|"
D_SENSOR_BUZZER "|" D_SENSOR_BUZZER "_i|"
D_SENSOR_LED_LINK "|" D_SENSOR_LED_LINK "_i|"
D_SENSOR_I2C_SCL "|" D_SENSOR_I2C_SDA "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_SPI_MISO "|" D_SENSOR_SPI_MOSI "|" D_SENSOR_SPI_CLK "|" D_SENSOR_SPI_CS "|" D_SENSOR_SPI_DC "|"
D_SENSOR_SSPI_MISO "|" D_SENSOR_SSPI_MOSI "|" D_SENSOR_SSPI_SCLK "|" D_SENSOR_SSPI_CS "|" D_SENSOR_SSPI_DC "|"
2021-05-25 18:26:40 +01:00
D_SENSOR_BACKLIGHT "|" D_SENSOR_DISP_RESET "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_IRSEND "|" D_SENSOR_IRRECV "|"
D_SENSOR_RFSEND "|" D_SENSOR_RFRECV "|"
D_SENSOR_DHT11 "|" D_SENSOR_AM2301 "|" D_SENSOR_SI7021 "|" D_SENSOR_DHT11 "_o|"
D_SENSOR_DS18X20 "|" D_SENSOR_DS18X20 "_o|"
D_SENSOR_WS2812 "|"
D_SENSOR_MHZ_TX "|" D_SENSOR_MHZ_RX "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_PZEM0XX_TX "|" D_SENSOR_PZEM004_RX "|" D_SENSOR_PZEM016_RX "|" D_SENSOR_PZEM017_RX "|"
D_SENSOR_SAIR_TX "|" D_SENSOR_SAIR_RX "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_PMS5003_TX "|" D_SENSOR_PMS5003_RX "|"
D_SENSOR_SDS0X1_TX "|" D_SENSOR_SDS0X1_RX "|"
D_SENSOR_SBR_TX "|" D_SENSOR_SBR_RX "|"
D_SENSOR_SR04_TRIG "|" D_SENSOR_SR04_ECHO "|"
D_SENSOR_SDM120_TX "|" D_SENSOR_SDM120_RX "|"
D_SENSOR_SDM630_TX "|" D_SENSOR_SDM630_RX "|"
D_SENSOR_TM1638_CLK "|" D_SENSOR_TM1638_DIO "|" D_SENSOR_TM1638_STB "|"
D_SENSOR_DFR562 "|"
D_SENSOR_HX711_SCK "|" D_SENSOR_HX711_DAT "|"
D_SENSOR_TX2X_TX "|"
D_SENSOR_TUYA_TX "|" D_SENSOR_TUYA_RX "|"
D_SENSOR_MGC3130_XFER "|" D_SENSOR_MGC3130_RESET "|"
D_SENSOR_RF_SENSOR "|"
D_SENSOR_AZ_TX "|" D_SENSOR_AZ_RX "|"
2019-01-19 22:28:58 +00:00
D_SENSOR_MAX31855_CS "|" D_SENSOR_MAX31855_CLK "|" D_SENSOR_MAX31855_DO "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_NRG_SEL "|" D_SENSOR_NRG_SEL "_i|" D_SENSOR_NRG_CF1 "|" D_SENSOR_HLW_CF "|" D_SENSOR_HJL_CF "|"
D_SENSOR_MCP39F5_TX "|" D_SENSOR_MCP39F5_RX "|" D_SENSOR_MCP39F5_RST "|"
D_SENSOR_PN532_TX "|" D_SENSOR_PN532_RX "|"
D_SENSOR_SM16716_CLK "|" D_SENSOR_SM16716_DAT "|" D_SENSOR_SM16716_POWER "|"
D_SENSOR_MY92X1_DI "|" D_SENSOR_MY92X1_DCKI "|"
D_SENSOR_CSE7766_TX "|" D_SENSOR_CSE7766_RX "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_ARIRFRCV "|" D_SENSOR_ARIRFSEL "|"
D_SENSOR_TXD "|" D_SENSOR_RXD "|"
2021-01-06 13:14:15 +00:00
D_SENSOR_ROTARY " A|" D_SENSOR_ROTARY " B|"
2020-09-25 17:15:31 +01:00
D_SENSOR_ADC_JOYSTICK "|"
D_SENSOR_MAX31865_CS "|"
2019-03-23 23:26:03 +00:00
D_SENSOR_HRE_CLOCK "|" D_SENSOR_HRE_DATA "|"
D_SENSOR_ADE7953_IRQ "|"
D_SENSOR_SOLAXX1_TX "|" D_SENSOR_SOLAXX1_RX "|"
D_SENSOR_ZIGBEE_TXD "|" D_SENSOR_ZIGBEE_RXD "|"
2019-08-19 09:54:58 +01:00
D_SENSOR_RDM6300_RX "|"
2019-08-24 12:20:00 +01:00
D_SENSOR_IBEACON_TX "|" D_SENSOR_IBEACON_RX "|"
D_SENSOR_A4988_DIR "|" D_SENSOR_A4988_STP "|" D_SENSOR_A4988_ENA "|" D_SENSOR_A4988_MS1 "|"
D_SENSOR_OUTPUT_HI "|" D_SENSOR_OUTPUT_LO "|"
D_SENSOR_DDS2382_TX "|" D_SENSOR_DDS2382_RX "|"
2019-10-03 09:06:51 +01:00
D_SENSOR_DDSU666_TX "|" D_SENSOR_DDSU666_RX "|"
D_SENSOR_SM2135_CLK "|" D_SENSOR_SM2135_DAT "|"
D_SENSOR_DEEPSLEEP "|" D_SENSOR_EXS_ENABLE "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_CLIENT_TX "|" D_SENSOR_CLIENT_RX "|" D_SENSOR_CLIENT_RESET "|" D_SENSOR_CLIENT_RESET "_i|"
D_SENSOR_HPMA_RX "|" D_SENSOR_HPMA_TX "|"
2020-01-05 00:06:30 +00:00
D_SENSOR_GPS_RX "|" D_SENSOR_GPS_TX "|"
D_SENSOR_HM10_RX "|" D_SENSOR_HM10_TX "|"
2020-02-27 20:31:19 +00:00
D_SENSOR_LE01MR_RX "|" D_SENSOR_LE01MR_TX "|"
D_SENSOR_CC1101_GDO0 "|" D_SENSOR_CC1101_GDO2 "|"
D_SENSOR_HRXL_RX "|"
2020-04-11 00:48:37 +01:00
D_SENSOR_ELECTRIQ_MOODL "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_AS3935 "|"
D_SENSOR_ADC_INPUT "|"
D_SENSOR_ADC_TEMP "|"
D_SENSOR_ADC_LIGHT "|"
D_SENSOR_ADC_BUTTON "|" D_SENSOR_ADC_BUTTON "_i|"
D_SENSOR_ADC_RANGE "|"
D_SENSOR_ADC_CT_POWER "|"
#ifdef ESP32
D_GPIO_WEBCAM_PWDN "|" D_GPIO_WEBCAM_RESET "|" D_GPIO_WEBCAM_XCLK "|"
D_GPIO_WEBCAM_SIOD "|" D_GPIO_WEBCAM_SIOC "|"
D_GPIO_WEBCAM_DATA "|"
D_GPIO_WEBCAM_VSYNC "|" D_GPIO_WEBCAM_HREF "|" D_GPIO_WEBCAM_PCLK "|"
D_GPIO_WEBCAM_PSCLK "|"
D_GPIO_WEBCAM_HSD "|"
D_GPIO_WEBCAM_PSRCS "|"
#endif
D_SENSOR_BOILER_OT_RX "|" D_SENSOR_BOILER_OT_TX "|"
2020-09-25 17:15:31 +01:00
D_SENSOR_WINDMETER_SPEED "|" D_SENSOR_BUTTON "_tc|"
D_SENSOR_BL0940_RX "|"
D_SENSOR_TCP_TXD "|" D_SENSOR_TCP_RXD "|"
2020-09-25 17:15:31 +01:00
#ifdef ESP32
D_SENSOR_ETH_PHY_POWER "|" D_SENSOR_ETH_PHY_MDC "|" D_SENSOR_ETH_PHY_MDIO "|"
#endif
D_SENSOR_TELEINFO_RX "|" D_SENSOR_TELEINFO_ENABLE "|"
D_SENSOR_LMT01_PULSE "|"
2020-07-22 09:07:07 +01:00
D_SENSOR_IEM3000_TX "|" D_SENSOR_IEM3000_RX "|"
D_SENSOR_ZIGBEE_RST "|"
D_SENSOR_DYP_RX "|"
D_SENSOR_MIEL_HVAC_TX "|" D_SENSOR_MIEL_HVAC_RX "|"
D_SENSOR_WE517_TX "|" D_SENSOR_WE517_RX "|"
D_SENSOR_AS608_TX "|" D_SENSOR_AS608_RX "|"
2020-11-30 11:52:59 +00:00
D_SENSOR_SHELLY_DIMMER_BOOT0 "|" D_SENSOR_SHELLY_DIMMER_RST_INV "|"
D_SENSOR_RC522_RST "|"
D_SENSOR_P9813_CLK "|" D_SENSOR_P9813_DAT "|"
2021-01-06 13:14:15 +00:00
D_SENSOR_OPTION " A|"
2020-12-29 11:06:47 +00:00
D_SENSOR_FTC532 "|"
D_SENSOR_RC522_CS "|"
D_SENSOR_NRF24_CS "|" D_SENSOR_NRF24_DC "|"
D_SENSOR_ILI9341_CS "|" D_SENSOR_ILI9341_DC "|"
D_SENSOR_ILI9488_CS "|"
D_SENSOR_EPAPER29_CS "|"
D_SENSOR_EPAPER42_CS "|"
D_SENSOR_SSD1351_CS "|"
D_SENSOR_RA8876_CS "|"
D_SENSOR_ST7789_CS "|" D_SENSOR_ST7789_DC "|"
2021-01-01 15:05:06 +00:00
D_SENSOR_SSD1331_CS "|" D_SENSOR_SSD1331_DC "|"
2021-01-04 14:03:56 +00:00
D_SENSOR_SDCARD_CS "|"
2021-01-06 13:14:15 +00:00
D_SENSOR_ROTARY " A_n|" D_SENSOR_ROTARY " B_n|"
D_SENSOR_ADC_PH "|"
2021-01-07 15:39:41 +00:00
D_SENSOR_BS814_CLK "|" D_SENSOR_BS814_DAT "|"
D_SENSOR_WIEGAND_D0 "|" D_SENSOR_WIEGAND_D1 "|"
2021-01-20 12:56:57 +00:00
D_SENSOR_NEOPOOL_TX "|" D_SENSOR_NEOPOOL_RX "|"
2021-02-09 15:13:40 +00:00
D_SENSOR_SDM72_TX "|" D_SENSOR_SDM72_RX "|"
D_SENSOR_TM1637_CLK "|" D_SENSOR_TM1637_DIO "|"
D_SENSOR_PROJECTOR_CTRL_TX "|" D_SENSOR_PROJECTOR_CTRL_RX "|"
2021-02-28 15:09:57 +00:00
D_SENSOR_SSD1351_DC "|"
2021-02-25 09:58:33 +00:00
D_SENSOR_XPT2046_CS "|"
2021-03-01 17:22:26 +00:00
D_SENSOR_CSE7761_TX "|" D_SENSOR_CSE7761_RX "|"
2022-03-11 22:12:57 +00:00
D_SENSOR_VL53LXX_XSHUT "|"
D_SENSOR_MAX7219_CLK "|" D_SENSOR_MAX7219_DIN "|" D_SENSOR_MAX7219_CS "|"
2021-03-23 14:02:35 +00:00
D_SENSOR_TFMINIPLUS_TX "|" D_SENSOR_TFMINIPLUS_RX "|"
2021-03-23 14:17:32 +00:00
D_SENSOR_ZEROCROSS "|"
#ifdef ESP32
D_SENSOR_HALLEFFECT "|"
2021-04-09 15:42:51 +01:00
D_SENSOR_EPD_DATA "|"
#endif
D_SENSOR_INPUT "|"
#ifdef ESP32
D_SENSOR_BUTTON "_d|" D_SENSOR_BUTTON "_id|" D_SENSOR_SWITCH "_d|"
#endif
2022-07-11 14:49:57 +01:00
D_SENSOR_I2S_DOUT "|" D_SENSOR_I2S_BCLK "|" D_SENSOR_I2S_WS "|"
D_SENSOR_I2S_DIN "|" D_SENSOR_I2S_BCLK_IN "|" D_SENSOR_I2S_WS_IN "|"
2021-05-25 19:14:15 +01:00
D_SENSOR_INTERRUPT "|"
2021-07-14 10:54:54 +01:00
D_SENSOR_MCP2515_CS "|"
D_SENSOR_HRG15_TX "|" D_SENSOR_HRG15_RX "|"
D_SENSOR_VINDRIKTNING_RX "|"
D_SENSOR_BL0939_RX "|"
D_SENSOR_BL0942_RX "|"
2021-11-03 10:58:05 +00:00
D_SENSOR_HM330X_SET "|"
D_SENSOR_HEARTBEAT "|" D_SENSOR_HEARTBEAT "_i|"
2021-12-04 14:39:00 +00:00
D_GPIO_SHIFT595_SRCLK "|" D_GPIO_SHIFT595_RCLK "|" D_GPIO_SHIFT595_OE "|" D_GPIO_SHIFT595_SER "|"
D_SENSOR_SOLAXX1_RTS "|"
D_SENSOR_OPTION " E|"
D_SENSOR_SDM230_TX "|" D_SENSOR_SDM230_RX "|"
D_SENSOR_ADC_MQ "|"
D_SENSOR_CM11_TX "|" D_SENSOR_CM11_RX "|"
2022-02-15 09:41:25 +00:00
D_SENSOR_BL6523_TX "|" D_SENSOR_BL6523_RX "|"
2022-03-05 14:09:17 +00:00
D_SENSOR_ADE7880_IRQ "|"
D_SENSOR_RESET "|"
D_SENSOR_MS01 "|"
2022-04-19 18:17:04 +01:00
D_SENSOR_SDIO_CMD "|"
D_SENSOR_SDIO_CLK "|"
D_SENSOR_SDIO_D0 "|"
D_SENSOR_SDIO_D1 "|"
D_SENSOR_SDIO_D2 "|"
D_SENSOR_SDIO_D3 "|"
2022-04-27 15:49:16 +01:00
D_SENSOR_FLOWRATEMETER "|"
D_SENSOR_BP5758D_CLK "|" D_SENSOR_BP5758D_DAT "|"
D_SENSOR_SM2335_CLK "|" D_SENSOR_SM2335_DAT "|"
2022-06-24 13:55:19 +01:00
D_SENSOR_DFR562_BUSY "|"
2022-07-04 09:46:35 +01:00
D_GPIO_TM1621_CS "|" D_GPIO_TM1621_WR "|" D_GPIO_TM1621_RD "|" D_GPIO_TM1621_DAT "|"
D_SENSOR_RELAY "_b|" D_SENSOR_RELAY "_bi|"
2022-07-11 14:49:57 +01:00
D_SENSOR_I2S_MCLK "|"
2022-07-19 09:37:03 +01:00
D_SENSOR_MBR_TX "|" D_SENSOR_MBR_RX "|"
D_SENSOR_ADE7953_RST "|"
2022-10-06 18:22:46 +01:00
D_SENSOR_NRG_MBS_TX "|" D_SENSOR_NRG_MBS_RX "|"
2022-10-21 14:06:52 +01:00
D_SENSOR_ADE7953_CS "|"
2022-10-28 15:08:02 +01:00
D_SENSOR_DALI_RX "|" D_SENSOR_DALI_TX "|"
D_SENSOR_BP1658CJ_CLK "|" D_SENSOR_BP1658CJ_DAT "|"
2022-10-29 20:38:22 +01:00
D_GPIO_DINGTIAN_CLK "|" D_GPIO_DINGTIAN_SDI "|" D_GPIO_DINGTIAN_Q7 "|" D_GPIO_DINGTIAN_PL "|" D_GPIO_DINGTIAN_RCK "|"
2022-11-21 13:07:25 +00:00
D_SENSOR_LD2410_TX "|" D_SENSOR_LD2410_RX "|"
D_SENSOR_MBR_TX_ENA "|" D_SENSOR_NRG_MBS_TX_ENA "|"
Adding support for ME007-ULS narrow FoV ultrasonic distance sensor (#17376) * Squashed commit of the following: commit 1441459a47cff0a43aa61ce47510585ee03649f3 Merge: a9fcbd342 7e27945e5 Author: Mathias Buder <mathias_buder@bose.com> Date: Tue Dec 13 09:00:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit a9fcbd3428445eb914816f608e064568d16b41e9 Merge: 7bb1049f5 d83119897 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 12 10:33:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 7bb1049f51da8d064462b9499ed479a7675b368e Merge: 83a5afa7a eee86f01a Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 9 09:30:29 2022 +0100 Merge remote-tracking branch 'github/development' into me007-narrow-fov-ultrasonic-sensor commit 83a5afa7ad27fcde1e67008e41a9bfd9c680cccd Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 14:47:13 2022 +0100 [ME007] Added driver version number to MQTT message, small delay between consecutive measurement commit 9b8667843154f02a23020e655d806ed76ae2e530 Merge: 39180f345 de408921e Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 10:12:45 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 39180f3451fce5f06504195faea0124d73dac1ee Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Dec 7 16:41:26 2022 +0100 [ME007] Added median filter commit 01b68e0e6ca147ac03b63b8c71d035563e3bf13b Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 23:08:57 2022 +0100 [ME007] Simplified state maschine within me007_measure() commit 1c74c6ed3e4097f09792a48420b2016c92e10353 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 22:21:16 2022 +0100 [ME007] Fixed issues from previous pull-request commit 25b667120fd8d70fcfed36de44f1b7a17d0686be Merge: 01e0b1809 e7d40b8d1 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 10:46:25 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor # Conflicts: # tasmota/include/tasmota_template.h commit 01e0b18096bfffc67673e25152114694caaf110a Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Dec 4 20:53:39 2022 +0100 [ME007] Minor changes commit ec00c9b85d223b78586c464bb92d1c7894357a40 Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 2 13:08:06 2022 +0100 [ME007] Added some measurement error statistics commit c5cf65f82c42195752a88fd1553c74ab68c39cb2 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 22:38:07 2022 +0100 [ME007] Fixed MQTT message commit ae07d8dd77db47e20578f655ec057a63b30e65ce Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 21:56:20 2022 +0100 [ME007] Minor code refactoring commit d2b43ca70c716e1b637b9efd3b536506233e5365 Merge: 292f5f6c8 816fd78fb Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:48:38 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 292f5f6c81f1659eb225271cdd025eb77da02c6f Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:47:03 2022 +0100 [ME007] Added logic to detect sensor at boot and during runtime commit f17af404fee76bf63b30ed3c9d2175c4e01c03ca Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:32:19 2022 +0100 [ME007] Added missing define into language files commit 7a271abeca36139a43ef96bd461d46ba0c662901 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:19:23 2022 +0100 [ME007] Improved snesor measuremnt function commit fe42ebd1124e2246e4d7afd63c905c251e084b27 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 00:43:13 2022 +0100 [ME007] Updated state maschine to trigger and receive sensor measurements commit d137e6dec5104b4716428849d99c68bbf407ab42 Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Nov 30 20:35:31 2022 +0100 [ME007] Added initial state maschine to trigger and receive sensor measurements commit fc3da7b36849df162d9d5496a763ab2beb096aff Author: Mathias Buder <mathias.buder@gmail.com> Date: Tue Nov 29 21:28:28 2022 +0100 [ME007] Updated pin name commit e9fa9fb771cf15dcd9ed8b63b9194154543ef10e Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 22:02:34 2022 +0100 [ME007] Fixed issue that sensor GPIOs not shown in drop-down list commit a13e42660183eb4ab91007ca0ea6bf1544687556 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:06:34 2022 +0100 [ME007] Added sensor into supported feature list commit dec17b59ce2905124386f8c90d81656bf104c844 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:01:58 2022 +0100 [ME007] Removed log message in Xsns23() commit 11f479d2ec9d3f4e7552c2f78cdc83914c5b8b94 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 10:47:55 2022 +0100 [ME007] Added GPIOs to tasmota_template_legacy.h and berry commit 23aec8e5ff4e9fb8ef7d3b01a707641accc1e01e Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Nov 27 20:10:53 2022 +0100 [ME007] Initial ME007 driver API setup * [ME007] Reverted change in .gitignore and platform.ini * [ME007] Removed dependency to stdlib.h * [ME007] Adjusted unit to cm * [ME007] Reverted change in tasmota_template_legacy.h * [ME007] Changed sensor message tag to three characters * [ME007] Disabled sensor in my_user_config.h * [ME007] Added driver code size into commente Co-authored-by: Mathias Buder <mathias_buder@bose.com>
2022-12-14 10:52:26 +00:00
D_SENSOR_ME007_TRIG "|" D_SENSOR_ME007_RX "|"
WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver (#17626) * WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver The main difference is this driver does not try and wire MCU data points (Dps) into the tasmota power/light/etc controls. Instead each Dp ends up being relayed directly to MQTT and the rules subsystem. If you want to change the state of something wired up to the MCU, you send tuyamcu specific commands to manipulate the Dp. Each Dp gets a type and id specific topic that is sent to MQTT. eg, Dp id 1 type bool looks like tele/%topic%/TUYAMCUBOOL1. To change state you send a TuyaMCUBool1 command (ie, the command index value is used as the DpId, which is nice and symmetrical) with the new value. Currently Rules operate on TuyaMCU#TypeDpid things, eg, "rule1 on TuyaMCU#Bool1 do power %value% endon" toggle the power on the tasmota device when the state of the thing on the MCU changes too. The most obviously missing stuff at the moment is: - better relaying of the wifi/mqtt status to the MCU - handling wifi reset requests from the MCU - low power stuff? - support for sending status updates and device info queries. - restarting the tuya mcu state machine? - restarting the rx state machine when no bytes are rxed for a period of time - time sync * shorten the log prefix to TYB (3 chars). requested by arendst * use the local definition for the SET_DP command. reaching back to the existing tuyamcu code isnt reliable. pointed out by arendst * put the todo list in the code so it can be tracked * check the wifi/mqtt state every second and update the mcu if it changes. * fix rule processing when Dp state is changed from a cmnd. rule processing was done as part of publishing the state, but publishing the state when it was updated by a command only happened if So59 was set. split rule processing out of publish and call them separately as needed. publish is now called from teleperiod, status updates from the MCU, and from cmnds if so59 is set. rules are called from status updates from the MCU and from cmnds. Co-authored-by: David Gwynne <dlg@defeat.lan.animata.net>
2023-01-08 16:35:45 +00:00
D_SENSOR_TUYAMCUBR_TX "|" D_SENSOR_TUYAMCUBR_RX "|"
D_SENSOR_BIOPDU_PZEM0XX_TX "|" D_SENSOR_BIOPDU_PZEM016_RX "|" D_SENSOR_BIOPDU_BIT "|"
D_SENSOR_MCP23XXX_INT "|" D_SENSOR_MCP23SXX_CS "|"
D_SENSOR_PCF8574_INT "|"
D_SENSOR_LOX_O2_RX "|"
2023-04-27 16:44:33 +01:00
D_SENSOR_GM861_TX "|" D_SENSOR_GM861_RX "|"
D_GPIO_DINGTIAN_OE "|"
;
2018-11-11 15:58:21 +00:00
const char kSensorNamesFixed[] PROGMEM =
D_SENSOR_USER;
// Max number of GPIOs
#define MAX_MAX31865S 6
#define MAX_MCP23XXX 6
2022-04-27 15:49:16 +01:00
#define MAX_FLOWRATEMETER 2
#define MAX_A4988_MSS 3
2020-09-25 17:15:31 +01:00
#define MAX_WEBCAM_DATA 8
#define MAX_WEBCAM_HSD 3
2022-09-26 20:51:29 +01:00
#define MAX_SM2135_DAT 10
#define MAX_SM2335_DAT 16
#define MAX_DSB 4
#define MAX_BP1658CJ_DAT 16
2022-10-29 20:38:22 +01:00
#define MAX_DINGTIAN_SHIFT 4
2020-09-25 17:15:31 +01:00
const uint16_t kGpioNiceList[] PROGMEM = {
GPIO_NONE, // Not used
AGPIO(GPIO_OPTION_A) + MAX_OPTIONS_A, // Device specific options
#ifdef ESP32
AGPIO(GPIO_OPTION_E) + MAX_OPTIONS_E, // Device module emulation
#endif
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_KEY1) + MAX_KEYS, // Buttons
AGPIO(GPIO_KEY1_NP) + MAX_KEYS,
#ifdef ESP32
AGPIO(GPIO_KEY1_PD) + MAX_KEYS,
#endif
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_KEY1_INV) + MAX_KEYS,
AGPIO(GPIO_KEY1_INV_NP) + MAX_KEYS,
#ifdef ESP32
AGPIO(GPIO_KEY1_INV_PD) + MAX_KEYS,
#if defined(SOC_TOUCH_VERSION_1) || defined(SOC_TOUCH_VERSION_2)
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_KEY1_TC) + MAX_KEYS, // Touch button
#endif // ESP32 SOC_TOUCH_VERSION_1 or SOC_TOUCH_VERSION_2
#endif
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_SWT1) + MAX_SWITCHES, // User connected external switches
AGPIO(GPIO_SWT1_NP) + MAX_SWITCHES,
#ifdef ESP32
AGPIO(GPIO_SWT1_PD) + MAX_SWITCHES,
#endif
#ifdef ROTARY_V1
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_ROT1A) + MAX_ROTARIES, // Rotary A Pin
AGPIO(GPIO_ROT1B) + MAX_ROTARIES, // Rotary B Pin
2021-01-06 13:14:15 +00:00
AGPIO(GPIO_ROT1A_NP) + MAX_ROTARIES, // Rotary A Pin No Pullup
AGPIO(GPIO_ROT1B_NP) + MAX_ROTARIES, // Rotary B Pin No Pullup
2020-09-25 17:15:31 +01:00
#endif
AGPIO(GPIO_REL1) + MAX_RELAYS, // Relays
AGPIO(GPIO_REL1_INV) + MAX_RELAYS,
AGPIO(GPIO_REL1_BI) + MAX_RELAYS, // Bistable (Latching) two coil relays
AGPIO(GPIO_REL1_BI_INV) + MAX_RELAYS,
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_LED1) + MAX_LEDS, // Leds
AGPIO(GPIO_LED1_INV) + MAX_LEDS,
#ifdef USE_COUNTER
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_CNTR1) + MAX_COUNTERS, // Counters
AGPIO(GPIO_CNTR1_NP) + MAX_COUNTERS,
#endif
2022-07-10 11:07:58 +01:00
AGPIO(GPIO_PWM1) + MAX_PWMS, // RGB Red or C Cold White
AGPIO(GPIO_PWM1_INV) + MAX_PWMS, // or extended PWM for ESP32
#ifdef USE_BUZZER
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_BUZZER), // Buzzer
AGPIO(GPIO_BUZZER_INV), // Inverted buzzer
#endif
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_LEDLNK), // Link led
AGPIO(GPIO_LEDLNK_INV), // Inverted link led
#ifdef USE_BERRY
AGPIO(GPIO_INPUT) + MAX_SWITCHES, // Pure digital input to be read via Berry
2021-05-25 19:14:15 +01:00
AGPIO(GPIO_INTERRUPT) + MAX_SWITCHES, // Interrupt pins to be catched by Berry
#endif
AGPIO(GPIO_OUTPUT_HI), // Fixed output high
AGPIO(GPIO_OUTPUT_LO), // Fixed output low
AGPIO(GPIO_HEARTBEAT), // Every second pulsed high
AGPIO(GPIO_HEARTBEAT_INV), // Every second pulsed low
AGPIO(GPIO_RESET), // Generic reset
#ifdef USE_FTC532
AGPIO(GPIO_FTC532), // FTC532 touch input
#endif
2021-01-07 15:39:41 +00:00
#ifdef USE_BS814A2
AGPIO(GPIO_BS814_CLK), // Holtek BS814A2 touch ctrlr
AGPIO(GPIO_BS814_DAT),
#endif
/*-------------------------------------------------------------------------------------------*\
* Protocol specifics
\*-------------------------------------------------------------------------------------------*/
2022-10-28 15:08:02 +01:00
#if defined(USE_DALI) && defined(ESP32)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DALI_RX), // DALI RX
AGPIO(GPIO_DALI_TX), // DALI TX
2022-10-28 15:08:02 +01:00
#endif // USE_DALI
#ifdef USE_I2C
AGPIO(GPIO_I2C_SCL) + MAX_I2C, // I2C SCL
AGPIO(GPIO_I2C_SDA) + MAX_I2C, // I2C SDA
#ifdef USE_PCF8574
AGPIO(GPIO_PCF8574_INT), // PCF8574 Interrupt
#endif // USE_PCF8574
#endif
2022-07-11 14:49:57 +01:00
#if defined(USE_I2S_AUDIO) || defined (USE_I2S)
AGPIO(GPIO_I2S_MCLK) + MAX_I2S, // I2S master clock
AGPIO(GPIO_I2S_BCLK) + MAX_I2S, // I2S bit clock
AGPIO(GPIO_I2S_WS) + MAX_I2S, // I2S word select
AGPIO(GPIO_I2S_DIN) + MAX_I2S, // I2S IN Data
AGPIO(GPIO_I2S_DOUT) + MAX_I2S, // I2S Out Data
#endif
#ifdef USE_I2S
2022-07-11 14:49:57 +01:00
AGPIO(GPIO_I2S_BCLK_IN) + MAX_I2S, // I2S bit clock in
AGPIO(GPIO_I2S_WS_IN) + MAX_I2S, // I2S word select in
2022-07-11 08:18:27 +01:00
#endif
2021-05-25 19:14:15 +01:00
#ifdef USE_SPI
2021-04-17 18:49:26 +01:00
AGPIO(GPIO_SPI_MISO) + MAX_SPI, // SPI MISO
AGPIO(GPIO_SPI_MOSI) + MAX_SPI, // SPI MOSI
AGPIO(GPIO_SPI_CLK) + MAX_SPI, // SPI Clk
AGPIO(GPIO_SPI_CS) + MAX_SPI, // SPI Chip Select
AGPIO(GPIO_SPI_DC) + MAX_SPI, // SPI Data Direction
2020-12-29 11:31:08 +00:00
#ifdef USE_NRF24
AGPIO(GPIO_NRF24_CS),
AGPIO(GPIO_NRF24_DC),
2020-09-25 17:15:31 +01:00
#endif
#ifdef USE_RC522
AGPIO(GPIO_RC522_CS), // RC522 Rfid Chip Select
AGPIO(GPIO_RC522_RST), // RC522 Rfid Reset
#endif
2021-01-04 14:03:56 +00:00
#ifdef USE_SDCARD
2022-04-19 18:17:04 +01:00
AGPIO(GPIO_SDCARD_CS), // SDCard in SPI mode
2021-01-04 14:03:56 +00:00
#endif // USE_SDCARD
#if defined(USE_MCP2515) || defined(USE_CANSNIFFER)
2021-07-12 16:47:04 +01:00
AGPIO(GPIO_MCP2515_CS),
#endif // USE_MCP2515
#ifdef USE_MCP23XXX_DRV
AGPIO(GPIO_MCP23SXX_CS) + MAX_MCP23XXX,
#endif // USE_MCP23XXX_DRV
2020-12-29 11:31:08 +00:00
#endif // USE_SPI
2022-04-19 18:17:04 +01:00
#if defined(USE_SDCARD) && defined(ESP32)
AGPIO(GPIO_SDIO_CMD), // SDCard in SDIO mode
AGPIO(GPIO_SDIO_CLK),
AGPIO(GPIO_SDIO_D0),
AGPIO(GPIO_SDIO_D1), // (opt) if in 4-bit mode, DAT1-3 are needed
AGPIO(GPIO_SDIO_D2),
AGPIO(GPIO_SDIO_D3),
#endif // USE_SDCARD
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SSPI_MISO), // Software SPI Master Input Client Output
AGPIO(GPIO_SSPI_MOSI), // Software SPI Master Output Client Input
AGPIO(GPIO_SSPI_SCLK), // Software SPI Serial Clock
AGPIO(GPIO_SSPI_CS), // Software SPI Chip Select
AGPIO(GPIO_SSPI_DC), // Software SPI Data or Command
#if defined(USE_DISPLAY) || defined(USE_LVGL)
2021-01-04 14:03:56 +00:00
#ifdef USE_DISPLAY_ILI9341
AGPIO(GPIO_ILI9341_CS),
AGPIO(GPIO_ILI9341_DC),
#endif // USE_DISPLAY_ILI9341
2021-02-25 09:58:33 +00:00
#ifdef USE_XPT2046
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_XPT2046_CS), // XPT2046 SPI Chip Select
2021-02-25 09:58:33 +00:00
#endif
2020-12-29 11:31:08 +00:00
#ifdef USE_DISPLAY_ILI9488
AGPIO(GPIO_ILI9488_CS),
2020-12-29 11:31:08 +00:00
#endif // USE_DISPLAY_ILI9488
#ifdef USE_DISPLAY_EPAPER_29
AGPIO(GPIO_EPAPER29_CS),
2020-12-29 11:31:08 +00:00
#endif // USE_DISPLAY_EPAPER_29
#ifdef USE_DISPLAY_EPAPER_42
AGPIO(GPIO_EPAPER42_CS),
2020-12-29 11:31:08 +00:00
#endif // USE_DISPLAY_EPAPER_42
#ifdef USE_DISPLAY_SSD1351
AGPIO(GPIO_SSD1351_CS),
2021-02-28 15:09:57 +00:00
AGPIO(GPIO_SSD1351_DC),
2020-12-29 11:31:08 +00:00
#endif // USE_DISPLAY_SSD1351
#ifdef USE_DISPLAY_RA8876
AGPIO(GPIO_RA8876_CS),
2020-12-29 11:31:08 +00:00
#endif // USE_DISPLAY_RA8876
#ifdef USE_DISPLAY_ST7789
AGPIO(GPIO_ST7789_CS),
AGPIO(GPIO_ST7789_DC),
2021-01-01 15:05:06 +00:00
#endif // USE_DISPLAY_ST7789
#ifdef USE_DISPLAY_SSD1331
AGPIO(GPIO_SSD1331_CS),
AGPIO(GPIO_SSD1331_DC),
#endif // USE_DISPLAY_SSD1331
2021-11-19 10:47:00 +00:00
#ifdef USE_DISPLAY_MAX7219_MATRIX
#undef USE_DISPLAY_MAX7219
#undef USE_DISPLAY_TM1637
AGPIO(GPIO_MAX7219CLK),
AGPIO(GPIO_MAX7219DIN),
AGPIO(GPIO_MAX7219CS),
#endif // USE_DISPLAY_MAX7219_MATRIX
2022-11-21 13:07:25 +00:00
#ifdef USE_DISPLAY_MAX7219
AGPIO(GPIO_MAX7219CLK),
AGPIO(GPIO_MAX7219DIN),
AGPIO(GPIO_MAX7219CS),
#endif // USE_DISPLAY_MAX7219
#ifdef USE_DISPLAY_TM1637
AGPIO(GPIO_TM1637CLK),
AGPIO(GPIO_TM1637DIO),
2021-03-19 09:33:46 +00:00
AGPIO(GPIO_TM1638CLK),
AGPIO(GPIO_TM1638DIO),
AGPIO(GPIO_TM1638STB),
#endif // USE_DISPLAY_TM1637
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_BACKLIGHT), // Display backlight control
AGPIO(GPIO_OLED_RESET), // OLED Display Reset
2021-04-09 15:42:51 +01:00
#ifdef ESP32
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_EPD_DATA), // Base connection EPD driver
2021-04-09 15:42:51 +01:00
#endif
#endif // USE_DISPLAY
2022-07-04 09:46:35 +01:00
#ifdef USE_DISPLAY_TM1621_SONOFF
// Initial support outside display driver
AGPIO(GPIO_TM1621_CS),
AGPIO(GPIO_TM1621_WR),
AGPIO(GPIO_TM1621_RD),
AGPIO(GPIO_TM1621_DAT),
#endif // USE_DISPLAY_TM1621_SONOFF
#ifdef USE_MAX31865
AGPIO(GPIO_SSPI_MAX31865_CS1) + MAX_MAX31865S,
#endif
2020-09-25 17:15:31 +01:00
2023-02-18 15:05:56 +00:00
#ifdef USE_MCP23XXX_DRV
AGPIO(GPIO_MCP23XXX_INT) + MAX_MCP23XXX,
#endif
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TXD), // Serial interface
AGPIO(GPIO_RXD), // Serial interface
2020-09-25 17:15:31 +01:00
/*-------------------------------------------------------------------------------------------*\
* Single wire sensors
\*-------------------------------------------------------------------------------------------*/
#ifdef USE_DHT
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DHT11), // DHT11
AGPIO(GPIO_DHT22), // DHT21, DHT22, AM2301, AM2302, AM2321
AGPIO(GPIO_SI7021), // iTead SI7021
AGPIO(GPIO_MS01), // Sonoff MS01
AGPIO(GPIO_DHT11_OUT), // Pseudo Single wire DHT11, DHT21, DHT22, AM2301, AM2302, AM2321
#endif
#ifdef USE_DS18x20
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DSB) + MAX_DSB, // Single wire DS18B20 or DS18S20
#ifdef ESP8266
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DSB_OUT) + MAX_DSB, // Pseudo Single wire DS18B20 or DS18S20
#endif // ESP8266
#endif // USE_DS18x20
2020-09-25 17:15:31 +01:00
#ifdef USE_LMT01
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_LMT01), // LMT01, count pulses on GPIO
#endif
/*-------------------------------------------------------------------------------------------*\
* Light
\*-------------------------------------------------------------------------------------------*/
#ifdef USE_LIGHT
#ifdef USE_WS2812
#if (USE_WS2812_HARDWARE == NEO_HW_P9813)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_P9813_CLK), // P9813 CLOCK
AGPIO(GPIO_P9813_DAT), // P9813 DATA
#else
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_WS2812) + (MAX_RMT ? MAX_RMT + 1 : 0), // WS2812 Led string, using RMT on ESP32
#endif // NEO_HW_P9813
#endif
#ifdef USE_ARILUX_RF
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ARIRFRCV), // AriLux RF Receive input
AGPIO(GPIO_ARIRFSEL), // Arilux RF Receive input selected
#endif
#ifdef USE_MY92X1
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DI), // my92x1 PWM input
AGPIO(GPIO_DCKI), // my92x1 CLK input
#endif // USE_MY92X1
#ifdef USE_SM16716
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SM16716_CLK), // SM16716 CLOCK
AGPIO(GPIO_SM16716_DAT), // SM16716 DATA
AGPIO(GPIO_SM16716_SEL), // SM16716 SELECT
#endif // USE_SM16716
#ifdef USE_SM2135
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SM2135_CLK), // SM2135 CLOCK
AGPIO(GPIO_SM2135_DAT) + MAX_SM2135_DAT, // SM2135 DATA
#endif // USE_SM2135
#ifdef USE_SM2335
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SM2335_CLK), // SM2335 CLOCK
AGPIO(GPIO_SM2335_DAT) + MAX_SM2335_DAT, // SM2335 DATA
#endif // USE_SM2335
#ifdef USE_BP1658CJ
AGPIO(GPIO_BP1658CJ_CLK), // BP1658CJ CLOCK
AGPIO(GPIO_BP1658CJ_DAT) + MAX_BP1658CJ_DAT, // BP1658CJ DATA
#endif // USE_BP1658CJ
#ifdef USE_BP5758D
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_BP5758D_CLK), // BP5758D CLOCK
AGPIO(GPIO_BP5758D_DAT), // BP5758D DATA
#endif // USE_BP5758D
#ifdef USE_TUYA_MCU
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TUYA_TX), // Tuya Serial interface
AGPIO(GPIO_TUYA_RX), // Tuya Serial interface
#endif
#ifdef USE_EXS_DIMMER
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_EXS_ENABLE), // EXS MCU Enable
#endif
#ifdef USE_ELECTRIQ_MOODL
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_ELECTRIQ_MOODL_TX),
#endif
#ifdef USE_SHELLY_DIMMER
AGPIO(GPIO_SHELLY_DIMMER_BOOT0),
AGPIO(GPIO_SHELLY_DIMMER_RST_INV),
#endif
#endif // USE_LIGHT
/*-------------------------------------------------------------------------------------------*\
* Transmission sensors
\*-------------------------------------------------------------------------------------------*/
#if defined(USE_IR_REMOTE) || defined(USE_IR_REMOTE_FULL)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_IRSEND) + MAX_IRSEND, // IR remote
#if defined(USE_IR_RECEIVE) || defined(USE_IR_REMOTE_FULL)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_IRRECV), // IR receiver
#endif
#endif
#ifdef USE_RC_SWITCH
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_RFSEND), // RF transmitter
AGPIO(GPIO_RFRECV), // RF receiver
#endif
#ifdef USE_RF_SENSOR
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_RF_SENSOR), // Rf receiver with sensor decoding
#endif
#ifdef USE_SR04
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SR04_TRIG), // SR04 Tri/TXgger pin
AGPIO(GPIO_SR04_ECHO), // SR04 Ech/RXo pin
#endif
Adding support for ME007-ULS narrow FoV ultrasonic distance sensor (#17376) * Squashed commit of the following: commit 1441459a47cff0a43aa61ce47510585ee03649f3 Merge: a9fcbd342 7e27945e5 Author: Mathias Buder <mathias_buder@bose.com> Date: Tue Dec 13 09:00:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit a9fcbd3428445eb914816f608e064568d16b41e9 Merge: 7bb1049f5 d83119897 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 12 10:33:06 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 7bb1049f51da8d064462b9499ed479a7675b368e Merge: 83a5afa7a eee86f01a Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 9 09:30:29 2022 +0100 Merge remote-tracking branch 'github/development' into me007-narrow-fov-ultrasonic-sensor commit 83a5afa7ad27fcde1e67008e41a9bfd9c680cccd Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 14:47:13 2022 +0100 [ME007] Added driver version number to MQTT message, small delay between consecutive measurement commit 9b8667843154f02a23020e655d806ed76ae2e530 Merge: 39180f345 de408921e Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 8 10:12:45 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 39180f3451fce5f06504195faea0124d73dac1ee Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Dec 7 16:41:26 2022 +0100 [ME007] Added median filter commit 01b68e0e6ca147ac03b63b8c71d035563e3bf13b Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 23:08:57 2022 +0100 [ME007] Simplified state maschine within me007_measure() commit 1c74c6ed3e4097f09792a48420b2016c92e10353 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 22:21:16 2022 +0100 [ME007] Fixed issues from previous pull-request commit 25b667120fd8d70fcfed36de44f1b7a17d0686be Merge: 01e0b1809 e7d40b8d1 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Dec 5 10:46:25 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor # Conflicts: # tasmota/include/tasmota_template.h commit 01e0b18096bfffc67673e25152114694caaf110a Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Dec 4 20:53:39 2022 +0100 [ME007] Minor changes commit ec00c9b85d223b78586c464bb92d1c7894357a40 Author: Mathias Buder <mathias.buder@gmail.com> Date: Fri Dec 2 13:08:06 2022 +0100 [ME007] Added some measurement error statistics commit c5cf65f82c42195752a88fd1553c74ab68c39cb2 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 22:38:07 2022 +0100 [ME007] Fixed MQTT message commit ae07d8dd77db47e20578f655ec057a63b30e65ce Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 21:56:20 2022 +0100 [ME007] Minor code refactoring commit d2b43ca70c716e1b637b9efd3b536506233e5365 Merge: 292f5f6c8 816fd78fb Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:48:38 2022 +0100 Merge branch 'development' into me007-narrow-fov-ultrasonic-sensor commit 292f5f6c81f1659eb225271cdd025eb77da02c6f Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 16:47:03 2022 +0100 [ME007] Added logic to detect sensor at boot and during runtime commit f17af404fee76bf63b30ed3c9d2175c4e01c03ca Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:32:19 2022 +0100 [ME007] Added missing define into language files commit 7a271abeca36139a43ef96bd461d46ba0c662901 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 12:19:23 2022 +0100 [ME007] Improved snesor measuremnt function commit fe42ebd1124e2246e4d7afd63c905c251e084b27 Author: Mathias Buder <mathias.buder@gmail.com> Date: Thu Dec 1 00:43:13 2022 +0100 [ME007] Updated state maschine to trigger and receive sensor measurements commit d137e6dec5104b4716428849d99c68bbf407ab42 Author: Mathias Buder <mathias.buder@gmail.com> Date: Wed Nov 30 20:35:31 2022 +0100 [ME007] Added initial state maschine to trigger and receive sensor measurements commit fc3da7b36849df162d9d5496a763ab2beb096aff Author: Mathias Buder <mathias.buder@gmail.com> Date: Tue Nov 29 21:28:28 2022 +0100 [ME007] Updated pin name commit e9fa9fb771cf15dcd9ed8b63b9194154543ef10e Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 22:02:34 2022 +0100 [ME007] Fixed issue that sensor GPIOs not shown in drop-down list commit a13e42660183eb4ab91007ca0ea6bf1544687556 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:06:34 2022 +0100 [ME007] Added sensor into supported feature list commit dec17b59ce2905124386f8c90d81656bf104c844 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 15:01:58 2022 +0100 [ME007] Removed log message in Xsns23() commit 11f479d2ec9d3f4e7552c2f78cdc83914c5b8b94 Author: Mathias Buder <mathias.buder@gmail.com> Date: Mon Nov 28 10:47:55 2022 +0100 [ME007] Added GPIOs to tasmota_template_legacy.h and berry commit 23aec8e5ff4e9fb8ef7d3b01a707641accc1e01e Author: Mathias Buder <mathias.buder@gmail.com> Date: Sun Nov 27 20:10:53 2022 +0100 [ME007] Initial ME007 driver API setup * [ME007] Reverted change in .gitignore and platform.ini * [ME007] Removed dependency to stdlib.h * [ME007] Adjusted unit to cm * [ME007] Reverted change in tasmota_template_legacy.h * [ME007] Changed sensor message tag to three characters * [ME007] Disabled sensor in my_user_config.h * [ME007] Added driver code size into commente Co-authored-by: Mathias Buder <mathias_buder@bose.com>
2022-12-14 10:52:26 +00:00
#ifdef USE_ME007
AGPIO(GPIO_ME007_TRIG), // ME007 Trigger pin (xsns_23_me007.ino)
AGPIO(GPIO_ME007_RX), // ME007 Rx pin (xsns_23_me007.ino)
#endif
#ifdef USE_TM1638
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TM1638CLK), // TM1638 Clock
AGPIO(GPIO_TM1638DIO), // TM1638 Data I/O
AGPIO(GPIO_TM1638STB), // TM1638 Strobe
#endif
#ifdef USE_HX711
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_HX711_SCK), // HX711 Load Cell clock
AGPIO(GPIO_HX711_DAT), // HX711 Load Cell data
#endif
#ifdef USE_TFMINIPLUS
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TFMINIPLUS_TX), // TFmini Plus TX pin
AGPIO(GPIO_TFMINIPLUS_RX), // TFmini Plus RX pin
#endif
/*-------------------------------------------------------------------------------------------*\
* Energy sensors
\*-------------------------------------------------------------------------------------------*/
#ifdef USE_ENERGY_SENSOR
#ifdef USE_HLW8012
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_NRG_SEL), // HLW8012/HLJ-01 Sel output (1 = Voltage)
AGPIO(GPIO_NRG_SEL_INV), // HLW8012/HLJ-01 Sel output (0 = Voltage)
AGPIO(GPIO_NRG_CF1), // HLW8012/HLJ-01 CF1 voltage / current
AGPIO(GPIO_HLW_CF), // HLW8012 CF power
AGPIO(GPIO_HJL_CF), // HJL-01/BL0937 CF power
#endif
2022-03-05 14:09:17 +00:00
#if defined(USE_I2C) && defined(USE_ADE7880)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ADE7880_IRQ) + 2, // ADE7880 IRQ - (1 = IRQ1, 2 = IRQ2)
2022-03-05 14:09:17 +00:00
#endif
2022-10-21 14:06:52 +01:00
#ifdef USE_ADE7953
#if defined(USE_I2C) || defined(USE_SPI)
2023-01-20 13:28:58 +00:00
AGPIO(GPIO_ADE7953_IRQ) + 6, // ADE7953 IRQ - (1 = Shelly 2.5, 2 = Shelly EM, 3 = Shelly Plus 2PM, 4 = Shelly Pro 1PM, 5 = Shelly Pro 2PM, 6 = Shelly Pro 4PM)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ADE7953_RST), // ADE7953 Reset
2022-10-21 14:06:52 +01:00
#ifdef USE_SPI
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ADE7953_CS) + 2, // ADE7953 SPI Chip Select (1 = CS1 (1PM, 2PM), 2 = CS2 (2PM))
2022-10-21 14:06:52 +01:00
#endif // USE_SPI
#endif // USE_I2C or USE_SPI
#endif // USE_ADE7953
2021-03-01 17:22:26 +00:00
#ifdef USE_CSE7761
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_CSE7761_TX), // CSE7761 Serial interface (Dual R3)
AGPIO(GPIO_CSE7761_RX), // CSE7761 Serial interface (Dual R3)
2021-03-01 17:22:26 +00:00
#endif
2019-11-24 01:27:04 +00:00
#ifdef USE_CSE7766
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_CSE7766_TX), // CSE7766 Serial interface (S31 and Pow R2)
AGPIO(GPIO_CSE7766_RX), // CSE7766 Serial interface (S31 and Pow R2)
2019-11-24 01:27:04 +00:00
#endif
#ifdef USE_MCP39F501
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_MCP39F5_TX), // MCP39F501 Serial interface (Shelly2)
AGPIO(GPIO_MCP39F5_RX), // MCP39F501 Serial interface (Shelly2)
AGPIO(GPIO_MCP39F5_RST), // MCP39F501 Reset (Shelly2)
#endif
AGPIO(GPIO_NRG_MBS_TX_ENA), // Generic Energy Modbus Transmit Enable
#if defined(USE_PZEM004T) || defined(USE_PZEM_AC) || defined(USE_PZEM_DC)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PZEM0XX_TX), // PZEM0XX Serial interface
#endif
#ifdef USE_PZEM004T
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PZEM004_RX), // PZEM004T Serial interface
#endif
#ifdef USE_PZEM_AC
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PZEM016_RX), // PZEM-014,016 Serial Modbus interface
#endif
#ifdef USE_PZEM_DC
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PZEM017_RX), // PZEM-003,017 Serial Modbus interface
#endif
2022-10-06 18:22:46 +01:00
#ifdef USE_MODBUS_ENERGY
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_NRG_MBS_TX), // Generic Energy Modbus device
2022-10-06 18:22:46 +01:00
AGPIO(GPIO_NRG_MBS_RX),
#endif
#ifdef USE_SDM120
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SDM120_TX), // SDM120 Serial interface
AGPIO(GPIO_SDM120_RX), // SDM120 Serial interface
#endif
#ifdef USE_SDM630
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SDM630_TX), // SDM630 Serial interface
AGPIO(GPIO_SDM630_RX), // SDM630 Serial interface
#endif
#ifdef USE_DDS2382
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DDS2382_TX), // DDS2382 Serial interface
AGPIO(GPIO_DDS2382_RX), // DDS2382 Serial interface
#endif
#ifdef USE_DDSU666
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DDSU666_TX), // DDSU666 Serial interface
AGPIO(GPIO_DDSU666_RX), // DDSU666 Serial interface
2020-09-25 17:15:31 +01:00
#endif // USE_DDSU666
#ifdef USE_SOLAX_X1
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SOLAXX1_TX), // Solax Inverter tx pin
AGPIO(GPIO_SOLAXX1_RX), // Solax Inverter rx pin
AGPIO(GPIO_SOLAXX1_RTS), // Solax Inverter RTS pin
2020-09-25 17:15:31 +01:00
#endif // USE_SOLAX_X1
2020-01-05 00:06:30 +00:00
#ifdef USE_LE01MR
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_LE01MR_TX), // F7F LE-01MR energy meter tx pin
AGPIO(GPIO_LE01MR_RX), // F7F LE-01MR energy meter rx pin
2020-09-25 17:15:31 +01:00
#endif // IFDEF:USE_LE01MR
#if defined(USE_BL0940) || defined(USE_BL09XX)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_BL0939_RX), // BL0939 Serial interface (Dual R3 v2)
AGPIO(GPIO_BL0940_RX), // BL0940 Serial interface
AGPIO(GPIO_BL0942_RX), // BL0940 Serial interface
#endif
#ifdef USE_IEM3000
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_IEM3000_TX), // IEM3000 Serial interface
AGPIO(GPIO_IEM3000_RX), // IEM3000 Serial interface
#endif
#ifdef USE_WE517
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_WE517_TX), // WE517 Serial interface
AGPIO(GPIO_WE517_RX), // WE517 Serial interface
#endif
2021-02-09 15:13:40 +00:00
#ifdef USE_SDM72
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SDM72_TX), // SDM72 Serial interface
AGPIO(GPIO_SDM72_RX), // SDM72 Serial interface
2021-02-09 15:13:40 +00:00
#endif
2021-03-23 14:17:32 +00:00
AGPIO(GPIO_ZEROCROSS),
#ifdef USE_SDM230
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SDM230_TX), // SDM230 Serial interface
AGPIO(GPIO_SDM230_RX), // SDM230 Serial interface
#endif
2022-02-15 09:41:25 +00:00
#ifdef USE_BL6523
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_BL6523_TX), // BL6523 based Watt meter Serial interface
AGPIO(GPIO_BL6523_RX), // BL6523 based Watt meter Serial interface
2022-02-15 09:41:25 +00:00
#endif
#endif // USE_ENERGY_SENSOR
/*-------------------------------------------------------------------------------------------*\
* Serial sensors
\*-------------------------------------------------------------------------------------------*/
#ifdef USE_SERIAL_BRIDGE
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SBR_TX), // Serial Bridge Serial interface
AGPIO(GPIO_SBR_RX), // Serial Bridge Serial interface
#endif
2022-07-19 09:37:03 +01:00
#ifdef USE_MODBUS_BRIDGE
AGPIO(GPIO_MBR_TX_ENA), // Modbus Bridge Serial interface
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_MBR_TX), // Modbus Bridge Serial interface
AGPIO(GPIO_MBR_RX), // Modbus Bridge Serial interface
2022-07-19 09:37:03 +01:00
#endif
#ifdef USE_TCP_BRIDGE
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TCP_TX), // TCP Serial bridge
AGPIO(GPIO_TCP_RX), // TCP Serial bridge
#endif
#ifdef USE_ZIGBEE
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ZIGBEE_TX), // Zigbee Serial interface
AGPIO(GPIO_ZIGBEE_RX), // Zigbee Serial interface
AGPIO(GPIO_ZIGBEE_RST) + 2, // Zigbee reset, pin 1 is reset, pin 2 is bootloader mode
#endif
#ifdef USE_MHZ19
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_MHZ_TXD), // MH-Z19 Serial interface
AGPIO(GPIO_MHZ_RXD), // MH-Z19 Serial interface
#endif
#ifdef USE_SENSEAIR
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SAIR_TX), // SenseAir Serial interface
AGPIO(GPIO_SAIR_RX), // SenseAir Serial interface
#endif
#ifdef USE_NOVA_SDS
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_SDS0X1_TX), // Nova Fitness SDS011 Serial interface
AGPIO(GPIO_SDS0X1_RX), // Nova Fitness SDS011 Serial interface
#endif
#ifdef USE_HPMA
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_HPMA_TX), // Honeywell HPMA115S0 Serial interface
AGPIO(GPIO_HPMA_RX), // Honeywell HPMA115S0 Serial interface
#endif
#ifdef USE_PMS5003
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PMS5003_TX), // Plantower PMS5003 Serial interface
AGPIO(GPIO_PMS5003_RX), // Plantower PMS5003 Serial interface
#endif
#ifdef USE_VINDRIKTNING
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_VINDRIKTNING_RX), // Ikea Vindriktning
#endif
#ifdef USE_HM330X
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_HM330X_SET), // HM330X Sleep pin (active low)
#endif
2021-07-11 15:46:20 +01:00
#if defined(USE_TX20_WIND_SENSOR) || defined(USE_TX23_WIND_SENSOR) || defined(USE_WS2300_WIND_SENSOR)
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_TX2X_TXD_BLACK), // TX20/TX23 Transmission Pin
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_WINDMETER // xsns_68_windmeter.ino
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_WINDMETER_SPEED),
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_MP3_PLAYER // xdrv_14_mp3.ino
AGPIO(GPIO_MP3_DFR562), // RB-DFR-562, DFPlayer Mini MP3 Player Serial interface
AGPIO(GPIO_MP3_DFR562_BUSY), // RB-DFR-562, DFPlayer Mini MP3 Player optional Busy flag
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_AZ7798 // xsns_38_az7798
AGPIO(GPIO_AZ_TXD), // AZ-Instrument 7798 CO2 datalogger Serial interface
AGPIO(GPIO_AZ_RXD), // AZ-Instrument 7798 CO2 datalogger Serial interface
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_PN532_HSU // xsns_40_pn532.ino
AGPIO(GPIO_PN532_TXD), // PN532 HSU Tx
AGPIO(GPIO_PN532_RXD), // PN532 HSU Rx
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_TASMOTA_CLIENT // xdrv_31_tasmota_client.ino
AGPIO(GPIO_TASMOTACLIENT_TXD), // Tasmota Client TX
AGPIO(GPIO_TASMOTACLIENT_RXD), // Tasmota Client RX
AGPIO(GPIO_TASMOTACLIENT_RST), // Tasmota Client Reset
AGPIO(GPIO_TASMOTACLIENT_RST_INV), // Tasmota Client Reset Inverted
2019-10-20 19:12:55 +01:00
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_RDM6300 // xsns_51_rdm6300.ino
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_RDM6300_RX),
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_IBEACON // xsns_52_ibeacon.ino
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_IBEACON_TX),
AGPIO(GPIO_IBEACON_RX),
2019-08-25 11:29:48 +01:00
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_GPS // xsns_60_gps.ino
AGPIO(GPIO_GPS_TX), // GPS serial interface
AGPIO(GPIO_GPS_RX), // GPS serial interface
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_HM10 // xsns_62_mi_hm10.ino
AGPIO(GPIO_HM10_TX), // HM10 serial interface
AGPIO(GPIO_HM10_RX), // HM10 serial interface
2020-05-07 15:03:27 +01:00
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_OPENTHERM // xsns_69_opentherm.ino
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_BOILER_OT_TX),
AGPIO(GPIO_BOILER_OT_RX),
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_AS608 // xsns_79_as608.ino
AGPIO(GPIO_AS608_TX),
AGPIO(GPIO_AS608_RX),
#endif
2023-04-27 16:44:33 +01:00
#ifdef USE_GM861 // xsns_107_gm861.ino
AGPIO(GPIO_GM861_TX),
AGPIO(GPIO_GM861_RX),
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_HRG15 // xsns_90_hrg15.ino
AGPIO(GPIO_HRG15_TX),
AGPIO(GPIO_HRG15_RX),
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_CM110x // xsns_95_cm110x.ino
AGPIO(GPIO_CM11_TXD), // CM110x Serial interface
AGPIO(GPIO_CM11_RXD), // CM110x Serial interface
#endif
#ifdef USE_LD2410 // xsns_102_ld2410.ino
AGPIO(GPIO_LD2410_TX), // HLK-LD2410 Serial interface
AGPIO(GPIO_LD2410_RX), // HLK-LD2410 Serial interface
#endif
#ifdef USE_LOX_O2 // xsns_105_lox_o2.ino
AGPIO(GPIO_LOX_O2_RX), // LuminOx Oxygen Sensor LOX-O2 Serial interface
#endif
/*-------------------------------------------------------------------------------------------*\
* Other sensors
\*-------------------------------------------------------------------------------------------*/
#ifdef USE_MGC3130
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_MGC3130_XFER),
AGPIO(GPIO_MGC3130_RESET),
#endif
#ifdef USE_MAX31855
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_MAX31855CS), // MAX31855 Serial interface
AGPIO(GPIO_MAX31855CLK), // MAX31855 Serial interface
AGPIO(GPIO_MAX31855DO), // MAX31855 Serial interface
2020-09-25 17:15:31 +01:00
#endif
2019-03-23 23:26:03 +00:00
#ifdef USE_HRE
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_HRE_CLOCK),
AGPIO(GPIO_HRE_DATA),
#endif
2019-10-15 19:34:35 +01:00
#ifdef USE_A4988_STEPPER
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_A4988_DIR), // A4988 direction pin
AGPIO(GPIO_A4988_STP), // A4988 step pin
// folowing are not mandatory
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_A4988_ENA), // A4988 enabled pin
AGPIO(GPIO_A4988_MS1) + MAX_A4988_MSS, // A4988 microstep pin1 to pin3
#endif
#ifdef USE_DEEPSLEEP
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_DEEPSLEEP),
2019-12-17 01:13:24 +00:00
#endif
2020-02-27 20:03:05 +00:00
#ifdef USE_KEELOQ
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_CC1101_GDO0), // CC1101 pin for RX
AGPIO(GPIO_CC1101_GDO2), // CC1101 pin for RX
2020-02-27 20:03:05 +00:00
#endif
#ifdef USE_HRXL
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_HRXL_RX),
#endif
#ifdef USE_DYP
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_DYP_RX),
#endif
2020-04-11 00:48:37 +01:00
#ifdef USE_AS3935
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_AS3935), // AS3935 IRQ Pin
2020-04-11 00:48:37 +01:00
#endif
#ifdef USE_TELEINFO
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_TELEINFO_RX),
AGPIO(GPIO_TELEINFO_ENABLE),
#endif
#ifdef USE_MIEL_HVAC
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_MIEL_HVAC_TX), // Mitsubishi Electric HVAC TX pin
AGPIO(GPIO_MIEL_HVAC_RX), // Mitsubishi Electric HVAC RX pin
#endif
WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver (#17626) * WIP Tuya MCU Bridge driver alternative to the TuyaMCU driver The main difference is this driver does not try and wire MCU data points (Dps) into the tasmota power/light/etc controls. Instead each Dp ends up being relayed directly to MQTT and the rules subsystem. If you want to change the state of something wired up to the MCU, you send tuyamcu specific commands to manipulate the Dp. Each Dp gets a type and id specific topic that is sent to MQTT. eg, Dp id 1 type bool looks like tele/%topic%/TUYAMCUBOOL1. To change state you send a TuyaMCUBool1 command (ie, the command index value is used as the DpId, which is nice and symmetrical) with the new value. Currently Rules operate on TuyaMCU#TypeDpid things, eg, "rule1 on TuyaMCU#Bool1 do power %value% endon" toggle the power on the tasmota device when the state of the thing on the MCU changes too. The most obviously missing stuff at the moment is: - better relaying of the wifi/mqtt status to the MCU - handling wifi reset requests from the MCU - low power stuff? - support for sending status updates and device info queries. - restarting the tuya mcu state machine? - restarting the rx state machine when no bytes are rxed for a period of time - time sync * shorten the log prefix to TYB (3 chars). requested by arendst * use the local definition for the SET_DP command. reaching back to the existing tuyamcu code isnt reliable. pointed out by arendst * put the todo list in the code so it can be tracked * check the wifi/mqtt state every second and update the mcu if it changes. * fix rule processing when Dp state is changed from a cmnd. rule processing was done as part of publishing the state, but publishing the state when it was updated by a command only happened if So59 was set. split rule processing out of publish and call them separately as needed. publish is now called from teleperiod, status updates from the MCU, and from cmnds if so59 is set. rules are called from status updates from the MCU and from cmnds. Co-authored-by: David Gwynne <dlg@defeat.lan.animata.net>
2023-01-08 16:35:45 +00:00
#ifdef USE_TUYAMCUBR
AGPIO(GPIO_TUYAMCUBR_TX),
AGPIO(GPIO_TUYAMCUBR_RX),
#endif
#ifdef USE_WIEGAND
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_WIEGAND_D0), // Date line D0 of Wiegand devices
AGPIO(GPIO_WIEGAND_D1), // Date line D1 of Wiegand devices
#endif
2021-01-20 12:56:57 +00:00
#ifdef USE_NEOPOOL
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_NEOPOOL_TX), // Sugar Valley RS485 Interface
AGPIO(GPIO_NEOPOOL_RX), // Sugar Valley RS485 Interface
2021-01-20 12:56:57 +00:00
#endif
#ifdef USE_PROJECTOR_CTRL
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_PROJECTOR_CTRL_TX), // LCD/DLP Projector Serial Control
AGPIO(GPIO_PROJECTOR_CTRL_RX), // LCD/DLP Projector Serial Control
#endif
#if defined(USE_VL53L0X) or defined (USE_VL53L1X)
AGPIO(GPIO_VL53LXX_XSHUT1) + VL53LXX_MAX_SENSORS, // When using multiple VL53LXX.
2021-03-23 14:02:35 +00:00
#endif
2022-11-21 13:07:25 +00:00
#ifdef USE_FLOWRATEMETER
AGPIO(GPIO_FLOWRATEMETER_IN) + MAX_FLOWRATEMETER, // Flow meter Pin
#endif
2021-03-19 09:33:46 +00:00
2022-11-21 13:07:25 +00:00
#ifdef USE_SHIFT595
AGPIO(GPIO_SHIFT595_SRCLK), // 74x595 shift register
AGPIO(GPIO_SHIFT595_RCLK),
AGPIO(GPIO_SHIFT595_OE),
AGPIO(GPIO_SHIFT595_SER),
#endif
2022-04-22 07:40:29 +01:00
2022-11-21 13:07:25 +00:00
#if defined (ESP32) && defined(USE_DINGTIAN_RELAY)
AGPIO(GPIO_DINGTIAN_CLK) + MAX_DINGTIAN_SHIFT, // Dingtian Relay board - 8,16,24 or 32 relays & inputs
AGPIO(GPIO_DINGTIAN_SDI),
AGPIO(GPIO_DINGTIAN_Q7),
AGPIO(GPIO_DINGTIAN_PL),
AGPIO(GPIO_DINGTIAN_OE),
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_DINGTIAN_RCK),
2022-04-22 07:40:29 +01:00
#endif
/*-------------------------------------------------------------------------------------------*\
* ESP32 specifics
\*-------------------------------------------------------------------------------------------*/
2020-09-25 17:15:31 +01:00
#ifdef ESP32
2021-04-21 09:57:31 +01:00
#if CONFIG_IDF_TARGET_ESP32
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_HALLEFFECT) + 2, // Hall effect sensor connected to GPIO36 and 39
2021-04-21 09:57:31 +01:00
#endif // CONFIG_IDF_TARGET_ESP32
2020-09-25 17:15:31 +01:00
#ifdef USE_WEBCAM
AGPIO(GPIO_WEBCAM_PWDN),
AGPIO(GPIO_WEBCAM_RESET),
AGPIO(GPIO_WEBCAM_XCLK),
AGPIO(GPIO_WEBCAM_SIOD),
AGPIO(GPIO_WEBCAM_SIOC),
AGPIO(GPIO_WEBCAM_DATA) + MAX_WEBCAM_DATA,
AGPIO(GPIO_WEBCAM_VSYNC),
AGPIO(GPIO_WEBCAM_HREF),
AGPIO(GPIO_WEBCAM_PCLK),
AGPIO(GPIO_WEBCAM_PSCLK),
AGPIO(GPIO_WEBCAM_HSD) + MAX_WEBCAM_HSD,
AGPIO(GPIO_WEBCAM_PSRCS),
2020-09-29 17:10:21 +01:00
#endif // USE_WEBCAM
2020-09-25 17:15:31 +01:00
#ifdef USE_ETHERNET
AGPIO(GPIO_ETH_PHY_POWER),
AGPIO(GPIO_ETH_PHY_MDC),
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ETH_PHY_MDIO), // Ethernet
2020-09-29 17:10:21 +01:00
#endif // USE_ETHERNET
/*-------------------------------------------------------------------------------------------*\
* ESP32 multiple Analog / Digital converter inputs
\*-------------------------------------------------------------------------------------------*/
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ADC_INPUT) + MAX_ADCS, // Analog inputs
AGPIO(GPIO_ADC_TEMP) + MAX_ADCS, // Thermistor
AGPIO(GPIO_ADC_LIGHT) + MAX_ADCS, // Light sensor
AGPIO(GPIO_ADC_BUTTON) + MAX_KEYS, // Button
AGPIO(GPIO_ADC_BUTTON_INV) + MAX_KEYS,
2022-11-21 13:07:25 +00:00
AGPIO(GPIO_ADC_RANGE) + MAX_ADCS, // Range
AGPIO(GPIO_ADC_CT_POWER) + MAX_ADCS, // Current
AGPIO(GPIO_ADC_JOY) + MAX_ADCS, // Joystick
AGPIO(GPIO_ADC_PH) + MAX_ADCS, // Analog PH Sensor
AGPIO(GPIO_ADC_MQ) + MAX_ADCS, // Analog MQ Sensor
#ifdef USE_BIOPDU
AGPIO(GPIO_BIOPDU_PZEM0XX_TX), // Biomine BioPDU pins
AGPIO(GPIO_BIOPDU_PZEM016_RX),
AGPIO(GPIO_BIOPDU_BIT) + 3,
#endif
2020-09-25 17:15:31 +01:00
#endif // ESP32
2020-09-29 13:08:48 +01:00
};
2020-09-25 17:15:31 +01:00
/*-------------------------------------------------------------------------------------------*\
* ESP8266 single Analog / Digital converter input
\*-------------------------------------------------------------------------------------------*/
2020-09-25 17:15:31 +01:00
#ifdef ESP8266
2020-09-29 13:08:48 +01:00
const uint16_t kAdcNiceList[] PROGMEM = {
GPIO_NONE, // Not used
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_ADC_INPUT), // Analog inputs
AGPIO(GPIO_ADC_TEMP), // Thermistor
AGPIO(GPIO_ADC_LIGHT), // Light sensor
AGPIO(GPIO_ADC_BUTTON) + MAX_KEYS, // Button
AGPIO(GPIO_ADC_BUTTON_INV) + MAX_KEYS,
2020-09-25 17:15:31 +01:00
AGPIO(GPIO_ADC_RANGE), // Range
AGPIO(GPIO_ADC_CT_POWER), // Current
AGPIO(GPIO_ADC_JOY), // Joystick
2021-01-05 13:20:04 +00:00
AGPIO(GPIO_ADC_PH), // Analog PH Sensor
AGPIO(GPIO_ADC_MQ), // Analog MQ Sensor
};
2020-09-29 13:08:48 +01:00
#endif // ESP8266
2020-09-25 17:15:31 +01:00
// User selectable ADC functionality
enum UserSelectableAdc {
ADC_NONE, // Not used
ADC_INPUT, // Analog input
ADC_TEMP, // Thermistor
ADC_LIGHT, // Light sensor
ADC_BUTTON, // Button
ADC_BUTTON_INV,
ADC_RANGE, // Range
ADC_CT_POWER, // Current
ADC_JOY, // Joystick
2021-01-05 13:20:04 +00:00
ADC_PH, // Analog PH Sensor
ADC_MQ, // Analog MQ Sensor
2020-09-25 17:15:31 +01:00
// ADC_SWITCH, // Switch
// ADC_SWITCH_INV,
ADC_END };
2020-09-29 17:10:21 +01:00
/*********************************************************************************************\
* ATTENTION: No user changeable features beyond this point - do not add templates !!!
\*********************************************************************************************/
2020-10-03 14:06:52 +01:00
#define GPIO_ANY 32 // Any GPIO
2020-09-25 17:15:31 +01:00
#ifdef ESP8266
#define MAX_GPI8_PIN 17 // Number of supported GPIO (0..16)
#define FLASH_PINS 6 // Number of flash chip pins
#define MAX_GPIO_PIN 18 // Number of supported GPIO (0..16 + ADC0)
2020-09-29 17:10:21 +01:00
#define ADC0_PIN 17 // Pin number of ADC0
2020-09-25 17:15:31 +01:00
#define MIN_FLASH_PINS 4 // Number of flash chip pins unusable for configuration (GPIO6, 7, 8 and 11)
#define MAX_USER_PINS 14 // MAX_GPIO_PIN - MIN_FLASH_PINS
#define WEMOS_MODULE 17 // Wemos module
const char PINS_WEMOS[] PROGMEM = "D3TXD4RXD2D1flashcFLFLolD6D7D5D8D0A0";
typedef struct MYIO8 {
uint8_t io[MAX_GPI8_PIN];
} myio8; // 17 bytes
typedef struct MYCFGIO8285 {
uint8_t io[MAX_GPI8_PIN - MIN_FLASH_PINS];
} mycfgio8285; // 13 bytes
typedef struct MYTMPLT8285 {
mycfgio8285 gp;
uint8_t flag;
} mytmplt8285; // 14 bytes
typedef struct MYCFGIO8266 {
uint8_t io[MAX_GPI8_PIN - FLASH_PINS];
} mycfgio8266; // 11 bytes
typedef struct MYTMPLT8266 {
mycfgio8266 gp;
uint8_t flag;
} mytmplt8266; // 12 bytes
2020-03-28 17:08:43 +00:00
2020-11-28 15:39:15 +00:00
#endif // ESP8266
#ifdef ESP32
2021-07-02 08:46:19 +01:00
#ifdef CONFIG_IDF_TARGET_ESP32C3
/* ****************************************
* ESP32C3
* ****************************************/
#define MAX_GPIO_PIN 22 // Number of supported GPIO
2021-07-02 08:46:19 +01:00
#define MIN_FLASH_PINS 0 // Number of flash chip pins unusable for configuration (GPIO11 to 17)
#define MAX_USER_PINS 22 // MAX_GPIO_PIN - MIN_FLASH_PINS
#define WEMOS_MODULE 0 // Wemos module
// 0 1 2 3 4 5 6 7 8 9101112131415161718192021
const char PINS_WEMOS[] PROGMEM = "AOAOAOAOAOAOIOIOIOIOIOFLFLFLFLFLFLFLIOIORXTX";
2021-09-04 13:20:09 +01:00
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
/* ****************************************
* ESP32S2
* ****************************************/
2021-09-04 13:20:09 +01:00
#define MAX_GPIO_PIN 47 // Number of supported GPIO
#define MIN_FLASH_PINS 11 // Number of flash chip pins unusable for configuration (22-25 don't exist, 26-32 for SPI)
#define MAX_USER_PINS 36 // MAX_GPIO_PIN - MIN_FLASH_PINS
#define WEMOS_MODULE 0 // Wemos module
// 0 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546
const char PINS_WEMOS[] PROGMEM = "IOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOIO--------FLFLFLFLFLFLFLIOIOIOIOIOIOIOIOIOIOIOIOIOI ";
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
/* ****************************************
* ESP32S3
* GPIOs 0..21 + 33..48
* - 22..25 are not used
* - 26..32 are used for SPI Flash
* - 33..37 are used by PSRAM
* ****************************************/
#define MAX_GPIO_PIN 49 // Number of supported GPIO, 0..48
#define MIN_FLASH_PINS 11 // Number of flash chip pins unusable for configuration (22-25 don't exist, 26-32 for SPI)
#define MAX_USER_PINS 38 // MAX_GPIO_PIN - MIN_FLASH_PINS
#define WEMOS_MODULE 0 // Wemos module
// 0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839404142434445464748
const char PINS_WEMOS[] PROGMEM = "IOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOAOIO--------FLFLFLFLFLFLFLIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIO";
2021-09-04 13:20:09 +01:00
#else // not CONFIG_IDF_TARGET_ESP32C3 nor CONFIG_IDF_TARGET_ESP32S2 - ESP32
2020-03-28 17:08:43 +00:00
/* ****************************************
* ESP32 - including Pico
*
* The initial template was 0-5 9-10 12-39
* New template covers 0-27 32-39
* However to maintain backwards compatibility, the following mapping occures
* Template GPIO | Phyiscal GPIO
* 28 | 6
* 29 | 7
* 30 | 8
* 31 | 11
* ****************************************/
// Conversion table
#define ESP32_TEMPLATE_TO_PHY \
0, 1, 2, 3, 4, 5, \
9, 10, \
12, 13, 14, 15, 16, 17, 18, 19, \
20, 21, 22, 23, 24, 25, 26, 27, \
6, 7, 8, 11, /* 28-31 */ \
32, 33, 34, 35, 36, 37, 38, 39
2020-09-25 17:15:31 +01:00
#define MAX_GPIO_PIN 40 // Number of supported GPIO
2020-03-28 17:08:43 +00:00
#define MIN_FLASH_PINS 4 // Number of flash chip pins unusable for configuration (GPIO6, 7, 8 and 11)
2020-09-25 17:15:31 +01:00
#define MAX_USER_PINS 36 // MAX_GPIO_PIN - MIN_FLASH_PINS
#define WEMOS_MODULE 0 // Wemos module
2020-03-28 17:08:43 +00:00
2020-09-25 17:15:31 +01:00
// 0 1 2 3 4 5 6 7 8 9101112131415161718192021222324252627282930313233343536373839
const char PINS_WEMOS[] PROGMEM = "IOTXIORXIOIOFLFLFLFLFLFLIOIOIOIOIOIOIOIOIOIOIOIOIOIOIOIO--------AOAOIAIAIAIAIAIA";
2020-03-28 17:08:43 +00:00
2021-09-04 13:20:09 +01:00
#endif // ESP32/S2/C3 selection
2020-11-28 15:39:15 +00:00
#endif // ESP32
2020-09-25 17:15:31 +01:00
2021-07-02 08:46:19 +01:00
/********************************************************************************************\
* !!! Changes in below type sizes impact Settings layout - Add fill bytes in Settings !!!
\********************************************************************************************/
2020-03-28 17:08:43 +00:00
typedef struct MYIO {
2020-09-25 17:15:31 +01:00
uint16_t io[MAX_GPIO_PIN];
} myio; // ESP8266: 18*2 = 36 bytes / ESP32: 40*2 = 80 bytes / ESP32-C3: 22*2 = 44 bytes / ESP32-S2: 47*2 = 94 bytes / ESP32-S3: 49*2 = 98 bytes
2020-03-28 17:08:43 +00:00
typedef struct MYCFGIO {
2020-09-25 17:15:31 +01:00
uint16_t io[MAX_USER_PINS];
} mycfgio; // ESP8266: 14*2 = 28 bytes / ESP32: 36*2 = 72 bytes / ESP32-C3: 22*2 = 44 bytes / ESP32-S2: 36*2 = 72 bytes / ESP32-S3: 33*2 = 66 bytes
2020-03-28 17:08:43 +00:00
2020-09-25 17:15:31 +01:00
#define GPIO_FLAG_USED 0 // Currently no flags used
2020-03-28 17:08:43 +00:00
typedef union {
2020-09-25 17:15:31 +01:00
uint16_t data;
2020-03-28 17:08:43 +00:00
struct {
2020-09-25 17:15:31 +01:00
uint16_t spare00 : 1;
uint16_t spare01 : 1;
uint16_t spare02 : 1;
uint16_t spare03 : 1;
uint16_t spare04 : 1;
uint16_t spare05 : 1;
uint16_t spare06 : 1;
uint16_t spare07 : 1;
uint16_t spare08 : 1;
uint16_t spare09 : 1;
uint16_t spare10 : 1;
uint16_t spare11 : 1;
uint16_t spare12 : 1;
uint16_t spare13 : 1;
uint16_t spare14 : 1;
uint16_t spare15 : 1;
2020-03-28 17:08:43 +00:00
};
2020-09-25 17:15:31 +01:00
} gpio_flag; // 2 bytes
2020-03-28 17:08:43 +00:00
typedef struct MYTMPLT {
2021-11-13 11:49:38 +00:00
mycfgio gp; // 28 / 72 / 44 / 72 bytes
2020-09-25 17:15:31 +01:00
gpio_flag flag; // 2 bytes
2021-11-13 11:49:38 +00:00
} mytmplt; // 30 / 74 / 46 / 74 bytes
2020-03-28 17:08:43 +00:00
2020-09-25 17:15:31 +01:00
//********************************************************************************************
#ifdef ESP8266
#include "include/tasmota_template_legacy.h"
2020-09-25 17:15:31 +01:00
/********************************************************************************************\
* ESP8266 Module Templates
\********************************************************************************************/
#define USER_MODULE 255
2020-04-28 17:27:07 +01:00
// Supported ESP8266 hardware modules
enum SupportedModulesESP8266 {
2020-03-28 17:08:43 +00:00
SONOFF_BASIC, SONOFF_RF, SONOFF_SV, SONOFF_TH, SONOFF_DUAL, SONOFF_POW, SONOFF_4CH, SONOFF_S2X, SLAMPHER, SONOFF_TOUCH,
SONOFF_LED, CH1, CH4, MOTOR, ELECTRODRAGON, EXS_RELAY, WION, WEMOS, SONOFF_DEV, H801,
SONOFF_SC, SONOFF_BN, SONOFF_4CHPRO, HUAFAN_SS, SONOFF_BRIDGE, SONOFF_B1, AILIGHT, SONOFF_T11, SONOFF_T12, SONOFF_T13,
SUPLA1, WITTY, YUNSHAN, MAGICHOME, LUANIHVIO, KMC_70011, ARILUX_LC01, ARILUX_LC11, SONOFF_DUAL_R2, ARILUX_LC06,
SONOFF_S31, ZENGGE_ZF_WF017, SONOFF_POW_R2, SONOFF_IFAN02, BLITZWOLF_BWSHP, SHELLY1, SHELLY2, PHILIPS, NEO_COOLCAM, ESP_SWITCH,
OBI, TECKIN, APLIC_WDP303075, TUYA_DIMMER, GOSUND, ARMTRONIX_DIMMERS, SK03_TUYA, PS_16_DZ, TECKIN_US, MANZOKU_EU_4,
OBI2, YTF_IR_BRIDGE, DIGOO, KA10, ZX2820, MI_DESK_LAMP, SP10, WAGA, SYF05, SONOFF_L1,
SONOFF_IFAN03, EXS_DIMMER, PWM_DIMMER, SONOFF_D1, SONOFF_ZB_BRIDGE,
MAXMODULE };
2020-03-28 17:08:43 +00:00
const char kModuleNames[] PROGMEM =
"Sonoff Basic|Sonoff RF|Sonoff SV|Sonoff TH|Sonoff Dual|Sonoff Pow|Sonoff 4CH|Sonoff S2X|Slampher|Sonoff Touch|"
"Sonoff LED|1 Channel|4 Channel|Motor C/AC|ElectroDragon|EXS Relay(s)|WiOn|Generic|Sonoff Dev|H801|"
"Sonoff SC|Sonoff BN-SZ|Sonoff 4CH Pro|Huafan SS|Sonoff Bridge|Sonoff B1|AiLight|Sonoff T1 1CH|Sonoff T1 2CH|Sonoff T1 3CH|"
"Supla Espablo|Witty Cloud|Yunshan Relay|MagicHome|Luani HVIO|KMC 70011|Arilux LC01|Arilux LC11|Sonoff Dual R2|Arilux LC06|"
"Sonoff S31|Zengge WF017|Sonoff Pow R2|Sonoff iFan02|BlitzWolf SHP|Shelly 1|Shelly 2|Xiaomi Philips|Neo Coolcam|ESP Switch|"
"OBI Socket|Teckin|AplicWDP303075|Tuya MCU|Gosund SP1 v23|ARMTR Dimmer|SK03 Outdoor|PS-16-DZ|Teckin US|Manzoku strip|"
"OBI Socket 2|YTF IR Bridge|Digoo DG-SP202|KA10|Luminea ZX2820|Mi Desk Lamp|SP10|WAGA CHCZ02MB|SYF05|Sonoff L1|"
"Sonoff iFan03|EXS Dimmer|PWM Dimmer|Sonoff D1|Sonoff ZbBridge"
2020-03-28 17:08:43 +00:00
;
const uint8_t kModuleNiceList[] PROGMEM = {
SONOFF_BASIC, // Sonoff Relay Devices
SONOFF_RF,
SONOFF_TH,
SONOFF_DUAL,
SONOFF_DUAL_R2,
SONOFF_POW,
SONOFF_POW_R2,
SONOFF_4CH,
SONOFF_4CHPRO,
SONOFF_S31, // Sonoff Socket Relay Devices with Energy Monitoring
SONOFF_S2X, // Sonoff Socket Relay Devices
SONOFF_TOUCH, // Sonoff Switch Devices
SONOFF_T11,
SONOFF_T12,
SONOFF_T13,
2020-02-27 16:52:27 +00:00
#ifdef USE_SONOFF_D1
SONOFF_D1, // Sonoff D1
#endif
SONOFF_LED, // Sonoff Light Devices
SONOFF_BN,
2019-10-17 11:20:26 +01:00
#ifdef USE_SONOFF_L1
SONOFF_L1,
#endif
SONOFF_B1, // Sonoff Light Bulbs
SLAMPHER,
#ifdef USE_SONOFF_SC
SONOFF_SC, // Sonoff Environmemtal Sensor
#endif
#ifdef USE_SONOFF_IFAN
SONOFF_IFAN02, // Sonoff Fan
SONOFF_IFAN03,
#endif
#ifdef USE_SONOFF_RF
SONOFF_BRIDGE, // Sonoff Bridge
#endif
#ifdef USE_ZIGBEE_EZSP
SONOFF_ZB_BRIDGE,
#endif
SONOFF_SV, // Sonoff Development Devices
SONOFF_DEV,
CH1, // Relay Devices
CH4,
MOTOR,
ELECTRODRAGON,
EXS_RELAY,
2017-08-19 17:08:06 +01:00
SUPLA1,
LUANIHVIO,
YUNSHAN,
WION,
SHELLY1,
SHELLY2,
BLITZWOLF_BWSHP, // Socket Relay Devices with Energy Monitoring
TECKIN,
TECKIN_US,
APLIC_WDP303075,
GOSUND,
ZX2820,
SK03_TUYA,
DIGOO,
KA10,
2019-01-30 18:44:48 +00:00
SP10,
2019-02-01 13:54:35 +00:00
WAGA,
NEO_COOLCAM, // Socket Relay Devices
OBI,
OBI2,
2018-12-11 13:49:58 +00:00
MANZOKU_EU_4,
ESP_SWITCH, // Switch Devices
#ifdef USE_TUYA_MCU
TUYA_DIMMER, // Dimmer Devices
2019-04-05 16:46:26 +01:00
#endif
#ifdef USE_ARMTRONIX_DIMMERS
2018-11-10 15:30:29 +00:00
ARMTRONIX_DIMMERS,
2019-04-05 16:46:26 +01:00
#endif
#ifdef USE_PS_16_DZ
2018-11-26 00:19:09 +00:00
PS_16_DZ,
#endif
#ifdef USE_EXS_DIMMER
EXS_DIMMER,
2020-02-24 13:19:15 +00:00
#endif
#ifdef USE_PWM_DIMMER
PWM_DIMMER,
2019-04-05 16:46:26 +01:00
#endif
H801, // Light Devices
MAGICHOME,
ARILUX_LC01,
ARILUX_LC06,
ARILUX_LC11,
ZENGGE_ZF_WF017,
HUAFAN_SS,
#ifdef ROTARY_V1
2019-01-11 00:50:40 +00:00
MI_DESK_LAMP,
#endif
KMC_70011,
AILIGHT, // Light Bulbs
PHILIPS,
2019-02-09 12:24:35 +00:00
SYF05,
YTF_IR_BRIDGE,
WITTY, // Development Devices
2019-02-09 12:24:35 +00:00
WEMOS
};
enum SupportedTemplates8285 {
TMP_SONOFF_BASIC, TMP_SONOFF_SV, TMP_SONOFF_DUAL, TMP_SONOFF_POW, TMP_SONOFF_LED, TMP_ELECTRODRAGON,
TMP_EXS_RELAY, TMP_WION, TMP_SONOFF_DEV, TMP_H801, TMP_SONOFF_SC, TMP_SONOFF_BN, TMP_HUAFAN_SS, TMP_SONOFF_BRIDGE,
TMP_SONOFF_B1, TMP_AILIGHT, TMP_SONOFF_T11, TMP_SUPLA1, TMP_WITTY, TMP_YUNSHAN, TMP_MAGICHOME,
TMP_LUANIHVIO, TMP_KMC_70011, TMP_ARILUX_LC01, TMP_ARILUX_LC11, TMP_ARILUX_LC06, TMP_ZENGGE_ZF_WF017,
TMP_SONOFF_POW_R2, TMP_BLITZWOLF_BWSHP, TMP_SHELLY1, TMP_SHELLY2, TMP_PHILIPS, TMP_NEO_COOLCAM, TMP_ESP_SWITCH, TMP_OBI,
TMP_TECKIN, TMP_APLIC_WDP303075, TMP_TUYA_DIMMER, TMP_GOSUND, TMP_ARMTRONIX_DIMMERS, TMP_SK03_TUYA, TMP_PS_16_DZ,
TMP_TECKIN_US, TMP_MANZOKU_EU_4, TMP_OBI2, TMP_YTF_IR_BRIDGE, TMP_DIGOO, TMP_KA10, TMP_ZX2820, TMP_MI_DESK_LAMP, TMP_SP10,
TMP_WAGA, TMP_SYF05, TMP_EXS_DIMMER, TMP_PWM_DIMMER, TMP_SONOFF_ZB_BRIDGE,
2020-08-22 17:25:01 +01:00
TMP_MAXMODULE_8285 };
enum SupportedTemplates8266 {
2020-08-22 17:25:01 +01:00
TMP_WEMOS = TMP_MAXMODULE_8285, TMP_SONOFF_4CH, TMP_SONOFF_T12, TMP_SONOFF_T13, TMP_SONOFF_DUAL_R2, TMP_SONOFF_IFAN03,
TMP_MAXMODULE_8266 };
const uint8_t kModuleTemplateList[MAXMODULE] PROGMEM = {
TMP_SONOFF_BASIC,
TMP_SONOFF_BASIC, // SONOFF_RF
TMP_SONOFF_SV,
TMP_SONOFF_BASIC, // SONOFF_TH
TMP_SONOFF_DUAL,
TMP_SONOFF_POW,
TMP_SONOFF_4CH,
TMP_SONOFF_BASIC, // SONOFF_S2X
TMP_SONOFF_BASIC, // SLAMPHER
TMP_SONOFF_T11, // SONOFF_TOUCH
TMP_SONOFF_LED,
TMP_SONOFF_BASIC, // CH1
TMP_SONOFF_DUAL, // CH4
TMP_SONOFF_BASIC, // MOTOR
TMP_ELECTRODRAGON,
TMP_EXS_RELAY,
TMP_WION,
TMP_WEMOS,
TMP_SONOFF_DEV,
TMP_H801,
TMP_SONOFF_SC,
TMP_SONOFF_BN,
TMP_SONOFF_4CH, // SONOFF_4CHPRO
TMP_HUAFAN_SS,
TMP_SONOFF_BRIDGE,
TMP_SONOFF_B1,
TMP_AILIGHT,
TMP_SONOFF_T11,
TMP_SONOFF_T12,
TMP_SONOFF_T13,
TMP_SUPLA1,
TMP_WITTY,
TMP_YUNSHAN,
TMP_MAGICHOME,
TMP_LUANIHVIO,
TMP_KMC_70011,
TMP_ARILUX_LC01,
TMP_ARILUX_LC11,
TMP_SONOFF_DUAL_R2,
TMP_ARILUX_LC06,
TMP_SONOFF_POW_R2, // SONOFF_S31
TMP_ZENGGE_ZF_WF017,
TMP_SONOFF_POW_R2,
TMP_SONOFF_4CH, // SONOFF_IFAN02
TMP_BLITZWOLF_BWSHP,
TMP_SHELLY1,
TMP_SHELLY2,
TMP_PHILIPS,
TMP_NEO_COOLCAM,
TMP_ESP_SWITCH,
TMP_OBI,
TMP_TECKIN,
TMP_APLIC_WDP303075,
TMP_TUYA_DIMMER,
TMP_GOSUND,
TMP_ARMTRONIX_DIMMERS,
TMP_SK03_TUYA,
TMP_PS_16_DZ,
TMP_TECKIN_US,
TMP_MANZOKU_EU_4,
TMP_OBI2,
TMP_YTF_IR_BRIDGE,
TMP_DIGOO,
TMP_KA10,
TMP_ZX2820,
TMP_MI_DESK_LAMP,
TMP_SP10,
TMP_WAGA,
TMP_SYF05,
TMP_SONOFF_DUAL, // SONOFF_L1
TMP_SONOFF_IFAN03,
TMP_EXS_DIMMER,
TMP_PWM_DIMMER,
TMP_SONOFF_DUAL, // SONOFF_D1
TMP_SONOFF_ZB_BRIDGE,
};
/*********************************************************************************************\
* Templates with 12 usable pins (ESP8266)
\*********************************************************************************************/
2020-08-22 17:25:01 +01:00
const mytmplt8266 kModules8266[TMP_MAXMODULE_8285] PROGMEM = {
{ // SONOFF_BASIC - Sonoff Basic (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Only available on newer Sonoff Basic R2 V1
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_USER, // GPIO04 Optional sensor
0, // GPIO05
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
GPI8_USER, // GPIO14 Optional sensor
0, // GPIO15
0, // GPIO16
0 // ADC0 Analog input
2020-08-18 10:42:48 +01:00
},
{ // SONOFF_SV - Sonoff SV (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_USER, // GPIO04 Optional sensor
GPI8_USER, // GPIO05 Optional sensor
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
GPI8_USER, // GPIO14 Optional sensor
2020-03-28 17:08:43 +00:00
0, 0,
2020-09-25 17:15:31 +01:00
GPI8_USER // ADC0 Analog input
2020-03-28 17:08:43 +00:00
},
{ // SONOFF_DUAL - Sonoff Dual (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 Pad
GPI8_TXD, // GPIO01 Relay control
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_RXD, // GPIO03 Relay control
GPI8_USER, // GPIO04 Optional sensor
2020-03-28 17:08:43 +00:00
0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
GPI8_USER, // GPIO14 Optional sensor
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // SONOFF_POW - Sonoff Pow (ESP8266 - HLW8012)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
2020-03-28 17:08:43 +00:00
0, 0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL, // GPIO05 HLW8012 Sel output (1 = Voltage)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On)
GPI8_NRG_CF1, // GPIO13 HLW8012 CF1 voltage / current
GPI8_HLW_CF, // GPIO14 HLW8012 CF power
GPI8_LED1, // GPIO15 Blue Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SONOFF_LED - Sonoff LED (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
2020-03-28 17:08:43 +00:00
0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO04 Optional sensor (PWM3 Green)
GPI8_USER, // GPIO05 Optional sensor (PWM2 Red)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM1, // GPIO12 Cold light (PWM0 Cold)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
GPI8_PWM2, // GPIO14 Warm light (PWM1 Warm)
GPI8_USER, // GPIO15 Optional sensor (PWM4 Blue)
2020-03-28 17:08:43 +00:00
0, 0
},
{ // ELECTRODRAGON - ElectroDragon IoT Relay Board (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY2, // GPIO00 Button 2
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_KEY1, // GPIO02 Button 1
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_USER, // GPIO04 Optional sensor
GPI8_USER, // GPIO05 Optional sensor
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL2, // GPIO12 Red Led and Relay 2 (0 = Off, 1 = On)
GPI8_REL1, // GPIO13 Red Led and Relay 1 (0 = Off, 1 = On)
GPI8_USER, // GPIO14 Optional sensor
GPI8_USER, // GPIO15 Optional sensor
GPI8_LED1, // GPIO16 Green/Blue Led (1 = On, 0 = Off) - Link and Power status
GPI8_USER // ADC0 A0 Analog input
2020-08-18 10:42:48 +01:00
},
{ // EXS_RELAY - ES-Store Latching relay(s) (ESP8266)
// https://ex-store.de/ESP8266-WiFi-Relay-V31
// V3.1 Module Pin 1 VCC 3V3, Module Pin 6 GND
// https://ex-store.de/2-Kanal-WiFi-WLan-Relay-V5-Blackline-fuer-Unterputzmontage
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 V3.1 Module Pin 8 - V5.0 Module Pin 4
GPI8_USER, // GPIO01 UART0_TXD V3.1 Module Pin 2 - V5.0 Module Pin 3
GPI8_USER, // GPIO02 V3.1 Module Pin 7
GPI8_USER, // GPIO03 UART0_RXD V3.1 Module Pin 3
GPI8_USER, // GPIO04 V3.1 Module Pin 10 - V5.0 Module Pin 2
GPI8_USER, // GPIO05 V3.1 Module Pin 9 - V5.0 Module Pin 1
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Relay1 ( 1 = Off)
GPI8_REL2, // GPIO13 Relay1 ( 1 = On)
GPI8_USER, // GPIO14 V3.1 Module Pin 5 - V5.0 GPI8_REL3_INV Relay2 ( 1 = Off)
GPI8_LED1, // GPIO15 V5.0 LED1 - Link and Power status
GPI8_USER, // GPIO16 V3.1 Module Pin 4 - V5.0 GPI8_REL4_INV Relay2 ( 1 = On)
2020-03-28 17:08:43 +00:00
0
},
{ // WION - Indoor Tap (ESP8266)
// https://www.amazon.com/gp/product/B00ZYLUBJU/ref=s9_acsd_al_bw_c_x_3_w
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 Optional sensor (pm clock)
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LED1, // GPIO02 Green Led (1 = On, 0 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12 Optional sensor (pm data)
GPI8_KEY1, // GPIO13 Button
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO15 Relay (0 = Off, 1 = On)
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SONOFF_DEV - Sonoff Dev (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 E-FW Button
GPI8_USER, // GPIO01 TX Serial RXD and Optional sensor
2020-08-18 10:42:48 +01:00
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 RX Serial TXD and Optional sensor
GPI8_USER, // GPIO04 Optional sensor
GPI8_USER, // GPIO05 Optional sensor
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12
GPI8_USER, // GPIO13 BLUE LED
GPI8_USER, // GPIO14 Optional sensor
0, // GPIO15
0, // GPIO16
2020-09-25 17:15:31 +01:00
GPI8_USER // ADC0 A0 Analog input
2020-08-18 10:42:48 +01:00
},
{ // H801 - Lixada H801 Wifi (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 E-FW Button
GPI8_LED1, // GPIO01 Green LED - Link and Power status
GPI8_USER, // GPIO02 TX and Optional sensor - Pin next to TX on the PCB
GPI8_USER, // GPIO03 RX and Optional sensor - Pin next to GND on the PCB
GPI8_PWM5, // GPIO04 W2 - PWM5
GPI8_LED2_INV, // GPIO05 Red LED
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM3, // GPIO12 Blue
GPI8_PWM2, // GPIO13 Green
GPI8_PWM4, // GPIO14 W1 - PWM4
GPI8_PWM1, // GPIO15 Red
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SONOFF_SC - onoff SC (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
GPI8_TXD, // GPIO01 RXD to ATMEGA328P
GPI8_USER, // GPIO02 Optional sensor
GPI8_RXD, // GPIO03 TXD to ATMEGA328P
2020-03-28 17:08:43 +00:00
0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO13 Green Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // SONOFF_BN - Sonoff BN-SZ01 Ceiling led (ESP8285)
2020-03-28 17:08:43 +00:00
0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM1, // GPIO12 Light
GPI8_LED1_INV, // GPIO13 Red Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // HUAFAN_SS - Hua Fan Smart Socket (ESP8266) - like Sonoff Pow
2020-09-25 17:15:31 +01:00
GPI8_LEDLNK_INV, // GPIO00 Blue Led (0 = On, 1 = Off) - Link status
2020-03-28 17:08:43 +00:00
0, 0,
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO03 Red Led (0 = On, 1 = Off) - Power status
GPI8_KEY1, // GPIO04 Button
GPI8_REL1_INV, // GPIO05 Relay (0 = On, 1 = Off)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_CF1, // GPIO12 HLW8012 CF1 voltage / current
GPI8_NRG_SEL, // GPIO13 HLW8012 Sel output (1 = Voltage)
GPI8_HLW_CF, // GPIO14 HLW8012 CF power
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // SONOFF_BRIDGE - Sonoff RF Bridge 433 (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
GPI8_TXD, // GPIO01 RF bridge control
GPI8_USER, // GPIO02 Optional sensor
GPI8_RXD, // GPIO03 RF bridge control
GPI8_USER, // GPIO04 Optional sensor
GPI8_USER, // GPIO05 Optional sensor
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12 Optional sensor
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
GPI8_USER, // GPIO14 Optional sensor
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // SONOFF_B1 - Sonoff B1 (ESP8285 - my9231)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Pad
GPI8_USER, // GPIO01 Serial RXD and Optional sensor pad
GPI8_USER, // GPIO02 Optional sensor SDA pad
GPI8_USER, // GPIO03 Serial TXD and Optional sensor pad
2020-03-28 17:08:43 +00:00
0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_DI, // GPIO12 my9231 DI
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_DCKI, // GPIO14 my9231 DCKI
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // AILIGHT - Ai-Thinker RGBW led (ESP8266 - my9291)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Pad
GPI8_USER, // GPIO01 Serial RXD and Optional sensor pad
GPI8_USER, // GPIO02 Optional sensor SDA pad
GPI8_USER, // GPIO03 Serial TXD and Optional sensor pad
2020-03-28 17:08:43 +00:00
0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_DI, // GPIO13 my9291 DI
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_DCKI, // GPIO15 my9291 DCKI
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SONOFF_T11 - Sonoff T1 1CH (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button 1
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Optional Sensor (J3 Pin 5)
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
2020-03-28 17:08:43 +00:00
0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Blue Led and Relay 1 (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // SUPLA1 - Supla Espablo (ESP8266)
// http://www.wykop.pl/ramka/3325399/diy-supla-do-puszki-instalacyjnej-podtynkowej-supla-org/
0, // GPIO00 Flash jumper
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
#ifdef USE_DS18x20
2020-09-25 17:15:31 +01:00
GPI8_DSB, // GPIO02 DS18B20 sensor
#else
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO02 Optional sensor
#endif
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_KEY1, // GPIO04 Button 1
GPI8_REL1, // GPIO05 Relay 1 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12 Optional sensor
GPI8_REL2, // GPIO13 Relay 2 (0 = Off, 1 = On)
GPI8_USER, // GPIO14 Optional sensor
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LED1, // GPIO16 Led (1 = On, 0 = Off) - Link and Power status
GPI8_USER // ADC0 A0 Analog input
2020-08-18 10:42:48 +01:00
},
{ // WITTY - Witty Cloud Dev Board (ESP8266)
// https://www.aliexpress.com/item/ESP8266-serial-WIFI-Witty-cloud-Development-Board-ESP-12F-module-MINI-nodemcu/32643464555.html
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 D3 flash push button on interface board
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_LED1_INV, // GPIO02 D4 Blue Led (0 = On, 1 = Off) on ESP-12F - Link and Power status
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_KEY1, // GPIO04 D2 push button on ESP-12F board
GPI8_USER, // GPIO05 D1 optional sensor
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM2, // GPIO12 D6 RGB LED Green
GPI8_PWM3, // GPIO13 D7 RGB LED Blue
GPI8_USER, // GPIO14 D5 optional sensor
GPI8_PWM1, // GPIO15 D8 RGB LED Red
GPI8_USER, // GPIO16 D0 optional sensor
GPI8_USER // ADC0 A0 Light sensor / Requires USE_ADC_VCC in user_config.h to be disabled
2020-08-18 10:42:48 +01:00
},
{ // YUNSHAN - Yunshan Wifi Relay (ESP8266)
// https://www.ebay.com/p/Esp8266-220v-10a-Network-Relay-WiFi-Module/1369583381
// Schematics and Info https://ucexperiment.wordpress.com/2016/12/18/yunshan-esp8266-250v-15a-acdc-network-wifi-relay-module/
0, // GPIO00 Flash jumper - Module Pin 8
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO01 Serial RXD and Optional sensor - Module Pin 2
GPI8_LED1_INV, // GPIO02 Blue Led (0 = On, 1 = Off) on ESP-12F - Module Pin 7 - Link and Power status
GPI8_USER, // GPIO03 Serial TXD and Optional sensor - Module Pin 3
GPI8_REL1, // GPIO04 Red Led and Relay (0 = Off, 1 = On) - Module Pin 10
GPI8_KEY1, // GPIO05 Blue Led and OptoCoupler input - Module Pin 9
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-03-28 17:08:43 +00:00
0, 0, 0, 0, 0, 0
},
{ // MAGICHOME - Magic Home (aka Flux-light) (ESP8266) and Arilux LC10 (ESP8285)
// https://www.aliexpress.com/item/Magic-Home-Mini-RGB-RGBW-Wifi-Controller-For-Led-Strip-Panel-light-Timing-Function-16million-colors/32686853650.html
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_LED1_INV, // GPIO02 Blue onboard LED - Link and Power status
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_ARIRFRCV, // GPIO04 IR or RF receiver (optional) (Arilux LC10)
GPI8_PWM2, // GPIO05 RGB LED Green
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM3, // GPIO12 RGB LED Blue
GPI8_USER, // GPIO13 RGBW LED White (optional - set to PWM4 for Cold White or Warm White as used on Arilux LC10)
GPI8_PWM1, // GPIO14 RGB LED Red
GPI8_ARIRFSEL, // GPIO15 RF receiver control (Arilux LC10)
2020-03-28 17:08:43 +00:00
0, 0
},
{ // LUANIHVIO - ESP8266_HVIO
// https://luani.de/projekte/esp8266-hvio/
0, // GPIO00 Flash jumper
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Optional sensor / I2C SDA pad
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_REL1, // GPIO04 Relay 1 (0 = Off, 1 = On)
GPI8_REL2, // GPIO05 Relay 2 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_SWT1, // GPIO12 External input 1 (0 = On, 1 = Off)
GPI8_SWT2, // GPIO13 External input 2 (0 = On, 1 = Off)
GPI8_USER, // GPIO14 Optional sensor / I2C SCL pad
GPI8_LED1, // GPIO15 Led (1 = On, 0 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER // ADC0 A0 Analog input
2020-03-28 17:08:43 +00:00
},
{ // KMC_70011 - KMC 70011
// https://www.amazon.com/KMC-Timing-Monitoring-Network-125V-240V/dp/B06XRX2GTQ
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
2020-03-28 17:08:43 +00:00
0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_HLW_CF, // GPIO04 HLW8012 CF power
GPI8_NRG_CF1, // GPIO05 HLW8012 CF1 voltage / current
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL, // GPIO12 HLW8012 SEL (1 = Voltage)
GPI8_LED1_INV, // GPIO13 Green Led - Link and Power status
GPI8_REL1, // GPIO14 Relay
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // ARILUX_LC01 - Arilux AL-LC01 (ESP8285)
// https://www.banggood.com/nl/ARILUX-AL-LC01-Super-Mini-LED-WIFI-Smart-RGB-Controller-For-RGB-LED-Strip-Light-DC-9-12V-p-1058603.html
// (PwmFrequency 1111Hz)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Optional Button
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_ARIRFSEL, // GPIO02 RF receiver control
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_ARIRFRCV, // GPIO04 IR or RF receiver (optional)
GPI8_PWM1, // GPIO05 RGB LED Red
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM2, // GPIO12 RGB LED Green
GPI8_PWM3, // GPIO13 RGB LED Blue
GPI8_USER, // GPIO14 RGBW LED White (optional - set to PWM4 for Cold White or Warm White)
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // ARILUX_LC11 - Arilux AL-LC11 (ESP8266)
// https://www.banggood.com/nl/ARILUX-AL-LC11-Super-Mini-LED-WIFI-APP-Controller-RF-Remote-Control-For-RGBWW-LED-Strip-DC9-28V-p-1085112.html
// (PwmFrequency 540Hz)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Optional Button
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_ARIRFSEL, // GPIO02 RF receiver control
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_PWM2, // GPIO04 RGB LED Green
GPI8_PWM1, // GPIO05 RGB LED Red
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM5, // GPIO12 RGBCW LED Warm
GPI8_PWM4, // GPIO13 RGBW LED Cold
GPI8_PWM3, // GPIO14 RGB LED Blue
GPI8_ARIRFRCV, // GPIO15 RF receiver input
2020-03-28 17:08:43 +00:00
0, 0
},
{ // ARILUX_LC06 - Arilux AL-LC06 (ESP8285)
// https://www.banggood.com/ARILUX-AL-LC06-LED-WIFI-Smartphone-Controller-Romote-5-Channels-DC12-24V-For-RGBWW-Strip-light-p-1061476.html
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Optional Button
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Empty pad
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_USER, // GPIO04 W2 - PWM5
2020-03-28 17:08:43 +00:00
0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM2, // GPIO12 RGB LED Green
GPI8_PWM3, // GPIO13 RGB LED Blue
GPI8_PWM1, // GPIO14 RGB LED Red
GPI8_USER, // GPIO15 RGBW LED White
2020-03-28 17:08:43 +00:00
0, 0
},
{ // ZENGGE_ZF_WF017 - Zenggee ZJ-WF017-A (ESP12S))
// https://www.ebay.com/p/Smartphone-Android-IOS-WiFi-Music-Controller-for-RGB-5050-3528-LED-Strip-Light/534446632?_trksid=p2047675.l2644
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Optional Button
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO02 Empty pad
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO04 W2 - PWM5
2020-03-28 17:08:43 +00:00
0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM2, // GPIO12 RGB LED Green
GPI8_PWM1, // GPIO13 RGB LED Red
GPI8_PWM3, // GPIO14 RGB LED Blue
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // SONOFF_POW_R2 - Sonoff Pow R2 (ESP8285 - CSE7766)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
GPI8_CSE7766_TX, // GPIO01 Serial RXD 4800 baud 8E1 CSE7766 energy sensor
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_CSE7766_RX, // GPIO03 Serial TXD
2020-03-28 17:08:43 +00:00
0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // BLITZWOLF_BWSHP - BlitzWolf BW-SHP2 and BW-SHP6 (ESP8285 - BL0937 or HJL-01 Energy Monitoring)
// https://www.banggood.com/BlitzWolf-BW-SHP2-Smart-WIFI-Socket-EU-Plug-220V-16A-Work-with-Amazon-Alexa-Google-Assistant-p-1292899.html
// https://www.amazon.de/Steckdose-Homecube-intelligente-Verbrauchsanzeige-funktioniert/dp/B076Q2LKHG/ref=sr_1_fkmr0_1
// https://www.amazon.de/Intelligente-Stromverbrauch-Fernsteurung-Schaltbare-Energieklasse/dp/B076WZQS4S/ref=sr_1_1
// https://www.aliexpress.com/store/product/BlitzWolf-BW-SHP6-EU-Plug-Metering-Version-WIFI-Smart-Socket-220V-240V-10A-Work-with-Amazon/1965360_32945504669.html
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO00 Red Led (1 = On, 0 = Off) - Power status
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_LEDLNK_INV, // GPIO02 Blue Led (1 = On, 0 = Off) - Link status
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_HJL_CF, // GPIO05 BL0937 or HJL-01 CF power
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 or HJL-01 Sel output (0 = Voltage)
GPI8_KEY1, // GPIO13 Button
GPI8_NRG_CF1, // GPIO14 BL0937 or HJL-01 CF1 current / voltage
GPI8_REL1, // GPIO15 Relay (0 = Off, 1 = On)
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SHELLY1 - Shelly1 Open Source (ESP8266 - 2MB) - https://shelly.cloud/shelly1-open-source/
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 - Can be changed to GPI8_USER, only if Shelly is powered with 12V DC
GPI8_USER, // GPIO01 Serial RXD - Can be changed to GPI8_USER, only if Shelly is powered with 12V DC
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 Serial TXD - Can be changed to GPI8_USER, only if Shelly is powered with 12V DC
GPI8_REL1, // GPIO04 Relay (0 = Off, 1 = On)
GPI8_SWT1_NP, // GPIO05 SW pin
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-03-28 17:08:43 +00:00
0, 0, 0, 0, 0, 0
},
{ // SHELLY2 - Shelly2 (ESP8266 - 2MB) - https://shelly.cloud/shelly2/
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_MCP39F5_TX, // GPIO01 MCP39F501 Serial input
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_MCP39F5_RX, // GPIO03 MCP39F501 Serial output
GPI8_REL1, // GPIO04
GPI8_REL2, // GPIO05
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_SWT1, // GPIO12
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_SWT2, // GPIO14
GPI8_MCP39F5_RST, // GPIO15 MCP39F501 Reset
2020-03-28 17:08:43 +00:00
0,
0
},
{ // PHILIPS - Xiaomi Philips bulb (ESP8266)
2020-03-28 17:08:43 +00:00
0, 0, 0, 0, 0, 0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_PWM2, // GPIO12 cold/warm light
2020-03-28 17:08:43 +00:00
0, 0,
2020-09-25 17:15:31 +01:00
GPI8_PWM1, // GPIO15 light intensity
2020-03-28 17:08:43 +00:00
0, 0
},
{ // NEO_COOLCAM - Neo Coolcam (ESP8266)
// https://www.banggood.com/NEO-COOLCAM-WiFi-Mini-Smart-Plug-APP-Remote-Control-Timing-Smart-Socket-EU-Plug-p-1288562.html?cur_warehouse=CN
2020-03-28 17:08:43 +00:00
0, 0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO04 Red Led (0 = On, 1 = Off) - Link and Power status
2020-03-28 17:08:43 +00:00
0,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay (0 = Off, 1 = On)
GPI8_KEY1, // GPIO13 Button
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // ESP_SWITCH - Michael Haustein 4 channel wall switch (ESP07 = ESP8266)
// Use rules for further actions like - rule on power1#state do publish cmnd/other_device/power %value% endon
2020-09-25 17:15:31 +01:00
GPI8_KEY2, // GPIO00 Button 2
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_REL3_INV, // GPIO02 Yellow Led 3 (0 = On, 1 = Off)
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_KEY1, // GPIO04 Button 1
GPI8_REL2_INV, // GPIO05 Red Led 2 (0 = On, 1 = Off)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL4_INV, // GPIO12 Blue Led 4 (0 = On, 1 = Off)
GPI8_KEY4, // GPIO13 Button 4
GPI8_KEY3, // GPIO14 Button 3
GPI8_LED1, // GPIO15 Optional sensor
GPI8_REL1_INV, // GPIO16 Green Led 1 (0 = On, 1 = Off)
2020-03-28 17:08:43 +00:00
0
},
{ // OBI - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko/p/2291706
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00
GPI8_USER, // GPIO01 Serial RXD
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 Serial TXD
GPI8_LED1, // GPIO04 Blue LED - Link and Power status
GPI8_REL1, // GPIO05 (Relay OFF, but used as Relay Switch)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_LED3, // GPIO12 (Relay ON, but set to LOW, so we can switch with GPIO05)
GPI8_USER, // GPIO13
GPI8_KEY1, // GPIO14 Button
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO16
GPI8_USER // ADC0 A0 Analog input
2020-03-28 17:08:43 +00:00
},
{ // TECKIN - https://www.amazon.de/gp/product/B07D5V139R
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO01 Serial TXD and Button
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO03 Serial RXD and Red Led (0 = On, 1 = Off) - Power status
GPI8_HJL_CF, // GPIO04 BL0937 or HJL-01 CF power
GPI8_NRG_CF1, // GPIO05 BL0937 or HJL-01 CF1 current / voltage
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 or HJL-01 Sel output (0 = Voltage)
GPI8_LEDLNK_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link status
GPI8_REL1, // GPIO14 Relay (0 = Off, 1 = On)
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // APLIC_WDP303075 - Aplic WDP 303075 (ESP8285 - HLW8012 Energy Monitoring)
// https://www.amazon.de/dp/B07CNWVNJ2
2020-03-28 17:08:43 +00:00
0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO03 Button
GPI8_HLW_CF, // GPIO04 HLW8012 CF power
GPI8_NRG_CF1, // GPIO05 HLW8012 CF1 current / voltage
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 HLW8012 CF Sel output (0 = Voltage)
GPI8_LED1_INV, // GPIO13 LED (0 = On, 1 = Off) - Link and Power status
GPI8_REL1, // GPIO14 Relay SRU 5VDC SDA (0 = Off, 1 = On )
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // TUYA_DIMMER - Tuya MCU device (ESP8266 w/ separate MCU)
// https://www.amazon.com/gp/product/B07CTNSZZ8/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1
2020-09-25 17:15:31 +01:00
GPI8_USER, // Virtual Button (controlled by MCU)
GPI8_USER, // GPIO01 MCU serial control
GPI8_USER,
GPI8_USER, // GPIO03 MCU serial control
GPI8_USER,
GPI8_USER,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER,
GPI8_USER,
GPI8_USER, // GPIO14 Green Led
GPI8_USER,
GPI8_USER,
2020-03-28 17:08:43 +00:00
0
},
{ // GOSUND - https://www.amazon.de/gp/product/B0777BWS1P
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LEDLNK_INV, // GPIO01 Serial RXD and LED1 (blue) inv - Link status
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO03 Serial TXD and Button
GPI8_HJL_CF, // GPIO04 BL0937 or HJL-01 CF power
GPI8_NRG_CF1, // GPIO05 BL0937 or HJL-01 CF1 current / voltage
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 or HJL-01 Sel output (0 = Voltage)
GPI8_LED1_INV, // GPIO13 LED2 (red) inv - Power status
GPI8_REL1, // GPIO14 Relay (0 = Off, 1 = On)
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // ARMTRONIX_DIMMERS - ARMTRONIX Dimmer, one or two channel (ESP8266 w/ separate MCU dimmer)
// https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-two-triac-board/
// https://www.tindie.com/products/Armtronix/wifi-ac-dimmer-esp8266-one-triac-board-alexaecho/
2020-09-25 17:15:31 +01:00
GPI8_USER,
GPI8_TXD, // GPIO01 MCU serial control
GPI8_USER,
GPI8_RXD, // GPIO03 MCU serial control
GPI8_USER,
GPI8_USER,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER,
GPI8_USER,
GPI8_USER,
GPI8_USER,
GPI8_USER,
2020-03-28 17:08:43 +00:00
0
},
{ // SK03_TUYA - Outdoor smart plug with power monitoring HLW8012 chip - https://www.amazon.com/gp/product/B07CG7MBPV
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
2020-03-28 17:08:43 +00:00
0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_HLW_CF, // GPIO04 HLW8012 CF power
GPI8_NRG_CF1, // GPIO05 HLW8012 CF1 current / voltage
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 HLW8012 CF Sel output (0 = Voltage)
GPI8_LED1_INV, // GPIO13 Red Led (0 = On, 1 = Off) - Power status
GPI8_LEDLNK_INV, // GPIO14 Blue Led (0 = On, 1 = Off) - Link status
GPI8_REL1, // GPIO15 Relay (0 = Off, 1 = On)
2020-03-28 17:08:43 +00:00
0, 0
},
{ // PS_16_DZ - PS-16-DZ Dimmer (ESP8266 w/ separate Nuvoton MCU dimmer)
// https://www.aliexpress.com/item/SM-Smart-WIFI-Wall-Dimmer-Light-Switch-US-Ewelink-APP-Remote-Control-Wi-Fi-Wirele-Work/32871151902.html
2020-09-25 17:15:31 +01:00
GPI8_USER,
GPI8_TXD, // GPIO01 MCU serial control
GPI8_USER,
GPI8_RXD, // GPIO03 MCU serial control
GPI8_USER,
GPI8_USER,
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER,
GPI8_LED1, // GPIO13 WiFi LED - Link and Power status
GPI8_USER,
GPI8_USER,
GPI8_USER,
2020-03-28 17:08:43 +00:00
0
},
{ // TECKIN_US - Teckin SP20 US with Energy Monitoring
// https://www.amazon.com/Outlet-Compatible-Monitoring-Function-Required/dp/B079Q5W22B
// https://www.amazon.com/Outlet-ZOOZEE-Monitoring-Function-Compatible/dp/B07J2LR5KN
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO00 Red Led (1 = On, 0 = Off) - Power status
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_LEDLNK_INV, // GPIO02 Blue Led (1 = On, 0 = Off) - Link status
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO04 Relay (0 = Off, 1 = On)
GPI8_HJL_CF, // GPIO05 BL0937 or HJL-01 CF power
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 or HJL-01 Sel output (0 = Voltage)
GPI8_KEY1, // GPIO13 Button
GPI8_NRG_CF1, // GPIO14 BL0937 or HJL-01 CF1 current / voltage
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // MANZOKU_EU_4 - "MANZOKU" labeled power strip, EU version
// https://www.amazon.de/Steckdosenleiste-AOFO-Mehrfachsteckdose-Ãœberspannungsschutz-Sprachsteuerung/dp/B07GBSD11P/
// https://www.amazon.de/Steckdosenleiste-Geekbes-USB-Anschluss-Kompatibel-gesteuert/dp/B078W23BW9/
0, // GPIO00
0, // GPIO01 Serial RXD
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO03 Serial TXD + Button
GPI8_REL2, // GPIO04 Relay 2
GPI8_REL1, // GPIO05 Relay 1
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL3, // GPIO12 Relay 3
GPI8_REL4, // GPIO13 Relay 4
GPI8_USER, // GPIO14
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO16
2020-03-28 17:08:43 +00:00
0
},
{ // OBI2 - OBI socket (ESP8266) - https://www.obi.de/hausfunksteuerung/wifi-stecker-schuko-2-stueck-weiss/p/4077673
0, // GPIO00
0, // GPIO01 Serial RXD
2020-03-28 17:08:43 +00:00
0,
0, // GPIO03 Serial TXD
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO04 Relay 1
GPI8_KEY1, // GPIO05 Button
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_LEDLNK_INV, // GPIO12 Green LED - Link status
GPI8_LED1, // GPIO13 Red LED - Power status
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // YTF_IR_BRIDGE - https://www.aliexpress.com/item/Tuya-universal-Smart-IR-Hub-remote-control-Voice-Control-AC-TV-Work-With-Alexa-Google-Home/32951202513.html
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00
GPI8_USER, // GPIO01 Serial RXD
GPI8_USER, // GPIO02
GPI8_USER, // GPIO03 Serial TXD
GPI8_LED1_INV, // GPIO04 Blue Led - Link status
GPI8_IRRECV, // GPIO05 IR Receiver
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
0, // GPIO12
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO13 Button
GPI8_IRSEND, // GPIO14 IR Transmitter
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // DIGOO - Digoo DG-SP202
// https://www.banggood.com/DIGOO-DG-SP202-Dual-EU-Plug-Smart-WIFI-Socket-Individual-Controllable-Energy-Monitor-Remote-Control-Timing-Smart-Home-Outlet-let-p-1375323.html
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button1
0, // GPIO01 Serial RXD
0, // GPIO02
0, // GPIO03 Serial TXD
2020-09-25 17:15:31 +01:00
GPI8_HJL_CF, // GPIO04 BL0937 or HJL-01 CF power
GPI8_NRG_CF1, // GPIO05 BL0937 or HJL-01 CF1 current / voltage
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 or HJL-01 Sel output (0 = Voltage)
GPI8_LED1, // GPIO13 Blue Leds - Link Status
GPI8_REL2, // GPIO14 Relay2 (0 = Off, 1 = On) and Red Led
GPI8_REL1, // GPIO15 Relay1 (0 = Off, 1 = On) and Red Led
GPI8_KEY2_NP, // GPIO16 Button2, externally pulled up
2020-03-28 17:08:43 +00:00
0
},
{ // KA10 - SMANERGY KA10 (ESP8285 - BL0937 Energy Monitoring) - https://www.amazon.es/dp/B07MBTCH2Y
0, // GPIO00
2020-09-25 17:15:31 +01:00
GPI8_LEDLNK_INV, // GPIO01 Blue LED - Link status
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO03 Button
GPI8_HJL_CF, // GPIO04 BL0937 CF power
GPI8_NRG_CF1, // GPIO05 BL0937 CF1 voltage / current
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 Sel output (1 = Voltage)
GPI8_LED1, // GPIO13 Red LED - Power status
GPI8_REL1, // GPIO14 Relay 1
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // ZX2820
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button
2020-03-28 17:08:43 +00:00
0, 0, 0,
2020-09-25 17:15:31 +01:00
GPI8_HLW_CF, // GPIO04 HLW8012 CF power
GPI8_NRG_CF1, // GPIO05 HLW8012 CF1 voltage / current
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 HLW8012 SEL (0 = Voltage)
GPI8_LED1_INV, // GPIO13 Green Led - Link and Power status
GPI8_REL1, // GPIO14 Relay
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // MI_DESK_LAMP - Mi LED Desk Lamp - https://www.mi.com/global/smartlamp/
2020-03-28 17:08:43 +00:00
0, 0,
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO02 Button
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_PWM1, // GPIO04 Cold White
GPI8_PWM2, // GPIO05 Warm White
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_ROT1A, // GPIO12 Rotary switch A pin
GPI8_ROT1B, // GPIO13 Rotary switch B pin
2020-03-28 17:08:43 +00:00
0, 0, 0, 0
},
{ // SP10 - Tuya SP10 (BL0937 Energy Monitoring)
// https://www.aliexpress.com/item/Smart-Mini-WiFi-Plug-Outlet-Switch-Work-With-ForEcho-Alexa-Google-Home-Remote-EU-Smart-Socket/32963670423.html
0, // GPIO00
2020-09-25 17:15:31 +01:00
GPI8_PWM1, // GPIO01 Nightlight
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO03 Button
GPI8_HJL_CF, // GPIO04 BL0937 CF power
GPI8_NRG_CF1, // GPIO05 BL0937 CF1 voltage / current
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO12 BL0937 Sel output (1 = Voltage)
GPI8_LED1, // GPIO13 Blue LED - Link status
GPI8_REL1, // GPIO14 Relay and red LED
2020-03-28 17:08:43 +00:00
0, 0, 0
},
{ // WAGA - WAGA life CHCZ02MB (HJL-01 Energy Monitoring)
// https://www.ebay.com/itm/332595697006
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO00 Red LED
0, // GPIO01 Serial RXD
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_NRG_SEL_INV, // GPIO03 HJL-01 Sel output (1 = Voltage)
0, // GPIO04
2020-09-25 17:15:31 +01:00
GPI8_HJL_CF, // GPIO05 HJL-01 CF power
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Relay
GPI8_KEY1, // GPIO13 Button
GPI8_NRG_CF1, // GPIO14 HJL-01 CF1 voltage / current
GPI8_LEDLNK_INV, // GPIO15 Blue LED - Link status
2020-03-28 17:08:43 +00:00
0, 0
},
{ // SYF05 - Sunyesmart SYF05 (a.k.a. Fcmila) = TYWE3S + SM16726
2020-09-25 17:15:31 +01:00
// Also works with Merkury 904 RGBW Bulbs with 13 set to GPI8_SM16716_SEL
// https://www.flipkart.com/fc-mila-bxav-xs-ad-smart-bulb/p/itmf85zgs45fzr7n
// https://docs.tuya.com/en/hardware/WiFi-module/wifi-e3s-module.html
// http://www.datasheet-pdf.com/PDF/SM16716-Datasheet-Sunmoon-932771
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 N.C.
0, // GPIO01 Serial RXD
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO02 N.C.
0, // GPIO03 Serial TXD
2020-09-25 17:15:31 +01:00
GPI8_SM16716_CLK, // GPIO04 SM16716 Clock
GPI8_PWM1, // GPIO05 White
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12 Alt. White on some devices
GPI8_USER, // GPIO13 SM16716 Enable on some devices
GPI8_SM16716_DAT, // GPIO14 SM16716 Data
0, // GPIO15 wired to GND
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO16 N.C.
GPI8_USER // ADC0 A0 Analog input
2020-08-18 10:42:48 +01:00
},
{ // EXS_DIMMER - EX-Store WiFi Dimmer v4, two channel (ESP8266 w/ separate MCU dimmer)
// https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A
// https://ex-store.de/2-Kanal-RS232-WiFi-WLan-Dimmer-Modul-V4-fuer-Unterputzmontage-230V-3A-ESP8266-V12-Stift-und-Buchsenleisten
2020-03-28 17:08:43 +00:00
0,
2020-09-25 17:15:31 +01:00
GPI8_TXD, // GPIO01 MCU serial control
GPI8_LEDLNK, // GPIO02 LED Link
GPI8_RXD, // GPIO03 MCU serial control
GPI8_USER, // GPIO04
GPI8_USER, // GPIO05
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12
GPI8_EXS_ENABLE, // GPIO13 EXS MCU Enable
GPI8_USER, // GPIO14
0, // GPIO15
2020-03-28 17:08:43 +00:00
0, 0
},
{ // PWM_DIMMER - Support for Martin Jerry/acenx/Tessan/NTONPOWER SD0x PWM
// dimmer switches. The brightness of the load for these dimmers is
// controlled by a PWM GPIO pin. There are typically power, up & down
// buttons and 4 LED's. Examples are:
// https://www.amazon.com/dp/B07FXYSVR1
// https://www.amazon.com/dp/B07V26Q3VD
// https://www.amazon.com/dp/B07K67D43J
// https://www.amazon.com/dp/B07TTGFWFM
2020-09-25 17:15:31 +01:00
GPI8_KEY3, // GPIO00 Up button
GPI8_KEY2, // GPIO01 Down button
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_LED4_INV, // GPIO03 Level 5 LED
GPI8_LEDLNK_INV, // GPIO04 LED Link
GPI8_LED3_INV, // GPIO05 Level 4 LED
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_LED2_INV, // GPIO12 Level 3 LED
GPI8_PWM1, // GPIO13 Dimmer PWM
GPI8_LED1_INV, // GPIO12 Level 2 LED
GPI8_KEY1_INV, // GPIO15 Power button
GPI8_REL1_INV, // GPIO16 Power relay/Level 1 LED
2020-03-28 17:08:43 +00:00
0
},
{ // SONOFF_ZB_BRIDGE - Sonoff Zigbee Bridge (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_LED1_INV, // GPIO00 Green Led (0 = On, 1 = Off) - Traffic between ESP and EFR
GPI8_ZIGBEE_TX, // GPIO01 Zigbee Serial control
0, // GPIO02
2020-09-25 17:15:31 +01:00
GPI8_ZIGBEE_RX, // GPIO03 Zigbee Serial control
GPI8_ZIGBEE_RST, // GPIO04 Zigbee Reset
0, // GPIO05 EFR32 Bootloader mode (drive Low for Gecko Bootloader, inactive or high for Zigbee EmberZNet)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
// GPIO09 (SD_DATA2 Flash QIO or ESP8285)
// GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_I2C_SDA, // GPIO12 I2C SDA - connected to 512KB EEPROM
GPI8_LEDLNK_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link status
GPI8_I2C_SCL, // GPIO14 I2C SCL - connected to 512KB EEPROM
0, // GPIO15 connected to IO15 pad, also used for logging
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO16 Button
0
}
};
/*********************************************************************************************\
* Templates with 14 usable pins (ESP8285)
\*********************************************************************************************/
2020-09-25 17:15:31 +01:00
const mytmplt8285 kModules8285[TMP_MAXMODULE_8266 - TMP_WEMOS] PROGMEM = {
{ // WEMOS - Any ESP8266/ESP8285 device like WeMos and NodeMCU hardware (ESP8266)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 D3 Wemos Button Shield
GPI8_USER, // GPIO01 TX Serial RXD
GPI8_USER, // GPIO02 D4 Wemos DHT Shield
GPI8_USER, // GPIO03 RX Serial TXD and Optional sensor
GPI8_USER, // GPIO04 D2 Wemos I2C SDA
GPI8_USER, // GPIO05 D1 Wemos I2C SCL / Wemos Relay Shield (0 = Off, 1 = On) / Wemos WS2812B RGB led Shield
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO09 (SD_DATA2 Flash QIO or ESP8285)
GPI8_USER, // GPIO10 (SD_DATA3 Flash QIO or ESP8285)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO12 D6
GPI8_USER, // GPIO13 D7
GPI8_USER, // GPIO14 D5
GPI8_USER, // GPIO15 D8
GPI8_USER, // GPIO16 D0 Wemos Wake
GPI8_USER // ADC0 A0 Analog input
},
{ // SONOFF_4CH - Sonoff 4CH (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button 1
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Optional sensor
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_REL3, // GPIO04 Sonoff 4CH Red Led and Relay 3 (0 = Off, 1 = On)
GPI8_REL2, // GPIO05 Sonoff 4CH Red Led and Relay 2 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_KEY2, // GPIO09 Button 2
GPI8_KEY3, // GPIO10 Button 3
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Red Led and Relay 1 (0 = Off, 1 = On) - Link and Power status
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off)
GPI8_KEY4, // GPIO14 Button 4
GPI8_REL4, // GPIO15 Red Led and Relay 4 (0 = Off, 1 = On)
0, 0
},
{ // SONOFF_T12 - Sonoff T1 2CH (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button 1
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Optional Sensor (J3 Pin 5)
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
0,
2020-09-25 17:15:31 +01:00
GPI8_REL2, // GPIO05 Blue Led and Relay 2 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_KEY2, // GPIO09 Button 2
0, // GPIO10
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Blue Led and Relay 1 (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0
},
{ // SONOFF_T13 - Sonoff T1 3CH (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 Button 1
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
GPI8_USER, // GPIO02 Optional Sensor (J3 Pin 5)
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
GPI8_REL3, // GPIO04 Blue Led and Relay 3 (0 = Off, 1 = On)
GPI8_REL2, // GPIO05 Blue Led and Relay 2 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_KEY2, // GPIO09 Button 2
GPI8_KEY3, // GPIO10 Button 3
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Blue Led and Relay 1 (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0
},
{ // SONOFF_DUAL_R2 - Sonoff Dual R2 (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO00 Button 0 on header (0 = On, 1 = Off)
GPI8_USER, // GPIO01 Serial RXD and Optional sensor
0,
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO03 Serial TXD and Optional sensor
0,
2020-09-25 17:15:31 +01:00
GPI8_REL2, // GPIO05 Relay 2 (0 = Off, 1 = On)
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_USER, // GPIO09 Button 1 on header (0 = On, 1 = Off)
GPI8_KEY1, // GPIO10 Button on casing
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL1, // GPIO12 Relay 1 (0 = Off, 1 = On)
GPI8_LED1_INV, // GPIO13 Blue Led (0 = On, 1 = Off) - Link and Power status
0, 0, 0, 0
},
{ // SONOFF_IFAN03 - Sonoff iFan03 (ESP8285)
2020-09-25 17:15:31 +01:00
GPI8_KEY1, // GPIO00 WIFI_KEY0 Button 1
GPI8_TXD, // GPIO01 ESP_TXD Serial RXD connection to P0.5 of RF microcontroller
0, // GPIO02 ESP_LOG
2020-09-25 17:15:31 +01:00
GPI8_RXD, // GPIO03 ESP_RXD Serial TXD connection to P0.4 of RF microcontroller
0, // GPIO04 DEBUG_RX
0, // GPIO05 DEBUG_TX
// GPIO06 (SD_CLK Flash)
// GPIO07 (SD_DATA0 Flash QIO/DIO/DOUT)
// GPIO08 (SD_DATA1 Flash QIO/DIO/DOUT)
2020-09-25 17:15:31 +01:00
GPI8_REL1_INV, // GPIO09 WIFI_O0 Relay 1 (0 = Off, 1 = On) controlling the light
GPI8_BUZZER_INV, // GPIO10 WIFI_O4 Buzzer (0 = Off, 1 = On)
// GPIO11 (SD_CMD Flash)
2020-09-25 17:15:31 +01:00
GPI8_REL3, // GPIO12 WIFI_O2 Relay 3 (0 = Off, 1 = On) controlling the fan
GPI8_LED1_INV, // GPIO13 WIFI_CHK Blue Led on PCA (0 = On, 1 = Off) - Link and Power status
GPI8_REL2, // GPIO14 WIFI_O1 Relay 2 (0 = Off, 1 = On) controlling the fan
GPI8_REL4, // GPIO15 WIFI_O3 Relay 4 (0 = Off, 1 = On) controlling the fan
0, 0
}
};
2020-11-28 15:39:15 +00:00
#endif // ESP8266
2020-09-25 17:15:31 +01:00
#ifdef ESP32
2021-07-02 08:46:19 +01:00
#ifdef CONFIG_IDF_TARGET_ESP32C3
/********************************************************************************************\
2021-07-02 08:46:19 +01:00
* ESP32-C3 Module templates
\********************************************************************************************/
#define USER_MODULE 255
// Supported hardware modules
enum SupportedModulesESP32C3 {
WEMOS,
MAXMODULE };
// Default module settings
const uint8_t kModuleNiceList[] PROGMEM = {
WEMOS,
};
// !!! Update this list in the same order as kModuleNiceList !!!
const char kModuleNames[] PROGMEM =
"ESP32C3|"
;
// !!! Update this list in the same order as SupportedModulesESP32C3 !!!
const mytmplt kModules[] PROGMEM = {
{ // Generic ESP32C3 device
AGPIO(GPIO_USER), // 0 IO GPIO0, ADC1_CH0, XTAL_32K_P
AGPIO(GPIO_USER), // 1 IO GPIO1, ADC1_CH1, XTAL_32K_N
AGPIO(GPIO_USER), // 2 IO GPIO2, ADC1_CH2, FSPIQ
AGPIO(GPIO_USER), // 3 IO GPIO3, ADC1_CH3
AGPIO(GPIO_USER), // 4 IO GPIO4, ADC1_CH4, FSPIHD, MTMS
AGPIO(GPIO_USER), // 5 IO GPIO5, ADC2_CH0, FSPIWP, MTDI
AGPIO(GPIO_USER), // 6 IO GPIO6, FSPICLK, MTCK
AGPIO(GPIO_USER), // 7 IO GPIO7, FSPID, MTDO
AGPIO(GPIO_USER), // 8 IO GPIO8
AGPIO(GPIO_USER), // 9 IO GPIO9
AGPIO(GPIO_USER), // 10 IO GPIO10
0, // 11 IO GPIO11, output power supply for flash
0, // 12 IO GPIO12, SPIHD
0, // 13 IO GPIO13, SPIWP
0, // 14 IO GPIO14, SPICS0
0, // 15 IO GPIO15, SPICLK
0, // 16 IO GPIO16, SPID
0, // 17 IO GPIO17, SPIQ
AGPIO(GPIO_USER), // 18 IO GPIO18, USB_D
AGPIO(GPIO_USER), // 19 IO GPIO19, USB_D+
AGPIO(GPIO_USER), // 20 IO RXD0 GPIO20, U0RXD
AGPIO(GPIO_USER), // 21 IO TXD0 GPIO21, U0TXD
2021-09-05 19:46:12 +01:00
0 // Flag
},
};
/*********************************************************************************************\
Known templates
2021-09-04 13:20:09 +01:00
\*********************************************************************************************/
#elif defined(CONFIG_IDF_TARGET_ESP32S2)
/********************************************************************************************\
* ESP32-S2 Module templates
2021-09-04 13:20:09 +01:00
\********************************************************************************************/
#define USER_MODULE 255
// Supported hardware modules
enum SupportedModulesESP32S2 {
2021-09-04 13:20:09 +01:00
WEMOS,
MAXMODULE };
2021-09-04 13:20:09 +01:00
// Default module settings
const uint8_t kModuleNiceList[] PROGMEM = {
WEMOS,
};
// !!! Update this list in the same order as kModuleNiceList !!!
const char kModuleNames[] PROGMEM =
"ESP32S2|"
;
// !!! Update this list in the same order as SupportedModulesESP32S2 !!!
2021-09-04 13:20:09 +01:00
const mytmplt kModules[] PROGMEM = {
{ // Generic ESP32C3 device
AGPIO(GPIO_USER), // 0 IO GPIO0, RTC_GPIO0, Strapping
AGPIO(GPIO_USER), // 1 AO GPIO1, ADC1_CH0, RTC_GPIO1
AGPIO(GPIO_USER), // 2 AO GPIO2, ADC1_CH1, RTC_GPIO2
AGPIO(GPIO_USER), // 3 AO GPIO3, ADC1_CH2, RTC_GPIO3
AGPIO(GPIO_USER), // 4 AO GPIO4, ADC1_CH3, RTC_GPIO4
AGPIO(GPIO_USER), // 5 AO GPIO5, ADC1_CH4, RTC_GPIO5
AGPIO(GPIO_USER), // 6 AO GPIO6, ADC1_CH5, RTC_GPIO6
AGPIO(GPIO_USER), // 7 AO GPIO7, ADC1_CH6, RTC_GPIO7
AGPIO(GPIO_USER), // 8 AO GPIO8, ADC1_CH7, RTC_GPIO8
AGPIO(GPIO_USER), // 9 AO GPIO9, ADC1_CH8, RTC_GPIO9
AGPIO(GPIO_USER), // 10 AO GPIO10, ADC1_CH9, RTC_GPIO10
AGPIO(GPIO_USER), // 11 AO GPIO11, ADC2_CH0, RTC_GPIO11
AGPIO(GPIO_USER), // 12 AO GPIO12, ADC2_CH1, RTC_GPIO12
AGPIO(GPIO_USER), // 13 AO GPIO13, ADC2_CH2, RTC_GPIO13
AGPIO(GPIO_USER), // 14 AO GPIO14, ADC2_CH3, RTC_GPIO14
AGPIO(GPIO_USER), // 15 AO GPIO15, ADC2_CH4, RTC_GPIO15, XTAL_32K_P
AGPIO(GPIO_USER), // 16 AO GPIO16, ADC2_CH5, RTC_GPIO16, XTAL_32K_N
AGPIO(GPIO_USER), // 17 AO GPIO17, ADC2_CH6, RTC_GPIO17, DAC_1
AGPIO(GPIO_USER), // 18 AO GPIO18, ADC2_CH7, RTC_GPIO18, DAC_2
AGPIO(GPIO_USER), // 19 AO GPIO19, ADC2_CH8, RTC_GPIO19
AGPIO(GPIO_USER), // 20 AO GPIO20, ADC2_CH9, RTC_GPIO20
AGPIO(GPIO_USER), // 21 IO GPIO21, RTC_GPIO21
// 22 -- Unused
// 23 -- Unused
// 24 -- Unused
// 25 -- Unused
// 26 FL SPICS1, PSRAM
// 27 FL SPIHD
// 28 FL SPIWP
// 29 FL SPICS0
// 30 FL SPICLK
// 31 FL SPIQ
// 32 FL SPID
AGPIO(GPIO_USER), // 33 IO GPIO33
AGPIO(GPIO_USER), // 34 IO GPIO34
AGPIO(GPIO_USER), // 35 IO GPIO35
AGPIO(GPIO_USER), // 36 IO GPIO36
AGPIO(GPIO_USER), // 37 IO GPIO37
AGPIO(GPIO_USER), // 38 IO GPIO38
AGPIO(GPIO_USER), // 39 IO GPIO39, JTAG MTCK
AGPIO(GPIO_USER), // 40 IO GPIO40, JTAG MTDO
AGPIO(GPIO_USER), // 41 IO GPIO41, JTAG MTDI
AGPIO(GPIO_USER), // 42 IO GPIO42, JTAG MTMS
AGPIO(GPIO_USER), // 43 IO GPIO43, U0TXD
AGPIO(GPIO_USER), // 44 IO GPIO44, U0RXD
AGPIO(GPIO_USER), // 45 IO GPIO45, Strapping
AGPIO(GPIO_USER), // 46 I GPIO46, Input only, Strapping
2021-09-05 19:46:12 +01:00
0 // Flag
2021-09-04 13:20:09 +01:00
},
};
/*********************************************************************************************\
Known templates
\*********************************************************************************************/
#elif defined(CONFIG_IDF_TARGET_ESP32S3)
/********************************************************************************************\
* ESP32-S3 Module templates
\********************************************************************************************/
#define USER_MODULE 255
// Supported hardware modules
enum SupportedModulesESP32S3 {
WEMOS,
MAXMODULE };
// Default module settings
const uint8_t kModuleNiceList[] PROGMEM = {
WEMOS,
};
// !!! Update this list in the same order as kModuleNiceList !!!
const char kModuleNames[] PROGMEM =
"ESP32S3|"
;
// !!! Update this list in the same order as SupportedModulesESP32S2 !!!
const mytmplt kModules[] PROGMEM = {
{ // Generic ESP32C3 device
AGPIO(GPIO_USER), // 0 IO RTC_GPIO0, GPIO0, Strapping
AGPIO(GPIO_USER), // 1 AO RTC_GPIO1, GPIO1, TOUCH1, ADC1_CH0
AGPIO(GPIO_USER), // 2 AO RTC_GPIO2, GPIO2, TOUCH2, ADC1_CH1
AGPIO(GPIO_USER), // 3 AO RTC_GPIO3, GPIO3, TOUCH3, ADC1_CH2, Strapping
AGPIO(GPIO_USER), // 4 AO RTC_GPIO4, GPIO4, TOUCH4, ADC1_CH3
AGPIO(GPIO_USER), // 5 AO RTC_GPIO5, GPIO5, TOUCH5, ADC1_CH4
AGPIO(GPIO_USER), // 6 AO RTC_GPIO6, GPIO6, TOUCH6, ADC1_CH5
AGPIO(GPIO_USER), // 7 AO RTC_GPIO7, GPIO7, TOUCH7, ADC1_CH6
AGPIO(GPIO_USER), // 8 AO RTC_GPIO8, GPIO8, TOUCH8, ADC1_CH7, SUBSPICS1
AGPIO(GPIO_USER), // 9 AO RTC_GPIO9, GPIO9, TOUCH9, ADC1_CH8, SUBSPIHD, FSPIHD
AGPIO(GPIO_USER), // 10 AO RTC_GPIO10, GPIO10, TOUCH10, ADC1_CH9, FSPIIO4, SUBSPICS0, FSPICS0
AGPIO(GPIO_USER), // 11 AO RTC_GPIO11, GPIO11, TOUCH11, ADC2_CH0, FSPIIO5, SUBSPID, FSPID
AGPIO(GPIO_USER), // 12 AO RTC_GPIO12, GPIO12, TOUCH12, ADC2_CH1, FSPIIO6, SUBSPICLK, FSPICLK
AGPIO(GPIO_USER), // 13 AO RTC_GPIO13, GPIO13, TOUCH13, ADC2_CH2, FSPIIO7, SUBSPIQ, FSPIQ
AGPIO(GPIO_USER), // 14 AO RTC_GPIO14, GPIO14, TOUCH14, ADC2_CH3, FSPIDQS, SUBSPIWP, FSPIWP
AGPIO(GPIO_USER), // 15 AO RTC_GPIO15, GPIO15, U0RTS, ADC2_CH4, XTAL_32K_P
AGPIO(GPIO_USER), // 16 AO RTC_GPIO16, GPIO16, U0CTS, ADC2_CH5, XTAL_32K_N
AGPIO(GPIO_USER), // 17 AO RTC_GPIO17, GPIO17, U1TXD, ADC2_CH6
AGPIO(GPIO_USER), // 18 AO RTC_GPIO18, GPIO18, U1RXD, ADC2_CH7, CLK_OUT3
AGPIO(GPIO_USER), // 19 AO RTC_GPIO19, GPIO19, U1RTS, ADC2_CH8, CLK_OUT2, USB_D­
AGPIO(GPIO_USER), // 20 AO RTC_GPIO20, GPIO20, U1CTS, ADC2_CH9, CLK_OUT1, USB_D+
AGPIO(GPIO_USER), // 21 IO RTC_GPIO21, GPIO21
// 22 -- Unused
// 23 -- Unused
// 24 -- Unused
// 25 -- Unused
// 26 FL SPICS1, GPIO26
// 27 FL SPIHD, GPIO27
// 28 FL SPIWP, GPIO28
// 29 FL SPICS0, GPIO29
// 30 FL SPICLK, GPIO30
// 31 FL SPIQ, GPIO31
// 32 FL SPID, GPIO32
AGPIO(GPIO_NONE), // 33 IO SPIIO4, GPIO33, FSPIHD, SUBSPIHD
AGPIO(GPIO_NONE), // 34 IO SPIIO5, GPIO34, FSPICS0, SUBSPICS0
AGPIO(GPIO_NONE), // 35 IO SPIIO6, GPIO35, FSPID, SUBSPID
AGPIO(GPIO_NONE), // 36 IO SPIIO7, GPIO36, FSPICLK, SUBSPICLK
AGPIO(GPIO_NONE), // 37 IO SPIDQS, GPIO37, FSPIQ, SUBSPIQ
AGPIO(GPIO_USER), // 38 IO GPIO38, FSPIWP, SUBSPIWP
AGPIO(GPIO_USER), // 39 IO MTCK, GPIO39, CLK_OUT3, SUBSPICS1
AGPIO(GPIO_USER), // 40 IO MTDO, GPIO40, CLK_OUT2
AGPIO(GPIO_USER), // 41 IO MTDI, GPIO41, CLK_OUT1
AGPIO(GPIO_USER), // 42 IO MTMS, GPIO42
AGPIO(GPIO_USER), // 43 IO U0TXD, GPIO43, CLK_OUT1
AGPIO(GPIO_USER), // 44 IO U0RXD, GPIO44, CLK_OUT2
AGPIO(GPIO_USER), // 45 IO GPIO45, Strapping
AGPIO(GPIO_USER), // 46 IO GPIO46, Strapping
AGPIO(GPIO_USER), // 47 IO SPICLK_P_DIFF, GPIO47, SUBSPICLK_P_DIFF
AGPIO(GPIO_USER), // 48 IO SPICLK_N_DIFF, GPIO48, SUBSPICLK_N_DIFF
0 // Flag
},
};
/*********************************************************************************************\
Known templates
\*********************************************************************************************/
2021-09-04 13:20:09 +01:00
#else // not CONFIG_IDF_TARGET_ESP32C3 nor CONFIG_IDF_TARGET_ESP32S2 - ESP32
/********************************************************************************************\
* ESP32 Module templates
\********************************************************************************************/
2020-09-25 17:15:31 +01:00
#define USER_MODULE 255
// Supported hardware modules
enum SupportedModulesESP32 {
WEMOS,
ESP32_CAM_AITHINKER,
ODROID_GO,
ESP32_SOLO,
WT32_ETH01,
TTGO_WATCH,
M5STACK_CORE2,
MAXMODULE };
2021-01-27 13:45:42 +00:00
// Default module settings
const uint8_t kModuleNiceList[] PROGMEM = {
WEMOS,
#ifdef USE_WEBCAM
2021-01-27 13:45:42 +00:00
ESP32_CAM_AITHINKER,
#endif // USE_WEBCAM
#ifdef USE_ODROID_GO
2021-01-27 13:45:42 +00:00
ODROID_GO,
#endif // USE_ODROID_GO
2021-01-27 13:45:42 +00:00
#ifdef USE_ESP32_SOLO
// ESP32_SOLO, // To be defined
#endif // USE_ESP32_SOLO
#ifdef USE_WT32_ETH01
2021-01-27 13:45:42 +00:00
WT32_ETH01,
#endif // USE_WT32_ETH01
2021-01-27 13:45:42 +00:00
#ifdef USE_TTGO_WATCH
// TTGO_WATCH, // To be defined
#endif // USE_TTGO_WATCH
#ifdef USE_M5STACK_CORE2
2021-01-27 13:45:42 +00:00
M5STACK_CORE2,
#endif // USE_M5STACK_CORE2
2021-01-27 13:45:42 +00:00
};
2020-09-25 17:15:31 +01:00
2021-02-11 16:13:17 +00:00
// !!! Update this list in the same order as kModuleNiceList !!!
2021-01-27 13:45:42 +00:00
const char kModuleNames[] PROGMEM =
"ESP32-DevKit|"
#ifdef USE_WEBCAM
2021-01-27 13:45:42 +00:00
"ESP32-Cam|"
#endif // USE_WEBCAM
#ifdef USE_ODROID_GO
2021-01-27 13:45:42 +00:00
"Odroid Go|"
#endif // USE_ODROID_GO
2021-01-27 13:45:42 +00:00
#ifdef USE_ESP32_SOLO
// "ESP32-Solo|" // To be defined
#endif // USE_ESP32_SOLO
#ifdef USE_WT32_ETH01
2021-01-27 13:45:42 +00:00
"WT32-Eth01|"
#endif // USE_WT32_ETH01
2021-01-27 13:45:42 +00:00
#ifdef USE_TTGO_WATCH
// "TTGO Watch|" // To be defined
#endif // USE_TTGO_WATCH
#ifdef USE_M5STACK_CORE2
2021-01-27 13:45:42 +00:00
"M5Stack Core2|"
#endif // USE_M5STACK_CORE2
2021-01-27 13:45:42 +00:00
;
2020-09-25 17:15:31 +01:00
// !!! Update this list in the same order as SupportedModulesESP32 !!!
2021-01-27 13:45:42 +00:00
const mytmplt kModules[] PROGMEM = {
{ // WEMOS - Espressif ESP32-DevKitC - Any ESP32 device like WeMos and NodeMCU hardware (ESP32)
AGPIO(GPIO_USER), // 0 (I)O GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLK
AGPIO(GPIO_USER), // 1 IO TXD0 GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
AGPIO(GPIO_USER), // 2 IO GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0
AGPIO(GPIO_USER), // 3 IO RXD0 GPIO3, U0RXD, CLK_OUT2
AGPIO(GPIO_USER), // 4 IO GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
AGPIO(GPIO_USER), // 5 IO GPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLK
// 6 IO Remapped to 28
// 7 IO Remapped to 29
// 8 IO Remapped to 30
AGPIO(GPIO_USER), // 9 IO GPIO9, Flash D2, U1RXD
AGPIO(GPIO_USER), // 10 IO GPIO10, Flash D3, U1TXD
// 11 IO Remapped to 31
AGPIO(GPIO_USER), // 12 (I)O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3 (If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is connected and pulled high. See ESP32 datasheet for more details.)
AGPIO(GPIO_USER), // 13 IO GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ER
AGPIO(GPIO_USER), // 14 IO GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
AGPIO(GPIO_USER), // 15 (I)O GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3 (If driven Low, silences boot messages from normal boot. Has internal pull-up, so unconnected = High = normal output.)
AGPIO(GPIO_USER), // 16 IO GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
AGPIO(GPIO_USER), // 17 IO GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
AGPIO(GPIO_USER), // 18 IO GPIO18, VSPICLK, HS1_DATA7
AGPIO(GPIO_USER), // 19 IO GPIO19, VSPIQ, U0CTS, EMAC_TXD0
0, // 20
AGPIO(GPIO_USER), // 21 IO GPIO21, VSPIHD, EMAC_TX_EN
AGPIO(GPIO_USER), // 22 IO LED GPIO22, VSPIWP, U0RTS, EMAC_TXD1
AGPIO(GPIO_USER), // 23 IO GPIO23, VSPID, HS1_STROBE
0, // 24
AGPIO(GPIO_USER), // 25 IO GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
AGPIO(GPIO_USER), // 26 IO GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
AGPIO(GPIO_USER), // 27 IO GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
0, // 6 IO GPIO6, Flash CLK
0, // 7 IO GPIO7, Flash D0
0, // 8 IO GPIO8, Flash D1
0, // 11 IO GPIO11, Flash CMD
AGPIO(GPIO_USER), // 32 IO GPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4, TOUCH9, RTC_GPIO9
AGPIO(GPIO_USER), // 33 IO GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, TOUCH8, RTC_GPIO8
AGPIO(GPIO_USER), // 34 I NO PULLUP GPIO34, ADC1_CH6, RTC_GPIO4
AGPIO(GPIO_USER), // 35 I NO PULLUP GPIO35, ADC1_CH7, RTC_GPIO5
AGPIO(GPIO_USER), // 36 I NO PULLUP GPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0
0, // 37 NO PULLUP
0, // 38 NO PULLUP
AGPIO(GPIO_USER), // 39 I NO PULLUP GPIO39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3
0 // Flag
},
2021-01-27 13:45:42 +00:00
#ifdef USE_WEBCAM
{ // ESP32_CAM_AITHINKER - Any ESP32 device with webcam (ESP32)
AGPIO(GPIO_WEBCAM_XCLK), // 0 (I)O GPIO0, CAM_XCLK
AGPIO(GPIO_USER), // 1 IO TXD0 GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
AGPIO(GPIO_SPI_MISO), // 2 IO GPIO2, VSPI_MISO
AGPIO(GPIO_USER), // 3 IO RXD0 GPIO3, U0RXD, CLK_OUT2
AGPIO(GPIO_PWM1), // 4 IO GPIO4, Flashlight
AGPIO(GPIO_WEBCAM_DATA), // 5 IO GPIO5, CAM_DATA1
// 6 IO Remapped to 28
// 7 IO Remapped to 29
// 8 IO Remapped to 30
AGPIO(GPIO_USER), // 9 IO GPIO9, Flash D2, U1RXD
AGPIO(GPIO_USER), // 10 IO GPIO10, Flash D3, U1TXD
// 11 IO Remapped to 31
AGPIO(GPIO_USER), // 12 (I)O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3 (If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is connected and pulled high. See ESP32 datasheet for more details.)
AGPIO(GPIO_SDCARD_CS), // 13 IO GPIO13, VSPI_CS_TFLASH
AGPIO(GPIO_SPI_CLK), // 14 IO GPIO14, VSPI_CLK
AGPIO(GPIO_SPI_MOSI), // 15 (I)O GPIO15, VSPI_MOSI (If driven Low, silences boot messages from normal boot. Has internal pull-up, so unconnected = High = normal output.)
AGPIO(GPIO_USER), // 16 IO GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
AGPIO(GPIO_USER), // 17 IO GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
AGPIO(GPIO_WEBCAM_DATA) +1, // 18 IO GPIO18, CAM_DATA2
AGPIO(GPIO_WEBCAM_DATA) +2, // 19 IO GPIO19, CAM_DATA3
0, // 20
AGPIO(GPIO_WEBCAM_DATA) +3, // 21 IO GPIO21, CAM_DATA4
AGPIO(GPIO_WEBCAM_PCLK), // 22 IO LED GPIO22, CAM_PCLK
AGPIO(GPIO_WEBCAM_HREF), // 23 IO GPIO23, CAM_HREF
0, // 24
AGPIO(GPIO_WEBCAM_VSYNC), // 25 IO GPIO25, CAM_VSYNC
AGPIO(GPIO_WEBCAM_SIOD), // 26 IO GPIO26, CAM_SIOD
AGPIO(GPIO_WEBCAM_SIOC), // 27 IO GPIO27, CAM_SIOC
0, // 6 IO GPIO6, Flash CLK
0, // 7 IO GPIO7, Flash D0
0, // 8 IO GPIO8, Flash D1
0, // 11 IO GPIO11, Flash CMD
AGPIO(GPIO_WEBCAM_PWDN), // 32 IO GPIO32, CAM_PWDN
AGPIO(GPIO_USER), // 33 IO GPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, TOUCH8, RTC_GPIO8
AGPIO(GPIO_WEBCAM_DATA) +6, // 34 I NO PULLUP GPIO34, CAM_DATA7
AGPIO(GPIO_WEBCAM_DATA) +7, // 35 I NO PULLUP GPIO35, CAM_DATA8
AGPIO(GPIO_WEBCAM_DATA) +4, // 36 I NO PULLUP GPIO36, CAM_DATA5
0, // 37 NO PULLUP
0, // 38 NO PULLUP
AGPIO(GPIO_WEBCAM_DATA) +5, // 39 I NO PULLUP GPIO39, CAM_DATA6
0 // Flag
2020-12-29 11:06:47 +00:00
},
#endif // USE_WEBCAM
2021-01-27 13:45:42 +00:00
2020-12-29 11:06:47 +00:00
#ifdef USE_ODROID_GO
{ // ODROID_GO - (ESP32)
AGPIO(GPIO_KEY1), // 0 (I)O GPIO0, BTN-VOLUME
AGPIO(GPIO_TXD), // 1 IO TXD0 GPIO1, TXD0
AGPIO(GPIO_LEDLNK), // 2 IO GPIO2, STATUS LED
AGPIO(GPIO_RXD), // 3 IO RXD0 GPIO3, RXD0
2020-12-29 11:06:47 +00:00
AGPIO(GPIO_USER), // 4 IO GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
AGPIO(GPIO_ILI9341_CS), // 5 IO GPIO5, VSPI_CS0_LCD
// 6 IO Remapped to 28
// 7 IO Remapped to 29
// 8 IO Remapped to 30
0, // 9 IO GPIO9, Flash D2, U1RXD
0, // 10 IO GPIO10, Flash D3, U1TXD
// 11 IO Remapped to 31
2020-12-29 11:06:47 +00:00
AGPIO(GPIO_USER), // 12 (I)O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3 (If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is connected and pulled high. See ESP32 datasheet for more details.)
AGPIO(GPIO_KEY1) +1, // 13 IO GPIO13, BTN-MENU
AGPIO(GPIO_PWM1), // 14 IO GPIO14, LCD Backlight
2020-12-29 11:06:47 +00:00
AGPIO(GPIO_USER), // 15 (I)O GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3 (If driven Low, silences boot messages from normal boot. Has internal pull-up, so unconnected = High = normal output.)
AGPIO(GPIO_USER), // 16 IO GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT
AGPIO(GPIO_USER), // 17 IO GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180
AGPIO(GPIO_SPI_CLK), // 18 IO GPIO18, VSPI_CLK
AGPIO(GPIO_SPI_MISO), // 19 IO GPIO19, VSPI_MISO
2020-12-29 11:06:47 +00:00
0, // 20
AGPIO(GPIO_ILI9341_DC), // 21 IO GPIO21, SPI_DC_LCD
2021-01-06 09:08:01 +00:00
AGPIO(GPIO_SDCARD_CS), // 22 IO LED GPIO22, VSPI_CS1_TFLASH
AGPIO(GPIO_SPI_MOSI), // 23 IO GPIO23, VSPI_MOSI
2020-12-29 11:06:47 +00:00
0, // 24
0, // 25 IO GPIO25, DAC_1 (PAM8304A)
0, // 26 IO GPIO26, DAC_2 (PAM8304A)
AGPIO(GPIO_KEY1) +2, // 27 IO GPIO27, BTN-SELECT
0, // 6 IO GPIO6, Flash CLK
0, // 7 IO GPIO7, Flash D0
0, // 8 IO GPIO8, Flash D1
0, // 11 IO GPIO11, Flash CMD
AGPIO(GPIO_SWT1) +4, // 32 IO GPIO32, BTN-A
AGPIO(GPIO_SWT1) +5, // 33 IO GPIO33, BTN-B
AGPIO(GPIO_ADC_JOY), // 34 I NO PULLUP GPIO34, JOY-X (LEFT-RIGHT)
AGPIO(GPIO_ADC_JOY) +1, // 35 I NO PULLUP GPIO35, JOY-Y (UP-DOWN)
AGPIO(GPIO_ADC_RANGE) +2, // 36 I NO PULLUP GPIO36, SENSOR_VP (BATTERY CARGER)
2020-12-29 11:06:47 +00:00
0, // 37 NO PULLUP
0, // 38 NO PULLUP
AGPIO(GPIO_KEY1) +3, // 39 I NO PULLUP GPIO39, BTN-START
2020-12-29 11:06:47 +00:00
0 // Flag
},
#endif // USE_ODROID_GO
2021-01-27 13:45:42 +00:00
#ifdef USE_ESP32_SOLO
// { // ESP32 Solo (ESP32) - To be defined
// },
#endif // USE_ESP32_SOLO
#ifdef USE_WT32_ETH01
{ // WT32_ETH01 - (ESP32)
0, // 0 (I)O GPIO0, Ethernet EMAC_REF_CLK
AGPIO(GPIO_USER), // 1 IO TXD0 GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2
AGPIO(GPIO_USER), // 2 IO GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0
AGPIO(GPIO_USER), // 3 IO RXD0 GPIO3, U0RXD, CLK_OUT2
AGPIO(GPIO_USER), // 4 IO GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ER
AGPIO(GPIO_USER), // 5 IO GPIO5, RXD Led green
// 6 IO Remapped to 28
// 7 IO Remapped to 29
// 8 IO Remapped to 30
0, // 9 IO GPIO9, Flash D2, U1RXD
0, // 10 IO GPIO10, Flash D3, U1TXD
// 11 IO Remapped to 31
AGPIO(GPIO_USER), // 12 (I)O GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3 (If driven High, flash voltage (VDD_SDIO) is 1.8V not default 3.3V. Has internal pull-down, so unconnected = Low = 3.3V. May prevent flashing and/or booting if 3.3V flash is connected and pulled high. See ESP32 datasheet for more details.)
0, // 13 IO GPIO13, Ethernet EMAC_RX_ER
AGPIO(GPIO_USER), // 14 IO GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
AGPIO(GPIO_USER), // 15 (I)O GPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3 (If driven Low, silences boot messages from normal boot. Has internal pull-up, so unconnected = High = normal output.)
AGPIO(GPIO_OUTPUT_HI), // 16 IO GPIO16, Ethernet OSC_ENA
AGPIO(GPIO_LEDLNK_INV), // 17 IO GPIO17, Network link led (green)
AGPIO(GPIO_ETH_PHY_MDIO), // 18 IO GPIO18, Ethernet MDIO
0, // 19 IO GPIO19, Ethernet TXD0
0, // 20
0, // 21 IO GPIO21, Ethernet EMAC_TX_EN
0, // 22 IO LED GPIO22, Ethernet EMAC_TXD1
AGPIO(GPIO_ETH_PHY_MDC), // 23 IO GPIO23, Ethernet MDC
0, // 24
0, // 25 IO GPIO25, Ethernet EMAC_RXD0
0, // 26 IO GPIO26, Ethernet EMAC_RXD1
0, // 27 IO GPIO27, Ethernet EMAC_RX_DV
0, // 6 IO GPIO6, Flash CLK
0, // 7 IO GPIO7, Flash D0
0, // 8 IO GPIO8, Flash D1
0, // 11 IO GPIO11, Flash CMD
AGPIO(GPIO_USER), // 32 IO GPIO32, CFG
AGPIO(GPIO_USER), // 33 IO GPIO33, 485_EN
0, // 34 I NO PULLUP GPIO34, ADC1_CH6, RTC_GPIO4
AGPIO(GPIO_USER), // 35 I NO PULLUP GPIO35, ADC1_CH7, RTC_GPIO5
AGPIO(GPIO_USER), // 36 I NO PULLUP GPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0
0, // 37 NO PULLUP
0, // 38 NO PULLUP
AGPIO(GPIO_USER), // 39 I NO PULLUP GPIO39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3
0 // Flag
},
#endif // USE_WT32_ETH01
2021-01-27 13:45:42 +00:00
#ifdef USE_TTGO_WATCH
// { // TTGO Watch (ESP32) - To be defined
// },
#endif // USE_TTGO_WATCH
#ifdef USE_M5STACK_CORE2
{ // M5STACK CORE2 - (ESP32)
AGPIO(GPIO_USER), // 0 (I)O GPIO0, SPKR_LRCK
AGPIO(GPIO_USER), // 1 IO TXD0 GPIO1, U0TXD
AGPIO(GPIO_USER), // 2 IO GPIO2, SPKR_DATA
AGPIO(GPIO_USER), // 3 IO RXD0 GPIO3, U0RXD
2021-01-09 07:50:56 +00:00
AGPIO(GPIO_SDCARD_CS), // 4 IO GPIO4, SPI_CS_CARD
2021-03-02 18:34:18 +00:00
AGPIO(GPIO_ILI9341_CS), // 5 IO GPIO5, SPI_CS_LCD
// 6 IO Remapped to 28
// 7 IO Remapped to 29
// 8 IO Remapped to 30
0, // 9 IO GPIO9, Flash D2, PSRAM_D3
0, // 10 IO GPIO10, Flash D3, PSRAM_D2
// 11 IO Remapped to 31
0, // 12 (I)O GPIO12, SPKR_CLK
AGPIO(GPIO_USER), // 13 IO GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ER
AGPIO(GPIO_USER), // 14 IO GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2
2021-03-02 18:34:18 +00:00
AGPIO(GPIO_ILI9341_DC), // 15 (I)O GPIO15, SPI_DC_LCD
0, // 16 IO GPIO16, PSRAM_CS
0, // 17 IO GPIO17, PSRAM_CLK
AGPIO(GPIO_SPI_CLK), // 18 IO GPIO18, SPI_CLK
AGPIO(GPIO_USER), // 19 IO GPIO19, VSPIQ, U0CTS, EMAC_TXD0
0, // 20
0, // 21 IO GPIO21, I2C_SDA_INTERNAL
0, // 22 IO LED GPIO22, I2C_SCL_INTERNAL
AGPIO(GPIO_SPI_MOSI), // 23 IO GPIO23, SPI_MOSI
0, // 24
AGPIO(GPIO_USER), // 25 IO GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0
AGPIO(GPIO_USER), // 26 IO GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1
AGPIO(GPIO_USER), // 27 IO GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DV
0, // 6 IO GPIO6, Flash CLK
0, // 7 IO GPIO7, Flash D0
0, // 8 IO GPIO8, Flash D1
0, // 11 IO GPIO11, Flash CMD
AGPIO(GPIO_I2C_SDA), // 32 IO GPIO32, I2C_SDA
AGPIO(GPIO_I2C_SCL), // 33 IO GPIO33, I2C_SCL
AGPIO(GPIO_USER), // 34 I NO PULLUP GPIO34, ADC1_CH6, RTC_GPIO4
AGPIO(GPIO_USER), // 35 I NO PULLUP GPIO35, ADC1_CH7, RTC_GPIO5
AGPIO(GPIO_USER), // 36 I NO PULLUP GPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0
0, // 37 NO PULLUP
AGPIO(GPIO_SPI_MISO), // 38 NO PULLUP GPIO38, SPI_MISO
0, // 39 I NO PULLUP GPIO39, INT_TOUCHPAD
0 // Flag
}
#endif // USE_M5STACK_CORE2
2020-09-25 17:15:31 +01:00
};
/*********************************************************************************************\
Known templates
{"NAME":"AITHINKER CAM","GPIO":[4992,1,1,1,1,5088,1,1,1,1,1,1,1,1,5089,5090,0,5091,5184,5152,0,5120,5024,5056,0,0,0,0,4928,1,5094,5095,5092,0,0,5093],"FLAG":0,"BASE":1}
{"NAME":"Olimex ESP32-PoE","GPIO":[1,1,1,1,1,1,0,0,5536,1,1,1,1,0,5600,0,0,0,0,5568,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1}
{"NAME":"wESP32","GPIO":[1,1,1,1,1,1,0,0,0,1,1,1,5568,5600,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1],"FLAG":0,"BASE":1}
{"NAME":"Denky (Teleinfo)","GPIO":[1,1,1,1,5664,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1376,1,1,0,0,0,0,1,5632,1,1,1,0,0,1],"FLAG":0,"BASE":1}
\*********************************************************************************************/
2021-09-04 13:20:09 +01:00
#endif // ESP32/S2/C3 selection
#endif // ESP32
2019-10-27 11:04:08 +00:00
#endif // _TASMOTA_TEMPLATE_H_