Raspberry Pi Pico W - an alternative to the ESP32

Microcontrollers with integrated Wi-Fi are still rare. But especially in the IoT environment, this is of course one of the basic requirements for easily connecting a microcontroller with other devices. Even the Raspberry Pi Pico, which was introduced in January 2021, does not have the option of establishing a wireless connection with its environment. But now the Raspberry Pi Foundation has introduced the Raspberry Pi Pico W, which solves exactly this shortcoming. The size and connections correspond to those of the Raspberry Pi Zero W.

Raspberry Pi Pico W

Therefore, the Pico was equipped with a CYW43438 radio module, which is coupled with the RP2040 via the SPI interface. This module operates in the 2.4 GHz band and supports the 802.11n standard. It also supports Bluetooth 5.2, which is not yet supported by the Pico's firmware. The following table shows the features of the Raspberry Pi Pico W in comparison to two other microcontroller boards:

  Arduino Nano RP2040 Connect Raspberry Pi Pico W ESP32 DevKit C V4
 Year 2021 2022 2016
 SoC RP2040 RP2040 ESP32
 Type Arm Cortex-M0+ (32 Bit)  Arm Cortex-M0+ (32 Bit) Tensilica Xtensa LX6 (32 Bit)
 Cores 2 2 2
 Clock 133 MHz 133 MHz 240 Mhz
 RAM 264 KB 264 KB 520 KB
 Flash 16 MB 2 MB 4 MB external
 Wi-Fi U-blox Nina W102
(ESP32)
802.11b/g/n
CYW43439
(Cortex-M3 & Cortex-M4)
802.11n
2,4 GHz, 802.11b/g/n
 Bluetooth 4.2 BR/EDR & BLE - 4.2 BR/EDR & BLE
 GPIO 20 26 34
 ADC 4 x 12 Bit 3  x 12 Bit 18 x 12 Bit
 SPI 1 2 4
  I2C 1 2 2
 UART 1 2 3
 Debugging - SWD Port Only with  ESP-Prog Board
 Pinout

Arduino Nano RP2040 Connect Pinout

Raspberry Pi Pico W Pinout

ESP32 DevKitC V4 Pinout

 Price 28 Euro 7 Euro 5 Euro
 Available good bad good
Microcontroller comparison


But what is really interesting is the structure of the board. While the complete Wi-Fi functionality of the ESP32 has to be taken over by the two Xtensa LX6 cores, this is done by a coprocessor in the other two boards. Funnily enough, in the case of the Arduino Nano RP2040 Connect, this is again an ESP32, while the Raspberry Pi Pico W has a module with one Cortex-M3 and one Cortex-M4 core. The two cores take over the Wi-Fi and Bluetooth tasks respectively. The following diagram shows the structure of the CYW43439:

CYW43439 block diagram

This has a very big advantage. With the ESP32, you have to make sure that the core 0 (also called PRO CPU) is not blocked, as this is responsible for Wi-Fi, Bluetooth and all other internal peripherals. Only core 1 (also called APP CPU) can be used without restriction. So from the user's point of view, the ESP32 is not actually a 100% dual-core CPU. This can also be seen in the naming of the two cores. The PRO stands for Protocol, as this core is responsible for the entire hardware. The APP stands for Application, so it primarily runs your own programs. The other two boards do not have this problem. Here, the two Cortex-M0+ cores can be used to almost 100% capacity, only communication with the coprocessor must be maintained.

Unfortunately, the Raspberry Pi Pico W is sold out everywhere at the moment. But as soon as that changes, I'll be sure to buy a board. Meanwhile, I'm still excited about the ESP32, especially in terms of documentation, API and availability. But I will definitely give the Raspberry Pi Pico W a chance, as it will finally allow me to get to know the Cortex architecture. The documentation and the examples already look very promising.

Loading Conversation