Skip to content

Commit be8d5fc

Browse files
projectgusdpgeorge
authored andcommitted
esp32/README: Update the README details to account for newer chips.
Noted while adding C2 support that some of these comments are a bit out of date. Spun out to its own commit, and also mention C5 as well. This change also adds some recommendation on which ESP32 board to pick, as we occasionally see issues or questions that would be non-issues on a board with more RAM (and for small production or personal projects the savings of picking a cheaper ESP32 chip are basically neglible). This work was funded through GitHub Sponsors. Signed-off-by: Angus Gratton <angus@redyak.com.au>
1 parent 207562d commit be8d5fc

1 file changed

Lines changed: 26 additions & 5 deletions

File tree

ports/esp32/README.md

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,44 @@ This is a port of MicroPython to the Espressif ESP32 series of
55
microcontrollers. It uses the ESP-IDF framework and MicroPython runs as
66
a task under FreeRTOS.
77

8-
Currently supports ESP32, ESP32-C2 (aka ESP8684), ESP32-C3, ESP32-C6, ESP32-S2
9-
and ESP32-S3 (ESP8266 is supported by a separate MicroPython port).
8+
Currently supports ESP32, ESP32-C2 (aka ESP8684), ESP32-C3, ESP32-C5, ESP32-C6,
9+
ESP32-S2 and ESP32-S3. ESP8266 is supported by a separate MicroPython port.
1010

1111
Supported features include:
12-
- REPL (Python prompt) over UART0.
13-
- 16k stack for the MicroPython task and approximately 100k Python heap.
12+
- REPL (Python prompt) over UART0 and/or the integrated USB peripheral.
1413
- Many of MicroPython's features are enabled: unicode, arbitrary-precision
1514
integers, single-precision floats, complex numbers, frozen bytecode, as
1615
well as many of the internal modules.
17-
- Internal filesystem using the flash (currently 2M in size).
16+
- Internal filesystem using the remaining flash area.
17+
- Threading support via the _thread module (built on native FreeRTOS tasks),
18+
with GIL enabled.
1819
- The machine module with GPIO, UART, SPI, software I2C, ADC, DAC, PWM,
1920
TouchPad, WDT and Timer.
2021
- The network module with WLAN (WiFi) support.
2122
- Bluetooth low-energy (BLE) support via the bluetooth module.
2223

2324
Initial development of this ESP32 port was sponsored in part by Microbric Pty Ltd.
2425

26+
Choosing a suitable chip
27+
------------------------
28+
29+
ESP32 chips are not all the same. The different ESP32 families have different
30+
capabilities and resources available. In particular, the ESP32-C2 and ESP32-S2
31+
(without external SPIRAM) have the least RAM. They can still run MicroPython
32+
well but may run out of RAM if a program uses a lot of resources, eg if it
33+
needs many complex code modules, multiple TLS connections, large memory
34+
buffers for a display, etc.
35+
36+
ESP32 boards with external "SPIRAM" (also called PSRAM) have megabytes of RAM
37+
available - significantly more than any board without external SPIRAM. SPIRAM is
38+
supported on original ESP32, ESP32-S2 and ESP32-S3 chips. Not every ESP32 board
39+
has SPIRAM included, even if the chip supports it.
40+
41+
If you don't need particular hardware features but are looking for a board with
42+
the usual Wi-Fi and BLE support, many peripherals and plenty of RAM then
43+
recommend finding a board based on ESP32-S3 with SPIRAM included (usually 2MB,
44+
4MB or 8MB).
45+
2546
Setting up ESP-IDF and the build environment
2647
--------------------------------------------
2748

0 commit comments

Comments
 (0)