I ran some tests recently in Windows 11 Pro and Fedora KDE on laptop temperature and how the fan reacts to it.
TL;DR at the bottom.
Testing Methodology
Play three 4K videos simultaneously from YouTube and observe cooling fan behavior in the GPU module and the Shell module through sight (looking through the grill with a flashlight), sound (hearing fan spin and air movement), touch (feeling the air movement), and with a laser thermometer (non-medical).
I ran the test described above first on Battery, then on AC in both Fedora KDE (with latest updates) and Windows 11 Pro (with latest updates). I even rebooted in each OS twice to make sure it was consistent. I also made sure the interpose connector was securely in place for each module.
Testing Environment
The Framework 16 was tested on a flat wooden desk, in a large room, underneath a ceiling fan on low with a window open at dusk. The Framework 16 had at least 15.24cm (6 inches) of clearance on the side vents and 10.2cm (4 inches) of clearance on the back vents (when GPU was installed).
Ambient air temperature: 25.6C (78.1F)
Humidity: 76%
Region: North East, USA
Test with Shell Module
On Battery or plugged into AC power, the fans will not spin above (what I can only assume is) their lowest setting. Even as the Keyboard surface temperature hit 39.1C (102.4F). The fans were spinning at such a low speed that I could not hear them, nor could I feel any air coming out of the side vents. The only way I detected that they were moving was by shining a flashlight through the gill from underneath. If the fans were broken or the interpose connector was not properly installed, they would not spin at all.
Test with GPU Module
On Battery or plugged into AC power, the fans behaved as one would expect from a hot laptop. They ramped up after a load was introduced and adjusted their speed accordingly as that load fluctuated. The temperature of the keyboard surface was still above 37.8C (100F), however, the cooling fans were working hard to shed the heat. I could hear the fans clearly and I could feel the air rushing out of the side and back vents. When I took the load away (closing all browser windows), the fans eventually stopped (checked with a flashlight), letting the Keyboard surface temperature rest at about 36.7C (98F).
Possible Causes
A) It could be that the CPU temperatures are either not getting read or not getting reported but the GPU temps are getting read and reported. This would explain why the fans only ramp up with the GPU module and not the Shell Module.
B) It could be a BIOS or Firmware issue.
C) It could be a specific problem with my laptop.
D) It could be some thing entirely different.
Conclusion
This issue highlights the need for BIOS fan control in the Framework 16. The user should be able to either select from a variety of predetermined fan curves during certain conditions (battery or AC, GPU or not) or be able to select fan settings based on specific temperature ranges under certain conditions. If this problem is more than just my laptop, a lot of computers are going to cook themselves and their owners this summer, especially in hotter climates than mine. I would much rather have the option for my laptop to try and cool itself down than to have it cook my hands and wrists.
Pictures
Below are some pictures of how hot the laptop keyboard and internals get while the Shell Module fans practically do nothing.
Readout from the Linux program “glances”.
TL;DR
Framework 16 Shell Module fans don’t do much cooling.
But that GPU though, can haul.
If you have any suggestions for a fix, have a similar experience or have a completely different experience, please post about it in the comments. I want to know if I should write a support ticket or not and if this is a wider problem than just me.