Skip to content

Writing

A computer sold as a component

The most powerful chip in the ESP32 family has no wifi: a second chip sits next to it. The family born as a radio module took the radio out.

3 min read Project: NucleoOS-P4

There are two chips on the board I use for NucleoOS-P4. One is the ESP32-P4, the most powerful in the family. The other is an ESP32-C6, and it is there because the P4 has no wifi.

The family everyone knows as «that cheap wifi module», once it reached the flagship, pulled the radio out and set it to one side.

The board: the main processor with no radio, and next to it the chip that does the radio ESP32-P4 two cores, a 1024 by 600 screen images and video decoded in hardware USB, audio, memory for a real interface no radio ESP32-C6 Wi-Fi 6 and BLE
The most powerful chip in the family hands the radio to a second chip. Which means the radio was never the point.

Take that away and what is left is a two core processor, a block that decodes images and video without troubling the processor, a controller for a large screen, and enough memory to hold up a graphical interface.

What is left is a computer.

What actually runs on it

The one I use is a seven inch Guition panel, 1024 by 600, with capacitive touch. NucleoOS-P4 draws a launcher on it: an application grid that adapts, folders, a dock, search, a wallpaper.

Photos scroll instead of struggling because the processor is not the thing resizing them: there is a dedicated block that does that job and nothing else. The video player takes the same road. Music covers the formats you would expect, plays in the background, and can come out of a USB audio card plugged in while it runs. Then camera, voice recorder, file manager, system monitor, notes, calculator.

Speech synthesis is on the device, Italian and English, with no network. The interface is translated into five languages and switches without a restart.

And over wifi the board serves a full desktop that opens in the browser of any computer on the network, with about thirty windowed applications talking to the device through a small API. Updates arrive without a cable.

Applications that recompile nothing

There is one thing that for me marks the border between a component and a computer: on a computer you install programs.

The native applications in NucleoOS-P4 live inside the firmware, compiled along with it. The WebAssembly ones do not: they come off the memory card and enter a small engine that runs them, against a declared graphics interface they can lean on.

This is not a refinement. Adding a game to a monolithic firmware means recompiling everything, reflashing, and holding two copies of each thing in memory during the update. Memory is exactly what is missing.

The other way, the app gets copied onto the memory card. Then it opens.

The other end of the same family

At the other end of the family sits the Cardputer, which fits in one hand and carries an ESP32-S3: 512 KB of memory, no expansion, a 240 by 135 screen. After boot about 18 KB are free.

The same kind of system runs on it: an application registry with declared permissions, an event bus, updates that fall back to the previous version if something goes wrong, notifications, power management. And a multiplayer mode that works with no router, because the chips talk to each other directly.

Between that board and the seven inch panel there is an abyss, and both are called ESP32. In the catalogue they sit on the same line.

The wrong drawer

Almost all the firmware written for these chips reads a sensor and sends the number to a server. Nothing wrong with that: it is work somebody has to do, and these chips do it well and cost little.

What strikes me is that nearly the whole category does it, stuck on the idea we formed of these things the first time we picked one up.

The first computer I wrote anything on took up a table and had 64 kilobytes of memory. These fit in one hand, and in the catalogue they are components.

All writing