microSD on its own SPI bus
2 pads to solder Power: 5 V 3 A on U6, not the laptop Have ready: FAT32 card, 32 GB or less
What you add The blue SPI microSD module
What passing proves The card mounts, reads, writes and keeps up with audio
Already working A: chip, PSRAM, amp at 0x2D · B: both speakers
TipThe module keeps driving MISO even when it isn’t selected, so it gets four pins of its own. Tests C and D can never get in each other’s way.
Wiring · test C · 6 wires · 2 pads to solder
Louder-ESP32-S3 · K1 nothing modified
test C
microSD module SPI · XC6206 · labels say SO and SI
Same board wired in test B
test B
Supply + 2 speakers already in place
Test D · PN532 readerP1 and P2 sockets, no soldering
Test E · knob and buttonssockets + pads SD 39, RGB OUT 21, IR IN 07
power ground signal later steps pad = solder · pin = header pin · socket · screw = terminal
Pin budget · Louder-ESP32-S3 rev K1 4 of the build's 13 GPIO wired after test C
Tap a pin to see why it’s free, used or off limits.
this step earlier step later step free on the chip, pad not checked avoid
- 0, 3, 45, 46 strapping pins: they decide how the chip boots
- 8, 9, 14–17 wired on the board to the TAS5805M amp
- 19, 20 USB: flashing and the serial console
- 26–37 flash and octal PSRAM inside the N8R8 module
- 7 usable, but it shares the IR receiver
- 43, 44 UART0: fine for the SD card, the console moves to USB
Wire it, then check before power
0 of 5- ⚠ Caution · no fuse on this board The barrel jack and U6 share the same two nets, and the M7 diode clamps across the rail. A reversed supply conducts straight through it. Meter first, plug second.
Flash and check
Power: 5 V 3 A supply on U6pio run -e c_sd -t upload -t monitor Or flash it from the browser, desktop Chrome or Edge, with the build note. Blank board? Do the first flash once.
What you should see
TEST C - microSD card : SDHC, 30528 MB root: 4213 test.txt write : ok read back: written by test C write rate: 480 kB/s over 1065 ms TEST C done.
Pass: the card mounts, the file list matches, and the write reads back. A 128 kbps MP3 needs 16 kB/s; anything in the hundreds is fine.
On my bench
✓ PASSED ON THE PADS · SANDISK ULTRA 32 GB · 371 KB/S · MISO ON 43, CS ON 44 · VCC ON 5 V
It passed on the P1/P2 sockets first (c_sd_sockets, 376 kB/s), then on the pads. The UART header on my board already has pins; if yours is bare, that’s three more pads.
What went wrong on my bench
- CS and MISO came out the reverse of the plan. the plan c_sd_scan tried both and found MISO on 43, CS on 44. Everything on this page already uses them.
- The module holds MISO even when it isn’t selected. the module Its buffer’s output-enable is tied on. Rather than modify it, the card gets its own pins.
- The card never answered its first command. me Every time it was wiring: pins in bare holes without solder, two wires swapped, one a position off. Run c_sd_sockets on P1/P2 first to rule the pads out.
- An older sheet said 3.3 V would starve the card. the plan It assumed an AMS1117. This module has an XC6206, so 3.3 V works. 5 V from U6 still leaves more headroom.
If yours fails
- GO_IDLE_STATE failed / cmd: 0x00
- Wiring. Check each wire against the label at both ends, one at a time.
- MOUNT FAILED
- In order: module on 3.3 V instead of 5 V; MISO and MOSI swapped; a dry joint; an exFAT card. Cards above 32 GB usually arrive exFAT.
- Mounts, then errors mid-file
- Wire length or a poor ground. Shorten everything; give the module its own ground.
- Works cold, fails after test B ran
- Supply current. Use the 3 A adapter for this test too.