Skip to content
Home » MacBook Hardware Test: Apple Diagnostics Codes Explained

MacBook Hardware Test: Apple Diagnostics Codes Explained

The keystroke that starts a hardware test on a MacBook depends entirely on which chip is inside it, and most instructions floating around still describe only the Intel method. If you hold D on an Apple silicon Mac and wait for something to happen, nothing will. Here is what each machine actually needs, what the resulting reference codes mean, and — the part almost nobody covers — which failures this test cannot see at all.

Before you start the test

Apple’s setup instructions are short but they matter, because several reference codes are triggered by peripherals rather than by broken hardware. Apple’s support documentation asks you to shut the Mac down, then disconnect every external device except keyboard, mouse, display, Ethernet connection if applicable, and the connection to AC power. It also asks that the Mac sit on a hard, flat, stable surface with good ventilation — a thermal test on a machine buried in a duvet is not measuring what you think it is.

If the Mac will not shut down normally, Apple’s guidance is to press and hold the power button for up to 10 seconds until it turns off. On laptops with Touch ID, the Touch ID button is the power button.

Starting Apple Diagnostics on Apple silicon

On any Mac with an M-series chip, the sequence per Apple’s documentation is:

  1. Press and hold the power button (or Touch ID button) on the shut-down Mac.
  2. Keep holding as the Mac turns on and loads startup options. Release the power button when the word Options appears.
  3. Press and hold Command (⌘)-D until the Mac restarts into diagnostics.

That third step is where a lot of published advice goes wrong. Apple Diagnostics is not one of the icons you click on the Options screen — there is no visible button for it. You reach it from that screen with Command-D, which is undiscoverable unless someone tells you. Guides that say “hold Option and select Apple Diagnostics” are describing something that does not exist on the startup options screen.

Starting Apple Diagnostics on an Intel Mac

Intel Macs use the older and far better-known method: turn the Mac on, then immediately press and hold the D key as it starts up. Release when you see a progress bar or a language picker.

Apple’s documentation adds a fallback that is worth knowing before you conclude your keyboard is dead: if the D key does not work, press and hold Option (⌥)-D at startup instead. Option-D starts diagnostics over the internet rather than from the local disk, which is also why it still works on a machine whose recovery partition is damaged.

What macOS Tahoe 26 changed about the test

This is a genuine behavior change and it is easy to mistake for a bug. Apple’s support documentation states that in macOS Tahoe 26 and later, you are asked to choose a specific diagnostic to run — such as a diagnostic for your built-in display, keyboard, or trackpad. In earlier versions of macOS, this selection was automatic.

So if you remember Apple Diagnostics as a single unattended sweep that just ran and reported back, and your Mac on Tahoe 26 now sits waiting for you to pick something, nothing is broken. Practically, it means a Tahoe 26 run is only as broad as the diagnostics you select. If you choose the display diagnostic and it returns a clean result, that is not a clean bill of health for the machine — it is a clean result for the display.

Apple also notes that when you are asked to review terms and conditions, you might be offered the option to run diagnostics offline. Apple’s advice is to click Run Offline unless Apple Support or a repair technician has initiated an online session for that Mac.

Apple Diagnostics reference codes

When the test finishes it shows one or more reference codes. Apple publishes the full list, and the table below consolidates it. The single most useful entry is the first one: ADP000 means no issues found — it is a pass, not an error, and it alarms people every time.

Codes are grouped by prefix. Where Apple documents a step you can take yourself, it is in the last column; where it does not, the code points at a component and the realistic next move is service.

CodeWhat it points atSomething you can try first
ADP000No issues found — this is a passNothing. The test found nothing wrong.
ALS001Ambient light sensor
BMT001, BMT003–BMT005Touch ID sensor
CEH001, CEH002Case handleThe housing latch may be unlocked. Verify it is fully locked, then rerun.
CNT001–CNT007Ethernet hardware
CNW001, CNW003–CNW006, CNW009Wi-Fi hardware
CNW007, CNW008No Wi-Fi networks detected — either none in range, or the Wi-Fi hardwareRerun the test within range of a Wi-Fi network.
DFR001Touch Bar
IMU001Accelerometer or gyroscope
LAS001–LAS004Open/close (lid) sensor
NDC001, NDC003–NDC006Camera
NDD001USB hardwareDisconnect everything except keyboard, mouse and Ethernet adapter, then rerun.
NDK001, NDK003, NDK004Keyboard
NDL001, NDL002Bluetooth hardware
NDR001, NDR003–NDR006, NDR008Trackpad
NDR007An external input device was detectedDisconnect external input devices and rerun. Not a fault.
NDT001–NDT006Thunderbolt hardwareDisconnect external Thunderbolt devices and rerun.
NNN001No serial number detected
PFM001–PFM007System Management Controller (SMC)
PFR001Computer’s firmware
PPF001, PPF003, PPF004Fan
PPM001A memory module
PPM002–PPM016Onboard memory
PPN001, PPN002Power-management system
PPP001–PPP008Power adapterConfirm it is the correct adapter, unplug at both ends, reconnect, rerun.
PPP017Both ports of the Apple 35W Dual USB-C Port Power Adapter are in useUse only one charging port while running the test.
PPP018Fast charging not supported with the connected adapterCheck Apple’s fast-charge documentation for supported adapters, cables and displays.
PPP020No power adapter detectedConfirm the correct adapter, unplug at both ends, reconnect, rerun.
PPR001Processor
PPT001Battery not detected
PPT002, PPT003Battery will need replacing soon; still functioning normally but holds less charge than when new
PPT004Battery requires service; not functioning normally, though behavior may seem unchanged. Safe to keep using meanwhile.On Intel Macs only, confirm via internet diagnostics with Option-D. See below.
PPT005Battery not installed properly — shut down and discontinue use; requires service
PPT006Battery requires service; not functioning normally. Safe to keep using meanwhile.
PPT007Battery needs replacing; functioning normally but holds significantly less charge than when new
PPT021Battery charge too low to complete the testCharge to 6% or higher, then rerun.
VDC001, VDC003–VDC007SD card reader
VDH001–VDH004A storage device
VDH005Unable to start macOS Recovery
VFD001–VFD007Display or graphics processor
VFD008, VFD009HDMI controller (or controllers, if more than one HDMI port)
VFD010Apple I/O cardReseat the card and rerun. Expected if you removed the card.
VFD011Antenna Connector Board
VFF001–VFF003Audio hardware

