Last Updated on 26th July 2026 by peppe8o
When building battery-powered IoT devices or embedded electronics, power management is critical. With the arrival of the Raspberry Pi Pico 2 W (powered by the new RP2350 dual-core microcontroller), many makers are wondering: How does its power consumption compare to the original Raspberry Pi Pico W (RP2040)?
In this article, I share real-world current draw measurements (in mA) across various operational modes, including CPU loops, WiFi active/power-saving modes, underclocking, and deep sleep.
For this scope, I used a Digital Multimeter. I will show you the wiring diagram in order to use this tool correctly, and I will show you the measurements that I got with different tests on different MicroPython codes. This is a useful exercise when you need to power the Raspberry PI Pico from external batteries or power the Raspberry PI Pico with solar cells.
I also use an external 18650 battery to perform my test, as there isn’t a non-invasive way to put the digital multimeter in series with the micro USB port of our Raspberry PI Pico. On the other hand, this means that we need to save our MicroPython test code as “main.py” in our Raspberry PI Pico storage to get it run automatically at the Pico boot.
Finally, I will show you a few tricks to reduce the Raspberry PI Pico power consumption.
🛠 My Hardware & Testing Setup
To get accurate, real-world data, I powered both boards using a standard 18650 Li-Ion battery connected via a breadboard and measured current draw using a digital multimeter wired in series with the positive power rail.
Key Operating Conditions:
- Microcontroller Boards: Raspberry Pi Pico W (RP2040 + CYW43439) vs Raspberry Pi Pico 2 W (RP2350 + CYW43439).
- Power Source: Single 18650 Li-Ion cell (~3.7V–4.2V nominal into VSYS pin).
- Firmware Environment: Official MicroPython builds for RP2040 and RP2350.
- Measurement Tool: Digital Multimeter configured in DC Current mode ().
Wiring Note: To measure current draw accurately, place your multimeter in series between the battery positive output and the Pico’s VSYS pin. Avoid measuring via USB if you want to isolate true board power consumption without USB controller overhead.
📊 Benchmark Results: Pico 2 W vs Pico W
Below is the side-by-side current draw comparison between the Raspberry Pi Pico 2 W and the original Pico W under identical test conditions:
| Test Scenario / Operating State | Pico 2 W (RP2350) | Pico W (RP2040) | Performance Trend |
|---|---|---|---|
| Power On (Idle, no tasks) | 38 mA | 38 mA | Parity (0%) |
| Built-in LED ON | 41 mA | 41 mA | Parity (0%) |
| WiFi (Power-Saving Mode) | 60 mA | 43 mA | +39.5% (Pico 2 W uses more) |
| WiFi (Power-Saving DISABLED) | 80 mA | 72 mA | +11.1% (Pico 2 W uses more) |
| WHILE Loop Execution | 40 mA | 43 mA | -7.0% (Pico 2 W more efficient) |
| FOR Loop Execution | 40 mA | 43 mA | -7.0% (Pico 2 W more efficient) |
| time.sleep() Idle | 34 mA | 39 mA | -12.8% (Pico 2 W more efficient) |
| machine.deepsleep() | 22 mA | 16 mA | +37.5% (Pico W lower standby) |
| CPU Underclocked to 20MHz | 23 mA | 30 mA | -23.3% (Pico 2 W significantly lower) |
What We Need
As usual, I suggest adding from now to your favourite e-commerce shopping cart all the needed hardware, so that at the end you will be able to evaluate overall costs and decide if to continue with the project or remove them from the shopping cart. So, hardware will be only:

- A common computer (maybe with Windows, Linux or Mac). It can also be a Raspberry PI Computer board
- Raspberry PI Pico microcontroller and/or Raspberry PI Pico 2 W (with a common micro USB cable)
- Digital Multimeter
- 18650 battery with 18650 case
- breadboard (optional)
- dupont wirings
Step-by-Step Procedure
Prepare the Wiring to test Raspberry PI Pico W Power Consumption
Please check that your Digital Multimeter is set to the correct DC Amperometer settings.
As we’re going to measure the amperes to check Raspberry PI Pico W / 2W power consumption, our series connection will use the schema according to the following picture:

