Espressif has introduced a new ESP32 model called the ESP32-S31.This ESP32 includes a gigabit Ethernet MAC, a USB 2.0 High-Speed host controller, an SD card interface with two slots, and a camera input.These are fairly standard features you might expect on a Linux single-board computer, but they are quite unusual to find on a microcontroller.

I have spent a considerable amount of time working with microcontrollers, and it is common to find a few cores, a small amount of RAM, GPIO pins, and perhaps Wi-Fi on one device.
More advanced systems usually rely on a Raspberry Pi or similar device.However, the ESP32-S31 comes with a much more comprehensive setup than what is typically found on a standard microcontroller.Additionally, Espressif has made a significant change to the CPU, making it even more similar to a single-board computer.

Peripherals already alter its appearance.

It is capable of much more.

ESP32

The most significant feature of the ESP32-S31 is its advanced networking abilities.It includes a 1000 Mbps Ethernet MAC, which is a major improvement compared to the slower 100 Mbps Ethernet found on the ESP32-P4.The device uses an 8P8C connector, also known as RJ45, and incorporates a PHY that connects through the chip’s RGMII interface.RGMII is the key technology that allows for gigabit speeds; without it, the connection would be limited to the standard RMII.

In addition to the networking features, the ESP32-S31 also includes USB functionality, though it is not a typical USB setup.
It has a USB 2.0 High-Speed OTG controller, and it features a full-size Type-A port that can provide 500 mA of power when operating in host OTG mode.Alongside the USB, there is an SDIO host controller with two slots, a DVP camera interface that supports 8 to 16 bits, and a parallel LCD controller that can handle up to 24-bit RGB along with I8080 and MOTO6800 panel types.The device also includes two I2S controllers with hardware support for Bluetooth audio synchronization, fourteen capacitive touch channels, a CAN FD controller, and four MCPWM units.

ESP32

Just looking at that list alone, it’s obvious that this is a new kind of ESP32, something we haven’t really come across before.Features like wired networking, a USB host port, a camera, a display, and audio support all point to this being more like a single-board computer than a typical microcontroller.But that’s not the whole story.

In terms of the CPU, there are two 32-bit RISC-V cores, each running up to 320 MHz and both having their own floating point unit.
One of the cores also has a 128-bit SIMD data path, and there’s another separate 40 MHz low-power core.Each core has 32KB of L1 instruction cache, and they share 64KB of data cache.

The memory setup is even more impressive.
The S31 can support up to 64 MB of PSRAM through a 250 MHz 8-bit DDR interface, and it can also handle up to 256 MB of flash memory.On the ESP32-S3, the PSRAM interface was shared with the flash, so this new design represents a significant improvement.

Espressif installed a genuine MMU in the ESP32-S31

In stark contrast to the previous “MMU”

ESP32

Espressif has used the term “MMU” for a long time, including in the ESP32-S3 and ESP32-P4.In those cases, the MMU was a block that mapped external flash and PSRAM into the address space.It wasn’t as complex as a modern MMU, which can handle more advanced functions like process isolation and page tables.So when Espressif mentioned that the S31 has MMU support, it seemed like it was just continuing with the same approach.

But this time, there’s a significant change.
According to the S31’s datasheet, the cores perform “Sv32 two-level page-table address translation” and support “Machine, Supervisor, and User privilege modes.” Sv32 is the actual RISC-V paging mechanism, and having all three privilege modes allows a standard kernel to run in supervisor mode while the firmware beneath it operates in machine mode.This is how Linux systems based on RISC-V typically function.

ESP32-S3

Unlike earlier makeshift attempts to get Linux running on previous ESP32 microcontrollers, the S31 comes with more built-in features that natively support Linux.To begin with, Espressif released a Linux BSP in August, which is based on Buildroot and U-Boot.This includes a kernel, a device tree, and a root file system.Although Espressif notes that it’s “not yet recommended for production use,” the main point is that it functions properly.

