How to upgrade Framework Laptop SSD M.2 2280
| Hardware family | Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 |
|---|---|
| Category | Computer Hardware |
| Guide type | Procedure |
| Skill level | Intermediate to advanced |
| Time | 15 - 60 minutes including verification |
When How to upgrade Framework Laptop SSD M.2 2280 bites you on Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16, the first instinct is to open an RMA ticket. Most of the time you do not have to. The steps below are the ones a senior hardware tech would walk you through at a repair bench.
What how to upgrade framework laptop ssd m.2 2280 actually involves on Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16
This task on Framework Laptop is one of the more searched operational topics across vendor forums and Tom's Hardware in the last 12 months. The procedure below is the path that works on a current Framework Laptop setup with default config.
The rest of this page is the structured fix path. Start with diagnose, then remediation, then the automation options so you do not have to do this by hand the next time it surfaces. Verify and safety sections at the end are the discipline that keeps the fix from regressing in production.
Diagnose first, fix second
Third pass: read the Q-Code or EZ-Debug LED panel like an x-ray of your Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16. On AMI Aptio boards 00 means CPU never initialized, 53/54/55 is DRAM init failed (training fault, almost always RAM seating or EXPO instability), A0 to A2 is storage detection, b2/b4 is option ROM, 99/9F is super-IO and BOOT, and a final D6 stuck means VGA missing or unseated. MSI EZ Debug LED solid CPU = VRM or CPU fault, solid DRAM = memory training fail (re-seat, drop EXPO, swap to slot A2/B2), solid VGA = GPU not detected, solid BOOT = OS drive missing. Gigabyte status LED and ASRock Dr.Debug follow the same Aptio table. Cross-reference the code against the Tom's Hardware Q-Code megathread and the GamersNexus AM5 boot-troubleshoot index, because vendor BIOS revisions occasionally remap codes between AGESA microcode releases like 0x12B and the X3D-era refresh. If the code cycles - for example 53 to 55 to 60 and back - that is the DRAM training loop, not a hard fault: drop frequency to JEDEC 4800, leave timings on Auto, and let Memory Context Restore lock in a stable training table over three clean cold boots before re-applying EXPO.
Fifth: kill the lights, grab a head-torch and a 10x loupe, and physically inspect the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 board by board. Re-seat every DIMM (push until both latches click), reseat the GPU in the primary x16 slot, and verify the 12V-2x6 connector is bottomed-out with the audible click and at least 35 mm of straight cable before it bends (RTX 40/50-class melts trace back to angled inserts). Look for capacitor bulge or weep, MOSFET discoloration near the VRM, pump-out gravel where the IHS meets the cooler, dust mats in fan blades, and on AM5 check the LGA1718 socket pads for the dark brown scorching reported after the early X3D voltage incidents. On laptops, a swollen battery lifting the trackpad is a hard stop: stop charging now. On RTX 5090 and 4090 builds, photograph the 12V-2x6 connector head-on with a small magnet held against the latch tab; if the magnet visibly pulls the connector outward the latch is fatigued and the cable has been walking out under thermal cycling - replace the cable, do not rely on the existing seat. Clip an anti-static wrist strap to bare chassis metal before any reseat, run a multimeter on the 12V rail at the EPS plug under idle (should hold 11.95 to 12.10V) and again under a Cinebench R23 ramp, and document each reading next to a photo of the connector for the RMA file.
Fourth: open Event Viewer (eventvwr.msc) on the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 and pivot to Windows Logs > System, then filter the failure window down to 10 minutes around the crash. The smoking guns are WHEA-Logger Event ID 18 and 19 (machine check, almost always CPU/IMC/PCIe hardware), bugcheck 0x9C MACHINE_CHECK_EXCEPTION, 0x101 CLOCK_WATCHDOG_TIMEOUT (a core stopped responding, classic SoC/curve-optimizer instability), and 0x133 DPC_WATCHDOG_VIOLATION (driver or NVMe firmware). Cross-reference Reliability Monitor (perfmon /rel) for the timeline, and feed the minidump in C:\Windows\Minidump through WhoCrashed or BlueScreenView for the offending module. Save the .dmp files to a separate folder before the next reboot - Windows Error Reporting truncates the ring buffer at 50 entries, and on a system that crashes every two hours you can lose the original signature in a day. If WHEA 18 is logged with a PROCESSOR_CONTEXT block, decode the MCi_STATUS bank against the Intel SDM Volume 3 table or the AMD PPR to identify cache vs IMC vs PCIe root complex - that single decode tells you whether to RMA the CPU, repaste, or look at the PCIe riser.
Solution-focused remediation path
For any Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 crash that smells like memory, run MemTest86 v11 for at least 4 full passes overnight, and Karhu RAMTest to 10000% if you want stricter coverage. Errors on Test 7 or Test 13 that only appear with XMP / EXPO almost always mean the kit is unstable at the advertised profile: fall back to JEDEC and retest. If EXPO will not POST on AM5, cap VSOC at 1.20V (never above 1.30V on 7800X3D or 9800X3D, that is the burn zone), enable Memory Context Restore, and try two DIMMs in A2 / B2 before populating four. Swap-test one stick at a time in A2. Record the part number and revision of each DIMM (Corsair, G.Skill, Kingston, Crucial all print the SKU on the spreader) - mixed revisions of the same model number are a known POST failure pattern even when both kits are on the QVL. Decision point: if both kits fail Karhu under 1000 percent on JEDEC, the IMC is the suspect, not the RAM; pull the CPU, inspect the AM5 LGA1718 pads under 10x magnification for scorching or bent pins, and start the AMD RMA via the vendor portal with the MemTest86 PDF report attached - the AMD authorized service workflow accepts the v11 export directly.
When the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 fault tracks to display, hangs, or TDR events in Reliability Monitor, treat the GPU stack as suspect. Boot Safe Mode, run DDU 18.x to fully strip NVIDIA, AMD, and Intel display drivers, then reinstall via NVIDIA App, AMD Adrenalin, or Intel Graphics Software (clean install ticked). Verify Resizable BAR is actually active in GPU-Z: that needs Above 4G Decoding on, Re-Size BAR Support on, CSM off. On RTX 4090 and 5090 reseat the 12V-2x6 firmly until you hear the audible click, keep bend radius at or above 35 mm of straight cable before the curve, prefer a native ATX 3.1 PSU cable over the included adapter, and never daisy-chain 12V-2x6. Decision point: if TDR persists after a clean DDU reinstall on the previous driver branch (not the latest), photograph the connector seated and the GPU PCB next to the I/O bracket and open NVIDIA RMA or AMD RMA via the support portal; on prebuilts the path is OEM RMA first (Dell ProSupport, HP Care Pack) because cracking the chassis voids coverage. Part-number convention: Dell DPN starts with 0 (for example 0WTRP4), HP part numbers start with letters (L29483-001), Lenovo uses FRU PN (5M11A12345), ASUS uses a P/N like 90YV0HP0-M0NA00; record the correct format in the RMA narrative or the ticket bounces back.
For Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 systems where storage is suspect, open CrystalDiskInfo 9.x and read SMART honestly. Any Reallocated Sector Count climbing past the threshold, or Pending Sector above zero, means back up tonight and start the RMA. For Gen5 NVMe drives sitting at 86C under sustained writes, fit the heatsink that came in the motherboard box and add direct airflow; throttling explains most "slow" reports. Samsung 990 Pro showing the 0E health drop needs the firmware update via Samsung Magician immediately, not next week. DRAM-less SSD stalls during big writes are by design: accept the budget or swap to a DRAM-cached drive. Run CrystalDiskMark 8.x at the 64 GiB size and compare against the manufacturer spec sheet - sustained writes under 300 MB/s on a Gen4 drive rated 5000+ MB/s indicate cache exhaustion or thermal throttling, not a dead controller. Decision point: in-warranty NVMe with documented SMART degradation goes to the SSD vendor RMA portal (Samsung Members, WD support, Crucial RMA), out-of-warranty drives with bulk data go to a recovery shop (Ontrack, DriveSavers) only if the data is worth four-figure recovery fees; otherwise restore from the Macrium Reflect image and swap to a fresh DRAM-cached drive with at least 5 year warranty (Samsung 990 Pro, WD SN850X, Crucial T705).
Automate this fix so you do not do it twice
Codify the BIOS fix as a saved profile and backup USB
Once a stable BIOS revision is identified for the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16, save it as a named profile in the UEFI (slot 1 through 8, with date and AGESA or microcode tag in the name) and prepare a recovery USB. ASUS BIOS Flashback needs a specific filename produced by the BIOSRenamer utility, and Gigabyte Q-Flash Plus expects GIGABYTE.bin on a FAT32 USB in the white-rimmed port. PowerShell makes the rename reproducible across rebuilds. The snippet below targets Windows PowerShell 5.1 syntax so it runs on stock Windows 10 / 11 without PowerShell 7 installed; if you standardize on pwsh 7.x for the fleet, the same Copy-Item and Get-ChildItem calls work identically. Stage the recovery USB next to a printed label (system serial, BIOS rev, AGESA, date) and store in a labeled drawer; the second time a board bricks at 2 a.m. you do not want to be rebuilding the stick from scratch.
$src = "C:\BIOS\Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16\X670E-HERO-ASUS-2401.CAP"
$dst = "E:\X670E.CAP" # name from BIOSRenamer
Copy-Item $src $dst -Force
# Gigabyte Q-Flash Plus expects GIGABYTE.bin at root
Copy-Item "C:\BIOS\Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16\B650-AORUS-F36.bin" "E:\GIGABYTE.bin" -Force
Get-ChildItem E:\ | Format-Table Name,Length,LastWriteTime
# Label profile in UEFI as: 2026-05-31_AGESA_1.2.0.3C_stableMonitor and alert via HWiNFO64 logging + Performance Counters
For the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16, the most useful long-running telemetry is HWiNFO64 8.x sensor logging to CSV (CPU package temp, VRM temp, GPU hotspot, GPU memory junction, SSD composite) sampled every 2 seconds, plus Windows Performance Counters for GPU engine and memory usage. Argus Monitor adds SMART-over-time; a homelab Grafana is optional but pays off past a handful of machines. Register the Get-Counter sampler via Task Scheduler XML (schtasks /create /XML) so the task definition is identical across the fleet and survives image redeploys. The Get-Counter pattern below runs identically on Windows PowerShell 5.1 and PowerShell 7.x; if you push the CSV to a central collector, wecutil event forwarding on the source nodes carries the WHEA correlation events to the same dashboard so thermal events and machine checks line up on one timeline.
# HWiNFO64 INI (excerpt) - place next to HWiNFO64.exe
# SensorsOnly=1
# OpenSensors=1
# MinimizeMainWnd=1
# MinimizeSensors=0
# Logging.Enabled=1
# Logging.File=C:\Logs\Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16-hwinfo.csv
# Logging.Interval=2000 # PowerShell: sample GPU engine + memory counters every 5s for 1h
Get-Counter -Counter "\GPU Engine(*engtype_3D)\Utilization Percentage",` "\GPU Process Memory(*)\Local Usage" ` -SampleInterval 5 -MaxSamples 720 | Export-Counter -Path "C:\Logs\Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16-gpu.blg" -Force
# Register via schtasks XML for reproducibility across the fleet
# schtasks /create /TN "Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16-gpu-sample" /XML C:\Tasks\gpu-sample.xml /RU SYSTEMAutomate vendor diagnostic and SMART pull via vendor CLI
On the Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16, regular SMART snapshots catch reallocated sectors, pending sectors, and NVMe Media and Data Integrity Errors well before the drive disappears mid-boot. Pair smartctl long self-tests with the OEM diagnostic CLI (Dell SupportAssist, HP Image Assistant, Lenovo Vantage) so both controller-side and OS-side issues land in one folder. The vendor installers all support silent install via /SILENT or /VERYSILENT flags - dcu-cli.exe installs unattended with /SILENT /NORESTART, HP Image Assistant ships as a self-extracting EXE with /S, and Lenovo Thin Installer accepts /VERYSILENT for the bootstrap before the actual /CM scan. Run the scheduled task under Windows PowerShell 5.1 for broadest compatibility; if you have standardized on PowerShell 7.x, the script-block syntax below works without change. Pipe the JSON output through ConvertFrom-Json for downstream parsing into the fleet dashboard.
$smartctl = "C:\Program Files\smartmontools\bin\smartctl.exe"
$out = "C:\Logs\Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16-smart-$(Get-Date -Format yyyyMMdd).txt"
& $smartctl --info --health -a /dev/nvme0 | Out-File $out
& $smartctl -t long /dev/nvme0 | Out-File $out -Append
# Dell unattended scan (silent, log to file)
& "C:\Program Files (x86)\Dell\CommandUpdate\dcu-cli.exe" /scan -outputLog="C:\Logs\dcu-Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16.log"
# HP Image Assistant unattended
& "C:\HPIA\HPImageAssistant.exe" /Operation:Analyze /Silent /ReportFolder:"C:\Logs\HPIA-Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16"
# Lenovo Thin Installer silent bootstrap then scan
& "C:\Lenovo\ThinInstaller\ThinInstaller.exe" /VERYSILENT
& "C:\Lenovo\ThinInstaller\ThinInstaller.exe" /CM -search A -action SCAN -noicon
Common pitfalls and what to watch for
Firmware updates during an active failure are the textbook way to brick a Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 board, and the trap catches experienced techs because the BIOS release notes look like they describe exactly the bug at hand. Never flash a UEFI image while the system is unstable, never flash a board that will not POST unless it supports BIOS Flashback or Q-Flash Plus (both of which run from PSU + USB stick with no CPU or RAM installed), and never push a beta BIOS unless the vendor changelog ties it to a specific advisory for your symptom. Skipping the Intel 0x12B microcode on affected Raptor Lake SKUs or AGESA 1.2.0.3C on AM5 leaves a known degradation path open even after a CPU RMA, so check the affected-SKU list on Tom's Hardware or GamersNexus coverage before deciding to wait.
The other half is trusting the automated diagnostic verdict by itself. Dell SupportAssist ePSA can miss intermittent thermal trips that only occur at PL2 under a real Cinebench 2024 multi-thread loop, HP UEFI Diagnostics will not flag coil-whine or a PSU 12V rail sagging to 11.4V, and Windows Event Viewer entries can lag several minutes behind the actual fault. Cross-reference HWiNFO64 sensor logs, a multimeter reading on the 12V rail at the EPS connector, and the user symptom narrative before committing to a destructive remediation on Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16.
Verify the fix worked
- Reproduce the original symptom path on Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16. If it still surfaces on any unit in the fleet, you have not fixed it.
- Watch for 24 to 48 hours via Windows Reliability Monitor + Event Viewer (Windows Logs > System filtered to Error) + HWiNFO64 sensor log. Cached health masks slow-burn thermal drift and memory bit-rot.
- Smoke-test under realistic load: Cinebench R23 30-min for CPU, Unigine Superposition for GPU, CrystalDiskMark for storage, MemTest86 1 pass for RAM.
- Capture the new state in a runbook so the next person on call does not rediscover this. Note BIOS version + microcode revision + driver branch + Q-Code seen + verbatim error string + fix applied. Push to a shared wiki.
- If the fix involved a BIOS change, save the working BIOS to a USB labeled with the system serial, and screenshot every BIOS page for archival.
Safety, rollback, blast radius
- Test on a non-production rig or back up via Macrium or Clonezilla before any write that touches Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16.
- Anti-static wrist strap clipped to bare chassis metal. Non-carpeted surface. Photograph cable routing before any disconnect.
- Label every screw + screw location (egg-carton trick). Never force connectors. Bend radius >=35mm on 12V-2x6 cables.
- Know your rollback path. BIOS flash is reversible via BIOS Flashback if you saved the previous file; component swap is not if you damaged a socket pin.
- For rack-mounted servers, line up a maintenance window with stakeholder notification before iDRAC / iLO / XCC firmware update.
FAQ
References
- Vendor support docs for Framework Laptop 13 (Intel/AMD/AI 300) + Framework 16 (Dell SupportAssist, HP UEFI Diagnostics, Lenovo Vantage, ASUS MyAsus, Apple Self Service Repair)
- Reddit hardware subs (r/buildapc, r/Amd, r/intel, r/nvidia, r/sffpc, r/homelab, r/MiniPCs, brand-specific subs)
- Tom's Hardware, GamersNexus, TechPowerUp, Notebookcheck, ServeTheHome
- Vendor status pages, BIOS/firmware release notes, and driver changelogs
Related fixes
Related guides worth a look while you sort this one out:
- Framework BIOS brick on Framework Laptop. what causes it and how to fix
- How to repair MacBook Pro flexgate display cable
- How to reset SMC on Apple Silicon MacBook Air M2
- How to check Alienware battery cycle count via Dell Power Manager
- How to plan Precision Tower PSU upgrade for dual RTX 6000 Ada
- How to fix Dell XPS 9510 USB-C port loose