An ESP32-WROVER with an RP2040 co-processor in a Raspberry Pi 4 form factor

Mar 18, 2023

Project update 6 of 7

Testing Progress & Administrative Delays

by Steffen Wittenburg, Michael Schmid

To our dear backers,

It’s been quite a while since you’ve heard from us. There was a lot of paperwork to get through, from Crowd Supply and Mouser, and we’ve been waiting to receive our funds. The transfer was finally processed this week, and we have now received it in our account. We are doing everything we can to hit our delivery estimate. It still looks doable, but there’s a chance we’ll end up being a few weeks late. We’ll keep you posted on our progress.

In the meantime, we have been busy testing the latest sample PCBs that we produced in December. We tested EsPiFF with different HATs to ensure compatibility, signal integrity, and power consumption. Thanks to our careful layout design, signals are looking very good. We drew over two amps with a HAT, and did not see any instability.

We did find one final bug, though. An SPI MOSI line and a MISO line, from the RP2040 to the HAT, need to be flipped. SPIs naming scheme gets really confusing when the RP2040 is sometimes a peripheral (to the ESP32) and sometimes a controller (to the HAT). The RP2040 has two SPI ports, where one SPI port can be an RP2040-SPI controller or an RP2040-SPI peripheral! On the RPi, there can be up to two SPI ports, so the two RP2040 SPI instances can both act as SPI controllers. In this case, the RP2040 will do its communication with the ESP32 via UART.

Optionally, the SPI port can be implemented with PIOs, which would allow us to use more then the two SPI ports. For these cases, where the RP2040 should act as an SPI peripheral on built-in SPI1 to the ESP32, and as an SPI controller on SPI0 to the RPi HAT, we made the flipping of the MISO/MOSI pair.

We are still thrilled with the enormous flexibility of the RP2040 PIO functionality, which can emulate nearly all of the functionality of a Raspberry Pi. When more then one SPI instance is need, you can simply add a few more – either controllers or peripherals. We used the example code of the RP2040 SDK to implement an SPI port by PIOs and a state machine, and it worked out of the box. We tested this PIO + state machine implementation with our digital-IO HAT, and it worked great!

Finally, a few backers have asked us if it would be possible to use the integrated antenna—even though we are providing an external one—so we went ahead and made it work. Since version 3.2 of the EsPiFF PCB, the area below the ESP32-module antenna is free of copper. This is not optimal for Wi-Fi reception, but you can still receive a strong Wi-Fi station. Please keep in mind, however, that doing so requires some solder work. Because the Wi-Fi signal is routed to the IPEX antenna connector by default, using the integrated antenna requires that you add a tiny, zero-Ohm resistor.

Thank you all for your support, and stay tuned for delivery updates.

Sign up to receive future updates for EsPiFF.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects