From 934841e2360e3f3c87354fd5bf9d5789308bf9a8 Mon Sep 17 00:00:00 2001 From: PaulMartinsen Date: Fri, 22 May 2020 19:30:21 +1200 Subject: [PATCH 1/6] Added missing wifi_provisioning dependency. (#4003) Co-authored-by: Paul --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d38f9d43..5a2ca8e7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,7 +206,7 @@ set(COMPONENT_ADD_INCLUDEDIRS set(COMPONENT_PRIV_INCLUDEDIRS cores/esp32/libb64) -set(COMPONENT_REQUIRES spi_flash mbedtls mdns ethernet esp_adc_cal) +set(COMPONENT_REQUIRES spi_flash mbedtls mdns ethernet esp_adc_cal wifi_provisioning) set(COMPONENT_PRIV_REQUIRES fatfs nvs_flash app_update spiffs bootloader_support openssl bt) register_component() From 594ee6d249f726a0f3335533b911a401d4eb028d Mon Sep 17 00:00:00 2001 From: Verkehrsrot Date: Fri, 22 May 2020 10:07:40 +0200 Subject: [PATCH 2/6] Update SD_MMC.cpp (#4020) According to ESP-IDF API https://github.com/espressif/esp-idf/blob/dc14d027cec49260b78efb1c3724b1710f2f3ec0/docs/en/api-reference/peripherals/sdmmc_host.rst : "To configure the bus width, set the width field of :cpp:class:`sdmmc_slot_config_t`. For example, to set 1-line mode: sdmmc_slot_config_t slot = SDMMC_SLOT_CONFIG_DEFAULT(); slot.width = 1; " --- libraries/SD_MMC/src/SD_MMC.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/SD_MMC/src/SD_MMC.cpp b/libraries/SD_MMC/src/SD_MMC.cpp index 4de46730..5db7d1a0 100644 --- a/libraries/SD_MMC/src/SD_MMC.cpp +++ b/libraries/SD_MMC/src/SD_MMC.cpp @@ -64,6 +64,7 @@ bool SDMMCFS::begin(const char * mountpoint, bool mode1bit) #endif if(mode1bit) { host.flags = SDMMC_HOST_FLAG_1BIT; //use 1-line SD mode + slot_config.width = 1; } esp_vfs_fat_sdmmc_mount_config_t mount_config = { From 79f77afc98ca3c7b2ddc76fedba038f2385aa402 Mon Sep 17 00:00:00 2001 From: Gitshaoxiang <45260108+Gitshaoxiang@users.noreply.github.com> Date: Fri, 22 May 2020 05:59:33 -0400 Subject: [PATCH 3/6] update M5Camera pins (#4021) * change m5camera pins * add M5Camera version B pins * add M5Camera version B pins --- .../CameraWebServer/CameraWebServer.ino | 1 + .../Camera/CameraWebServer/camera_pins.h | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino b/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino index 46df26a1..3855a7d9 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino +++ b/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino @@ -11,6 +11,7 @@ #define CAMERA_MODEL_WROVER_KIT // Has PSRAM //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM +//#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM //#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM //#define CAMERA_MODEL_AI_THINKER // Has PSRAM //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h b/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h index e65bc6b1..8b94b3c0 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h +++ b/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h @@ -56,6 +56,25 @@ #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 +#elif defined(CAMERA_MODEL_M5STACK_V2_PSRAM) +#define PWDN_GPIO_NUM -1 +#define RESET_GPIO_NUM 15 +#define XCLK_GPIO_NUM 27 +#define SIOD_GPIO_NUM 22 +#define SIOC_GPIO_NUM 23 + +#define Y9_GPIO_NUM 19 +#define Y8_GPIO_NUM 36 +#define Y7_GPIO_NUM 18 +#define Y6_GPIO_NUM 39 +#define Y5_GPIO_NUM 5 +#define Y4_GPIO_NUM 34 +#define Y3_GPIO_NUM 35 +#define Y2_GPIO_NUM 32 +#define VSYNC_GPIO_NUM 25 +#define HREF_GPIO_NUM 26 +#define PCLK_GPIO_NUM 21 + #elif defined(CAMERA_MODEL_M5STACK_WIDE) #define PWDN_GPIO_NUM -1 #define RESET_GPIO_NUM 15 From 09bff5027db3dd698ef62e5b3e44b82312f074cf Mon Sep 17 00:00:00 2001 From: kitsrnd <58451001+kitsrnd@users.noreply.github.com> Date: Fri, 29 May 2020 17:46:25 +0900 Subject: [PATCH 4/6] Add a new board of KITS for IoT education (#3703) * Add 'KITS Edu ESP32' board definition add 'KITS Edu ESP32' board definition * Modify board name the board name was modified. * Change the board name Finally, we decided the board name. - 'KITS ESP32 EDU' Co-authored-by: Hamson Park Co-authored-by: Hamson Park --- boards.txt | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/boards.txt b/boards.txt index d1c5dc6f..2b213a8d 100644 --- a/boards.txt +++ b/boards.txt @@ -310,7 +310,6 @@ pico32.menu.DebugLevel.verbose=Verbose pico32.menu.DebugLevel.verbose.build.code_debug=5 ############################################################## - tinypico.name=TinyPICO tinypico.upload.tool=esptool_py @@ -4876,6 +4875,68 @@ sensesiot_weizen.menu.UploadSpeed.460800.macosx=460800 sensesiot_weizen.menu.UploadSpeed.460800.upload.speed=460800 sensesiot_weizen.menu.UploadSpeed.512000.windows=512000 sensesiot_weizen.menu.UploadSpeed.512000.upload.speed=512000 + +############################################################## +kits-edu.name=KITS ESP32 EDU + +kits-edu.upload.tool=esptool_py +kits-edu.upload.maximum_size=1310720 +kits-edu.upload.maximum_data_size=327680 +kits-edu.upload.wait_for_upload_port=true + +kits-edu.serial.disableDTR=true +kits-edu.serial.disableRTS=true + +kits-edu.build.mcu=esp32 +kits-edu.build.core=esp32 +kits-edu.build.variant=pico32 +kits-edu.build.board=ESP32_PICO + +kits-edu.build.f_cpu=240000000L +kits-edu.build.flash_size=4MB +kits-edu.build.flash_freq=80m +kits-edu.build.flash_mode=dio +kits-edu.build.boot=dio +kits-edu.build.partitions=default +kits-edu.build.defines= + +kits-edu.menu.PartitionScheme.default=Default +kits-edu.menu.PartitionScheme.default.build.partitions=default +kits-edu.menu.PartitionScheme.no_ota=No OTA (Large APP) +kits-edu.menu.PartitionScheme.no_ota.build.partitions=no_ota +kits-edu.menu.PartitionScheme.no_ota.upload.maximum_size=2097152 +kits-edu.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (Large APPS with OTA) +kits-edu.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs +kits-edu.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080 + +kits-edu.menu.UploadSpeed.921600=921600 +kits-edu.menu.UploadSpeed.921600.upload.speed=921600 +kits-edu.menu.UploadSpeed.115200=115200 +kits-edu.menu.UploadSpeed.115200.upload.speed=115200 +kits-edu.menu.UploadSpeed.256000.windows=256000 +kits-edu.menu.UploadSpeed.256000.upload.speed=256000 +kits-edu.menu.UploadSpeed.230400.windows.upload.speed=256000 +kits-edu.menu.UploadSpeed.230400=230400 +kits-edu.menu.UploadSpeed.230400.upload.speed=230400 +kits-edu.menu.UploadSpeed.460800.linux=460800 +kits-edu.menu.UploadSpeed.460800.macosx=460800 +kits-edu.menu.UploadSpeed.460800.upload.speed=460800 +kits-edu.menu.UploadSpeed.512000.windows=512000 +kits-edu.menu.UploadSpeed.512000.upload.speed=512000 + +kits-edu.menu.DebugLevel.none=None +kits-edu.menu.DebugLevel.none.build.code_debug=0 +kits-edu.menu.DebugLevel.error=Error +kits-edu.menu.DebugLevel.error.build.code_debug=1 +kits-edu.menu.DebugLevel.warn=Warn +kits-edu.menu.DebugLevel.warn.build.code_debug=2 +kits-edu.menu.DebugLevel.info=Info +kits-edu.menu.DebugLevel.info.build.code_debug=3 +kits-edu.menu.DebugLevel.debug=Debug +kits-edu.menu.DebugLevel.debug.build.code_debug=4 +kits-edu.menu.DebugLevel.verbose=Verbose +kits-edu.menu.DebugLevel.verbose.build.code_debug=5 + ############################################################## mPython.name=mPython From 35d9759fa696be68ae5c0a52d2913e09222f689d Mon Sep 17 00:00:00 2001 From: "James.Y" Date: Sun, 31 May 2020 15:35:01 -0700 Subject: [PATCH 5/6] Fix for issue 3974 m_connectedCount incorrectly decremented when no connection exists There is no need to decrement if nothing was removed from removePeerDevice Reference issue: #3974 --- libraries/BLE/src/BLEServer.cpp | 18 ++++++++++++------ libraries/BLE/src/BLEServer.h | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/libraries/BLE/src/BLEServer.cpp b/libraries/BLE/src/BLEServer.cpp index 73d60c81..a63278c4 100644 --- a/libraries/BLE/src/BLEServer.cpp +++ b/libraries/BLE/src/BLEServer.cpp @@ -202,13 +202,19 @@ void BLEServer::handleGATTServerEvent(esp_gatts_cb_event_t event, esp_gatt_if_t // If we receive a disconnect event then invoke the callback for disconnects (if one is present). // we also want to start advertising again. case ESP_GATTS_DISCONNECT_EVT: { - m_connectedCount--; // Decrement the number of connected devices count. if (m_pServerCallbacks != nullptr) { // If we have callbacks, call now. m_pServerCallbacks->onDisconnect(this); } - startAdvertising(); //- do this with some delay from the loop() - removePeerDevice(param->disconnect.conn_id, false); - break; + if(m_connId == ESP_GATT_IF_NONE) { + return; + } + + // only decrement if connection is found in map and removed + // sometimes this event triggers w/o a valid connection + if(removePeerDevice(param->disconnect.conn_id, false)) { + m_connectedCount--; // Decrement the number of connected devices count. + } + break; } // ESP_GATTS_DISCONNECT_EVT @@ -395,8 +401,8 @@ void BLEServer::addPeerDevice(void* peer, bool _client, uint16_t conn_id) { m_connectedServersMap.insert(std::pair(conn_id, status)); } -void BLEServer::removePeerDevice(uint16_t conn_id, bool _client) { - m_connectedServersMap.erase(conn_id); +bool BLEServer::removePeerDevice(uint16_t conn_id, bool _client) { + return m_connectedServersMap.erase(conn_id) > 0; } /* multi connect support */ diff --git a/libraries/BLE/src/BLEServer.h b/libraries/BLE/src/BLEServer.h index d2f8038d..c97f093e 100644 --- a/libraries/BLE/src/BLEServer.h +++ b/libraries/BLE/src/BLEServer.h @@ -79,7 +79,7 @@ public: /* multi connection support */ std::map getPeerDevices(bool client); void addPeerDevice(void* peer, bool is_client, uint16_t conn_id); - void removePeerDevice(uint16_t conn_id, bool client); + bool removePeerDevice(uint16_t conn_id, bool client); BLEServer* getServerByConnId(uint16_t conn_id); void updatePeerMTU(uint16_t connId, uint16_t mtu); uint16_t getPeerMTU(uint16_t conn_id); From b92c58d74b151c7a3b56db4e78f2d3c90c16446f Mon Sep 17 00:00:00 2001 From: Nigel Mellor Date: Sun, 31 May 2020 23:41:56 +0100 Subject: [PATCH 6/6] M5Stack's product offering includes various ESP32-based camera devices. (#4030) They are all broadly similar, all being based on the ESP32-D0WD core, but have some subtle differences between variants around PSRAM inclusion and camera pin mappings. The ESP32CAM "unit" product (SKU: U007) has no PSRAM and maps the "Pixel Data 0" (Y2 GPIO/OV2640 D2) camera pin to IO17 rather than IO32 as is the case with most other M5Stack ESP32 camera devices. The ESP32CAM also requires the "hmirror" and "vflip" camera configuration bits setting in order to capture a true image. The relevant M5Stack pin configuration documentation can be found here: https://docs.m5stack.com/#/en/unit/esp32cam?id=pinmap --- .gitignore | 1 + .../CameraWebServer/CameraWebServer.ino | 5 +++-- .../Camera/CameraWebServer/camera_pins.h | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a09a7a0d..e1a9aa2f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ tools/mkspiffs/mkspiffs.exe .vs/ __vm/ *.vcxproj* +.vscode/ diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino b/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino index 3855a7d9..1898fe7d 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino +++ b/libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino @@ -12,7 +12,8 @@ //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM //#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM -//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM +//#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM +//#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM //#define CAMERA_MODEL_AI_THINKER // Has PSRAM //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM @@ -84,7 +85,7 @@ void setup() { // drop down frame size for higher initial frame rate s->set_framesize(s, FRAMESIZE_QVGA); -#if defined(CAMERA_MODEL_M5STACK_WIDE) +#if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM) s->set_vflip(s, 1); s->set_hmirror(s, 1); #endif diff --git a/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h b/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h index 8b94b3c0..f6ffd33b 100644 --- a/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h +++ b/libraries/ESP32/examples/Camera/CameraWebServer/camera_pins.h @@ -94,6 +94,25 @@ #define HREF_GPIO_NUM 26 #define PCLK_GPIO_NUM 21 +#elif defined(CAMERA_MODEL_M5STACK_ESP32CAM) +#define PWDN_GPIO_NUM -1 +#define RESET_GPIO_NUM 15 +#define XCLK_GPIO_NUM 27 +#define SIOD_GPIO_NUM 25 +#define SIOC_GPIO_NUM 23 + +#define Y9_GPIO_NUM 19 +#define Y8_GPIO_NUM 36 +#define Y7_GPIO_NUM 18 +#define Y6_GPIO_NUM 39 +#define Y5_GPIO_NUM 5 +#define Y4_GPIO_NUM 34 +#define Y3_GPIO_NUM 35 +#define Y2_GPIO_NUM 17 +#define VSYNC_GPIO_NUM 22 +#define HREF_GPIO_NUM 26 +#define PCLK_GPIO_NUM 21 + #elif defined(CAMERA_MODEL_AI_THINKER) #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1