The Raspberry Pi Pico 2 W combines the newer RP2350 microcontroller with the same Infineon CYW43439 wireless chip used on the original Pico W. The result is a compact wireless microcontroller board with dual-core Cortex-M33 or dual-core Hazard3 RISC-V processors, 520 KB SRAM, 4 MB onboard Flash, Wi-Fi, Bluetooth 5.2, USB and Raspberry Pi’s flexible PIO system.
Physically, Pico 2 W deliberately keeps the familiar Pico W layout. The 40-pin edge connector uses the same external pinout as Pico W, so many existing carrier boards and breadboard layouts remain compatible.
The biggest differences are inside: RP2350 runs up to 150 MHz, approximately doubles SRAM compared with RP2040, expands PIO to 12 state machines, adds more PWM resources and includes a much more advanced security architecture.
Pico 2 W Specifications at a Glance
| Feature | Raspberry Pi Pico 2 W |
|---|---|
| Microcontroller | RP2350A |
| CPU | Dual Arm Cortex-M33 or dual Hazard3 RISC-V |
| Maximum clock | 150 MHz |
| SRAM | 520 KB |
| Onboard Flash | 4 MB QSPI |
| Wi-Fi | 2.4 GHz 802.11n |
| Bluetooth | Bluetooth 5.2, Classic + BLE |
| Wireless chip | Infineon CYW43439 |
| User GPIO on headers | 26 |
| Exposed ADC GPIOs | 3: GP26, GP27, GP28 |
| UART | 2 controllers |
| SPI | 2 controllers |
| I²C | 2 controllers |
| PWM | 24 channels |
| PIO | 12 state machines |
| USB | USB 1.1 host/device |
| Input supply | VSYS approximately 1.8–5.5 V |
| Board size | 21 × 51 mm |
Pico 2 W Pinout
The external pinout is the same layout used by Pico W. GPIO functions are multiplexed, so most digital pins can serve several peripheral roles.
| Physical pin | Signal | Common alternate functions |
|---|---|---|
| 1 | GP0 | UART0 TX / I²C0 SDA / SPI0 RX / PWM |
| 2 | GP1 | UART0 RX / I²C0 SCL / SPI0 CSn / PWM |
| 3 | GND | Ground |
| 4 | GP2 | I²C1 SDA / SPI0 SCK / PWM |
| 5 | GP3 | I²C1 SCL / SPI0 TX / PWM |
| 6 | GP4 | UART1 TX / I²C0 SDA / SPI0 RX / PWM |
| 7 | GP5 | UART1 RX / I²C0 SCL / SPI0 CSn / PWM |
| 8 | GND | Ground |
| 9 | GP6 | I²C1 SDA / SPI0 SCK / PWM |
| 10 | GP7 | I²C1 SCL / SPI0 TX / PWM |
| 11 | GP8 | UART1 TX / I²C0 SDA / SPI1 RX / PWM |
| 12 | GP9 | UART1 RX / I²C0 SCL / SPI1 CSn / PWM |
| 13 | GND | Ground |
| 14 | GP10 | I²C1 SDA / SPI1 SCK / PWM |
| 15 | GP11 | I²C1 SCL / SPI1 TX / PWM |
| 16 | GP12 | UART0 TX / I²C0 SDA / SPI1 RX / PWM |
| 17 | GP13 | UART0 RX / I²C0 SCL / SPI1 CSn / PWM |
| 18 | GND | Ground |
| 19 | GP14 | I²C1 SDA / SPI1 SCK / PWM |
| 20 | GP15 | I²C1 SCL / SPI1 TX / PWM |
| 21 | GP16 | SPI0 RX / I²C0 SDA / UART0 TX / PWM |
| 22 | GP17 | SPI0 CSn / I²C0 SCL / UART0 RX / PWM |
| 23 | GND | Ground |
| 24 | GP18 | SPI0 SCK / I²C1 SDA / PWM |
| 25 | GP19 | SPI0 TX / I²C1 SCL / PWM |
| 26 | GP20 | I²C0 SDA / PWM |
| 27 | GP21 | I²C0 SCL / PWM |
| 28 | GND | Ground |
| 29 | GP22 | GPIO / PWM |
| 30 | RUN | RP2350 reset / enable |
| 31 | GP26 / ADC0 | ADC0 / I²C1 SDA / GPIO |
| 32 | GP27 / ADC1 | ADC1 / I²C1 SCL / GPIO |
| 33 | AGND | Analogue ground |
| 34 | GP28 / ADC2 | ADC2 / GPIO |
| 35 | ADC_VREF | ADC reference |
| 36 | 3V3(OUT) | Regulated 3.3 V output |
| 37 | 3V3_EN | Pull low to disable 3.3 V regulator |
| 38 | GND | Ground |
| 39 | VSYS | Main system input |
| 40 | VBUS | USB 5 V |
Only Three ADC Inputs Are Exposed on the Header
RP2350 has analogue capability on more internal signals, but Pico 2 W exposes the user analogue pins as GP26/ADC0, GP27/ADC1 and GP28/ADC2.
GPIO29 / ADC3 is used internally as part of the wireless-board VSYS monitoring arrangement. The wireless SPI clock and VSYS monitor share internal resources, so reading VSYS has to be coordinated with CYW43439 activity.
For external analogue sensors, treat GP26–GP28 as the normal accessible ADC pins.
GPIO Voltage Is 3.3 V
Pico 2 W GPIO is a 3.3 V logic system. Do not connect ordinary 5 V logic outputs directly to RP2350 GPIO unless the exact interface is level-shifted appropriately.
The board accepting a higher voltage on VSYS does not make the GPIO pins 5 V tolerant.
The Onboard LED Is Not GP25
On the original non-wireless Pico, the LED is connected directly to a microcontroller GPIO. On Pico W and Pico 2 W, the LED is controlled through the CYW43439 wireless device as WL_GPIO0.
That means low-level code which assumes an LED on GP25 will be wrong for Pico 2 W. In Arduino, use LED_BUILTIN rather than hard-coding the LED pin.
Arduino LED Blink
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(500);
digitalWrite(LED_BUILTIN, LOW);
delay(500);
}
The Arduino core handles the wireless-chip LED path for the Pico 2 W board definition.
Wi-Fi Hardware
Pico 2 W uses the Infineon CYW43439, connected to RP2350 over a board-internal SPI interface that normally runs up to around 33 MHz.
Official Raspberry Pi documentation specifies single-band 2.4 GHz 802.11n wireless networking. This is not a 5 GHz Wi-Fi board.
The wireless subsystem also shares a single onboard antenna between Wi-Fi and Bluetooth.
Keep Metal Away from the Antenna
The antenna sits at the end of the Pico 2 W board. Metal directly under or close to it can significantly reduce gain and bandwidth.
- Do not mount the antenna end against a metal enclosure wall.
- Avoid ground planes directly under the antenna area on a carrier PCB.
- Keep batteries and large cables away from the antenna where possible.
- If using a metal enclosure, expect range to drop unless RF design is considered.
Bluetooth 5.2
Raspberry Pi specifies Bluetooth 5.2 on Pico 2 W. The wireless subsystem supports both Bluetooth Low Energy and Bluetooth Classic.
The current Arduino-Pico stack supports BLE central/peripheral use as well as Bluetooth Classic functionality including HID, serial-style SPP and A2DP audio features.
Bluetooth is not automatically included in every Arduino build because the stack consumes extra Flash and RAM. Enable the required Bluetooth/IP stack in the Arduino Tools menu.
Arduino-Pico Bluetooth Stack
In the current Arduino-Pico core, Bluetooth support is enabled through Tools → IP/Bluetooth Stack. Enabling Bluetooth adds roughly 80 KB of Flash and around 20 KB of RAM according to the core documentation.
The core currently includes support for:
- BLE server/peripheral.
- BLE client/central.
- Bluetooth Classic HID.
- BLE HID.
- Bluetooth HID master.
- SerialBT / SPP-style serial.
- Bluetooth audio A2DP source and sink.
Wi-Fi and Bluetooth Share the Same Radio
The CYW43439 contains both radio functions and uses one 2.4 GHz antenna. Wi-Fi and Bluetooth coexistence is handled in the wireless subsystem, but they still share RF airtime and host-interface resources.
For ordinary IoT workloads this is fine. For high-throughput Wi-Fi combined with latency-sensitive Bluetooth, test the real application rather than assuming both radios operate independently.
UART Pins
RP2350 provides two UART controllers and can route them to multiple pin combinations through GPIO alternate functions.
| UART | TX | RX |
|---|---|---|
| UART0 | GP0 | GP1 |
| UART1 | GP4 | GP5 |
| UART1 alternative | GP8 | GP9 |
| UART0 alternative | GP12 | GP13 |
| UART0 alternative | GP16 | GP17 |
I²C Pins
Pico 2 W has two hardware I²C controllers. Common pairs include:
| Controller | SDA | SCL |
|---|---|---|
| I²C0 | GP0 | GP1 |
| I²C1 | GP2 | GP3 |
| I²C0 | GP4 | GP5 |
| I²C1 | GP6 | GP7 |
| I²C0 | GP8 | GP9 |
| I²C1 | GP10 | GP11 |
| I²C0 | GP12 | GP13 |
| I²C1 | GP14 | GP15 |
| I²C0 | GP16 | GP17 |
| I²C1 | GP18 | GP19 |
| I²C0 | GP20 | GP21 |
| I²C1 | GP26 | GP27 |
SPI Pins
Two hardware SPI controllers are available. Useful common mappings include:
| Controller | RX/MISO | CS | SCK | TX/MOSI |
|---|---|---|---|---|
| SPI0 | GP0 | GP1 | GP2 | GP3 |
| SPI0 | GP4 | GP5 | GP6 | GP7 |
| SPI1 | GP8 | GP9 | GP10 | GP11 |
| SPI1 | GP12 | GP13 | GP14 | GP15 |
| SPI0 | GP16 | GP17 | GP18 | GP19 |
The wireless chip uses a separate internal SPI connection; it does not consume the user-visible SPI0/SPI1 header mapping in the same way an external module would.
PWM
RP2350 increases the PWM resources compared with RP2040. Raspberry Pi lists 24 PWM channels on Pico 2.
PWM can be used for LED dimming, motor drivers, servo-style signals, audio and other timing tasks, subject to the RP2350 slice/channel mapping.
PIO: One of Pico 2 W’s Biggest Advantages
RP2350 provides 12 Programmable I/O state machines, up from eight on RP2040.
- WS2812 / NeoPixel output.
- Custom serial protocols.
- Precise pulse measurement.
- I²S-style interfaces.
- VGA/DVI-style signal generation.
- Additional UART/SPI-like state machines.
PIO is one of the strongest reasons to choose Pico-class hardware when the project has unusual digital timing requirements.
USB
RP2350 includes USB 1.1 controller and PHY support for both device and host modes. The Pico 2 W board uses a Micro-USB connector for power and USB data.
Arduino-Pico supports serial-over-USB and also provides USB support for HID, storage-style applications and other device classes.
BOOTSEL
The BOOTSEL button gives Pico boards one of the friendliest recovery mechanisms in microcontroller development.
- Disconnect or reset the board.
- Hold BOOTSEL.
- Connect USB or reset while holding it.
- Release BOOTSEL after the board enters boot mode.
The board appears as a USB drive and accepts a UF2 firmware image. This makes it very difficult to permanently lock yourself out with broken application firmware.
RUN Pin
Physical pin 30 is RUN. Pulling RUN low resets the RP2350. A momentary button between RUN and GND can therefore act as an external reset switch.
Power Pins
| Pin | Purpose |
|---|---|
| VBUS | USB 5 V from the connector |
| VSYS | Main board system supply input |
| 3V3(OUT) | Regulated 3.3 V output |
| 3V3_EN | Regulator enable; low disables 3.3 V rail |
| ADC_VREF | ADC reference supply |
| AGND | Analogue ground |
Raspberry Pi specifies Pico 2 series VSYS operation across approximately 1.8–5.5 V. This makes battery and regulated external power straightforward, but the attached circuitry still has to respect 3.3 V I/O levels.
SWD Debugging
Pico 2 W exposes SWD debug pads/signals for SWDIO, SWCLK and GND. With a debug probe or another supported Raspberry Pi debug setup, you can use breakpoints and inspect memory/register state instead of relying only on Serial prints.
Installing Arduino Support
One of the most capable Arduino options for RP2350 is the community-maintained Arduino-Pico core by Earle Philhower. Current documentation supports RP2040 and RP2350 boards including Pico 2 W.
In Arduino IDE, open File → Preferences and add the Boards Manager URL:
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
- Open Boards Manager.
- Search for the Raspberry Pi Pico / RP2040-RP2350 package.
- Install the Arduino-Pico core.
- Select Raspberry Pi Pico 2 W.
- Choose the required Flash, USB and IP/Bluetooth stack options.
First Arduino Upload
For the first upload, the BOOTSEL method is reliable: enter UF2 boot mode, select the Pico 2 W board and upload.
Once firmware is running, the Arduino-Pico core can normally reset/upload over USB without holding BOOTSEL every time. BOOTSEL remains the recovery method if USB firmware is broken.
Arduino Wi-Fi Example
#include <WiFi.h>
const char* ssid = "YOUR_WIFI";
const char* password = "YOUR_PASSWORD";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println();
Serial.print("IP: ");
Serial.println(WiFi.localIP());
}
void loop() {
}
Arduino-Pico implements Wi-Fi APIs familiar to users of the Arduino WiFi and ESP8266/ESP32 ecosystems, including client/server sockets, scanning, DHCP/static addressing and access-point support.
Wi-Fi Memory Cost
Wireless networking is not free in memory terms. Arduino-Pico documentation notes that enabling Wi-Fi adds more than 220 KB of Flash usage, largely because CYW43 firmware is included, and roughly 40 KB of RAM for the networking stack and buffers.
Pico 2 W’s 520 KB SRAM is therefore a useful improvement over the original Pico W for larger networked applications.
Arduino BLE Example Structure
#include <BLE.h>
void setup() {
Serial.begin(115200);
BLE.begin();
// configure services,
// characteristics and advertising
}
void loop() {
// application logic
}
Make sure Bluetooth is enabled in Tools → IP/Bluetooth Stack before compiling a Bluetooth sketch.
Bluetooth Classic
Unlike microcontrollers that support BLE only, the Pico 2 W CYW43439 supports Bluetooth Classic as well as BLE. Arduino-Pico currently exposes useful Classic profiles including HID, serial-style SPP and A2DP audio.
Wi-Fi Access Point Mode
Raspberry Pi’s wireless documentation supports soft-access-point operation with up to four clients, and Arduino-Pico exposes AP functionality through its Wi-Fi API.
This is useful for device setup portals where the Pico creates its own temporary network before joining the user’s normal Wi-Fi.
OTA Updates
Arduino-Pico supports over-the-air firmware updating for wireless Pico boards. The first firmware still has to be loaded physically, but later updates can be delivered over the network if the application includes OTA support.
Pico 2 W vs Pico W
| Feature | Pico W | Pico 2 W |
|---|---|---|
| MCU | RP2040 | RP2350 |
| CPU | Dual Cortex-M0+ @ 133 MHz | Dual Cortex-M33 or Hazard3 @ 150 MHz |
| SRAM | 264 KB | 520 KB |
| Flash | 2 MB | 4 MB |
| PIO state machines | 8 | 12 |
| Wireless chip | CYW43439 | CYW43439 |
| Wi-Fi | 2.4 GHz 802.11n | 2.4 GHz 802.11n |
| Bluetooth | 5.2 Classic + BLE | 5.2 Classic + BLE |
| Header pinout | Pico W layout | Same external layout |
The wireless capability is broadly similar because both use the CYW43439. Pico 2 W’s advantage is the much stronger RP2350 host MCU and extra memory.
Pico 2 W vs Non-Wireless Pico 2
- Pico 2 has no onboard Wi-Fi or Bluetooth.
- Its onboard LED is MCU-connected rather than controlled through the wireless chip.
- There is no internal CYW43439 SPI traffic.
- The internal GPIO/resource arrangement is simpler.
Choose Pico 2 W when networking is part of the project. Choose Pico 2 when wireless adds no value.
Common Problem: Onboard LED Does Not Work on GP25
That is expected. On Pico 2 W, the LED is WL_GPIO0 on the CYW43439.
Use LED_BUILTIN or the wireless-aware SDK API rather than writing GP25 directly.
Common Problem: Wi-Fi Sketch Compiles for Pico 2 but Not Pico 2 W
Check the board selection. Pico 2 and Pico 2 W are different Arduino variants. Only the W model includes the CYW43439 wireless hardware.
Select Raspberry Pi Pico 2 W, not the non-wireless Pico 2 target.
Common Problem: ADC Values Change During Wireless Activity
The wireless board internally shares the VSYS ADC-monitoring path with wireless SPI resources. External GP26–GP28 ADC inputs are the normal sensor inputs, while internal VSYS monitoring has special timing constraints.
Common Problem: Poor Wi-Fi or Bluetooth Range
- Metal or battery directly behind the antenna.
- Board mounted inside a metal enclosure.
- Ground plane under the antenna region.
- No clearance around the antenna end.
- High local 2.4 GHz interference.
Common Problem: Arduino Upload Stops Working
Hold BOOTSEL while connecting or resetting the board and return to UF2 boot mode. This bypasses the application firmware and gives you a clean recovery path.
If the board still does not enumerate, check the USB cable first; many Micro-USB cables are power-only.
Common Problem: Bluetooth Classes Are Missing
Ensure the Arduino-Pico core is current and that Tools → IP/Bluetooth Stack has a Bluetooth-enabled option selected. Bluetooth support is deliberately optional because it consumes additional Flash/RAM.
Recommended Arduino Setup
- Install the current Arduino-Pico core.
- Select Raspberry Pi Pico 2 W.
- Use BOOTSEL for the first or recovery upload.
- Use LED_BUILTIN rather than GP25 for the onboard LED.
- Use GP26–GP28 for normal analogue inputs.
- Enable Wi-Fi/Bluetooth stack options only when required.
- Keep the antenna area clear of metal.
- Use VSYS for suitable external board power and keep GPIO at 3.3 V logic.
- Use SWD when real debugging is needed.
Final Recommendation
The Raspberry Pi Pico 2 W is the Pico board to buy for a new wireless project if you want the Pico/RP2350 architecture. It keeps the familiar Pico W external pinout while doubling SRAM, doubling onboard Flash, increasing CPU performance and expanding PIO/PWM resources.
Its wireless hardware is mature rather than exotic: the CYW43439 provides 2.4 GHz 802.11n Wi-Fi plus Bluetooth 5.2 Classic and BLE, and current Arduino-Pico releases expose a strong networking and Bluetooth feature set.
For Arduino users, the workflow is straightforward: install Arduino-Pico, select Pico 2 W, use BOOTSEL for the first upload and treat the board as a 3.3 V microcontroller with 26 exposed GPIOs. The two details most worth remembering are that the onboard LED lives on the wireless chip and that the accessible analogue inputs are GP26–GP28.
Related Raspberry Pi Guides
- Raspberry Pi Pico 2 / RP2350 Pinout + Safe GPIOs & Interfaces
- RP2040 vs RP2350: Raspberry Pi Pico vs Pico 2 Compared
- Raspberry Pi Pico W vs ESP32: Which Is Better for IoT & Home Assistant?
Official and Technical Resources
- Raspberry Pi Pico-Series Documentation — Pico 2 W hardware, pinout and wireless architecture.
- Raspberry Pi Pico 2 Product Brief — RP2350, memory, wireless and board specifications.
- Arduino-Pico — Arduino core for RP2040 and RP2350 including Pico 2 W.
- Arduino-Pico Documentation — installation, Wi-Fi, Bluetooth, USB and peripheral APIs.