Ok, I've done quite a lot of checking and fiddling now with a signal analyser, and:
Some cards seemed to work reliably as-is
Some cards worked reliably if you tried to initialise them a second time after the first time had failed
Some cards wouldn't work at all *unless you added a pullup resistor to the CS/CD pin)
So I have modified the firmware now so that it automatically retries the initialisation a few times, which fixes a lot of problems... And I'll modify the documentation to suggest adding a pullup resistor to CS (which is good practice anyway as it'll stop noise from inadvertantly writing rubbish to the card, even if it's amazingly unlikely).
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Ok, I've done quite a lot of checking and fiddling now with a signal analyser, and:
So I have modified the firmware now so that it automatically retries the initialisation a few times, which fixes a lot of problems... And I'll modify the documentation to suggest adding a pullup resistor to CS (which is good practice anyway as it'll stop noise from inadvertantly writing rubbish to the card, even if it's amazingly unlikely).