Tunabelly Software

TG Pro: Advanced Temperature Monitoring for Apple's M3 series

At Tunabelly Software, we're proud to announce that TG Pro 2.88 stands as the only application offering what we believe to be the most accurate temperature monitoring and fan control for Apple's M3 series Macs. Achieving this milestone involved non-stop research, testing, and dedication to overcoming numerous challenges.

To see the results of our efforts firsthand, we invite you to explore TG Pro. Compatible with macOS 10.13 and later, download now and enjoy a 14-day free trial.

Here are a few of the challenges that were encountered while working on adding support for the Apple Silicon M3, M3 Pro, and M3 Max models.

Challenge 1: Sensor Mapping Complexity

One of the most significant hurdles we faced was deciphering the sensor data for the M3 series, especially for the M3 Max with its robust architecture. Mapping out which sensors correspond to specific CPU and GPU cores was an intricate task, given the sheer number of sensors involved. For the M3 Max, there is a total of 2709 values exposed, some of which are temperatures, some are related to fan speeds, some are related to power usage, although the majority are a mystery (since they are not documented by Apple). Here’s a small sample of the list of potential temperature sensors to try and map:

Tp04 [flt ] 87 (bytes e7 a3 ad 42)
Tp05 [flt ] 93 (bytes b4 70 b9 42)
Tp06 [flt ] 98 (bytes 00 18 c3 42)
Tp0C [flt ] 90 (bytes e3 35 b3 42)
Tp0D [flt ] 96 (bytes b0 02 bf 42)
Tp0E [flt ] 99 (bytes 00 c8 c6 42)
Tp0K [flt ] 84 (bytes c3 5c a7 42)
Tp0L [flt ] 90 (bytes 90 29 b3 42)
Tp0M [flt ] 94 (bytes 00 68 bb 42)
Tp0R [flt ] 89 (bytes 9f 01 b2 42)
Tp0S [flt ] 94 (bytes a3 8a bb 42)
Tp0T [flt ] 99 (bytes 00 b0 c6 42)
Tp0U [flt ] 93 (bytes 63 95 ba 42)
Tp0V [flt ] 100 (bytes 63 95 c8 42)
Tp0W [flt ] 106 (bytes 00 f8 d4 42)

From this small list, how do we know if any are temperatures, and if so, what component do they belong to? It was incredibly difficult, although we believe we have determined the best way to map the values to the CPU & GPU cores, and will continue to refine as we discover more details.

Challenge 2: Diverse Model Support

The diversity of models and configurations within the M3 series added another layer of complexity. Ensuring TG Pro's compatibility across all these variations was no small feat, however we were committed to providing comprehensive support for every M3, M3 Pro, and M3 Max model. Not only were there multiple new models to support (ex: iMac and MacBook Pros), some of the same models could have different versions of the same chip.

For instance, one configuration of the MacBook Pro (16-inch, Nov 2023) might feature an M3 Max with a 14-core CPU and 30-core GPU, while another variant boasts a 16-core CPU with a 40-core GPU.

Challenge 3: Fan Control Limitations

A unique aspect of the M3 series is the hardware-controlled fan activation. Currently, TG Pro can control fans only when the hardware activates them. We're actively exploring workarounds to enhance fan control functionality while adhering to the system's hardware limitations.

Interesting Features of the M3 Max

In the course of the research that was necessary to support these new chips, a few interesting features of the M3 Max were discovered.

CPU Clusters

The M3 Max chip contains three distinct CPU clusters:

The letter-E in a square box. Efficiency: Low-power cores that are highly efficient but less powerful.
The letter-P in a square box. Performance: The first set of powerful cores with higher clock speeds and increased power consumption.
The letter-P in a square box. Performance: The second set of powerful cores.

CPU Core Temperatures:

We observed that under light loads, only the first Performance cluster reports back valid temperatures. This seems to be a deliberate power-saving measure. When the cores from the second Performance cluster are not needed, they are turned off to conserve energy, leading to invalid temperature readings. TG Pro addresses this by employing an alternate method for all CPU cores in this state, resulting in similar temperature reports across these cores. As the utilization escalates, these cores reactivate, allowing for even more accurate temperature measurements.

TG Pro showing CPU Performance core temperatures on the M3 Max when at low and high usage.

Showing the CPU Performance cores at low and high usage for the M3 Max

GPU Core Temperatures:

Similar to the behavior observed in the CPU cores, the GPU cores in the M3 Max chip exhibit a unique temperature reporting pattern. At times of low usage, the temperature sensors for the GPU cores are not actively reporting, which is also a likely measure to conserve power and resources.

In response to this, TG Pro adopts an alternative method for temperature measurement. When the GPU cores increase in activity and the sensors resume operation, TG Pro then provides access to the most accurate temperature readings.

TG Pro showing GPU core temperatures on the M3 Max when at low and high usage.

Showing the GPU cores at low and high usage for the M3 Max