ESP-WROOM-32 is one of the most commonly ESP32 WiFi + Bluetooth module, and does the job for many applications. However, it only includes 4MB (32Mbit) flash, and no external PSRAM, while Espressif ESP32 chip itself supports up to 128 Mbit (16MB) NOR flash and up to 32Mbit (4MB) PSRAM, so for applications demanding more resources (e.g. MicroPython), or for initial development it would good to have a module maxing out memory and storage capabilities of the chip.
Analog Lamb ALB32-WROVER does exactly that with 32 Mbit PSRAM, and 32 to 128 Mbit flash, in a form factor compatible with ESP-WROOM-32 module.
- WiSoC – Espressif ESP32 (
Rev0?) Wi-Fi and Bluetooth combo chip - External Memory – 32Mb PSRAM
- Storage – 32, 64, or 128Mbit Flash
- Dimensions – 18 x 25 x 3 mm
- Compatible with ESP-WROOM-32, except for GPIO16 & 17 (used for PSRAM)
It’s very odd the company claims the module is based on the older Rev0 chip, as according to Espressif:
As you may know, the V0 ESP32 had a bug in it that stopped psram from working at all. V1 mostly solved this bug, but not entirely: some instruction sequences, sometimes only in combination with an interrupt at a very specific time, could cause data corruption. We spent a fair amount of time characterizing and tracing back the origin of this bug before formulating a feasible workaround. This is also why you need to grab a new toolchain: it doesn’t emit the instruction sequences that have a potential for errors.
So it has to be a mistake, or the extra RAM should not be available at all… [Update: AnalogLamb said Rev1 will be used] It should also be noted that accessing the external SRAM is estimated to lead to a 10 to 20% performance hit.
AL32-WROOM module can be purchased for $6.69 to $9.99 on AnalogLamb store. The company does not seem to offer a development kit with the module soldered to the board, so you may have to get one of the many ESP-WROOM-32 breakout boards and solder it yourself. Alternatively, if you are happy with 4MB PSRAM and 4MB flash, there’s always ESP32-WROVER-KIT, “tiny ESP32 WROVER pSRAM board“, or Wemos LOLIN32 Pro (currently unavailable).
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
The PSRAM performance impact happens in two places. The first is when you enable the V1 errata workaround since it causes the compiler to insert memory barriers that can heavily impact performance whether using PSRAM or not. The second is due to PSRAM sharing the same SPI bus as the program flash. The subtly often overlooked here is that new instructions to execute can not be fetched from flash while PSRAM is being accessed. The advice I give for *performance sensitive* applications is to treat PSRAM as volatile storage rather than RAM and to use IRAM for subroutines that access… Read more »
With 4MB of RAM, you should be able to run uClinux.