Cool. I have a reliably-working system at the moment, albeit with analog audio instead of digital, and I'm just doing a lot of software touch ups. I'll keep reporting my changes here so you know what to expect when you get back to the project.

Speaking of which:
https://github.com/tfabris/BlueGigaEmpeg
- Moved explanatory text into README.txt file.
- Add behavioral flag reconnectIfBadRegistrationReceived
- Experimentally change the code which resets the bluetooth if a bad PDU registration is received to a hopefully-quicker version. (Edit: reverted, it didn't fix the issue.)
- Add behavioral flag performResetLinePhysical - Set to true if you want to use the reset line.
- Add behavioral flag digitalAudio - Set to True to use I2S audio, set to False to use analog audio.
- Add behavioral flag logLineByLine - Set to True to log a line at a time instead of a character at at time.
- Added time profiling to each output line in line-by-line logging mode. Each line is preceded by a delta, in milliseconds, from the prior output line.
- In the log output, label bluetooth module's output lines which are deliberately ignored by the DisplayAndSwallowResponses function.
- Increase RX buffer size requirement to 256 to help with the full-player-shuffle bug. Mostly helps.
- Refactor some of the string handling in the code to work around Arduino memory bugs that would occur when very long track titles came up.
- General bugfixes and refactoring.
- More cleanup of code comments and README.txt file.
- Mark Lord's required security mode, which is yes/no prompt mode, is now the default mode for the BlueGigaEmpeg, and the code automatically answers the yes/no prompt. It can even answer the prompt when outside the pairingmode process.

_________________________
Tony Fabris