Apple’s own framing for the dashes above is consistent: contact Apple, or take the computer to an Apple Store, an Apple Authorized Service Provider, or an Independent Repair Provider, and quote the code. The code is the useful artifact — it is what turns “it crashes sometimes” into a specific component at the service counter.

The PPT004 detail that only applies to Intel Macs

PPT004 carries a caveat in Apple’s documentation that is specific to the processor generation, and it is a good example of why “run the hardware test” is not one instruction. For a Mac with an Intel processor, Apple says you can confirm a PPT004 result by running Apple Diagnostics over the internet: shut down, turn the Mac on again, and immediately hold Option-D. If the code appears again — or if you are on a Mac with Apple silicon — Apple’s instruction is to contact Apple or an authorized provider.

Read that carefully: on Apple silicon there is no second-opinion step. The first PPT004 is the answer.

Those 4MEM and 4MOT codes belong to a different tool

Search for MacBook hardware test error codes and you will find pages listing codes shaped like 4MEM/, 4MOT/, 4SNS/ and 4HDD/. None of those appear anywhere in Apple’s Apple Diagnostics reference list, and if you are waiting for one you will wait forever.

They come from Apple Hardware Test, the predecessor tool. Apple’s cutoff is explicit: Apple Hardware Test applies to Macs introduced in June 2013 or earlier, and if your Mac was introduced after June 2013 you use Apple Diagnostics instead. Apple’s Apple Hardware Test article now carries an archive notice stating it is no longer updated. Any Mac with an M-series chip is decades of product cycles past that line — it will only ever produce the letter-prefixed codes in the table above.

The same confusion produces invented test names. Apple Hardware Test offered a “Perform extended testing” checkbox for a longer run. Apple Diagnostics, as documented, has no basic/extended/loop menu with published runtimes — figures like “extended test: 45–60 minutes” are not something Apple states for this tool.

What this test will not find

This is the part that saves people the most time, because a clean ADP000 convinces them the machine is fine when the actual fault is somewhere the test never looked.

SSD wear and health. Look down the reference code list for anything about drive lifespan, write endurance, or SMART status. There is nothing. The storage codes are VDH001 through VDH004, and Apple describes them only as “an issue with a storage device” — a functional fault, not a wear measurement. An SSD at the end of its rated write life can return ADP000 quite happily. If you want the drive’s own health assessment, macOS reports it outside of diagnostics, in Terminal:

system_profiler SPNVMeDataType

The output includes a S.M.A.R.T. status: line for the internal drive, alongside its model, capacity and TRIM support. It is a pass/fail summary rather than a wear percentage, but it is the drive reporting on itself, which Apple Diagnostics does not surface.

Filesystem and directory damage. Also out of scope, and this is where Disk Utility’s First Aid comes in — a different job entirely. Apple’s Disk Utility documentation describes First Aid as checking for and fixing errors related to the formatting and directory structure of a storage device. Corruption there produces symptoms that feel like hardware failure — apps quitting unexpectedly, files that will not open, a Mac that will not start up — while every hardware component is intact. Apple’s guidance is blunt about the boundary: if Disk Utility tells you the disk is about to fail, back up your data and replace the disk, because you cannot repair it.

Anything software. A kernel panic from a bad driver, a runaway process eating your battery, a third-party kernel extension — Apple Diagnostics runs outside macOS and has no opinion on any of it. ADP000 plus a Mac that panics daily is a coherent result, not a contradiction. It points at software.

Intermittent faults. A test that runs once samples the hardware once. Thermal faults that appear after twenty minutes under load, or a connector that fails only when the chassis flexes, can pass a cold bench test. This is the honest weak spot of the whole approach, and no keystroke fixes it.

When Apple Diagnostics is not the right tool

Given the gaps above, third-party diagnostics have a narrow but real place: repeated or timed runs to catch intermittent faults, drive health detail beyond a pass/fail SMART line, and surface scans. Micromat’s TechTool Pro is the long-standing option in this category and is currently at version 21. Pricing is presented on Micromat’s own store with subscription and one-time purchase tiers; check the figures there rather than trusting any number quoted secondhand, including older ones still circulating for version 20.

Be clear about what you are buying, though. No third-party tool has access to the diagnostic hooks Apple Diagnostics uses, and none of them produce a reference code that means anything to a service technician. For the specific job of walking into a repair appointment with evidence, the built-in test is the one that counts — the code in the table above is the shared vocabulary.

If you have run the test on the correct key combination for your chip, and it returned ADP000, and the Mac is still misbehaving, the useful conclusion is that you have ruled out the components on that list. That is worth something. It also means further hardware testing is the wrong direction, and the fault is in the filesystem, the software, or a condition that only appears under load — none of which this test was built to see.

Leave a Reply

Your email address will not be published. Required fields are marked *