Pico W / Pico 2 W vs the non-W boards — how to tell them apart

The wireless and non-wireless Pico boards look alike; three official differences separate them every time: where the LED lives, where the SWD pads sit, and the radio shield. Plus the volume-name trap.

Question this page answers: "Is my board a Pico W / Pico 2 W or a plain Pico / Pico 2 — and does it matter?"

It matters more than the naming suggests: the wireless boards move the on-board LED off GP25 and consume different internal GPIOs, so firmware and tutorials written for the non-W boards misbehave quietly. The official documentation describes the four variants of each generation together and states the differences explicitly.

Three checks that always separate them

CheckNon-W (Pico, Pico H, Pico 2, Pico 2 with headers)Wireless (Pico W, Pico WH, Pico 2 W, Pico 2 W with headers)Source
On-board LEDon the MCU's GP25 (PICO_DEFAULT_LED_PIN 25)on the radio chip (WL_GPIO0); the W board headers define no PICO_DEFAULT_LED_PINdocs layout sections + SDK headers pico.h / pico_w.h
SWD padsalong the bottom edgecentrally, just below the microcontrollerdocs debug-connector table
Radionone — the PCB is bare around the MCU areaCYW43439 radio chip + on-board antenna near one enddocs wireless-models section

The printed model name on the board settles it fastest when legible; the three checks above work when the silk is unclear.

The internal GPIO differences (why firmware cares)

Both generations keep the same 40 header positions, but the board-internal GPIOs do different work:

GPIONon-W useWireless use
GP23SMPS power-save controlradio enable (WL_REG_ON)
GP24VBUS senseradio data out/in + host-wake (shared)
GP25user LEDradio SPI chip select (WL_CS) — driving it as an LED corrupts radio traffic
GP29VSYS monitor (ADC)radio SPI clock and VSYS monitor, sharing the pin

None of the four reach the headers on either board. What changes is what driving them (or assuming GP25 blinks) does.

The volume-name trap

In BOOTSEL mode the mass-storage volume is named RPI-RP2 on RP2040 boards and RP2350 on RP2350 boards — the W suffix does not appear in the volume name. A Pico 2 W and a Pico 2 show the same "RP2350" drive. The volume tells you the generation, never the wireless variant.

Can software tell which it is running on?

Official answer from the documentation: "There is no direct method for software written in MicroPython to discover whether it is running on a Raspberry Pi Pico or a Pico W by looking at the hardware" — but you can probe indirectly, e.g. by checking whether the firmware's network module includes WLAN support. For C/C++, the SDK board target you build for (pico_w / pico2_w vs pico / pico2) is a build-time fact, not a runtime discovery.

What this page cannot tell you

  • Which variant you should buy — that is a project question; start from whether you need Wi-Fi/Bluetooth at all, then see the board pages.
  • Pre-soldered-header variants (H / WH / "with headers") only change the header soldering and the SWD connector style (through-hole pads vs keyed JST-style) — same electrical board, same checks above.

Boards

Next: Pico W / Pico 2 W: UF2, BOOTSEL and the on-board LED.

Sources