If I overclock a Pico 2 to 250MHz, do I need a cooling fan, and which one should I get (i live in australia and it gets really hot)
I’m running at 300MHz for about a week and the temps here have been 37°-38° I’ve had no problems so far.
A microcontroller will not generate enough heat to require external cooling, even when overclocked. They’re not application processors, and are designed to maximise power efficiency over raw performance.
They might still get warm (and “warm” for electronics means “uncomfortably hot” by human standards) when running hard, but never enough to exceed their thermal limits unless something is already very wrong with your circuit. Stick a heatsink on it if it makes you feel better, it won’t hurt, but it won’t provide any tangible benefits either.
387Mhz, 35C. Reaches around 45C on a hot day
Modified hat program…
Running well with a ceramic heatsink…(won’t short anything if it comes loose). RTC happy too as can handle much higher bus speeds.
Soon to be clocked higher when ive milled and attached this beastie. Yes heatsinks DO HELP, mine crashes at higher clocks but clocks go higher the cooler the processor is as proven with my own and others overclocking attempts (678Mhz with heatsink and fan (57C), over 800Mhz with dry ice or huge copper block).
I have had overclocked Pico’s inside cases run continuously for over two years with no additional cooling. I have never had a problem with any of them.
The question was “will my Pico overheat at clock speed X if I don’t have extra cooling”, not “will I be able to overclock my Pico further if I have extra cooling”. The answer is still “no”.
I do not consider overclocking for it’s own sake to be a terribly interesting activity, if I’m honest. So many peripherals (notably flash and USB) stop working at relatively low overclock levels for reasons completely unrelated to heat. And a CPU that is “running at 10GHz!!!zomg” but only an infinite loop out of RAM that can’t even communicate with the outside world may as well just be off. shrug
I am in the same boat; overclocking meh. Perhaps it is because I also mess around with retro computers and the Pico is blazing fast compared to them.
Can’t you change dividers to keep peripherals at lower speed? Is there some documentation about known good configurations?
whats the line of code to show cpu temp?
I was curious about this as well, and have encouraged DigitalDreams to eventually share their code one day as I’ve seen a number of really nice examples of things I imagine others would want to be able to do.
It turns out it’s in the PicoMite manual! (There’s actually a ton of useful info buried in there, but it’s often the sort of thing you won’t find if you don’t know exactly what to look for, so it tends to remain buried and unknown!)
PIN(TEMP)
will return a float with the temperature of the CPU in celcius.
pin(temp)
I often find it’s very noisy though so I average 10-20 readings, truncate decimal places and slow sample every second to improve display. Considering a quality external Vref too…
No, you simply hit the limits of the design. Remember, microcontrollers are not designed for raw performance. That’s not their job. They’re designed for efficiency, predictability, reliability and the ability to interface with the electronics domain. Mucking around with the limits as a hobbyist can be interesting, but requires sacrificing all of those things in a way that’s completely unacceptable for use in any professional application.
i.e. there’s good reasons why the manufacturers set the default clock speeds where they are.
Seeing my screens cracked badly its incredibly difficult to see what’s on it, would you mind running this and telling me if it works properly? / Take a picture of it or something?
' INSCCOIN 2025
OPTION LCDPANEL ILI9341, LANDSCAPE
CLS
CONST X0 = 160
CONST Y0 = 120
CONST SCALE = 15
CONST MAX_POINTS = 40
DIM temps(MAX_POINTS)
DIM sx, sy
SUB Project3D(x, y, z)
sx = X0 + SCALE * (x - y) * 0.866
sy = Y0 - SCALE * (z + (x + y) * 0.5)
END SUB
FOR i = 0 TO MAX_POINTS
temps(i) = 0
NEXT i
DO
FOR i = 0 TO MAX_POINTS - 2
temps(i) = temps(i + 1)
NEXT i
temps(MAX_POINTS - 1) = Pin(TEMP)
CLS
Text 5, 5, "CPU Temp: " + Str$(temps(MAX_POINTS - 1)) + " C", "L"
FOR i = 0 TO MAX_POINTS - 2
z1 = temps(i)
z2 = temps(i + 1)
x1 = i * 0.3
x2 = (i + 1) * 0.3
y = 0
Project3D x1, y, z1
sx1 = sx : sy1 = sy
Project3D x2, y, z2
sx2 = sx : sy2 = sy
LINE sx1, sy1, sx2, sy2, GREEN
NEXT i
PAUSE 500
LOOP
Thank you
I am running at 370mhz. No issues
I don’t have easy access to a pc to transfer to the sd card at the moment. I’m sure someone else will give it a go though…
FYI
I found these small heat sinks that when installed fit inside the PicoCalc case. They are cheap and fit the RP2040 and RP2350A perfectly. They should be installed with the ribs the direction of the length of Pico so air will flow freely from the bottom to the top of the Pico.
I feel they fall into the category “better than nothing.”
Thank you for this link for the heat sinks. I now have a pack on order.