Pi Pico Python speed

Feb 07, 2024 Last reply: 2 years ago 7 Replies

Has anyone measured how fast a pico can do things running Python? Like, to start, wiggling a port pin as fast as possible?



I think the micro Python is an interpreter.


Yes, Python is interpreted. I found

formatting link
think the performance of Micropython and Circuitpython should be almost equal. The nice thing is that you can test your code interactively in the Python interpreter.

Cool. We just did a MicroPython loop to raise and lower a port pin 4 times, brute force inline code, as fast as we could. One up/down cycle takes about 14 microseconds on a Pico, with some jitter.

We'll repeat it in c. I'm guessing that will be 20x faster.

A little off topic, but do you have any suggestions as to good "I don't know squat and I'm old and it doesn't make sense" learn MicroPython resources?

I did a quick test yesterday evening using this few lines of code:

from machine import Pin led=Pin(0,Pin.OUT) switch=Pin(1,Pin.IN,Pin.PULL_UP) while switch.value(): led.toggle()

GPIO0 was an output driving a LED. On GPIO1 I connected a momentary switch to ground. On the output pin I got about 41 kHz until the switch was pressed. With an endless loop: while True: led.toggle() I got 83 kHz. I used Micropython v. 1.20; the Pico run at 125 MHz. I also noticed some jitter. Normally one would not create a rectangle signal this way but use a PWM channel for that task.

I think if you want the fastest cycle time, you'd use the RP2040's PIO state machine, and probably get 62MHz without overclocking, but then that's not really testing MicroPython ...

Although the PIO code could be written in MicroPython with the decorator @rp2.asm_pio().

I should get a Pico to play with ...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required