Image

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.

Image

These Ultra-Cute, Handsfree Walkie-Talkies Are Built For Cycling

Walkie-talkies are great fun, and [RealCorebb]’s bbTalkie project takes the concept a step further by adding some extremely cool features to make a highly refined, self-contained ESP32-based communicator. bbTalkie completely does away with a push-to-talk button by implementing robust voice detection that works reliably even in noisy environments. It was all designed with cycling in mind, so hands-free operation that stands up to noise is a big plus.

Image
Hands-free, wireless, self-contained digital walkie-talkies that can connect in a group. What’s not to like?

The core of communication is done over ESP-NOW, which is Espressif’s own protocol for direct device-to-device broadcasting. This removes the need to involve any sort of external service like SIM cards or internet access to transmit voice. Performance is best with an external antenna, naturally, but ESP-NOW doesn’t actually require anything other than the existing on-board hardware.

We’ve seen ESP-NOW used to make digital walkie-talkies before, but bbTalkie is a really evolved take on the concept, not least of which due to its hands-free operation.

Because volume-based automatic triggers are highly susceptible to noise, voice detection is done with the help of VADNet, a neural network-based model implemented locally on the device. This system can reliably detect human speech, even in noisy environments. This lets bbTalkie switch between transmit and listen modes automatically and hands-free, without false triggers.

Even when doing all that, there’s still spare capability to play with. Further to the goal of making bbTalkie useful for cyclists in a group, [RealCorebb] added a system that can recognize specific voice commands (like “turn left” for example, or “wait for me!”) which trigger synchronized animations to play on the displays of all connected units. There’s even some experimental support for controlling a camera over Bluetooth, though currently it only supports hardware from Sony.

Watch a tour of it in the video below (Chinese language, English captions available). The OLED screens and animations are adorable, and are great visual feedback of what the unit is doing at any given moment.

Continue reading “These Ultra-Cute, Handsfree Walkie-Talkies Are Built For Cycling”

Image

Espressif Introduces The ESP32-E22 Wi-Fi 6E And Bluetooth Co-Processor

Espressif has unveiled its latest major chip in the form of the ESP32-E22. Officially referred to as a Radio Co-Processor (RCP), it’s intended to be used via its PCIe 2.1 or SDIO 3.0 host interface to provide wireless communications to an SoC or similar.

This wireless functionality includes full WiFi 6E functionality across all three bands, 160 MHz channel bandwidth and 2×2 MU-MIMO, making it quite a leap from the basic WiFi provided by e.g. the ESP32-S* and -C* series. There is also Bluetooth Classic and BLE 5.4 support, which is a relief for those who were missing Bluetooth Classic in all but the original ESP32 for e.g. A2DP sinks and sources.

The ESP32-E22 processing grunt is provided by two proprietary Espressif RISC-V CPU cores that can run at 500 MHz. At this point no details appear to be available about whether a low-power core is also present, nor any additional peripherals. Since the graphics on the Espressif PR article appear to be generic, machine-generated images – that switch the chip’s appearance from a BGA to an LQFP package at random – there’s little more that we can gather from there either.

Currently Espressif is making engineering samples available to interested parties after presumed vetting, which would indicate that any kind of public release will still be a while off. Whether this chip would make for an interesting stand-alone MCU or SoC along the lines of the -S3 or -P4 will remain a bit of a mystery for a bit longer.

Thanks to [Rogan] for the tip.

Showing a Raspberry Pi 4 board connected to an ESP32 devboard using jumper wires for the purposes of this project

ESP-Hosted Turns ESP32 Into Linux WiFi/BT Adapter

