Baffling complications with the SD card (and final exams) stalled Quantus' development for quite some time. An error was encountered in the circuit that was fried the microSD cards (yikes!). As it turns out, the card detect pin was mistakenly being fed 5V when SD cards are only 3.3V tolerant. This means that the microSD card was slowly degrading over time until it stopped functioning altogether. In accordance with Murphy's Law, the prototype worked for all my user testing and informal demos, but failed when giving a presentation it to a high school physics teacher who might be interested to use Quantus in the classroom!
Trying to find this error presented a big challenge. The circuit functioned correctly without the SD card and the measured voltages were all within tolerance. However, the circuit destroyed any microSD card that was inserted, thus preventing any tests (the circuit does not necessarily behave correctly with a broken SD card). It took a bit of luck and a lot of patience to find and correct what was going on.
The most difficult part solving this bug was determining where the error was taking place. Was it the software, microcontroller, circuit, microSD breakout, card itself, or something else? This perplexing hardware bug made me really value the need for good hardware and software test as well as the value in making systems as independent as possible.
For an unknown reason, the microSD breakouts stopped functioning without any changes to the hardware or software (except the card detect voltage change which should not have made an impact). Until new microSD breakouts can be purchased, I hacked together a temporary breakout to continue development. The metal contacts on a regular-sized SD card are spaced at almost exactly the same width as standard-sized male breakout pins. Thus, the breakout pins can be soldered directly to a spare microSD to SD card adapter. Voila!