67 Commits

Author SHA1 Message Date
Serhiy Mytrovtsiy
08a5b0260b fix: cherry-pick changes from #2983 to fix the automatic fan mode after sleep 2026-03-01 18:11:23 +01:00
Alex Goodkind
20030a2a1c feat: added better fan control for M3/M4 Apple Silicon (#2924)
* Fix Ftst key handling for Apple Silicon fan control

* Update CFBundleVersion to 747 in Info.plist

Signed-off-by: Alex Goodkind <alex@goodkind.io>

* Update TeamId and SMC.Helper certificate identifier in Info.plist

Signed-off-by: Alex Goodkind <alex@goodkind.io>

* Add debug logging to SMC fan control functions

* Use writeWithRetry for Apple Silicon fan control writes and bump helper version to 1.0.3

* SMC fan control: serialize ops, Ftst timing, verification, logging

- Helper: serial queue for setFanMode/setFanSpeed/resetFanControl
- smc.swift: 3s wait after Ftst=1, longer mode retry (100ms), SMC result logging
- helpers: per-fan verification with cancel-on-supersede, clearer logs
- smc.swift: neutral write logs (no 'succeeded'), FAILED on error

* - Updated error handling in SMCHelper to suppress expected XPC errors (codes 4097 and 4099) during helper updates/restarts.
- Removed unnecessary debug print statement in ModeButtons for improved log clarity.

* Update version numbers in Info.plist files to 752 and change TeamId for SMC.Helper

* Add FanMode.auto3 and isAutomatic, re-add F%dMd write in automatic path, use isAutomatic in countManualFans; bump SMC Helper to 1.0.24

* Apple Silicon fan control: direct-first writes, strip diagnostic bloat

Try direct F%dMd=1 write before Ftst unlock (instant on M1, fallback
on M3/M4). Remove verification system, diagnostic prints, dead code.

* Apple Silicon fan control: direct-first writes

Try direct F%dMd=1 write before Ftst unlock (instant on M1,
fallback on M3/M4).

Bump helper to 1.0.2/3, Stats/Widgets to 751.

---------

Signed-off-by: Alex Goodkind <alex@goodkind.io>
2026-02-22 15:17:23 +01:00
Serhiy Mytrovtsiy
9ae1388428 feat: added CPU, GPU, ANE, RAM, and PCI powers from IOReport (#2346) 2025-02-08 10:55:48 +01:00
Serhiy Mytrovtsiy
7e833176d9 feat: moved all modules to the new way of reader mode with a small refactoring 2024-02-10 17:03:47 +01:00
Serhiy Mytrovtsiy
ec4510643f lang: added translation for left, right and fastest fans 2023-12-30 19:49:07 +01:00
Serhiy Mytrovtsiy
14e29c4d60 feat: adjusted CPU and GPU sensors for m2 apple silicon (#1286) 2023-08-05 23:48:45 +02:00
Serhiy Mytrovtsiy
32bd6ff32c feat: added module types to the readers 2023-06-29 17:46:40 +02:00
Serhiy Mytrovtsiy
1e0ba3b61f feat: moved all reader's values to the Codable protocol 2023-06-27 17:09:38 +02:00
Serhiy Mytrovtsiy
d08e8be203 fix: fixed fan mode restore after sleep (#1436) 2023-04-28 21:03:32 +02:00
Marc
0e867e9b1c feat: increased DC In Voltage cutoff to match real world measurements (#1356) 2023-03-19 16:34:31 +01:00
Serhiy Mytrovtsiy
f0fd2f961c feat: cut off low dc in voltage and current (#1343) 2023-03-10 20:25:38 +01:00
Serhiy Mytrovtsiy
938554f738 feat: changed Sensor type to the Fan for the Fastest Fan. That allows showing RPM or percentage for the Fastest Fan based on the Fan value setting (#1335) 2023-03-07 20:54:50 +01:00
Serhiy Mytrovtsiy
eb3b6eb681 feat: changed RPM to the percentage for the hottest fan (#1335) 2023-03-07 18:22:39 +01:00
Serhiy Mytrovtsiy
1680b9331b fix: fixed a race condition when switching the Unknown sensors (#1241) 2022-12-22 18:13:34 +01:00
Serhiy Mytrovtsiy
d5f01865c8 fix: prevent a crash when the sensors read is running, but the sensors list was changed (by enabling/disabling the unknown sensors) (quick fix) (#1171) 2022-11-15 16:12:33 +01:00
Serhiy Mytrovtsiy
fa15d267f8 fix: corrected the initialization of the calculated sensor 2022-11-14 17:53:55 +01:00
Serhiy Mytrovtsiy
91033585d1 fix: add fans to the sensors list when initializing the sensors list 2022-11-13 15:51:39 +01:00
Serhiy Mytrovtsiy
ebde0239f1 feat: added an option to show unknown sensors 2022-11-11 14:27:31 +01:00
Serhiy Mytrovtsiy
1e15d6590a fix: fixed Total System Consumption and Average System Total calculation. Omit if the time diff is less than 0 (#1092) 2022-09-21 17:33:53 +02:00
Serhiy Mytrovtsiy
135eacec90 feat: added M2 sensors support (#1012) 2022-08-27 15:35:26 +02:00
Samuel Reed
400fbcfaee feat: add total energy consumption (#976) (#1037)
* feat: add total energy consumption (#976)

* feat: add average system total power
2022-08-21 12:53:42 +02:00
Serhiy Mytrovtsiy
39e6d41b14 feat: omit current sensors with more than 100A (#943) 2022-05-22 19:03:36 +02:00
Serhiy Mytrovtsiy
43a22909f5 fix: fixed CPU and GPU sensors list filtering when initialization average sensors (#892)
feat: added updates for average and hottest SOC
2022-04-07 20:06:23 +02:00
Serhiy Mytrovtsiy
41a4dd6385 fix: append HID sensors keys to average sensors list when for macs with M1 (#892) 2022-03-29 20:14:07 +02:00
Serhiy Mytrovtsiy
809563d19f fix: fixed disabling average sensors when disabling HID sensors (#888) 2022-03-21 18:02:30 +01:00
Serhiy Mytrovtsiy
7cd57770a1 v2.7.6 2022-03-06 12:33:45 +01:00
fireblue
fbdc3f9e24 feat: added "Fastest Fan" value in calculated sensors. (#864) 2022-03-06 12:26:19 +01:00
Serhiy Mytrovtsiy
d5d9d5404c feat: added average and hottest CPU and GPU sensors (calculated) to the sensors list (#826) 2022-02-10 17:23:18 +01:00
Serhiy Mytrovtsiy
0da6f3c4b2 fix: fan mode detection on start 2022-02-04 18:36:39 +01:00
Serhiy Mytrovtsiy
741c639e2e feat: added fans name 2022-01-25 16:53:02 +01:00
Serhiy Mytrovtsiy
ab4cf5f143 fix: prevent crash if no HID sensors are available 2022-01-17 22:56:47 +01:00
Serhiy Mytrovtsiy
0153731d34 feat: added new SMC keys for Apple Silicon sensors (#700) 2022-01-15 13:57:09 +01:00
Serhiy Mytrovtsiy
98ee87fbf8 feat: added an option to enable/disable HID sensors for mac with Apple Silicon (disabled by default)
feat: added option to save fan speed to the Sensors module
2022-01-14 20:34:39 +01:00
Serhiy Mytrovtsiy
ddeeb2c59f feat: merged HID and SMC sensors readers. Also, it's improved CPU consumption on Apple Silicons MacBooks (10% -> 4-5%). 2022-01-11 17:51:11 +01:00
Serhiy Mytrovtsiy
8ea40901ce feat: added current sensors (#766) 2022-01-03 17:26:50 +01:00
Serhiy Mytrovtsiy
f67aa5446c fix: fixed Apple Silicon sensors naming (#756) 2021-12-22 17:52:41 +01:00
Serhiy Mytrovtsiy
a02df2203a fix: fixed sensors types (mixes current and voltage) on apple silicon (#740) 2021-12-09 18:01:54 +01:00
Serhiy Mytrovtsiy
23de767e53 feat: changed value of the sensor when read is not available. Was: read unsuccessful -> do not change the value (previous is visible). Now: read unsuccessful -> 0 value. (#668) 2021-10-21 18:25:42 +02:00
Serhiy Mytrovtsiy
214fdcb8e3 fix: limit the sensor max value for Apple Silicon (#652) 2021-09-30 17:31:04 +02:00
Serhiy Mytrovtsiy
fc741b9bbc feat: added translation for Fan (#641) 2021-09-24 18:51:51 +02:00
Serhiy Mytrovtsiy
20e2d6a311 feat: added a new Apple Silicon sensor groups: Hottest CPU, GPU, and SOC (#610) 2021-09-10 15:56:59 +02:00
Serhiy Mytrovtsiy
a58077d817 fix: fixed duplicating sensor on Apple Silicon (#607, #608, #610) 2021-09-06 22:35:30 +02:00
Serhiy Mytrovtsiy
f31f3fbfb7 feat: added better sensors name for Apple Silicon sensors 2021-09-04 05:35:42 +02:00
Serhiy Mytrovtsiy
a8ea749afb feat: added average values for the CPU/GPU/SOC sensors (Apple Silicon) 2021-09-03 20:02:00 +02:00
Serhiy Mytrovtsiy
abbcbf3a7e fix: fixed Sensors module availability when FNum is not present in the SMC (#580) 2021-08-09 14:01:07 +03:00
Serhiy Mytrovtsiy
74031a6e3c feat: moved Fans to the top at the Sensors. Refactor the Sensor type to be more generic. Added Fan structure to the Sensors module. (first steps to merge Fans and Sensors modules) 2021-08-07 12:33:23 +03:00
Serhiy Mytrovtsiy
a3a002a2d3 feat: removed os.log and moved to NextLog 2021-06-26 13:38:45 +02:00
Serhiy Mytrovtsiy
13707090eb feat: combine StatsKit and ModuleKit in the one framework: Kit 2021-06-04 19:37:29 +02:00
Serhiy Mytrovtsiy
ea4d55e0b7 feat: sort apple silicon sensors alphabetically (#488) 2021-05-24 18:07:42 +02:00
Serhiy Mytrovtsiy
c21508d223 fix: fixed memory leak in the Sensors module on Apple Silicon (#417) 2021-05-08 20:38:26 +02:00