From this I am getting that it is not recommended to overclock either Teensy 4.1 or 4.0 for extended periods due to shortly life spans of the processor? I am also getting that the Teensy 4.0 might hold more heat due to it having a smaller board and not being able to dissipate heat as fast as the Teensy 4.1?good starting note @kd5rxt-mark - there were lots of notes on the T_4.x Beta threads ... went to look and didn't make it back.
Things seem to work without problems at elevated speeds. It should be expected to shorten the life of the unit as the added voltage and heat are beyond design limits, and if heat builds it can halt for over temp (or worse), most notably where cooling is noted as required.
Not sure how much OC was considered? Notes left in Beta thread were that heat sink alone was helpful to a point - fan was better - together was best. T_4.1's larger PCB seemed to dissipate heat better than the smaller T_4.0.
uint32_t set_arm_clock(uint32_t frequency)
From this I am getting that it is not recommended to overclock either Teensy 4.1 or 4.0 for extended periods due to shortly life spans of the processor?
The default panic level is set to 90C, but it only triggers the unhandled exception code (which ends in a reboot) rather than a full shutdown.Isn't there a default shutdown built in for 95c?
Okay, thank you for this information! I really appreciate you guys for helping me out and providing all of this information.Confirm, overclocking is likely to shorten the hardware lifespan. How much, nobody really knows. Better cooling helps, but exactly how much is also not really well known.
According to an NXP app note, underclocking to 528 MHz may lengthen the chip's life span. But even that info is difficult to apply to realistic scenarios, because they test with the chip running at the extreme upper temperature.
You're simply not going to find a highly definitive answer about the actual precise effects of overclocking. If you decide to overclock, you're straying off the path of definitive specifications published by a major corporation (NXP) which are presumably backed up by rigorous design and testing. If you're not mentally prepared for uncertainty, you probably should stay within the official published specs.
Not all ARM processors sport a integrated temperature sensor, including the ARM Cortex M7 processor that NXP made that is used on both the Teensy 4.1 and 4.0 or at least this is what I learned from researching online.Confessions are good for the soul! Sorry for your loss
I don't use the IDE setting (or rather, have it set to 600), just what I set in code. I poll the tempmon each second and have a graph overlay available that stays on top of my UI showing the temp, useful when I was testing more. My UI also doesn't let me set above 912MHz, and I have code that dials the CPU back to the default if the temp polling shows a temp above a predefined value.Settings UI below, showing 70c as that value.....I'll take the risks, but code in some risk mitigation..
View attachment 36729
Isn't there a default shutdown built in for 95c?
Could you maybe share some code with me for changing the clock speed, please? If you want of course.FWIW - I have been running my Teensy 4.1at 816Mhz for 4-5 years now, for long periods at a time each use. All my Teensys subjected to this are still operational. I have a small (10mm x 10mm x 4mm) cheap, copper heatsink sitting on the processor chip and the Teensy is squished between two PCBs, the upper PCB has a 4" screen and lower PCB has other associated components needed for my project. So, not fully enclosed, but not fully open to the air, either. Temperature as measured by tempmon usually hovers around 53°c. I use a custom function to wrap set_arm_clock to change clock frequency on the fly - during startup, when entering/leaving sleep mode and also user-selectable from my UI when I want to try out certain things - again, on the fly. Generally, changing CPU speed when running works fine - only issues I've seen with changing clock speed on the fly are when using FlexIO to drive a parallel screen, and also when setting it to above around 850Mhz, I get crashes which may or may not be due to additionally overclocking PSRAM to 180/198Mhz - yet to spend time diagnosing this. Obviously, my use cases are a fraction of all the possible use cases so I can't state the impact on changing clock speed on the fly has on other operations but for the things I'm doing - reading/writing to an SD card, driving a parallel screen over GPIO, driving a GUI via LVGL, reading the ADC, using the Audio lib to play sounds, take I2S input, etc. I haven't experienced many issues.
EDIT - I have functionality in my code to detect the presence of a CrashReport on startup, before setting CPUSpeed and any other parameters I use for overclocking peripherals, such as PSRAM and SDcard - if CrashReport detected, I set them to defaults rather than my user selected values, so I don't get stuck in a bootloop, in case the values are what are causing the crash.
Overclocking any tech introduces risks, but it's all about your personal risk appetite - if my $30 T4.1 has a 'shortened' life beyond it's current 5 years due to running at 816Mhz, I'm good with that.
Do I need any libraries for this, or is this line of code all I need to change the clock speed? And are there any limitations to the clock speed number? other than what is given as a minimum and maximum clock speed for the processor of course. (184KHz-1.008GHz)The Teensy4 core contains the function below, which lets you set the clock and does its best to keep all of the peripherals working correctly, for example UART baud rates. It's not clear to me calling this function is 100% equivalent to setting CPU frequency via the IDE, but I have used it to reduce the CPU frequency and it does work. Note that the core contains variables F_CPU_ACTUAL and F_BUS_ACTUAL. Despite their being all caps, they are variables, not macros, and they are updated by set_arm_clock().
Code:uint32_t set_arm_clock(uint32_t frequency)
It's not part of the CPU, it's one of the modules that NXP included in the microprocessor. As previously mentioned it is activated by the default startup code with a panic temperature setting of 90C.Not all ARM processors sport a integrated temperature sensor, including the ARM Cortex M7 processor that NXP made that is used on both the Teensy 4.1 and 4.0 or at least this is what I learned from researching online.
So the chip does include a integrated temperature sensor, just not in the CPU itself? Because I do know the processor entirely is composed of a CPU and NPU.It's not part of the CPU, it's one of the modules that NXP included in the microprocessor. As previously mentioned it is activated by the default startup code with a panic temperature setting of 90C.
What else is inside the chip? So far I know a CPU, NPU and a Temperature sensor, do you mind listing maybe some more features I don't know about? Kind of got me excited, maybe I got more that what I thought I got.There is so much more inside the IMXRT chip than just the CPU.
Oh my bad, I didn't notice the link they attached, that's my fault, sorry.https://www.pjrc.com/teensy/IMXRT1060RM_rev3_annotations.pdf
This is the reference already provided by @jmarsh in post #19. Lots of very valuable info, available just by reading !!
Mark J Culross
KD5RXT
do you mind listing maybe some more features I don't know about?