Skip to content
This repository has been archived by the owner on Nov 25, 2021. It is now read-only.

Commit

Permalink
Major Releases v1.3.0
Browse files Browse the repository at this point in the history
### Major Releases v1.3.0

1. Add **LittleFS and SPIFFS** support to new **ESP32-S2** boards (**Arduino ESP32C3_DEV**). Check [HOWTO Install esp32 core for ESP32-S2 (Saola, AI-Thinker ESP-12K) and ESP32-C3 boards into Arduino IDE](#howto-install-esp32-core-for-esp32-s2-saola-ai-thinker-esp-12k-and-esp32-c3-boards-into-arduino-ide).
2. Add **EEPROM and SPIFFS** support to new **ESP32-C3** boards (**Arduino ESP32C3_DEV**). Check [HOWTO Install esp32 core for ESP32-S2 (Saola, AI-Thinker ESP-12K) and ESP32-C3 boards into Arduino IDE](#howto-install-esp32-core-for-esp32-s2-saola-ai-thinker-esp-12k-and-esp32-c3-boards-into-arduino-ide).
3. Fix SSL issue with Blynk Cloud Server
4. Update examples
  • Loading branch information
khoih-prog authored Apr 19, 2021
1 parent 19000e7 commit 9e67714
Show file tree
Hide file tree
Showing 30 changed files with 623 additions and 140 deletions.
339 changes: 295 additions & 44 deletions README.md

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion examples/AM2315_ESP32_SSL/AM2315_ESP32_SSL.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,6 +33,8 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"
Expand Down
31 changes: 26 additions & 5 deletions examples/AM2315_ESP32_SSL/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,33 @@
Licensed under MIT license
*****************************************************************************************************************************/

/*
// To add something similar to this for ESP32-C3
#if CONFIG_IDF_TARGET_ESP32
const int8_t esp32_adc2gpio[20] = {36, 37, 38, 39, 32, 33, 34, 35, -1, -1, 4, 0, 2, 15, 13, 12, 14, 27, 25, 26};
#elif CONFIG_IDF_TARGET_ESP32S2
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#elif CONFIG_IDF_TARGET_ESP32C3
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#endif
*/

#ifndef defines_h
#define defines_h

#ifndef ESP32
#if !( defined(ESP32) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
ARDUINO_METRO_ESP32S2 || ARDUINO_MAGTAG29_ESP32S2 || ARDUINO_FUNHOUSE_ESP32S2 || \
ARDUINO_ADAFRUIT_FEATHER_ESP32S2_NOPSRAM )
#define BOARD_TYPE "ESP32-S2"
#elif ( ARDUINO_ESP32C3_DEV )
// https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-gpio.c
#warning ESP32-C3 boards not fully supported yet. Only SPIFFS and EEPROM OK. Tempo esp32_adc2gpio to be replaced
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#define BOARD_TYPE "ESP32-C3"
#else
#define BOARD_TYPE "ESP32"
#endif

#define BLYNK_PRINT Serial
Expand All @@ -28,11 +50,10 @@
// (USE_LITTLEFS == false) and (USE_SPIFFS == true) => using SPIFFS for configuration data in WiFiManager
// Those above #define's must be placed before #include <BlynkSimpleEsp32_WFM.h>

#if ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_PROS2 || ARDUINO_MICROS2 )
// Currently, ESP32-S2 only supporting EEPROM. Will fix to support LittleFS and SPIFFS
#if ( ARDUINO_ESP32C3_DEV )
// Currently, ESP32-C3 only supporting SPIFFS and EEPROM. Will fix to support LittleFS
#define USE_LITTLEFS false
#define USE_SPIFFS false
#warning ESP32-S2 only support supporting EEPROM now.
#define USE_SPIFFS true
#else
#define USE_LITTLEFS true
#define USE_SPIFFS false
Expand Down
4 changes: 3 additions & 1 deletion examples/AM2315_ESP8266/AM2315_ESP8266.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,6 +33,8 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"
Expand Down
37 changes: 32 additions & 5 deletions examples/Blynk_WM_Template/Blynk_WM_Template.ino
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -34,6 +34,8 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

// Sketch uses Arduino IDE-selected ESP32 and ESP8266 to select compile choices
Expand Down Expand Up @@ -86,6 +88,32 @@
* the BlynkSimpleEsp... and ...WiFiManager libraries, the ESP32 and ESP8266.
*/

/*
// To add something similar to this for ESP32-C3
#if CONFIG_IDF_TARGET_ESP32
const int8_t esp32_adc2gpio[20] = {36, 37, 38, 39, 32, 33, 34, 35, -1, -1, 4, 0, 2, 15, 13, 12, 14, 27, 25, 26};
#elif CONFIG_IDF_TARGET_ESP32S2
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#elif CONFIG_IDF_TARGET_ESP32C3
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#endif
*/

#if !( defined(ESP32) || defined(ESP8266) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
ARDUINO_METRO_ESP32S2 || ARDUINO_MAGTAG29_ESP32S2 || ARDUINO_FUNHOUSE_ESP32S2 || \
ARDUINO_ADAFRUIT_FEATHER_ESP32S2_NOPSRAM )
#define BOARD_TYPE "ESP32-S2"
#elif ( ARDUINO_ESP32C3_DEV )
// https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-gpio.c
#warning ESP32-C3 boards not fully supported yet. Only SPIFFS and EEPROM OK. Tempo esp32_adc2gpio to be replaced
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#define BOARD_TYPE "ESP32-C3"
#else
#define BOARD_TYPE "ESP32"
#endif

