diff --git a/code/espurna/config/arduino.h b/code/espurna/config/arduino.h index 0f2cb40d..df8214c0 100644 --- a/code/espurna/config/arduino.h +++ b/code/espurna/config/arduino.h @@ -89,6 +89,7 @@ //#define BLITZWOLF_BWSHP2 //#define BH_ONOFRE //#define ITEAD_SONOFF_IFAN02 +//#define GENERIC_AG_L4 //-------------------------------------------------------------------------------- // Features (values below are non-default values) diff --git a/code/espurna/config/hardware.h b/code/espurna/config/hardware.h index 6215b33f..7b78eea2 100644 --- a/code/espurna/config/hardware.h +++ b/code/espurna/config/hardware.h @@ -2423,7 +2423,50 @@ #define HLW8012_POWER_RATIO 3414290 #define HLW8012_INTERRUPT_ON FALLING +#elif defined(GENERIC_AG_L4) + // Info + #define MANUFACTURER "GENERIC" + #define DEVICE "AG_L4" + #define RELAY_PROVIDER RELAY_PROVIDER_LIGHT + #define LIGHT_PROVIDER LIGHT_PROVIDER_DIMMER + #define DUMMY_RELAY_COUNT 1 + + // button 1: "power" button + #define BUTTON1_PIN 4 + #define BUTTON1_RELAY 1 + #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | 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 + + // button 2: "wifi" button + #define BUTTON2_PIN 2 + #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_NONE + + // LEDs + #define LED1_PIN 5 // red status led + #define LED1_PIN_INVERSE 0 + + #define LED2_PIN 16 // master light power + #define LED2_PIN_INVERSE 1 + #define LED2_MODE LED_MODE_RELAY + + // Light + #define LIGHT_CHANNELS 3 + #define LIGHT_CH1_PIN 14 // RED + #define LIGHT_CH2_PIN 13 // GREEN + #define LIGHT_CH3_PIN 12 // BLUE + #define LIGHT_CH1_INVERSE 0 + #define LIGHT_CH2_INVERSE 0 + #define LIGHT_CH3_INVERSE 0 // ----------------------------------------------------------------------------- // TEST boards (do not use!!) // ----------------------------------------------------------------------------- @@ -2595,50 +2638,6 @@ #define NETBIOS_SUPPORT 1 #define SSDP_SUPPORT 1 -#elif defined(AG_L4) - - // Info - #define MANUFACTURER "GENERIC" - #define DEVICE "AG_L4" - #define RELAY_PROVIDER RELAY_PROVIDER_LIGHT - #define LIGHT_PROVIDER LIGHT_PROVIDER_DIMMER - #define DUMMY_RELAY_COUNT 1 - - // button 1: "power" button - #define BUTTON1_PIN 4 - #define BUTTON1_RELAY 1 - #define BUTTON1_MODE BUTTON_PUSHBUTTON | BUTTON_SET_PULLUP | 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 - - // button 2: "wifi" button - #define BUTTON2_PIN 2 - #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_NONE - - // LEDs - #define LED1_PIN 5 // red status led - #define LED1_PIN_INVERSE 0 - - #define LED2_PIN 16 // master light power - #define LED2_PIN_INVERSE 1 - #define LED2_MODE LED_MODE_RELAY - - // Light - #define LIGHT_CHANNELS 3 - #define LIGHT_CH1_PIN 14 // RED - #define LIGHT_CH2_PIN 13 // GREEN - #define LIGHT_CH3_PIN 12 // BLUE - #define LIGHT_CH1_INVERSE 0 - #define LIGHT_CH2_INVERSE 0 - #define LIGHT_CH3_INVERSE 0 #endif // ----------------------------------------------------------------------------- diff --git a/code/espurna/migrate.ino b/code/espurna/migrate.ino index 1ace21f4..005c7a19 100644 --- a/code/espurna/migrate.ino +++ b/code/espurna/migrate.ino @@ -1064,6 +1064,29 @@ void migrate() { setSetting("relayType", 2, RELAY_TYPE_NORMAL); setSetting("relayType", 3, RELAY_TYPE_NORMAL); + #elif defined(GENERIC_AG_L4) + + setSetting("board", 82); + + setSetting("btnGPIO", 0, 4); + setSetting("btnGPIO", 1, 2); + setSetting("btnRelay", 0, 0); + + setSetting("ledGPIO", 0, 5); + setSetting("ledGPIO", 1, 16); + setSetting("ledLogic", 0, 0); + setSetting("ledLogic", 1, 1); + + setSetting("relayProvider", RELAY_PROVIDER_LIGHT); + setSetting("lightProvider", LIGHT_PROVIDER_DIMMER); + setSetting("chGPIO", 0, 14); + setSetting("chGPIO", 1, 13); + setSetting("chGPIO", 2, 12); + setSetting("chLogic", 0, 0); + setSetting("chLogic", 1, 0); + setSetting("chLogic", 2, 0); + setSetting("relays", 1); + #else // Allow users to define new settings without migration config diff --git a/code/platformio.ini b/code/platformio.ini index 80fb12ce..a9c281e5 100644 --- a/code/platformio.ini +++ b/code/platformio.ini @@ -2384,25 +2384,25 @@ upload_port = ${common.upload_port} upload_flags = ${common.upload_flags} extra_scripts = ${common.extra_scripts} -[env:ag-l4] +[env:generic-ag-l4] 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} -DAG_L4 +build_flags = ${common.build_flags_1m0m} -DGENERIC_AG_L4 monitor_speed = ${common.monitor_speed} extra_scripts = ${common.extra_scripts} -[env:ag-l4-ota] +[env:generic-ag-l4-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} -DAG_L4 +build_flags = ${common.build_flags_1m0m} -DGENERIC_AG_L4 upload_speed = ${common.upload_speed} upload_port = ${common.upload_port} upload_flags = ${common.upload_flags}