So, I have essentially scanned through just about all "User configuration data" keys of csr chip. I have not found anything that affects dsp. But I did find quite a bit of something. Here it goes.
"user0" = "User configuration data 0" aka PSKEY_USR0
"word0" = the index of word (16-bit value) of data in the key.
"0400" = bitmask in hexadecimal notation. If followed by "->" means I tested that precise value.
user0: word0: == 0010 bit -> startup sound == ffff -> boot-loop, self-resets to BEDF 0400 bit set-> crash word3: startup volume word4: if >1aac -> boot loop (halfway through startup sound) data6: word0: 0001: always BT-pairing? data7: word1: change to 0011 -> no startup sound word6: crashy 2000 -> crash 1000 -> crash 0100 -> crash 0010 -> ok 0040 -> ok 00ff -> crash word9: dbd0 -> crash d000 -> crash 0b00 -> crash 00df -> crash 0080 -> ok 000f -> ok data8: word9: >8bcf -> no sound data13: word0: crashy 0070->crash fb70->crash user16: word9: 6070 -> crash 5070 -> ok logic unclear word10: similar to 9 word11: other channel than word12? word12: A060 if any of these set, boot loop with startup sound playing 4000 : boosts volume 001f : boosts volume, the more the value the more the boost user20: word0: 0001: exhibition mode 0002: ?? maybe exhibition mode too? user21: see user26 user26: similar to user21 word0: crash if zero, otherwise no effect word2: if zero, next values are filled with what looks like random numbers user30: sounds table, 3 words per entry word0: event number. 4001 = startup, 4002 = shutdown word1: sound number. 0000-0009 = digits; 000a = startup, 000b = shutdown, 000c = pairing, 000d = connected, e = bump, 000f = chord, 0010 = connect+, 0011 = cancel connect+ word2: bit 0002 is enable/disable, the rest seem irrelevant user37: word0: 0x0080 - clearing this bit inhibits aux input user43: word2: changing value causes either boot loop, no sound, or nothing. Hard to understand word4: signed word, adjusts startup sound loudness (negative for less loud) (0100 is noticeable amount) user49: word0, word1 always restore themselves user51:(thanks @karl.potratz) device color 0001 = Black 0002 = Red 0003 = Blue 0004 = Turquoise 0005 = Grey 0006 = 0007 = Red Base with Blue chequer crosses 0008 = Camouflage 0009 = Blue with Orange chequer stripes 000a = Grey with Turquoise chequer triangles 000b = Turquoise with Blue concentric square pattern 000c = Black 000d = Black 000d = Black user53: change to any value -> crash (tested word0 bit 0001, word2 bit 0001) user61: (thanks @karl.potratz) Custom Device Name. 16 Chars max. (this can also be set via the JBL app) 004a 0042 004c 0020 0046 006c 0069 0070 0034 0020 0031 0032 0033 0034 0035 0036 J B L F l i p 4 1 2 3 4 5 6
Of course, this is still very far from complete. I didn't test all bit combinations for the values listed here, so the conclusion might be wrong.
I've written random values to all unknown data, while looking for clues. Dsp was never seriously affected. Even after isolating a lot of things that cause crashes, I was still observing crashes, boot loops, and overall strange behavior. At least one crash was an unlucky combination of at least two settings in different keys; hunting that stuff down is too time-consuming.
As for "DSP configuration data" - I replaced it all with random values, three times, and it had no effect whatsoever. I'm afraid, it is simply not used at all. Other possibility might be that it checks some checksum on these settings, and reverts to default if checksum is not matched. But I doubt it, it's pointless... So my chances of disabling dsp are really slim at this point.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.