Overclocking The Teensy 4.1 and Teensy 4.0

With all the discussion around overclocking and CoreMark recently, I have set up a long-term test operating the Teensy 4.1 at the maximum 1.008GHz clock. It is running CoreMark in an infinite loop which should be fairly stressful, though it isn't doing much with I/O other than updating an LCD on occasion.

The Teensy is outfitted with a 12x12x18mm black anodized aluminum heatsink and is mounted on a baseboard with large ground and power planes that provides some additional heatsinking. It is running open air in a room with an ambient temp of 21C, but with no air flow over the heatsink. So far the CPU temp has been staying right around 60C and the heatsink is sitting at 40C.

If it is removed from the baseboard and the additional heatsinking it provides, the CPU runs about 5C hotter.

1GHZ Test 2.jpg
 
12x12x18mm black anodized aluminum heatsink
That big baseboard taking 5°C is nice - saw that socketed base helps back in earlier tests. I see that is a "NE" board - but those pins and the USB Host not connected missing some opportunity :) ... and the cross pin row too.

... Just don't forget to unset the 'OC cooling' Speed before compile for the next board ... lost one here that way :(

LCD could show HI, LO, and Last CoreMark for some fun
 
@defragster after I took that picture and got the initial readings, I decided to add the VUSB and VBAT headers which also connected to the baseboard to see if it made any additional difference in thermals. Surprisingly, adding those had no effect and the temperature equalized at the exact same point.

All the I/O pins are also brought out to male header pins and have traces that run around the board so that is probably providing some of the heatsink effect as well.

I should have put the CPU setting into the sketch instead of using the IDE for the reason you mention. This morning, I checked the IDE and it was still set for 1.008GHz. Thanks for the reminder.

At 3214 CoreMark iterations and temp still at 60.31C. Temporarily added a strong fan (heat shrink gun set to cool) to the heatsink and it pulled the CPU temp down to 46C.

I made a half hearted attempt to display the CoreMark results on the LCD, but failed miserably. They are way too clever in how they print the results to the serial port and I wanted to keep my changes confined to the .ino file.
 
Maybe add uptime to the LCD rather than loop count? Just in case it hits the thermal limit and restarts, I feel like the uptime resetting might be more obvious than the amount of loops (and you'd know approximately what time it occurred).
 
@jmarsh that's a good thought, I'll add that.

I do have some small FRAM parts laying around that I have been looking for an excuse to play with - Cypress FM24CL16B-GTR. Maybe I'll solder one up and add some sort of logging feature as well since elapsedMillis will roll over on occasion.

Could log number of up days and continually log temp. If a restart is detected by reading a variable in the FRAM, it can pause the program and display the last logged thermal data to see if that was the actual cause or not. Of course then I need Restart Test / Continue touch screen buttons because the shutdown will probably occur because I accidentally unplugged power or we had a power outage. Typical Engineering feature creep.....

The other related item I guess would be the 3.3V Teensy regulator. I never draw power from it on my baseboards and with this setup the regulator is running at a safe temperature of about 34C. If someone was pulling much current off of the Teensy 3.3V and then making it also work harder by overclocking, that regulator could potentially go into thermal shutdown even if the CPU was still happy.

I probably should measure the Teensy power draw at both 600MHz and 1.008GHz to see what the difference is. If I get really energetic, I might add a variable load to the 3.3V output to see at what power draw the regulator thermally shuts down.
 
temperature equalized
Yeah, it will saturate - and all the pins go somewhere on your CB - the two near USBhost GND pins just seem a good stabilizing conduit.

Odd - saw 3273 at 816 MHz and note above says 3214 at 1 GHz? That was new TD beta and 'Faster'.
quick OC run no heat sink at 816 MHz:
CoreMark 1.0 : 3273.59 / GCC11.3.1 20220712 (flags unknown) / STACK

<crosspost>
Was going to mention runtime - maybe store run time in BreadCrumb() so it will show if it ever faults - with added CrashReport(). Or I see FRAM added - could add a button to LOG and note purposeful shutdown coming?
 
3214 was the number of CoreMark iterations that had run so far, not the measured CoreMark speed.

With compiler set for 'Faster' and running Paul's original version of CoreMark I got CoreMark 1.0 : 4043.67 / GCC11.3.1 20220712 (flags unknown) / STACK

I did also compile at 'Fastest' and the CoreMark was actually a little slower, but I didn't record it.
 
Back
Top