From c66dee640d4001f23343c32114b4cd61eef72e4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xose=20P=C3=A9rez?= Date: Sun, 26 Aug 2018 14:59:39 +0200 Subject: [PATCH] Support for YJZK 1CH and 3CH switches (#1047) --- code/espurna/config/arduino.h | 2 + code/espurna/config/hardware.h | 88 ++++++++++++++++++++++++++++++++++ code/platformio.ini | 50 +++++++++++++++++++ 3 files changed, 140 insertions(+) diff --git a/code/espurna/config/arduino.h b/code/espurna/config/arduino.h index dbb29a57..e7201c0f 100644 --- a/code/espurna/config/arduino.h +++ b/code/espurna/config/arduino.h @@ -93,6 +93,8 @@ //#define GENERIC_AG_L4 //#define ALLTERCO_SHELLY1 //#define LOHAS_9W +//#define YJZK_SWITCH_1CH +//#define YJZK_SWITCH_3CH //-------------------------------------------------------------------------------- // Features (values below are non-default values) diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 9620c0ff..6ddb12cd 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -934,6 +934,32 @@ // YJZK // ----------------------------------------------------------------------------- +#elif defined(YJZK_SWITCH_1CH) + + // Info + #define MANUFACTURER "YJZK" + #define DEVICE "SWITCH_1CH" + + // Buttons + #define BUTTON1_PIN 0 + + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_PRESS BUTTON_MODE_TOGGLE + #define BUTTON1_CLICK BUTTON_MODE_NONE + #define BUTTON1_DBLCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGLNGCLICK BUTTON_MODE_RESET + + #define BUTTON1_RELAY 1 + + // Relays + #define RELAY1_PIN 12 + #define RELAY1_TYPE RELAY_TYPE_NORMAL + + // LEDs + #define LED1_PIN 13 + #define LED1_PIN_INVERSE 0 + #elif defined(YJZK_SWITCH_2CH) // Info @@ -945,7 +971,18 @@ #define BUTTON2_PIN 9 #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_PRESS BUTTON_MODE_TOGGLE + #define BUTTON1_CLICK BUTTON_MODE_NONE + #define BUTTON1_DBLCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGLNGCLICK BUTTON_MODE_RESET + #define BUTTON2_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON2_PRESS BUTTON_MODE_TOGGLE + #define BUTTON2_CLICK BUTTON_MODE_NONE + #define BUTTON2_DBLCLICK BUTTON_MODE_NONE + #define BUTTON2_LNGCLICK BUTTON_MODE_NONE + #define BUTTON2_LNGLNGCLICK BUTTON_MODE_RESET #define BUTTON1_RELAY 1 #define BUTTON2_RELAY 2 @@ -961,6 +998,57 @@ #define LED1_PIN 13 #define LED1_PIN_INVERSE 0 +// YJZK 3CH switch +// Also Lixin Touch Wifi 3M + +#elif defined(YJZK_SWITCH_3CH) + + // Info + #define MANUFACTURER "YJZK" + #define DEVICE "SWITCH_3CH" + + // Buttons + #define BUTTON1_PIN 0 + #define BUTTON2_PIN 9 + #define BUTTON3_PIN 10 + + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_PRESS BUTTON_MODE_TOGGLE + #define BUTTON1_CLICK BUTTON_MODE_NONE + #define BUTTON1_DBLCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGCLICK BUTTON_MODE_NONE + #define BUTTON1_LNGLNGCLICK BUTTON_MODE_RESET + + #define BUTTON2_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON2_PRESS BUTTON_MODE_TOGGLE + #define BUTTON2_CLICK BUTTON_MODE_NONE + #define BUTTON2_DBLCLICK BUTTON_MODE_NONE + #define BUTTON2_LNGCLICK BUTTON_MODE_NONE + #define BUTTON2_LNGLNGCLICK BUTTON_MODE_RESET + + #define BUTTON3_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON3_PRESS BUTTON_MODE_TOGGLE + #define BUTTON3_CLICK BUTTON_MODE_NONE + #define BUTTON3_DBLCLICK BUTTON_MODE_NONE + #define BUTTON3_LNGCLICK BUTTON_MODE_NONE + #define BUTTON3_LNGLNGCLICK BUTTON_MODE_RESET + + #define BUTTON1_RELAY 1 + #define BUTTON2_RELAY 2 + #define BUTTON3_RELAY 3 + + // Relays + #define RELAY1_PIN 12 + #define RELAY2_PIN 5 + #define RELAY3_PIN 4 + + #define RELAY1_TYPE RELAY_TYPE_NORMAL + #define RELAY2_TYPE RELAY_TYPE_NORMAL + #define RELAY3_TYPE RELAY_TYPE_NORMAL + + // LEDs + #define LED1_PIN 13 + #define LED1_PIN_INVERSE 0 // ----------------------------------------------------------------------------- // Electrodragon boards diff --git a/code/platformio.ini b/code/platformio.ini index c71fdb65..172d2946 100644 --- a/code/platformio.ini +++ b/code/platformio.ini @@ -1699,6 +1699,31 @@ upload_flags = ${common.upload_flags} monitor_speed = ${common.monitor_speed} extra_scripts = ${common.extra_scripts} +[env:yjzk-switch-1ch] +platform = ${common.platform} +framework = ${common.framework} +board = ${common.board_1m} +board_build.flash_mode = ${common.flash_mode} +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m0m} -DYJZK_SWITCH_1CH +monitor_speed = ${common.monitor_speed} +extra_scripts = ${common.extra_scripts} + +[env:yjzk-switch-1ch-ota] +platform = ${common.platform} +framework = ${common.framework} +board = ${common.board_1m} +board_build.flash_mode = ${common.flash_mode} +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m0m} -DYJZK_SWITCH_1CH +upload_speed = ${common.upload_speed} +upload_port = ${common.upload_port} +upload_flags = ${common.upload_flags} +monitor_speed = ${common.monitor_speed} +extra_scripts = ${common.extra_scripts} + [env:yjzk-switch-2ch] platform = ${common.platform} framework = ${common.framework} @@ -1724,6 +1749,31 @@ upload_flags = ${common.upload_flags} monitor_speed = ${common.monitor_speed} extra_scripts = ${common.extra_scripts} +[env:yjzk-switch-3ch] +platform = ${common.platform} +framework = ${common.framework} +board = ${common.board_1m} +board_build.flash_mode = ${common.flash_mode} +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m0m} -DYJZK_SWITCH_3CH +monitor_speed = ${common.monitor_speed} +extra_scripts = ${common.extra_scripts} + +[env:yjzk-switch-3ch-ota] +platform = ${common.platform} +framework = ${common.framework} +board = ${common.board_1m} +board_build.flash_mode = ${common.flash_mode} +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m0m} -DYJZK_SWITCH_3CH +upload_speed = ${common.upload_speed} +upload_port = ${common.upload_port} +upload_flags = ${common.upload_flags} +monitor_speed = ${common.monitor_speed} +extra_scripts = ${common.extra_scripts} + [env:generic-8ch] platform = ${common.platform} framework = ${common.framework}