Die I2C Adresse kann man nicht ändern, die ist für jedes Bauteil fix (so wie eine Hausnummer, die kann man auch nicht ändern). Jedes Kompassmodell hat seine eigene I2C Adresse. Wenn du 2 Kompasse des selben Modells anschließt, ist der FC verwirrt, weil ja die selbe Adresse 2 mal im System vorkommt. Wenn du jedoch als externen Kompass ein anderes Modell nimmst (welches ja wieder eine andere I2C Adresse hat), dann gibt es jede Adresse nur einmal und du kannst einfach in der Software den externen Kompass aktivieren, und der Onboard wird nicht mehr abgefragt.
Als Beispiel: auf denen Board ist dieser Kompass verbaut: HMC5883 (ist der am häufigsten benutzte), dieser hat die I2C Adresse XY. Würdest du jetzt noch ein HMC5883-Mag extern dazuschalten, dann würde es 2 Geräte mit der Adresse XY geben, also ist nicht eindeutig definiert, welcher Sensor der externe ist und welcher onboard, da beide mit der selben Adresse angesprochen werden. Also muss man als externen Kompass ein anderes Modell nehmen, z.B. diesen hier: AK8975 (dieser kommt in der neuen MPU9150 vor, ist ein relativ neuer Sensor). Dieser hat eine andere I2C Adresse, z.B XZ.
Jetzt gibt es in dem System die Adressen XY und XZ, jeder Sensor ist also eindeutig definiert. Mit der Adresse XY wird das Onboard-Mag angesprochen, mit der Adresse XZ wird der externe Kompass angesprochen. Jetzt muss man nur noch in der Software einstellen, dass das Mag mit der Adresse XZ abgefragt wird. Damit ist der Kompass mit der Adresse XY zwar immer noch aktiv, wird aber nicht mehr abgefragt.