While we are used to USB WiFi adapters, embedded devices typically use SDIO WiFi cards, and for good reasons – they’re way more low-power, don’t take up a USB port, don’t require a power-sipping USB hub, and the SDIO interface is widely available. However, SDIO cards and modules tend to be obscure and proprietary beyond reason. Enter ESP-Hosted – Espressif’s firmware and driver combination for ESP32 (press release)(GitHub), making your ESP32 into a WiFi module for either your Linux computer (ESP-Hosted-NG) or MCU (ESP-Hosted-FG). In particular, ESP-Hosted-NG his turns your SPI- or SDIO-connected ESP32 (including -S2/S3/C2/C3/C6 into a WiFi card, quite speedy and natively supported by the Linux network stack, as opposed to something like an AT command mode.

We’ve seen this done with ESP8266 before – repurposing an ESP8089 driver from sources found online, making an ESP8266 into a $2 WiFi adapter for something like a Pi. The ESP-Hosted project is Espressif-supported, and it works on the entire ESP32 lineup, through an SDIO or even SPI interface! It supports 802.11b/g/n and even Bluetooth, up to BLE5, either over an extra UART channel or the same SDIO/SPI channel; you can even get BT audio over I2S. If you have an SPI/SDIO port free and an ESP32 module handy, this might just be the perfect WiFi card for your Linux project!

There are some limitations – for instance, you can’t do AP mode in the NG (Linux-compatible) version. Also, part of the firmware has blobs in it, but a lot of the firmware and all of the driver are modifiable in case you need your ESP32 to do even more than Espressif has coded in – this is not fully open-source firmware, but it’s definitely way more than the Broadcom’s proprietary onboard Raspberry Pi WiFi chip. There’s plenty of documentation, and even some fun features like raw transport layer access. Also, of note is that this project supports ESP32-C6, which means you can equip your project with a RISC-V-based WiFi adapter.

Title image from [zhichunlee].

Showing the ESP-Prog-Adapter board plugged into the ESP-Prog adapter, wired to a SOIC clip, that then attaches to a PCB under test

ESP-Prog-Adapter Makes Your ESP32 Tinkering Seamless

Did you ever struggle with an ESP32 board of yours, wishing you had exposed that UART, or seriously lacking the JTAG port access? If so, you should seriously check out [0xjmux]’s ESP-PROG-Adapter project, because [0xjmux] has put a lot of love and care into making your ESP32 hardware interfacing a breeze. This project shows you how to add JTAG and UART headers with extra low board footprint impact, gives you a KiCad library to do so super quickly, and shares a simple and helpful adapter PCB you can directly use with the exceptionally cheap Espressif’s ESP-Prog dongle you should have bought months ago.

The hardware is perfect for ZIF no-soldering interfacing – first of all, both UART and JTAG can be connected through a SOICBite connection, a solderless connector idea that lets you use SPI flashing clips on specially designed pads at the edge of your board. For the fancy toolkit hackers among us, there’s also a Tag Connect symbol suggested and a connector available, but it carries JTAG that you will already get with the SOICBite, so it’s maybe not worth spending extra money on.

Everything is fully open-source, as one could hope! If you’re doing ESP32 hacking, you simply have to order this board and a SOIC clip to go with it, given just how much trouble [0xjmux]’s board will save you when programming or debugging your ESP32 devices. Now, you don’t strictly need the ESP-Prog dongle – you could remix this into an adapter for the Pi Pico board instead. Oh, and if designing boards with ARM CPUs are your thing, you might benefit from being reminded about the Debug Edge standard!

Image

Espressif’s ESP32-P4 Application Processor: Details Begin To Emerge

Every now and then there’s a part that comes along which is hotly anticipated, but which understandably its manufacturer remains tight-lipped about in order to preserve maximum impact surrounding its launch. Right now that’s Espressif’s ESP32-P4: a powerful application processor with dual-core 400 MHz and a single-core low power 40 MHz RISC-V processors. Interestingly it doesn’t appear to have the radios which have been a feature of previous ESP parts, but it makes up for those with a much more comprehensive array of peripherals.

Some details are beginning to emerge, whether from leaks or in preparation for launch, including the first signs of support in their JTAG tool, and a glimpse in a video from another Chinese company of a development board. We got our hopes up a little when we saw the P4 appearing in some Espressif documentation, but on closer examination there’s nothing there yet about the interesting new peripherals.

Looking at the dev board and the video we can see some of what the thing is capable of as it drives a large touchscreen and a camera. There are two MIPI DSI/CSI ports on  the PCB, as well as three USB ports and a sound codec. A more run-of-the-mill ESP32-C3 is present we think to provide wireless networking, and there’s a fourth USB port which we are fairly certain is in fact only for serial communications via a what our best blurry photograph reading tells us is a Silicon Labs USB-to-serial chip. Finally there’s large Raspberry Pi-style header which appears to carry all the GPIOs and other pins. We’ve placed the video below the break, if you see anything we’ve missed please tell us in the comments.

We first covered this chip back in January, and then as now we’re looking forward to seeing what our community does with it.

Continue reading “Espressif’s ESP32-P4 Application Processor: Details Begin To Emerge”

Image

Breaking The Flash Encryption Feature Of Espressif’s Microcontrollers

Espressif’s ESP32 microcontrollers come with a Flash encryption feature that when enabled ensures that the data and code stored on the (usually external) Flash chip is encrypted with AES-256 (ESP32) or better (ESP32-C3, -C6). For the ESP32 this encryption feature has been shown to be vulnerable to side channel attacks (SCA), leading [courk] to not only replicate this result with a custom ESP Correlation Power Analysis (CPA) board (pictured) that captures power usage of the MCU, but also to try his luck with the ESP32-C3 and ESP32-C6 parts that should be tougher nuts to crack.

Whereas the ESP32 uses a fairly straightforward AES-256 encryption routine that together with the exposed Flash communication lines on the QSPI bus make for a textbook SCA example, the ESP32-C3 ups the encryption to XTS-AES, which uses two 128-bit keys on the -C3 part (XTS-256). This particular MCU is still susceptible to the same SCA attack with CPA, making it somewhat harder to attack than the ESP32, but by no means impossible.

Continue reading “Breaking The Flash Encryption Feature Of Espressif’s Microcontrollers”