Hi,
I've been using these ESP32 WROOM 32D boards for a couple of months now. I wasn't sure what settings to use in the Tools menu of the Arduino IDE so I just used the default ones that the IDE selected for me. When creating a small Bluetooth project the IDE Output stated that I've used 76% of program storage.
Sketch uses 1008897 bytes (76%) of program storage space. Maximum is 1310720 bytes.
Global variables use 45604 bytes (13%) of dynamic memory, leaving 282076 bytes for local variables. Maximum is 327680 bytes.
A couple of weeks back, I tried adding the bluetooth and wifi libraries to an existing small project and it stated that I had exceeded the program storage (128%).
#include <WiFi.h>
#include <esp_wifi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
#include <BLEAdvertisedDevice.h>
I began to lose faith in the boards until I came across this site. How To Use PSRAM
I changed my Tools settings in the Arduino IDE to the ones listed in the site and the difference was unliveable!!! My original Sketch (Above) stated that I used 76% of the program storage. Using the sites settings it now only uses 34% of program storage. A huge drop!!!
Sketch uses 1087373 bytes (34%) of program storage space. Maximum is 3145728 bytes.
Global variables use 45820 bytes (13%) of dynamic memory, leaving 281860 bytes for local variables. Maximum is 327680 bytes.
I'm currently playing around with a TFT ILI9341 Screen with an ESP32 WROOM 32D which is going well. Just out of curiosity, I added all of the Bluetooth and WiFi libraries and built the program again. Astonishingly, I'm only using 40%. These are in imported libraries:-
#include <lvgl.h>
#include <Arduino.h>
#include <TFT_eSPI.h>
#include <XPT2046_Touchscreen.h>
#include <WiFi.h>
#include <esp_wifi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
#include <BLEAdvertisedDevice.h>
#include <Adafruit_GFX.h> // graphics library
#include <Adafruit_ST7789.h> // library for this display
#include <SPI.h>
The reason for this post is to inform other people, who use ESP32 WROOMs, and like me, we're thinking of never using them again because of the storage issues.
Now that I have updated my settings, I will not be using anything else but these ESP32 WROOM boards and the Arduino IDE in all of my future projects. I have just ordered another 6 of them and 3 ESP32 Super Mini Development Board with WiFi & Bluetooth.