Comprehensive card identification, compatibility, and performance rankings for the P2 SD Card Driver.
- 1. Understanding SD Card Markings
- 2. Identifying Your Card
- 3. Selecting Cards for P2 SPI
- 4. Recommended Purchases
- 5. Tested Card Library
- 6. Performance Rankings
- 7. Key Observations
- 8. Socket Timing Differences
The SD Association defines card families by capacity, not bus type:
| Generation | Capacity | Native Filesystem | Notes |
|---|---|---|---|
| microSD (SDSC) | Up to 2 GB | FAT12/16 | Standard Capacity |
| microSDHC | 2–32 GB | FAT32 | High Capacity |
| microSDXC | 32 GB–2 TB | exFAT | Extended Capacity |
| microSDUC | 2–128 TB | exFAT | Ultra Capacity (rare) |
Speed markings describe minimum performance on UHS-I/II bus modes, not SPI mode:
| Category | Markings | Minimum Write Speed |
|---|---|---|
| Speed Class | C2, C4, C6, C10 | 2 / 4 / 6 / 10 MB/s |
| UHS Speed Class | U1, U3 | 10 / 30 MB/s |
| Video Speed Class | V6, V10, V30, V60, V90 | 6–90 MB/s |
| Application Performance | A1, A2 | A1: 1,500/500 IOPS; A2: 4,000/2,000 IOPS |
For SPI on microcontrollers: All tested cards run at 25 MHz SPI regardless of speed class markings. Higher classes generally indicate better flash and controller quality, but UHS/Video/Application class ratings describe UHS bus performance and don't directly predict SPI throughput.
A1/A2 (Application Performance Class) is designed for app-launch performance on phones. A2 indicates command queuing and caching support — features that could benefit SPI workloads but are not exercised by our current benchmark protocol (which uses basic CMD17/CMD18/CMD24/CMD25 only).
Each card has a unique identity derived from its hardware registers (CID, CSD, SCR) — not from the printed label, which can be vague or misleading. The two-line designator is the authoritative identity of the card.
Run SD_card_characterize.spin2 from the UTILS/ directory:
cd src/UTILS/
pnut-ts -d -I .. SD_card_characterize.spin2
pnut-term-ts -r SD_card_characterize.binThe utility reads the card's registers and produces a two-line designator.
Alternatively, if you're already running the Demo Shell (SD_demo_shell.spin2), use the card command at the shell prompt to display the same designator — no separate utility needed.
Line 1: Manufacturer Product Type Capacity [FS] SD-Spec revN.N SN:XXXXXXXX YYYY/MM
Line 2: Class N, UN, AN, VN, SPI NN MHz [volume-label]
| Field | Source | Example | Meaning |
|---|---|---|---|
| Manufacturer | CID MID+OID | SanDisk |
Resolved from manufacturer ID registry |
| Product | CID PNM | SN64G |
5-character product code |
| Type | CSD capacity | SDXC |
HC (4–32 GB) or XC (64 GB+) |
| Capacity | CSD C_SIZE | 59GB |
Usable capacity |
| [FS] | VBR/BPB | [FAT32] |
Current filesystem |
| SD-Spec | SCR SD_SPEC fields | SD 6.x |
SD specification version |
| revN.N | CID PRV | rev8.6 |
Product revision |
| SN | CID PSN | $7E65_0771 |
Serial number |
| YYYY/MM | CID MDT | 2022/11 |
Manufacturing date |
| Class/U/A/V | SCR + SD_STATUS | Class 10, U3, A2, V30 |
Speed ratings from registers |
| SPI MHz | CSD TRAN_SPEED | SPI 25 MHz |
Maximum SPI clock |
| [label] | VBR | [P2FMTER] |
Volume label (identifies formatter) |
If you run the characterization utility and get a designator that matches one of the tested cards below (same manufacturer, product code, and revision), you can expect similar performance. Cards with the same product code but different revisions may behave differently due to controller changes between manufacturing lots.
The safest approach is to choose a card already tested in this document. If your card matches a designator in the Tested Card Library (same manufacturer, product code, and revision), you can expect similar performance.
Based on 15 cards benchmarked at both 350 MHz and 250 MHz:
- Top tier (score 88–99): Four cards score 88 or above — Amazon Basics 64GB, Samsung PRO Endurance 128GB, Lexar PLAY 128GB, and Lexar V30 64GB. These deliver 1,200–1,444 KB/s file reads and 400–774 KB/s file writes.
- Mid tier (score 74–81): Seven cards cluster between 74 and 81 — five SanDisk models, WD Purple, and Gigastone Camera Plus. File reads 990–1,103 KB/s, file writes 293–445 KB/s. Adequate for most embedded workloads.
- Bottom tier (score 52–70): Four cards score below 74 — Samsung EVO Select, SanDisk Industrial, Gigastone High Endurance, and PNY. File writes below 323 KB/s; PNY single-sector writes are 17x slower than the best card.
For embedded systems, bigger is not better. Larger cards carry hidden costs:
- Longer mount times — The driver reads the FAT and FSInfo structures at mount. Larger cards have larger FATs, and some cards with large flash arrays exhibit higher internal access latency.
- Longer FSCK scans — Pass 4 (FAT sync) reads every FAT sector sequentially. A 16 GB card with 15K sectors/FAT takes ~37 seconds; a 128 GB card takes proportionally longer. Full chain validation (passes 2–3) is limited to cards under ~64 GB by the P2's hub RAM.
- Wasted capacity — Most embedded data logging, configuration storage, and sensor recording applications use megabytes, not gigabytes. A 128 GB card sitting 99.9% empty is paying the overhead of a large FAT for no benefit.
Recommendation: Choose the smallest card that comfortably exceeds your storage needs. For typical embedded workloads:
| Application | Suggested Card Size |
|---|---|
| Configuration files, small logs | 4–8 GB |
| Data logging, sensor recording | 8–16 GB |
| Image storage, large datasets | 16–32 GB |
| Audio/video buffering | 32–64 GB |
Cards in the 8–32 GB range offer the best balance of capacity, mount performance, and full FSCK coverage. Cards above 64 GB work well for read/write operations but receive only structural FSCK checks (no chain validation or lost cluster recovery).
If you can't test a card, register-derived markings provide a rough guide (see correlation table in Section 7):
- U3 + V30 cards average score 83 vs. U1 + V10 average 65 — but the ranges overlap, so this is a tendency, not a guarantee
- A2 does not predict SPI throughput in our benchmarks — however, A2 specifies command queuing and caching features that could benefit SPI workloads if utilized
- Speed Class (C4 vs C10) has only one C4 card (PNY, score 52) — insufficient data to draw conclusions
Cards recommended based on our benchmark data. Ranks and scores reference the Performance Rankings. Prices are Amazon US as of February 2026.
Format every card before use. Newly purchased cards — even FAT32-formatted SDHC cards — typically ship with vendor content you don't need and incomplete filesystem metadata (missing free-space counts, inconsistent volume information). The included SD_format_card.spin2 utility produces a clean, consistent FAT32 filesystem with correct metadata. SDXC cards (64 GB+) ship with exFAT and must be reformatted to FAT32 for the P2 driver, but we recommend formatting all cards regardless of type.
![]() |
Amazon Basics MicroSD 64 GB (2-Pack) — $23.97 / $11.99 per card Rank 1 · Score 99 · Excellent Top-ranked card at the lowest per-card cost. Uses a Longsys/Lexar controller internally — which explains why it performs on par with the Lexar-branded cards. |
![]() |
Samsung PRO Endurance 128GB MicroSD — $48.99 Rank 2 · Score 98 · Excellent Near-identical score to #1 with 128 GB capacity. Designed for continuous-write surveillance and dashcam use — built for endurance. |
![]() |
Lexar 128GB Blue Micro SD Card — $36.99 Rank 3 · Score 91 · Excellent Best balance of capacity and cost at 128 GB. Strongest file-read performance (1,444 KB/s at 350 MHz). |
![]() |
Lexar 64GB Micro SD Card (2-Pack) — $34.99 / $17.50 per card Rank 4 · Score 88 · Very Good Same product line as our tested Lexar Red 64GB. Good all-around performer with strong file-read throughput. |
![]() |
Lexar E-Series 32GB Micro SD Card (5-Pack) — $59.99 / $12.00 per card Rank 4 · Score 88 (tested as 64GB) · Very Good Same Lexar product line at lowest per-card cost for quantity. 32 GB SDHC — ships with FAT32 natively. Our benchmark was on the 64GB version; 32GB should perform similarly. |
![]() |
Western Digital WD Purple QD101 64GB — $21.90 Rank 10 · Score 74 · Good Surveillance-grade endurance card. Mid-tier SPI performance but SanDisk/WD controller with reliable SPI microcode. |
![]() |
BANDC Micro SD Card Storage Holder (2-Pack) — $6.94 / $3.47 each Holds 1 full-size SD + 10 microSD cards. Compact, durable cases — the author's favorite for keeping test cards organized. |
22 cards across 8 manufacturers. Benchmarked cards appear in the Performance Rankings with full throughput data. Characterized cards have register data but no standard benchmark. Blocked cards failed to initialize fully. Cataloged cards are identified only.
| Card | Capacity | Label Markings | Register Markings | Rank |
|---|---|---|---|---|
| Amazon Basics microSD XC I 64GB | 64 GB | (10) U3 A2 V30 | (10) U3 A2 V30 | 1 |
| Gigastone "Camera Plus" microSD XC I 64GB | 64 GB | A1 V30 U3 | (10) U3 V30 | 11 |
| Gigastone "High Endurance" 10x MLC microSD HC I 16GB | 16 GB | U3 V30 | (10) U1 V10 | 14 |
| Lexar PLAY A2 microSD XC 128GB (Blue) | 128 GB | A2 | (10) U3 A2 V30 | 3 |
| Lexar A1 V30 U3 microSD XC 64GB (Red) | 64 GB | A1 V30 U3 | (10) U3 A2 V30 | 4 |
| PNY microSD HC I 16GB | 16 GB | — | C4 | 15 |
| Samsung EVO Select microSD XC I 128GB | 128 GB | U3 | (10) U3 | 12 |
| Samsung PRO Endurance microSD XC I 128GB | 128 GB | (10) U3 V30 | (10) U3 A2 V30 | 2 |
| SanDisk Extreme microSD XC I 64GB | 64 GB | U3 A2 V30 | (10) U3 A2 V30 | 7 |
| SanDisk Extreme PRO microSD XC I 64GB | 64 GB | V30 U3 | (10) U3 V30 | 5 |
| SanDisk Extreme PRO microSD XC I 128GB | 128 GB | V30 U3 A1 | (10) U3 V30 | 6 |
| SanDisk Industrial microSD HC I 16GB | 16 GB | U1 C10 | (10) U1 V10 | 13 |
| SanDisk MAX ENDURANCE microSD HC I 32GB | 32 GB | U3 V30 (10) | (10) U3 A2 V30 | 8 |
| SanDisk Nintendo Switch microSD XC I 128GB | 128 GB | — | (10) U3 A2 V30 | 9 |
| WD Purple QD101 microSD XC I 64GB | 64 GB | U1 (10) | (10) U1 A2 V10 | 10 |
| Card | Capacity | Designator | Issue |
|---|---|---|---|
| SP Elite microSD XC UHS-I 64GB | 64 GB | SharedOEM SPCC SDXC 57GB SD 6.x rev0.7 |
CMD18 multi-block read times out; mount fails |
| Card | Capacity | Designator |
|---|---|---|
| Gigastone microSD HC 32GB | 32 GB | Gigastone 00000 SDHC 29GB SD 3.x |
| Gigastone microSD HC 8GB | 8 GB | Gigastone 00000 SDHC 7GB SD 3.x |
| SanDisk Ultra microSD HC 8GB | 8 GB | SanDisk SU08G SDHC 7GB SD 3.x |
| SanDisk microSD HC 8GB | 8 GB | SanDisk SS08G SDHC 7GB SD 3.x |
| Kingston microSD HC 8GB | 8 GB | Kingston SD8GB SDHC 7GB SD 3.x |
| Samsung microSD HC 8GB | 8 GB | Samsung 00000 SDHC 7GB SD 3.x |
Six metrics are measured at two system clock speeds (350 MHz and 250 MHz), both producing 25 MHz SPI. The higher SYSCLK reduces Spin2 inter-transfer overhead between SPI bursts, yielding 10–20% better file throughput. Each metric is normalized against the best card (best = 100), then weighted:
| Metric | Weight | Description |
|---|---|---|
| File Read 256KB | 25% | Read a 256 KB file through the FAT32 API |
| File Write 32KB | 20% | Write a 32 KB file through the FAT32 API |
| Raw Multi-Sector Read (64x) | 20% | 64 consecutive sectors via CMD18 |
| Raw Multi-Sector Write (64x) | 20% | 64 consecutive sectors via CMD25 |
| Raw Single-Sector Read (1x) | 10% | Single sector via CMD17 |
| Raw Single-Sector Write (1x) | 5% | Single sector via CMD24 |
Multi-sector operations carry 40% combined weight to reflect real embedded workloads where data moves in 4K–32K chunks.
| Tier | Score | Meaning |
|---|---|---|
| Excellent | 90–100 | Top-tier performance across all metrics |
| Very Good | 75–89 | Strong performance, minor weaknesses |
| Good | 60–74 | Adequate for most applications |
| Adequate | 50–59 | Functional but noticeably slower |
| Poor | < 50 | Significant performance limitations |
Ranked by average of 350/250 MHz composite scores. Both speeds use 25 MHz SPI — the difference is Spin2 inter-transfer overhead. All throughput values in KB/s.
| Rank | Card / Designator | MHz | Score | File Rd | File Wr | Rd 64x | Wr 64x | Rd 1x | Wr 1x |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Amazon Basics microSD XC I 64GB — (10) U3 A2 V30 | ||||||||
Longsys/Lexar USD00 SDXC 58GB [FAT32] SD 6.x rev2.0 SN:$3584_1E2E 2025/07 |
350 | 99 | 1,386 | 774 | 2,425 | 2,305 | 1,245 | 846 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 98 | 1,203 | 686 | 2,234 | 2,106 | 1,057 | 766 | |
| 2 | Samsung PRO Endurance microSD XC I 128GB — (10) U3 V30 | ||||||||
Samsung JD1Y7 SDXC 119GB [FAT32] SD 6.x rev3.0 SN:D27654A6 2025/12 |
350 | 98 | 1,419 | 758 | 2,427 | 2,319 | 1,283 | 617 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 98 | 1,231 | 709 | 2,239 | 2,108 | 1,071 | 577 | |
| 3 | Lexar PLAY A2 microSD XC 128GB (Blue) | ||||||||
Lexar MSSD0 SDXC 117GB [FAT32] SD 6.x rev6.1 SN:34490F1E 2025/04 |
350 | 91 | 1,444 | 616 | 2,420 | 2,275 | 819 | 680 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 91 | 1,256 | 551 | 2,233 | 2,082 | 745 | 623 | |
| 4 | Lexar A1 V30 U3 microSD XC 64GB (Red) | ||||||||
Lexar MSSD0 SDXC 58GB [FAT32] SD 6.x rev6.1 SN:33549024 2024/11 |
350 | 88 | 1,378 | 433 | 2,376 | 2,251 | 1,239 | 674 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 88 | 1,190 | 396 | 2,181 | 2,048 | 1,066 | 631 | |
| 5 | SanDisk Extreme PRO microSD XC I 64GB — V30 U3 | ||||||||
SanDisk AGGCE SDXC 59GB [FAT32] SD 5.x rev8.0 SN:DD1C1144 2017/03 |
350 | 80 | 1,101 | 437 | 2,408 | 2,210 | 998 | 428 | |
Class 10, U3, V30, SPI 25 MHz [P2FMTER] |
250 | 81 | 983 | 414 | 2,220 | 2,022 | 879 | 403 | |
| 6 | SanDisk Extreme PRO microSD XC I 128GB — V30 U3 A1 | ||||||||
SanDisk AGGCF SDXC 119GB [FAT32] SD 5.x rev8.0 SN:E05C352B 2017/07 |
350 | 78 | 1,103 | 445 | 2,408 | 2,140 | 842 | 427 | |
Class 10, U3, V30, SPI 25 MHz [P2FMTER] |
250 | 81 | 987 | 418 | 2,220 | 2,023 | 879 | 404 | |
| 7 | SanDisk Extreme microSD XC I 64GB — U3 A2 V30 | ||||||||
SanDisk SN64G SDXC 59GB [FAT32] SD 6.x rev8.6 SN:$7E65_0771 2022/11 |
350 | 76 | 1,040 | 378 | 2,408 | 2,150 | 1,005 | 331 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 78 | 936 | 359 | 2,220 | 1,980 | 887 | 316 | |
| 8 | SanDisk MAX ENDURANCE microSD HC I 32GB — U3 V30 (10) | ||||||||
SanDisk SH32G SDHC 29GB [FAT32] SD 6.x rev8.0 SN:$5BFE_CCD8 2025/08 |
350 | 76 | 1,036 | 367 | 2,407 | 2,154 | 998 | 330 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 77 | 929 | 353 | 2,220 | 1,965 | 887 | 318 | |
| 9 | SanDisk Nintendo Switch microSD XC I 128GB | ||||||||
SanDisk SN128 SDXC 119GB [FAT32] SD 6.x rev8.0 SN:F79E34F6 2019/12 |
350 | 75 | 1,016 | 378 | 2,406 | 2,152 | 887 | 332 | |
Class 10, U3, A2, V30, SPI 25 MHz [P2FMTER] |
250 | 77 | 919 | 361 | 2,222 | 1,929 | 847 | 316 | |
| 10 | WD Purple QD101 microSD XC I 64GB — U1 (10) | ||||||||
SanDisk WX64G SDXC 59GB [FAT32] SD 6.x rev8.0 SN:$EEBA_D6C0 2024/03 |
350 | 74 | 990 | 362 | 2,403 | 2,148 | 920 | 333 | |
Class 10, U1, A2, V10, SPI 25 MHz [P2FMTER] |
250 | 76 | 856 | 345 | 2,217 | 1,998 | 850 | 325 | |
| 11 | Gigastone "Camera Plus" microSD XC I 64GB — A1 V30 U3 | ||||||||
Gigastone ASTC SDXC 58GB [FAT32] SD 6.x rev2.0 SN:00000F14 2023/06 |
350 | 72 | 1,091 | 293 | 2,134 | 2,142 | 915 | 349 | |
Class 10, U3, V30, SPI 25 MHz [P2FMTER] |
250 | 73 | 978 | 282 | 1,912 | 1,949 | 820 | 328 | |
| 12 | Samsung EVO Select microSD XC I 128GB — U3 | ||||||||
Samsung GD4QT SDXC 119GB [FAT32] SD 3.x rev3.0 SN:4AC85F42 2018/05 |
350 | 70 | 835 | 323 | 2,348 | 2,110 | 914 | 425 | |
Class 10, U3, SPI 25 MHz [P2FMTER] |
250 | 73 | 844 | 328 | 2,134 | 1,981 | 693 | 362 | |
| 13 | SanDisk Industrial microSD HC I 16GB — U1 C10 | ||||||||
SanDisk SA16G SDHC 14GB [FAT32] SD 5.x rev8.0 SN:93E9C0A1 2025/11 |
350 | 68 | 869 | 264 | 2,387 | 2,166 | 824 | 235 | |
Class 10, U1, V10, SPI 25 MHz |
250 | 70 | 794 | 254 | 2,200 | 1,980 | 742 | 320 | |
| 14 | Gigastone "High Endurance" 10x MLC microSD HC I 16GB — U3 V30 | ||||||||
Budget OEM SD16G SDHC 14GB [FAT32] SD 3.x rev2.0 SN:000003FB 2025/02 |
350 | 53 | 659 | 109 | 2,090 | 1,868 | 576 | 143 | |
Class 10, U1, V10, SPI 25 MHz [P2FMTER] |
250 | 54 | 617 | 108 | 1,877 | 1,712 | 535 | 141 | |
| 15 | PNY microSD HC I 16GB | ||||||||
Phison SD16G SDHC 14GB [FAT32] SD 3.x rev3.0 SN:$01CD_5CF5 2018/08 |
350 | 52 | 747 | 192 | 2,376 | 1,037 | 734 | 50 | |
Class 4, U0, V0, SPI 25 MHz [P2FMTER] |
250 | 55 | 695 | 185 | 2,194 | 997 | 677 | 53 |
-
The driver runs every card at 25 MHz SPI by default, regardless of speed class markings. That is the SD specification's SPI-mode ceiling, and it is where the driver clamps.
-
CMD6 High Speed mode DOES work on many cards — corrected 2026-08-18. This section previously stated that the switch "fails on all tested cards". That was wrong, and it had been wrong for some time: the claim came from an era when the driver's own high-speed verification could not succeed. Of four modern cards retested, three negotiate high speed and hold it; only one declines.
What you get, and what it costs:
Result Clock reached 43.75 MHz at 350 MHz sysclk — not 50 MHz. The SPI clock is sysclk / (2 x hp), and no integer divisor lands on 50Sequential reads Up to +47% — measured on multi-block reads across three cards Single-sector reads Little or no gain. Card seek latency dominates, and the bus was never the limit Writes Correct, but not faster. Every write verified byte-for-byte at high speed across three cards. One card of three is reproducibly slower (−52% on single-sector); one is faster; one showed a large apparent regression that did not reproduce. Do not assume writes benefit It is opt-in.
attemptHighSpeed()is gated behindSD_INCLUDE_SPEEDand the driver does not negotiate high speed on its own; the production speed bound remains 25 MHz. Correctness at 43.75 MHz is established — writes verify clean and the write-path phase pad was measured safe there — so what stands between this and an automatic mode is a product decision about read/write asymmetry, not a safety one.Use
isHighSpeedActive()to ask whether the card is in high-speed mode andgetSPIFrequency()for the clock — they answer different questions, and on most sysclk values the frequency is not 50 MHz even when the mode is active. -
Raw multi-sector reads are nearly identical across major-brand cards (2,348–2,427 KB/s at 350 MHz for SanDisk/Samsung/Lexar/Amazon). Gigastone OEM controllers are slightly lower (2,090–2,134 KB/s). The SPI bus is the bottleneck for sustained reads.
-
File-write performance is the biggest differentiator. File write throughput ranges from 109 to 774 KB/s at 350 MHz — a 7x spread driven by internal flash controller speed.
-
350 MHz vs 250 MHz: 10–20% gain on file operations. Both produce the same 25 MHz SPI clock, but higher SYSCLK reduces Spin2 inter-transfer overhead between SPI bursts.
-
SanDisk Extreme PRO cards deliver strong mid-tier performance. Both the 64GB and 128GB variants score 78–80 with the best file-write throughput (437–445 KB/s) among SanDisk consumer cards.
-
PNY/Phison and Gigastone High Endurance: extremely slow writes. The Phison controller produces 50 KB/s single-sector writes at 350 MHz — 17x slower than the best cards. The Gigastone High Endurance MLC card trades speed for durability (109 KB/s file writes).
-
Samsung EVO Select: internal controller latency dominates. File read throughput at 350 MHz (835 KB/s) is actually lower than at 250 MHz (844 KB/s) for this card — the controller's internal latency overshadows the Spin2 overhead savings.
-
A1/A2 markings don't predict SPI performance in our benchmarks. A2 specifies command queuing and cache management features that could benefit SPI workloads, but our benchmark uses basic CMD17/CMD18/CMD24/CMD25 only. Cards with A2 (score range 74–99, avg 84) overlap heavily with cards without (52–80, avg 68).
-
Card markings vs. SPI benchmark correlation (register-derived values, 350 MHz scores):
Marking Level Cards Score Range Avg UHS Speed U3 11 70–99 81 U1 3 53–75 65 Video Speed V30 10 72–99 83 V10 3 53–74 65 App Performance A2 8 74–99 84 — 7 52–80 68 UHS and Video class show moderate group-level correlation — not because the bus mode matters in SPI, but because the flash quality and controller sophistication needed to achieve U3/V30 also tends to perform better over SPI. The overlapping score ranges mean these markings are not a reliable substitute for actual SPI benchmarking.
-
Label markings can disagree with register data. Several cards show different speed class ratings on their physical label vs. their SD Status register. Register data (from the characterization utility) is authoritative.
-
Samsung PRO Endurance and Amazon Basics lead at both speeds with near-identical scores (98–99). At 250 MHz, Samsung PRO Endurance takes the top spot; at 350 MHz, Amazon Basics edges ahead due to stronger single-sector write performance.
Two physical sockets on the same P2 Edge bench — the module's onboard microSD socket and an external header-wired adapter socket — were characterized against each other on 2026-08-17 (13 runs, cards swapped between sockets to separate card effects from socket effects). The numbers below are out-of-spec stress characterization: the SD specification caps SPI at 25 MHz, and the boundaries were found by deliberately driving past it.
| Onboard (Edge) socket | External adapter socket | |
|---|---|---|
| Command-path ceiling | ≥ 43.75 MHz (clean at every frequency reachable at 350 MHz sysclk) | cliff in (36.25, 37.50] MHz — sharp, no degraded band |
| Extra round-trip delay vs. onboard | — (reference) | ~3 ns class (bounded 0 < Δt ≤ ~5.7 ns) |
| Margin at production 25 MHz | ≥ 75% | ≥ 45% |
What this means in practice:
- At the production 25 MHz both sockets carry wide margin for every mainstream card measured. The socket difference does not affect normal operation with healthy cards.
- The difference is real and card-independent — the same boundaries appeared on four cards across two unrelated families (mainstream SDHC and counterfeit-class SDSC), and physical card swaps moved nothing.
- Marginal cards feel the difference first. A card whose own clock-to-output
timing is slow (measured on counterfeit-class SDSC silicon) loses its streamer
read alignment ~one frequency step earlier in the adapter socket than in the
onboard socket. A card that misbehaves in one socket and not the other is
reporting its own thin margin plus the socket delta — see the mechanism
section in
SD-CARD-DRIVER-THEORY.md(Receive Alignment and Socket Timing) and the per-card records inDOCs/cards/.
Measurement conditions: 350 MHz sysclk (plus a 290–336 MHz sysclk ladder to place cells between the 350 MHz frequency grid points), sector reads scored by CRC and byte-compare against a low-speed reference, ±1 sysclk tick (2.857 ns) resolution. The full account, including the method and its limits, is in Socket Timing Characterization.
| Date | Change |
|---|---|
| 2026-08-17 | Added section 8: socket timing differences (onboard vs. external adapter), from the socket characterization campaign |
| 2026-02-25 | Added purchase recommendations with images; reordered sections; expanded to 15 benchmarked cards; added register markings and rank columns; merged 350/250 MHz ranking tables; added correlation analysis |
| 2026-02-24 | Initial release — 11 benchmarked cards, 22-card library |
Part of the P2 microSD FAT32 Filesystem project — Iron Sheep Productions






