ESP32: When Is A P4 A P4, But Not The P4 You Thought It Was

We’re used to electronic parts of the same type staying predictably the same, sometimes over many years. An early Z80 from the mid 1970s can be exchanged with one from the end of production a few years ago, for example. This week, we’ve had DMs from several readers who’ve found that this is not always the case, and the culprit is surprising. Espressif has released a new revision of their P4 application processor, and though it’s ostensibly the same, there are a couple of changes that have been catching people out.

The changes lie in both hardware and software, in that there’s a pin that’s changed from NC to a power rail, a few extra passives are needed, and firmware must be compiled separately for either revision. The problem is that they are being sold as the same device and appear in some places under the same SKU! This is leading to uncertainty as to which P4 revision is in stock at wholesalers. We’ve been told about boards designed for the old revision being assembled with the new one, a situation difficult to rework your way out of. Designers are also left uncertain as to which firmware build is needed for boards assembled in remote factories.

The ESP32-P4 is an impressive part for its price, and we’re sure that we’ll be seeing plenty of projects using this new revision over the coming years. We’re surprised that it doesn’t have a different enough part number and that the wholesalers have seemingly been caught napping by the change. We’re told that some of the well-known Chinese assembly houses are now carrying the two chips as separate SKUs, but that’s scant consolation for a designer with a pile of boards carrying the wrong part. If you’re working with the P4, watch out, make sure your board is designed for the latest revision, and ask your supplier to check which chips you’ll get.

If the P4 is new to you, we’ve already seen a few projects using it.

What’s In A Raspberry Pi Processor Update?

Those of us who have followed the Raspberry Pi over the years will be familiar with the various revisions of the little board, with their consequent new processors. What may be less obvious is that within the lifetime of any chip there will often be minor version changes, usually to fix bugs or to fine-tune production processes. They’re the same chip, but sometimes with a few extra capabilities. [Jeff Geerling] didn’t miss this when the Raspberry Pi 400 had a BCM2711 with a newer version number than that on the Pi 4, and now he’s notices the same chip on Pi 4 boards.

Why might they run two different revisions of the chip in parallel? It seems that the update changes the amount of memory addressable by the eMMC and the PCIe bus, the former could only see the first 1GB and the latter the first 3Gb. For the lower-spec Pi 4 boards this doesn’t present a problem, but for those with 8 gigabytes of memory it could clearly be an issue. Thus the Pi 400 and the top spec Pi 4 now have a newer BCM2711 version. This will almost certainly pass unnoticed for the average Raspberry Pi OS user, but the extra memory addressing space should be of interest for hardware experimenters wishing to expose that PCIe bus and talk to peripherals such as a GPU. That said, though he suggests the Compute Module 4  has the newer revision, his own experiments were unsuccessful.

[Editor’s Note: our own overclocking experiments show the C-version SOCs to run cooler/faster than their B counterparts, so it’s nice to have the better chips in the “normal” Pi form factor and not just the Pi 400 and compute modules.]