I have now had two units exhibit nearly the exact same behavior, and it seems odd to me for them to be so similar. I'm wondering if anyone else has seen similar. I have a two device system, they both use the same firmware, but once they have been setup by the host application, one of them (unit A) allows one peripheral and one central connection (the other peripheral connection I disallow in software) and the other (unit B) allows two peripheral connections (it never scans). They bond to each other, connect to the phone, and play audio files via I2S.
I have now had two unit A's go bad - as in kaput - in much the same way. They start by not connecting to the host (Android) quickly, then they start jumping to (seemingly) random memory locations after the I2S stops, then they advertise but stop connecting to both the phone and the other unit altogether and seem to get weird with the peripheral hardware (sensor reads stop working and will just hang). Then that's it, they are bricks.
I thought it could be a powering issue - they are being powered through VDDH at 4.2V (li-po batt, fully charged) - but the voltages check out fine as 4.2V is in spec. None of the peripheral components run on VDDH (they all communicate at 3.3V - so below the 3.9V max in the spec). It only seems to happen with the mixed central/peripheral units so I'm wondering if something happens with the program memory or the NV used by the SD? Does the SD do a lot of maintenance, enough that after a few weeks of constant code changes it kills that area of memory? Has anyone else ever had a similar experience?
They are definitely getting used hard in terms of programming, easily a couple dozen times a day, sometimes full erases (i.e., flash included), sometimes not. Like I said, it has been several weeks of this kind of use, but otherwise a clean lab without a history of ESD problems. I'm kind of at a loss here as to what else it could be.