The newest ESP32 can run Linux and it's getting close to a Raspberry Pi
The New ESP32-S31: A Microcontroller Morphing into a Raspberry Pi
By Adam Conway (XDA Lead Technical Editor, BSc in Computer Science)
The boundary between microcontrollers and Single Board Computers (SBCs) is blurring. Espressif has unveiled the ESP32-S31, a chip that doesn't just mimic the capabilities of a Raspberry Pi—it actually runs Linux.

🚀 Hardware: More Than Just a Microcontroller
Traditionally, an ESP32 provides a few cores, minimal RAM, and some GPIOs. The S31, however, boasts a peripheral suite that looks like it was ripped straight from an SBC.
Connectivity and I/O
The standout feature is the networking. While the ESP32-P4 topped out at 100 Mbps, the S31 introduces a 1000 Mbps (Gigabit) Ethernet MAC.
- The Secret Sauce: It utilizes an RGMII interface to connect to an external PHY via an 8P8C (RJ45) connector. Without RGMII, it would be limited to the slower RMII standard.
- USB Capabilities: It features a USB 2.0 High-Speed OTG controller. The dev board includes a full-size Type-A port capable of supplying
500 mAin host mode.
Peripheral Breakdown
| Feature | Specification |
|---|---|
| Storage | SDIO host controller with |
| Visuals | DVP camera interface (8-16 bit) & Parallel LCD controller (24-bit RGB, I8080, MOTO6800) |
| Audio | 2x I2S controllers with hardware Bluetooth sync |
| Industrial | CAN FD controller & 4x MCPWM units |
| Sensors | 14 capacitive touch channels |

🧠 The Brains: RISC-V and Memory
The S31 moves away from traditional architectures to a powerful RISC-V setup.
Memory Evolution: Unlike the ESP32-S3, where flash and PSRAM shared an interface, the S31 separates them. It supports up to 64 MB of PSRAM via a 250 MHz 8-bit DDR interface.
🛠️ The Game Changer: A "Real" MMU
For years, Espressif used the term "MMU," but it was essentially just a mapping block for external memory. The S31 introduces a true Memory Management Unit.
Technical Shift: The S31 implements the Sv32 two-level page-table address translation scheme. This allows for process isolation and the use of page tables, which are fundamental for modern operating systems.
The architecture supports three distinct privilege levels:
Machine Mode (M)Firmware (OpenSBI)Supervisor Mode (S)Linux KernelUser Mode (U)User Applications (Shell, SSH)

🐧 Running Linux
Because of the hardware support, Linux isn't a "hack" on the S31—it's natively supported. Espressif released a Linux BSP (Board Support Package) in August based on U-Boot and Buildroot.
Current Progress:
- Linux 6.18: Runs in supervisor mode with most hardware drivers functional.
- Linux 7.1: Supports an 800x480 LCD panel for a full console experience.
- Production Ready:
Recommended for commercial use(Espressif states it is not yet recommended for production).

⚠️ The Reality Check: Where it Falls Short
Despite the "SBC-like" features, the S31 is still a microcontroller at heart, and the limitations are evident when compared to true competitors.
The RAM Bottleneck: The S31 has 512KB of on-chip SRAM and a maximum of 64MB PSRAM. Compare this to the Milk-V Duo S, which packs 512MB of RAM.

Other Trade-offs:
- No DRAM Controller: This is why the Linux kernel must be executed directly from flash to save the limited PSRAM.
- Missing Accelerators: There is no onboard GPU or NPU.
- Feature Swap: While it keeps a JPEG codec, it loses the video encode and MIPI interfaces found on the ESP32-P4 to make room for more radios.
In summary, while the ESP32-S31 is a massive leap forward that allows for keyboards, mice, and displays, it remains a high-end microcontroller rather than a full Raspberry Pi replacement.