Low-Cost Connectivity for the IoT: Hands-On with the Raspberry Pi Pico W
Launching at just $6, the Raspberry Pi Pico W adds a radio to the already impressively-featured RP2040 development board design.
When Raspberry Pi launched its first-ever microcontroller and matching development board, the RP2040 and Raspberry Pi Pico respectively, it proved an immediate smash-hit. With a powerful dual-core Arm Cortex-M0+ processor, plenty of general-purpose input/output (GPIO) capabilities, out-of-the-box support for C/C++ and MicroPython, and clever programmable input/output (PIO) blocks should you run out of peripherals, its feature set belied its bargain-basement $4 price.
Now, around a year and a half on, there's a successor — not the Raspberry Pi Pico 2, but the Raspberry Pi Pico W. Just as with the Raspberry Pi Zero 2 W, which followed the Raspberry Pi Zero's launch, that single letter hints at a major upgrade: the addition of wireless connectivity.
The hardware
This isn't a generational launch. The RP2040 at the heart of the new Raspberry Pi Pico W is, aside from a stepping jump from the launch-model B0 to the latest B2, identical to the original. That means a dual-core Arm Cortex-M0+ processor running at up to 133MHz, though capable of significantly more when run out-of-spec, along with 264kB of static RAM (SRAM).
Those hoping the next launch might be a little more generous with the flash memory will be disappointed: as with the original Raspberry Pi Pico, the new W-suffix variant has 2MB of external QSPI flash on-board. It has the same 26 GPIO pins, the same eight PIO state machines, and the same micro-USB port at the end — and even, sadly, the same pinout silkscreen printed on the underside, where it's completely useless if you're using a breadboard.
Looking down at the bottom quarter of the board reveals the difference. The three-pin Serial Wire Debug (SWD) header has been shifted significantly further up the board, sadly losing its surface-mount-friendly castellated cut-outs in the process, and in its place is a PCB antenna connected to a silver box hiding an Infineon CYW43439 radio module.
There is one change to the pinout which should be noted, however, but it's not visible externally: the Raspberry Pi Pico W's on-board user-addressable LED has shifted away from an internal GPIO on the RP2040 microcontroller to one on the CYW43439 radio module. It's a technical quirk of note only to those diving deeper into bare-metal programming: for MicroPython users, it's still accessible using the pin alias LED.
The eagle-eyed may have noticed a disconnect between the CYW43439's capabilities and Raspberry Pi's announcement on the matter: While the CYW43439 is a combined Bluetooth 5.2 and single-band 802.11n Wi-Fi radio, only the latter is available on the Raspberry Pi Pico W — for the moment, at least. With both Bluetooth and Wi-Fi radios technically addressable over the SPI bus, though, Bluetooth support could well follow in a future firmware update.
Connectivity
For the launch, Raspberry Pi has primarily concentrated on the MicroPython experience. Tested with a pre-release but near-final firmware build, the experience was smooth: Simply import the network library and a selection of functions provide everything from the opening and closing of connections to HTTP requests and even throughput testing — the latter revealing an upper limit, at stock clocks, of around 850Kb/s, a decent showing for a microcontroller device.
At the time of review, the Wi-Fi connectivity could sometimes be a little finicky. While signal strength once connected was good — easily on a par with the Raspberry Pi Zero W and the Raspberry Pi Zero W 2, which share the same antenna design — the time taken to make the initial connection could be slow, ranging from just a few seconds to over 20 seconds. Experimentation revealed some compatibility problems with the mesh implementation on selected routers; for projects that rely on quick connectivity, disabling the router's mesh support — even if it wasn't actually being used — largely solved the problem.
Along with the MicroPython firmware, which needs to be downloaded and manually flashed onto the Raspberry Pi Pico W by holding down the boot selection button and connecting a USB cable, Raspberry Pi has released a quick-start guide dubbed Connecting to the Internet with Raspberry Pi Pico W. As promised, it shows you exactly how to do that — complete with code samples for connecting to a protected network, printing connection details, making HTTP requests, and even acting as an HTTP server with access to the board's GPIO pins.
For the C/C++ user, things aren't quite as polished. The C/C++ application programming interface (API) was, at the time of review, still a work-in-progress — though sample code reveals a range of interesting functions including FreeRTOS support and a firmware which turns the Pico into a stand-alone Wi-Fi access point, complete with DHCP server to assign IP addresses to client devices.
Accessories and compatibility
As well as the physical release and firmware source code, Raspberry Pi has offered up design files for the Raspberry Pi Pico W — though only in the proprietary Autodesk EAGLE format. The company has also published a carrier board design which will appeal to those who have experimented with turning RP2040-based devices into emulators, gaming machines, and even fully-functional computers, adding as it does a VGA output, SD Card slot, and pulse-width modulated (PWM) audio. Better still, this board design is provided as a KiCad project requiring no proprietary software to load.
As with the original Raspberry Pi Pico, the Raspberry Pi Pico W is designed for manufacturability. All external GPIO connections, bar the shifted SWD header, are castellated for use with either through-hole pins or to turn the board into a surface-mount device soldered directly to a carrier PCB. It's a dual-hitter, suitable for hobbyist and education use as well as use to drive commercial products — and if you want to go a stage further, there's the free book Hardware Design with RP2040 to get you started on the route to putting the microcontroller on a board of your own.
The Raspberry Pi Pico W shares a near-identical footprint, and identical physical GPIO pinout, to its predecessor, which means the overwhelming majority of hardware designed for the original should work without modification. Not all, though: the relocation of the SWD header means that anything relying on its presence will find it missing, but in most cases those pads can simply be left unsoldered and the device used anyway.
Software compatibility is a little more difficult. Technically speaking, anything which can run on the Raspberry Pi Pico can run on the Raspberry Pi Pico W: The radio chip communicates with the RP2040 over the SPI bus, so none of the 26 externally-accessible GPIO pins are lost. It does, however, require a different firmware — meaning that software already compiled for the original Raspberry Pi Pico will need to be recompiled for the Raspberry Pi Pico W or it simply won't run. One of the eight PIO state machines is also reserved for radio communication.
Pricing and availability
There are two key reasons why the Raspberry Pi Pico has proven so popular. The first is simple: at $4, it's an incredibly cost-effective dual-core development platform with some truly clever features. The second is availability: Raspberry Pi has worked hard to ensure the Raspberry Pi Pico and its RP2040 chip are available in both single-unit and volume quantities, with many who had previously built atop rival designs making the shift out of simple necessity.
Adding a radio module to the board could have been an excuse to bloat the price — the Arduino Nano RP2040 Connect, which is built around the same RP2040 microcontroller and a similar footprint, costs $27, though admittedly with functional Bluetooth 4.2 Low Energy (BLE), a range of on-board sensors, and a generous 16MB of external flash.
That's not the direction Raspberry Pi has taken. By sticking with 2MB of flash — enough for some surprisingly complex projects — the company has been able to keep the price low and launch the Raspberry Pi Pico W at just $6. It's an impressive achievement, and while it's not the cheapest Wi-Fi-enabled microcontroller board out there — the various boards built around the Espressif ESP8266 family have it beat there — it represents incredible value for money.
The Raspberry Pi Pico W is now available from all Raspberry Pi resellers, priced at $6 — and will be sold alongside the Raspberry Pi Pico, for projects that don't require Wi-Fi connectivity, which remains at its $4 price point. More details are available on the Raspberry Pi website.