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 covers current budgeting, and the LM2596 module 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 when you need more RAM, Bluetooth Classic, camera support or a huge library ecosystem. Choose an 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 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, Raspberry Pi robot guide, TB6612FNG motor driver.
If you are weighing the Pico against other boards, 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 for the agent setup.
Sources and further reading
- Raspberry Pi Pico documentation — pinout, power limits and the Pico W radio.
- MicroPython RP2 quick reference — PWM, ADC and pin APIs used above.
- Pico W datasheet — 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.


