# Raspberry Pi Pico W robot guide: wiring, power and MicroPython

> Pin map, 3.3 V power rules and MicroPython drive code for a small Wi-Fi rover built on the Raspberry Pi Pico W, plus how it compares with ESP32.

Canonical: https://roboticsengineering.in/raspberry-pi-pico-w-robot-guide/ | Published: 2026-10-27 | Updated: 2026-10-27 | Author: Jignesh Panchal

**The Raspberry Pi Pico W is the cheapest way to put Wi-Fi and a real dual-core microcontroller on a robot — about ₹500–₹800, with 26 GPIOs, 16 PWM channels and 264 KB of RAM.** It is not an Arduino replacement by habit, but for a connected robot it is often the better board.

## What the Pico W adds over a plain Pico

The Pico W uses the same RP2040 chip as the standard Pico: two Cortex-M0+ cores at 133 MHz, 264 KB of SRAM and 2 MB of flash. The W adds the CYW43439 radio for 2.4 GHz Wi-Fi and Bluetooth LE. Everything else — the pinout, the PIO blocks, the ADC — is the same, so a robot built on a Pico can move to a Pico W by changing one board.

The radio costs about ₹200–₹300 over the plain board and uses some internal pins, but it does not reduce the header pin count. You still get 26 GPIOs on the castellated edges, three 12-bit ADC inputs, two UARTs, two SPI buses, two I2C buses and 16 PWM channels. Eight PIO state machines can generate or read precise signal timings without loading either core.

| Feature | Pico W | Arduino Uno | ESP32 DevKit |
| --- | --- | --- | --- |
| Logic voltage | 3.3 V | 5 V | 3.3 V |
| CPU | Dual-core 133 MHz | 16 MHz | Dual-core 240 MHz |
| SRAM | 264 KB | 2 KB | 520 KB |
| Wi-Fi | 2.4 GHz | No | 2.4 GHz |
| ADC | 3 inputs, 12-bit | 6 inputs, 10-bit | ADC1 only with Wi-Fi on |
| PWM | 16 channels | 6 pins | 16 channels |
| Typical price | ₹500–₹800 | ₹450–₹750 | ₹350–₹700 |

## Pin map for a small robot

| Job | Pins | Notes |
| --- | --- | --- |
| Motor driver TB6612FNG | GP14, GP15, GP16, GP17 | Two PWM inputs and two direction pins |
| IR line sensors | GP4, GP5 | Digital inputs; 3.3 V-safe sensors only |
| HC-SR04 ultrasonic | GP6 (trig), GP7 (echo) | Echo is 5 V; use a divider before the pin |
| I2C display or IMU | GP0 (SDA), GP1 (SCL) | I2C0 defaults in MicroPython |
| Servo | GP15 or any GPIO | 50 Hz PWM; keep the servo on its own 5 V supply |
| Battery sense | GP26 (ADC0) | Divider to keep the pin under 3.3 V |
| Onboard LED | Not GP25 | On the Pico W the LED is on the radio chip, controlled as `Pin("LED")` |

The last row catches almost everyone. On a plain Pico the LED is GP25; on the Pico W it is connected to the CYW43439 and MicroPython exposes it as `Pin("LED")`. Code copied from a Pico tutorial that toggles GP25 will run without error and do nothing.

## Power: 3.3 V logic, 5 V input, no 2S direct

The Pico W has a 5 V VBUS pin, a VSYS pin that accepts 1.8–5.5 V, and a 3.3 V output pin. Feed a regulated 5 V into VBUS, or a 3.7–5 V source into VSYS. A 2S 18650 pack is 6.0–8.4 V and must go through a buck converter first; connecting it to VSYS exceeds the absolute limit.

- **Do not power the robot through the 3V3 pin.** It is an output, and back-feeding it bypasses the onboard regulator.
- **The 3V3 pin can supply roughly 300 mA** to external sensors and logic. Motors and servos never come from it.
- **Use a TB6612FNG or DRV8871 driver** with 3.3 V-compatible logic. An L298N expects logic highs above about 4.5 V and may ignore a 3.3 V signal.
- **Join the grounds** between the Pico, the driver and the battery. A missing ground makes the driver behave randomly.