#define SERIAL_SPEED 230400
#define SKETCH_NAME "Blynk_WM_Template"

Expand Down Expand Up @@ -176,11 +204,10 @@
// (USE_LITTLEFS == false) and (USE_SPIFFS == true) => using SPIFFS for configuration data in WiFiManager
// Those above #define's must be placed before #include <BlynkSimpleEsp32_WFM.h>

#if ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_PROS2 || ARDUINO_MICROS2 )
// Currently, ESP32-S2 only supporting EEPROM. Will fix to support LittleFS and SPIFFS
#if ( ARDUINO_ESP32C3_DEV )
// Currently, ESP32-C3 only supporting SPIFFS and EEPROM. Will fix to support LittleFS
#define USE_LITTLEFS false
#define USE_SPIFFS false
#warning ESP32-S2 only support supporting EEPROM now.
#define USE_SPIFFS true
#else
#define USE_LITTLEFS true
#define USE_SPIFFS false
Expand Down
6 changes: 4 additions & 2 deletions examples/DHT11ESP32/DHT11ESP32.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,12 +33,14 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"

#include <Ticker.h>
#include <DHT.h>
#include <DHT.h> // https://github.com/adafruit/DHT-sensor-library

DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Expand Down
31 changes: 26 additions & 5 deletions examples/DHT11ESP32/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,33 @@
Licensed under MIT license
*****************************************************************************************************************************/

/*
// To add something similar to this for ESP32-C3
#if CONFIG_IDF_TARGET_ESP32
const int8_t esp32_adc2gpio[20] = {36, 37, 38, 39, 32, 33, 34, 35, -1, -1, 4, 0, 2, 15, 13, 12, 14, 27, 25, 26};
#elif CONFIG_IDF_TARGET_ESP32S2
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#elif CONFIG_IDF_TARGET_ESP32C3
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#endif
*/

#ifndef defines_h
#define defines_h

#ifndef ESP32
#if !( defined(ESP32) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
ARDUINO_METRO_ESP32S2 || ARDUINO_MAGTAG29_ESP32S2 || ARDUINO_FUNHOUSE_ESP32S2 || \
ARDUINO_ADAFRUIT_FEATHER_ESP32S2_NOPSRAM )
#define BOARD_TYPE "ESP32-S2"
#elif ( ARDUINO_ESP32C3_DEV )
// https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-gpio.c
#warning ESP32-C3 boards not fully supported yet. Only SPIFFS and EEPROM OK. Tempo esp32_adc2gpio to be replaced
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#define BOARD_TYPE "ESP32-C3"
#else
#define BOARD_TYPE "ESP32"
#endif

#define BLYNK_PRINT Serial
Expand All @@ -28,11 +50,10 @@
// (USE_LITTLEFS == false) and (USE_SPIFFS == true) => using SPIFFS for configuration data in WiFiManager
// Those above #define's must be placed before #include <BlynkSimpleEsp32_WFM.h>

#if ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_PROS2 || ARDUINO_MICROS2 )
// Currently, ESP32-S2 only supporting EEPROM. Will fix to support LittleFS and SPIFFS
#if ( ARDUINO_ESP32C3_DEV )
// Currently, ESP32-C3 only supporting SPIFFS and EEPROM. Will fix to support LittleFS
#define USE_LITTLEFS false
#define USE_SPIFFS false
#warning ESP32-S2 only support supporting EEPROM now.
#define USE_SPIFFS true
#else
#define USE_LITTLEFS true
#define USE_SPIFFS false
Expand Down
6 changes: 4 additions & 2 deletions examples/DHT11ESP32_SSL/DHT11ESP32_SSL.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,12 +33,14 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"