This hasn’t slowed down the community’s efforts either.
One version has Linux 6.18 running in supervisor mode, with working drivers for nearly all hardware.Another version, based on Linux 7.1, supports an 800×480 LCD panel, allowing for a working console display.Being able to connect a display, use wired Ethernet, and operate with a mouse and keyboard makes the experience much closer to that of a single-board computer than a typical microcontroller.

The main flaw is memory.

A lot less than would-be SBC competitors

ESP32

The S31 begins to show performance limitations when considering its memory capabilities: it includes 512KB of SRAM on chip, with two versions offering either 16MB or 32MB of in-package PSRAM.The maximum memory capacity it can support is 64MB, and there is no DRAM controller included.In comparison to devices like the Milk-V Duo S, which has 512MB of RAM, the ESP32-S31 clearly stands out as a microcontroller.

This is why Linux builds typically run the kernel from flash memory, to prevent using valuable PSRAM for that purpose.
Additionally, there is no GPU or NPU on board.While the ESP32-P4 has video encoding and MIPI interfaces, these features are replaced by extra radios on the S31.Despite this, it still includes a JPEG codec, a 2D pixel processing accelerator, and 2D DMA, but these features are not enough to support a full Linux desktop.

The clock speed also raises concerns regarding the gigabit Ethernet NIC.
At 320 MHz, the CPU can process approximately 3,900 cycles per maximum-size Ethernet frame and about 215 cycles per minimum-size frame.With a theoretical PSRAM bandwidth of up to 500 MB/s, it might be possible to achieve closer to gigabit speeds for large data transfers.However, I would be cautious about achieving full connection saturation with many small packet transfers.

These radios are significant because similar single-board computers (SBCs) at the same price point often lack an integrated wireless module.This device includes 2.4GHz Wi-Fi 6, Bluetooth 5.4 with both Low Energy (LE) and Classic BR/EDR support, and an 802.15.4 radio for Thread and Zigbee, along with a gigabit MAC.Matter operates over Wi-Fi and Thread.Notably, the inclusion of Bluetooth Classic on an ESP32 is somewhat rare.This makes compatibility with older audio equipment seamless.

Power usage is also impressive, even with all these radio features.
Wi-Fi reception uses between 110 mA to 117 mA depending on the mode, transmission peaks at 265 mA on 802.11b at 15 dBm, and both cores in modem-sleep at 320 MHz draw 91 mA with peripheral clocks off or 147 mA with them on.Despite having a range of SBC peripherals, the power consumption profile is similar to that of a microcontroller.

The name “S31” is a little confusing.

However, the remainder is quite good.

ESP32

The name “S31” for this board is somewhat confusing, as it suggests an S3 revision, even though it has little to do with the standard S3.Espressif describes the S series as “high-performance, feature-rich SoCs,” which relates more to capabilities than instruction sets.A key difference between the S and C series is the use of RISC-V cores in the C series and Xtensa LX7 cores in the S series.

In a comment on Hackaday, Jeroen Domburg, Espressif’s Technical Marketing Manager, explained that “We never intended the CPU architecture to be part of the name.” He also noted that the core is based on the P4 series and that the S31 operates nearly twice as fast as the S3.

However, the S31’s datasheet is still outdated, showing version 0.5 with a large “PRELIMINARY” watermark on the first page.
While it is quite detailed and mostly consistent, some parts highlight its preliminary nature.For example, the datasheet lists the PSRAM maximum clock speed as 80 MHz, conflicting with Espressif’s published 250 MHz speed.Although slightly messy documentation is not unusual for Espressif, it shows how early the ESP32-S31 is in its development cycle.The Linux support is still more of a toy and is expected to remain so for a while.

The S31 is not an SBC, but it is the first ESP32 where many of its features—such as peripherals, bandwidth, and CPU privilege model—are closely aligned with those of a modern SBC.
The gap between a microcontroller with good I/O and an SBC has been narrowing over the past few years.Although you can’t run a desktop on 16 MB of PSRAM, you can successfully run a Linux terminal on the S31 with relatively little effort.That is the first meaningful step.

This product by website

Home » ESP32 Can Now Run Linux Like a Raspberry Pi
Esp32

Mini Computer Hardware

website buy

  1. esp32

    buy this product and use