Problem
When using certain SD cards (tested with Samsung 16GB HC Class 10), the Performer either:
- Boot loops — the progress bar fills and the board resets repeatedly
- Crashes when loading a project — works fine without SD card, but crashes when trying to load a saved project
Root Cause
Two timeouts are too short for high-capacity SD cards that take longer to initialize in SPI compatibility mode:
- Watchdog timeout in
src/apps/sequencer/Sequencer.cpp is set to 1000ms, which is too short for the SD card init sequence on some cards
- ACMD41 timeout in
src/platform/stm32/drivers/SdCard.cpp is set to 2000ms, which is insufficient for some SDHC cards
Related issue: #368 describes the same CMD8/ACMD41 timeout problem.
Fix
src/apps/sequencer/Sequencer.cpp line 153:
// Before
System::startWatchdog(1000);
// After
System::startWatchdog(5000);
src/platform/stm32/drivers/SdCard.cpp line 225:
// Before
uint32_t timeout = os::ticks() + os::time::ms(2000);
// After
uint32_t timeout = os::ticks() + os::time::ms(4000);
Result
After applying both changes, the following SD cards work correctly:
- ✅ Samsung 16GB HC Class 10 (previously failing)
- ✅ SanDisk 8GB (was already working)
Tested on a DIY build with firmware v0.1.42.
Problem
When using certain SD cards (tested with Samsung 16GB HC Class 10), the Performer either:
Root Cause
Two timeouts are too short for high-capacity SD cards that take longer to initialize in SPI compatibility mode:
src/apps/sequencer/Sequencer.cppis set to 1000ms, which is too short for the SD card init sequence on some cardssrc/platform/stm32/drivers/SdCard.cppis set to 2000ms, which is insufficient for some SDHC cardsRelated issue: #368 describes the same CMD8/ACMD41 timeout problem.
Fix
src/apps/sequencer/Sequencer.cppline 153:src/platform/stm32/drivers/SdCard.cppline 225:Result
After applying both changes, the following SD cards work correctly:
Tested on a DIY build with firmware v0.1.42.