If you prefer to set the wiring with the help of a breadboard, the diagram will be like the following:

Please find below some pictures from my home lab:


Prepare the MicroPython code
Prepare the Raspberry PI Pico MicroPython firmware according to my First steps with Raspberry PI Pico for Beginners. In the following chapters, I will show you the code to save as “main.py” in your Raspberry PI Pico storage.
To perform the tests, please use the code in the following chapters with this procedure:
- Plug the micro USB cable between the Raspberry PI Pico and the computer with Thonny
- Upload the MicroPython code to your main.py file in your Raspberry PI Pico storage
- Unplug the micro USB cable
- Connect the battery to your circuit
- Check the measurements
- Disconnect the battery
- Plug the micro USB cable for code editing needs
Test 1: Power Consumption Blinking the Built-In LED
In this test, we’ll compare the power consumption between Raspberry PI Pico W and Raspberry PI Pico 2 W by doing nothing more than switching on and off their built-in LEDs. We’ll compare the measures when the LED is on and when it is off. The MicroPython code is the following, where the timer frequency sets how many times the LED will toggle in 1 second (0.2 means 1 time every 5 seconds):
from machine import Pin, Timer
led = Pin('LED', Pin.OUT)
timer = Timer()
def blink(timer):
led.toggle()
timer.init(freq=0.2, mode=Timer.PERIODIC, callback=blink)
The results I’ve measured in my digital multimeter are:
- Raspberry PI Pico W
- LED off: 38 mA
- LED on: 41 mA
- Raspberry PI Pico 2 W
- LED off: 38 mA
- LED on: 41 mA
This means that both microcontrollers use around 38 mA to run just the MicroPython firmware code, while powering on the built-in LEDs requires around 3 mA in addition.
Test 2: Power Consumption with WiFi (with WiFi power saving mode)
In this test, I will wait for the WiFi to connect and check how much additional power is required from the WiFi module. Please note that usually the WiFi uses more or less power depending on the distance from the wireless router, so this value can change accordingly to your physical distance.
The code to perform this test follows, where you need to adjust your 2-letter country code, your WiFi SSID and password. Additional note: by default, the Pico MicroPython firmware enables the WiFi with a “power saving mode”.
from machine import Pin
import network, rp2, time
# set your WiFi
rp2.country('IT')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('Your_SSID', 'Your_WiFi_Password')
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
time.sleep(1)
Once connected to the battery, I will check that the boards are connected to my WiFi by looking at my router clients and with a ping test.
Here is the comparison between Raspberry PI Pico W and Raspberry PI Pico 2 W power consumption:
- Raspberry PI Pico W
- WiFi connected: 43 mA
- Raspberry PI Pico 2 W
- WiFi connected: 60 mA
This means that, with WiFi power-saving mode, the additional power is really low at 5 mA for the Pico W, while the Pico 2 W require mode additional power.
Test 3: Power Consumption with WiFi (withOUT WiFi power-saving mode)
Now, let’s try removing the power-saving mode from our MicroPython code. This can be done by explicitly setting wlan.config(pm = 0xa11140) as in the following code:
from machine import Pin
import network, rp2, time
# set your WiFi
rp2.country('IT')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# set power mode to get WiFi power-saving off (if needed)
wlan.config(pm = 0xa11140)
wlan.connect('Your_SSID', 'Your_WiFi_Password')
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to connect:")
time.sleep(1)
The results:
- Raspberry Pi Pico W
- WiFi (power-saving mode DISABLED): 72 mA
- Raspberry Pi Pico 2 W
- WiFi (power-saving mode DISABLED): 80 mA
Test 4: Power Consumption with a While Loop
In this test, I will give my boards something to do while I check the power consumption.
The job will be just running a simple while loop without any specific computing task. The code will also give a visual warning to the user that the task has started with the built-in LED. At the program start, it will switch on for 2 seconds and then turn off. After this, the measurement will start:
from machine import Pin
import time
led = Pin('LED', Pin.OUT)
led.value(1) # LED ON warning that the program is running
time.sleep(2)
led.value(0) # LED OFF warning that measurement can now be done
while True:
pass
The test results:
- Raspberry Pi Pico W
- while loop: 43 mA
- Raspberry Pi Pico 2 W
- while loop: 40 mA
Test 5: Power Consumption with a For Loop
The other common loop in MicroPython is the FOR loop. In this case, I will make this loop run along with a variable (“i”) increasing at each loop run. Again, the built-in LED will help for a visual notification when the test measurements can start:
from machine import Pin
import time
led = Pin('LED', Pin.OUT)
led.value(1) # LED ON warning that the program is running
time.sleep(2)
led.value(0) # LED OFF warning that measurement can now be done
for i in range(0, 10000000):
pass
led.value(1) # LED ON warning that the test finished
This test got a power consumption equal to the previous test:
- Raspberry Pi Pico W
- for loop: 43 mA
- Raspberry Pi Pico 2 W
- for loop: 40 mA
Reducing Raspberry PI Pico W / 2 W Power Consumption
In this chapter, I’ve performed a few tests to check how the power consumption can be reduced and how much we can save.
Test 1: Reduce Raspberry PI Pico W / 2W Power Consumption with time.sleep
The first test is to check if the time.sleep() function from MicroPython can give us any benefits. The following code will use time.sleep() for 5 seconds:
from machine import Pin
import time
led = Pin('LED', Pin.OUT)
led.value(1) # LED ON warning that the program is running
time.sleep(2)
led.value(0) # LED OFF warning that measurement can now be done
time.sleep(5)
led.value(1) # LED ON warning that the test finished
The result of this test is that the time.sleep() function is just to make time pass… as it didn’t reduce our amperage:
- Raspberry Pi Pico W
- sleep test: 39 mA
- Raspberry Pi Pico 2W
- sleep test: 34 mA
Test 2: Reduce Raspberry PI Pico W / 2 W Power Consumption with machine.deepsleep()
The machine.deepsleep() is a different kind of command and really useful to save batteries.
It is important to understand that the deepsleep() command will break all the active connections and put your Raspberry PI Pico W / 2W in something like a standby mode. During this period, you can’t connect and/or stop the microcontroller without cutting the power. For this reason, I’ve increased the time.sleep() in the setup phase to 10 seconds, in order to give you the ability to stop this main.py program from Thonny after the test is finished and the Pico comes back to the computer connection.
The standby period is expressed in milliseconds. After this period, the microcontroller will reset and start your main.py program again from the beginning.
from machine import Pin
import time
led = Pin('LED', Pin.OUT)
led.value(1) # LED ON warning that the program is running
# Here I added more sleep time in order to recover the Pico in this time frame after the test ends
time.sleep(10)
led.value(0) # LED OFF warning that measurement can now be done
machine.deepsleep(5000)
This time, we get an excellent power reduction:
- Raspberry Pi Pico W
- deepsleep test: 16 mA
- Raspberry Pi Pico 2W
- deepsleep test: 22 mA
Test 3: Reduce Raspberry PI Pico W / 2W Power Consumption by Changing CPU Frequency
The Raspberry PI Pico boards have a CPU frequency, set by default to their max in MicroPython, that can be changed to allow us to reduce performance and save power. We can use the machine.freq() command without variables to get the current value:
>>> %Run -c $EDITOR_CONTENT
>>> machine.freq()
125000000
The same command allows us to express the frequency to set by putting the Hz value as input.
Theoretically, the Raspberry PI Pico boards can run at a minimum of 2 kHz. From a practical point of view, at least with MicroPython, I’ve experienced that setting CPU frequency values lower than 20MHz will return the following error:
>>> %Run -c $EDITOR_CONTENT
Traceback (most recent call last):
File "<stdin>", line 10, in <module>
ValueError: cannot change frequency
For this reason, my test will check the power consumption at the lowest value acceptable from MicroPython. I will use a 5-second time frame to check the measurements, before restoring the CPU frequency to my default:
from machine import Pin
import time
led = Pin('LED', Pin.OUT)
led.value(1) # LED ON warning that the program is running
time.sleep(2)
led.value(0) # LED OFF warning that measurement can now be done
machine.freq(20000000) # reduce to 20MHz
time.sleep(5)
machine.freq(125000000) # restore to 125MHz
led.value(1) # LED ON warning that the test finished
This test shows a good power saving, even keeping the Pico always ready and operating:
- Raspberry Pi Pico W
- frequency test: 30 mA
- Raspberry Pi Pico W
- frequency test: 23 mA
🔍 Key Findings & Analysis
1. Superior Core Efficiency Under CPU Load
The RP2350 core in the Pico 2 W demonstrates noticeable architectural improvements during active CPU processing. During simple WHILE or FOR loops, the Pico 2 W consumes 40 mA compared to 43 mA on the Pico W (-7% reduction). When idling in time.sleep(), power consumption drops to 34 mA vs 39 mA (-12.8%).
2. Massive Power Savings with CPU Underclocking (20 MHz)
If your IoT project reads sensors periodically and doesn’t demand 150MHz clock speeds, downclocking the processor is extremely effective. Lowering the CPU clock frequency to 20 MHz on the Pico 2 W reduces baseline current draw to just 23 mA (a 23.3% drop compared to the Pico W’s 30 mA).
3. WiFi Power Consumption Trade-Offs
While active CPU execution is more efficient on the RP2350, wireless transmission behaves differently. With WiFi enabled in power-saving mode, the Pico 2 W draws 60 mA vs 43 mA on the Pico W. With power-saving disabled, peak draw hits 80 mA on the Pico 2 W vs 72 mA on the original board.
4. Deep Sleep Standby Draw
In software-triggered deep sleep (machine.deepsleep()), the original Pico W currently achieves a lower baseline draw of 16 mA, whereas the Pico 2 W draws 22 mA. For long-term battery nodes relying exclusively on sleep modes without power gating, the Pico W maintains a slight edge.
🔋 Tips to Maximise Battery Life in Your Pico Projects
- Leverage CPU Underclocking: If your MicroPython script spends time waiting for slow hardware peripherals, reduce CPU frequency using
machine.freq(20000000). - Keep WiFi Power-Saving Enabled: Ensure your MicroPython network config uses standard power-saving mode to avoid pulling 80 mA continuously.
- Use Hardware Power Gating for Long Sleep: For ultra-low power applications lasting months or years on battery, use an external RTC/timer circuit (like a TPL5110) to cut power completely via the 3V3_EN pin rather than relying solely on software deep sleep.
What’s Next
Interested in doing more with your Raspberry PI Pico? Try looking at my Raspberry PI Pico tutorials for useful and fun projects!
Enjoy!
In standard idle mode, the Pico W draws around 38 mA. When WiFi is active, current draw ranges between 43 mA (power-saving enabled) and 72 mA (power-saving disabled).
Yes. Supplying power from a 3.7V–4.2V 18650 Li-Ion cell into the VSYS pin powers the internal buck-boost regulator cleanly across all operational modes.
If your application performs intensive CPU computations or runs continuous MicroPython routines at reduced clock speeds, the Pico 2 W is more power-efficient. If your project stays in deep sleep for 99% of its life and only wakes up briefly to send a WiFi packet, the original Pico W offers a lower standby baseline.

Open source and Raspberry PI lover, writes tutorials for beginners since 2019. He's an ICT expert, with a strong experience in supporting medium to big companies and public administrations to manage their ICT infrastructures. He's supporting the Italian public administration in digital transformation projects.








Would be interesting to see this mode: Vcc 1.8V, freq. 20Mhz (🫤MicroPython), deep sleep.
This is dangerous. You should not connect any battery directly to an LED without a resistor, especially a lithium battery…
Hi Daniel. The first images are just examples to understand how a multimeter works. Even if it has a resistance, you are right that in a real case a resistor should be connected in series with the LED
Your pic with the batttery, led and multimeter on ‘amps’ range will burn the led or blow the fuse in the multimeter
You are right, the LED setup is just an example to show how a multimeter works. I’ll update the pictures with a more generic load and source. Many thanks for your feedback