#include <Ticker.h>
#include <DHT.h>
#include <DHT.h> // https://github.com/adafruit/DHT-sensor-library

DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Expand Down
31 changes: 26 additions & 5 deletions examples/DHT11ESP32_SSL/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,33 @@
Licensed under MIT license
*****************************************************************************************************************************/

/*
// To add something similar to this for ESP32-C3
#if CONFIG_IDF_TARGET_ESP32
const int8_t esp32_adc2gpio[20] = {36, 37, 38, 39, 32, 33, 34, 35, -1, -1, 4, 0, 2, 15, 13, 12, 14, 27, 25, 26};
#elif CONFIG_IDF_TARGET_ESP32S2
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#elif CONFIG_IDF_TARGET_ESP32C3
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#endif
*/

#ifndef defines_h
#define defines_h

#ifndef ESP32
#if !( defined(ESP32) )
#error This code is intended to run on the ESP32 platform! Please check your Tools->Board setting.
#elif ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_ESP32S2_THING_PLUS || ARDUINO_MICROS2 || \
ARDUINO_METRO_ESP32S2 || ARDUINO_MAGTAG29_ESP32S2 || ARDUINO_FUNHOUSE_ESP32S2 || \
ARDUINO_ADAFRUIT_FEATHER_ESP32S2_NOPSRAM )
#define BOARD_TYPE "ESP32-S2"
#elif ( ARDUINO_ESP32C3_DEV )
// https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-gpio.c
#warning ESP32-C3 boards not fully supported yet. Only SPIFFS and EEPROM OK. Tempo esp32_adc2gpio to be replaced
const int8_t esp32_adc2gpio[20] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
#define BOARD_TYPE "ESP32-C3"
#else
#define BOARD_TYPE "ESP32"
#endif

#define BLYNK_PRINT Serial
Expand All @@ -28,11 +50,10 @@
// (USE_LITTLEFS == false) and (USE_SPIFFS == true) => using SPIFFS for configuration data in WiFiManager
// Those above #define's must be placed before #include <BlynkSimpleEsp32_WFM.h>

#if ( ARDUINO_ESP32S2_DEV || ARDUINO_FEATHERS2 || ARDUINO_PROS2 || ARDUINO_MICROS2 )
// Currently, ESP32-S2 only supporting EEPROM. Will fix to support LittleFS and SPIFFS
#if ( ARDUINO_ESP32C3_DEV )
// Currently, ESP32-C3 only supporting SPIFFS and EEPROM. Will fix to support LittleFS
#define USE_LITTLEFS false
#define USE_SPIFFS false
#warning ESP32-S2 only support supporting EEPROM now.
#define USE_SPIFFS true
#else
#define USE_LITTLEFS true
#define USE_SPIFFS false
Expand Down
6 changes: 4 additions & 2 deletions examples/DHT11ESP8266/DHT11ESP8266.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,12 +33,14 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"

#include <Ticker.h>
#include <DHT.h>
#include <DHT.h> // https://github.com/adafruit/DHT-sensor-library

DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Expand Down
6 changes: 4 additions & 2 deletions examples/DHT11ESP8266_Debug/DHT11ESP8266_Debug.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,11 +33,13 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/
#include "defines.h"

#include <Ticker.h>
#include <DHT.h>
#include <DHT.h> // https://github.com/adafruit/DHT-sensor-library

DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Expand Down
6 changes: 4 additions & 2 deletions examples/DHT11ESP8266_SSL/DHT11ESP8266_SSL.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Forked from Blynk library v0.6.1 https://github.com/blynkkk/blynk-library/releases
Built by Khoi Hoang https://github.com/khoih-prog/Blynk_WM
Licensed under MIT license
Version: 1.2.0
Version: 1.3.0
Version Modified By Date Comments
------- ----------- ---------- -----------
Expand All @@ -33,12 +33,14 @@
1.1.2 K Hoang 28/01/2021 Fix Config Portal and Dynamic Params bugs
1.1.3 K Hoang 31/01/2021 To permit autoreset after timeout if DRD/MRD or non-persistent forced-CP
1.2.0 K Hoang 24/02/2021 Add customs HTML header feature and support to ESP32-S2.
1.3.0 K Hoang 19/04/2021 Add LittleFS and SPIFFS support to ESP32-S2. Add support to ESP32-C3 without LittleFS
Fix SSL issue with Blynk Cloud Server
*****************************************************************************************************************************/

#include "defines.h"

#include <Ticker.h>
#include <DHT.h>
#include <DHT.h> // https://github.com/adafruit/DHT-sensor-library

DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Expand Down
Loading

0 comments on commit 9e67714

Please sign in to comment.