From 53d9eecf779223046ca275e8715fb48e9d2cb33c Mon Sep 17 00:00:00 2001 From: Joshua Harden Date: Wed, 18 Oct 2017 13:55:26 -0700 Subject: [PATCH] Add support for Xenon SM-PW702U Wifi Smart Outlet --- code/.gitignore | 9 +++++---- code/.vscode/launch.json | 14 ++++++++++++++ code/espurna/config/arduino.h | 1 + code/espurna/config/hardware.h | 23 +++++++++++++++++++++++ code/espurna/hardware.ino | 10 ++++++++++ code/platformio.ini | 23 +++++++++++++++++++++++ 6 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 code/.vscode/launch.json diff --git a/code/.gitignore b/code/.gitignore index cc69433c..ae0ce507 100644 --- a/code/.gitignore +++ b/code/.gitignore @@ -1,4 +1,5 @@ -.clang_complete -.gcc-flags.json -.pioenvs -.piolibdeps +.clang_complete +.gcc-flags.json +.pioenvs +.piolibdeps +.vscode/c_cpp_properties.json diff --git a/code/.vscode/launch.json b/code/.vscode/launch.json new file mode 100644 index 00000000..14da6651 --- /dev/null +++ b/code/.vscode/launch.json @@ -0,0 +1,14 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "gdb", + "request": "launch", + "cwd": "${workspaceRoot}", + "name": "PlatformIO Debugger", + "target": "c:/Users/Josh/espdev/espurna/code/.pioenvs/nodemcu-lolin/firmware.elf", + "gdbpath": "C:/Users/Josh/.platformio/penv/Scripts/piodebuggdb", + "autorun": [ "source .pioinit" ] + } + ] +} \ No newline at end of file diff --git a/code/espurna/config/arduino.h b/code/espurna/config/arduino.h index 677a1713..2dd7e48d 100644 --- a/code/espurna/config/arduino.h +++ b/code/espurna/config/arduino.h @@ -49,6 +49,7 @@ //#define MANCAVEMADE_ESPLIVE //#define INTERMITTECH_QUINLED //#define ARILUX_AL_LC06 +//#define SM_PW702U //-------------------------------------------------------------------------------- // Features (values below are non-default values) diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 24924997..479bd877 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -1113,6 +1113,29 @@ #define LIGHT_CH4_INVERSE 0 #define LIGHT_CH5_INVERSE 0 +// ----------------------------------------------------------------------------- +// XENON SM-PW701U +// ----------------------------------------------------------------------------- + +#elif defined(SM_PW702U) + + // Info + #define MANUFACTURER "XENON" + #define DEVICE "SM-PW702U" + + // Buttons + #define BUTTON1_PIN 13 + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_DEFAULT_HIGH + #define BUTTON1_RELAY 1 + + // Relays + #define RELAY1_PIN 12 + #define RELAY1_TYPE RELAY_TYPE_NORMAL + + // LEDs + #define LED1_PIN 4 + #define LED1_PIN_INVERSE 1 + // ----------------------------------------------------------------------------- // Unknown hardware // ----------------------------------------------------------------------------- diff --git a/code/espurna/hardware.ino b/code/espurna/hardware.ino index 4c865db9..9dc554b8 100644 --- a/code/espurna/hardware.ino +++ b/code/espurna/hardware.ino @@ -531,6 +531,16 @@ void hwUpwardsCompatibility() { setSetting("chLogic", 5, 0); setSetting("relays", 1); + #elif defined(SM_PW702U) + + setSetting("board", 39); + setSetting("ledGPIO", 1, 4); + setSetting("ledLogic", 1, 0); + setSetting("btnGPIO", 1, 13); + setSetting("btnRelay", 1, 1); + setSetting("relayGPIO", 1, 12); + setSetting("relayType", 1, RELAY_TYPE_NORMAL); + #else #error "UNSUPPORTED HARDWARE!" diff --git a/code/platformio.ini b/code/platformio.ini index 0931adc1..8f05baba 100644 --- a/code/platformio.ini +++ b/code/platformio.ini @@ -1003,6 +1003,29 @@ upload_port = "192.168.4.1" upload_flags = --auth=fibonacci --port 8266 monitor_baud = 115200 +[env:sm_pw702u] +platform = espressif8266 +framework = arduino +board = esp12e +board_flash_mode = dout +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m} -DSM_PW702U +monitor_baud = 115200 + +[env:sm_pw702u-ota] +platform = espressif8266 +framework = arduino +board = esp12e +board_flash_mode = dout +lib_deps = ${common.lib_deps} +lib_ignore = ${common.lib_ignore} +build_flags = ${common.build_flags_1m} -DSM_PW702U +upload_speed = 115200 +upload_port = "192.168.4.1" +upload_flags = --auth=fibonacci --port 8266 +monitor_baud = 115200 + # ------------------------------------------------------------------------------ # GENERIC OTA ENVIRONMENTS # ------------------------------------------------------------------------------