About • Download • Bootable USB • Flashing An SMC • Compatibility • Disclaimers • Acknowledgements • Donate
⚠ This project is now read-only, new versions will be available at https://github.com/MuertoGB/SMCFT
This bootable shell is used to program a Mac LM4F (Stellaris) System Management Controller (SMC) in EFI mode with the correct stock firmware, this enables a technician to replace a faulty SMC with a donor from a non-matching machine. This not only saves time, but money, as a specific donor SMC isn't necessary to have 'on hand'; simply take a donor SMC* from another board, replace it, and flash with this handy bootable software.
⚠ *Currently, a full list of SMC boot compatibility between boards has not been established, I recommend you keep the platform and GPU type the same (MacBook, iMac, Mac Mini), (iGPU, dGPU).
Beware of imposters like this jackoff: https://www.youtube.com/watch?v=mHCduTj01Zo
Version | Release Date | Latest |
---|---|---|
V1.0.7 | 18th Feb 2023 | Yes |
V1.0.6 | 31st Jan 2022 | No |
📔 See the full Changelog.
To begin, format a USB disk in ExFAT, FAT32, VFAT or HFS+ for use with SMCTool.
⚠ FAT32 using a GUID Partition Table (GPT) is recommended.
Once the memory stick is ready, you can do any of the following:
- Option A: Manually copy all files from the ISO to the formatted memory stick.
- Option B: Write the image to the memory stick with ddrescue, Passmark imageUSB, or similar.
- Option C: Use a bootable USB creation tool and select the ISO, or image as the source file, and the memory stick as the destination.
❕ Extended instructions here.
- Remove the internal storage drive.
- If you have a portable device, plug in the power adapter.
- Insert your USB stick, then power on the device whilst holding
Option ⌥
. - Load into SMCTool from the boot menu and let 'startup.nsh' run.
- Type the 'boardnumber.nsh' you want to flash, e.g:
820-00165.nsh
, then press return; the script will then flash the SMC. - Type
exit
to reboot, or power off machine to complete the process.
⚠ You may need to perform an NVRAM reset after flashing an SMC.
Why must the SMC be flashed?:
Each System Management Controller is specifically programmed for it's counterpart board, and is in charge of managing video, hibernation, battery charging, thermal and power management. Incorrect or mismatched firmware causes erratic behaviour such as broken display resolution, high fan speed, throttling, and crashing.
I flashed an incorrect firmware:
No problem, just type the correct board number and the correct payload will be flashed. If you restart, or power off after an incorrect payload flash you may brick the device. If a system is somehow rendered 'bricked', and cannot get to the boot menu, you must replace the SMC again. You can always put the incorrectly flashed SMC aside for future use on a board it was 'accidentally' programmed for.
💻 Quick video of flashing an SMC here.
Devices:
Platform | Supported? | Planned? |
---|---|---|
MacBook | ✅ | N/A |
Mac Mini | ✅ | N/A |
iMac | ❌ | In development |
Mac Pro | ❌ | Researching |
ℹ See the compatibility information for a full list of supported models.
System Management Controllers:
SMC | Supported? | Planned? |
---|---|---|
LM4F BGA157 | ✅ | N/A |
TM4C BGA168 | ❌ | Researching |
F2117LP BGA145 | ❌ | No |
ℹ Older single file payloads for boards such as 820-3115, 3332, and 3462 are currently being worked out. Support may be added in the future.
I'm not responsible if you do something wrong, if you're here I expect you to know what you're doing. Where I do my utmost to verify all information to my best ability, I'm not responsible for any mistakes my end either.
This is not a magical 'fix my Mac' tool, it has a specific purpose, which is flashing correct payloads to a System Management Controller with incorrect firmware. Do not flash your SMC if you have no reason to.
🖼 Project icon by KBuHT on macOSicons.
💡 This tool is based on the work from logi.wiki.
🎥 SMC Tool tested by Paul L Daniels on YouTube.
⭐ Many Thanks To ⭐
- Paul L Daniels for development help, and the kick to finish this project.
- Logi.wiki for the original work, which I could base this project on.
- EineWildeStehlampe for information and help regarding UEFI.
- theSmudge for being a great help verifying information.
- Nobluesky for verifying iMac board-id's.