Close

Pico Performance Improvements

A project log for All-In-One Gamma-Ray Spectrometer

More sensitive to gamma radiation than a Geiger counter with the added bonus of telling exactly what's inside your samples!

nuclearphoenixNuclearPhoenix 11/05/2022 at 14:230 Comments

Today I tested different CPU speeds and also the "Optimize" settings from the arduino-pico library in the Arduino IDE. As you might know, the default CPU speed for the Raspberry Pi Pico is 133 MHz, which is fine, but why not try to overclock it, right?

I did 3 separate dead time measurements, all of which ran for some time until the average didn't change anymore. You can see the results for yourself in the table below. It's amazing what you can squeeze out of the Pico without having to do much at all:

SetupEnergy-mode dead time [µs]
Geiger-mode dead time[µs]
1. Stock settings
133 MHz,
Optimize "Small (-Os)"
16.95.6
2. Overclock
250 MHz,
Optimize "Small (-Os)"
11.1 => 66 % of stock
2.9 => 52 % of stock
3. Overclock
250 MHz,
Optimize "Fast (-Ofast)"
9.1 => only 54 % of stock!!!
2.8 => only 50 % of stock!!!

("Averaging" has been set to 1 in all of those cases)


As you can clearly see, the dead time almost halved in setting number 3! That's almost 110 kcps max in energy mode and ~360 kcps max in geiger mode without having to change anything except the two device settings in the Arduino IDE.

Setting number 3 was the most I could get on my device. After that, increasing the CPU speed again would always result in instant crashes. In addition to that, the Pico also gets noticeably warmer than with stock settings, of course. It's not a problem at all, though. I don't know how this will affect the device in the long term, so take all of this with a grain of salt!


I compiled a default-device firmware for setup number 3, which is now just called the "overclocked" firmware. You can download it on GitHub just like the other two files: https://github.com/Open-Gamma-Project/Open-Gamma-Detector/tree/main/software

Please keep in mind that it works fine on the Raspberry Pi Pico I have installed here, but it might not run on yours. On the other hand, 250 MHz might not even be the limit on your Pico. You have to try it out for yourself and with the help of the Arduino IDE sketch, it's very simple to do so and you can't really brick your device via software. https://arduino-pico.readthedocs.io/en/latest/ide.html#cpu-speed


Enjoy!

Discussions