It might not be important, but if SrcDelay would be node position, 0x03 would be AMP2, and 0x04 would be AMP1. I’m still confused here.
I tried the force switch with the AMP2 setting as you proposed. Two issues occured (and an old one):
Finally, I can provide a most-dump from AMP1 for the first seconds after startup until the force switch (audible loss of AMP1) happens:
most-dump AMP1 from startup to force switch
[
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x113", // mute
"opType": "0x1", // get
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x0", // SinkNr 0 (wildcard?)
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x0", // ICM
"fBlockID": "0x6", // diagnosis, no spec sheet available?
"instanceID": "0x53",
"fktID": "0x1",
"opType": "0x0",
"telID": "0x0",
"telLen": "0x5",
"data": [
"0x1",
"0x1",
"0x0",
"0xc",
"0x33",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x0", // ICM
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x111", // Connect
"opType": "0x2", // StartResult
"telID": "0x0",
"telLen": "0x6",
"data": [
"0x1", // SinkNr 0x01
"0x4", // SrcDelay 0x04
"0x0", // Channel 0
"0x1", // Channel 1
"0x2", // Channel 2
"0x3", // Channel 3
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0xd02", // saab specific?
"opType": "0x0", // set/start
"telID": "0x0",
"telLen": "0x2",
"data": [
"0x7", // ?
"0x1", // ?
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x113", // mute
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x2",
"data": [
"0x0", // SinkNr 0x0 (wildcard "any instance"?)
"0x0", // mute Off
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x202", // Bass
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x1",
"data": [
"0xff", // Bass 0xff ? (Explicit values ranges are specified in the application)
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x203", // Treble
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x1", // Treble 1 (?)
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x200", // Balance
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x0", // Balance 0 = left-right equal
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x204", // Fader
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x0", // Fader 0 = front-back equal
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0xd05", // saab specific?
"opType": "0x0",
"telID": "0x0",
"telLen": "0x2",
"data": [
"0x1", // ?
"0x12", // ? -> eventually something with AMP2 0x112?
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP2
"fktID": "0x113", // Mute
"opType": "0x1", // get
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x0", // SinkNr 0x0 (wildcard "any instance"?)
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0xd02", // saab specific? (used 2nd time)
"opType": "0x1",
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x1", // ?
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x10", // EHU
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x113", // Mute
"opType": "0x0", // set
"telID": "0x0",
"telLen": "0x2",
"data": [
"0x1", // SinkNr 0x01
"0x0", // Mute Off
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x0", // ICM
"fBlockID": "0xf7", // ? AMP1, 247 present in almost every node
"instanceID": "0x53", // InstID 0x53
"fktID": "0xe50", // ? saab specific
"opType": "0x2", // SetGet / StartResult
"telID": "0x0",
"telLen": "0x2",
"data": [
"0xbd", // ?
"0x44", // ?
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x11", // AMP1 ?! -> guess thats the PiMost?
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x112", // DisConnect
"opType": "0xc", // Result
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x1", // SinkNr 0x01
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
},
{
"type": "0x0",
"sourceAddrHigh": "0x1",
"sourceAddrLow": "0x11", // AMP1 ?! -> guess thats the PiMost?
"fBlockID": "0x22",
"instanceID": "0x2", // AMP1
"fktID": "0x111", // Connect
"opType": "0xc", // Result
"telID": "0x0",
"telLen": "0x1",
"data": [
"0x1", // SinkNr 0x01
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0",
"0x0"
]
}
]
There are a few saab specific functions involved, as far as I can see and FBlock 0xf7 (247) gets addressed once. This FBlock exists in every node, except for the ICM. I remember you saying, that every node usually has its shadow FBlock for the amplifier. I only have the 0x22 FBlock in every node with an AMP. What if the 0xf7 would be some kind of shadow FBlock to handle all three physical amplifiers at once? It’s only weird, that every amplifier would also have this shadow FBlock - but there might be a reason for that…
Btw, somehow I could not recreate the audio blip as described earlier, as I’m writing this now - maybe that only happend after the ignition off and on, I will need to try it again next time I’m in the car!