A 2S pack through a 5 V buck module is the usual supply. The [power guide](https://roboticsengineering.in/how-to-power-a-robot/) covers current budgeting, and the [LM2596 module](https://roboticsengineering.in/components/lm2596-buck-converter/) is the common cheap regulator.

## MicroPython: drive and steer without blocking

MicroPython is the fastest way to get a Pico W robot moving. The PWM API uses 16-bit duty values, so speed is a number from 0 to 65535 rather than Arduino’s 0–255.

```
from machine import Pin, PWM
import time

STBY = Pin(13, Pin.OUT); STBY.value(1)
AIN1 = Pin(14, Pin.OUT); AIN2 = Pin(15, Pin.OUT)
PWMA = PWM(Pin(16)); PWMA.freq(20000)
BIN1 = Pin(17, Pin.OUT); BIN2 = Pin(18, Pin.OUT)
PWMB = PWM(Pin(19)); PWMB.freq(20000)

def drive(left, right):
    # left and right: -65535 to 65535
    AIN1.value(left >= 0); AIN2.value(left < 0)
    BIN1.value(right >= 0); BIN2.value(right < 0)
    PWMA.duty_u16(abs(left))
    PWMB.duty_u16(abs(right))

drive(40000, 40000)   # forward at about 60 percent
time.sleep(2)
drive(30000, -30000)  # spin in place
time.sleep(1)
drive(0, 0)
```

For Wi-Fi, connect once in the background and keep the motor loop on a fixed schedule. A blocking `urequests.get()` inside the drive loop makes the robot stutter; use a timer, a second core or a short socket timeout instead.

```
import network, time

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("your-ssid", "your-password")

for _ in range(20):
    if wlan.isconnected():
        break
    time.sleep(0.5)

print("IP:", wlan.ifconfig()[0] if wlan.isconnected() else "not connected")
```

## Pico W, ESP32 or Arduino?

Choose the Pico W when you want a clean 3.3 V board, lots of PWM, precise PIO timing and a strong MicroPython or C SDK. Choose an [ESP32](https://roboticsengineering.in/components/esp32-devkit-v1/) when you need more RAM, Bluetooth Classic, camera support or a huge library ecosystem. Choose an [Arduino Uno](https://roboticsengineering.in/components/arduino-uno/) when every sensor you own is 5 V and you want the shortest path to a working circuit.

The Pico W is a poor fit for 5 V sensors without level shifting, for heavy Wi-Fi streaming, and for projects that depend on an Arduino shield. It is an excellent fit for a connected rover, a sensor logger or a robot that needs more than six PWM outputs. The [board buying guide](https://roboticsengineering.in/best-arduino-board-for-robotics-india/) compares the whole family in rupee terms.

## Common questions

**Is the Raspberry Pi Pico W a Raspberry Pi?**

No. It is a microcontroller board with an RP2040 chip, not a Linux computer. It runs one program at a time from flash and has no operating system, but it boots instantly and is far easier to power from a battery.

**Can the Pico W run Arduino code?**

Yes, through the Arduino-Pico core, but most examples in this guide use MicroPython. The Arduino core gives you the familiar IDE and libraries at the cost of some setup.

**How do I power a Pico W robot?**

Use a 5 V regulated supply into VBUS, or 3.7–5 V into VSYS. A 2S pack must go through a buck converter. Do not feed the 3V3 pin, and do not run motors from the board.

**Why does my Pico W LED not blink on GP25?**

On the Pico W the LED is connected to the Wi-Fi chip, not GP25. Use Pin("LED") in MicroPython.

**Can I use 5 V sensors with the Pico W?**

Only with a divider or level shifter on the signal line. The GPIOs are 3.3 V and are not 5 V tolerant.

Related: [Pico W component guide](https://roboticsengineering.in/components/raspberry-pi-pico-w/), [Raspberry Pi robot guide](https://roboticsengineering.in/raspberry-pi-robot-guide/), [TB6612FNG motor driver](https://roboticsengineering.in/components/tb6612fng-motor-driver/).

If you are weighing the Pico against other boards, [Arduino vs ESP32 for robotics](https://roboticsengineering.in/arduino-vs-esp32-for-robotics/) puts all three side by side.

The Pico W can act as a ROS 2 device too; see the [micro-ROS tutorial](https://roboticsengineering.in/micro-ros-tutorial/) for the agent setup.

## Sources and further reading

- [Raspberry Pi Pico documentation](https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html) — pinout, power limits and the Pico W radio.
- [MicroPython RP2 quick reference](https://docs.micropython.org/en/latest/rp2/quickref.html) — PWM, ADC and pin APIs used above.
- [Pico W datasheet](https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf) — absolute maximum ratings and 3V3 output current.

Last reviewed: October 2026. Specifications describe the Raspberry Pi Pico W; the newer Pico 2 W uses a different chip. Prices are Indian retail ranges. Not bench-tested by this site.
