Maybe everyone just uses the trick with the AD0 line.
This sure seems like a straightforward method of reading from multiple sensors to me. As has been suggested, you want to make sure you don't have too many pull-up resistors in parallel.How many sensors do you want to use? If it's less than 8, you could use a 3 to 8 decode chip ($1) to set one pin high (or low) at a time. Another option would be use use a '595 shift register (also $1) to set the AD0 line high or low. you could chain '595 chips to control lots of AD0 pins with three I/O pins on the Arduino.
This is a I2C multiplexer : https://www.adafruit.com/product/2717Or you could try the other two with SoftwareWire (the SoftwareWire is in the library manager).Since that youtube movie seems to work to well, changing the address from 0x69 to 0x68 one by one seems to be the most simple solution.If you have a module with a AD0 that doesn't work, it is probably broken.The XDA and XCL are not very useful. They have two modes:1 ) Connected to SDA and SCL. But then you could just as well use the normal SDA and SCL.2 ) Internally to be used by the DMP only.What else is on the I2C bus ? More pullups ?I suggest to remove all the 2k2 from the modules, and have a single 4k7 for the complete I2C bus.
Did you consider using a 4052 (or similar) to do some (de)multiplexing of the I2C signals, instead of messing with the address setting ?
Although I agree with your recommendation, desoldering smt components is easier said than done for me. I just don't have the skill or eyesight for such a surgical maneuver.
I will need a level converter to make the 5v signal compatible with the AD0's expected 3.3v input.
I agree removing smt components can be a pain but smt resistors are so bad. Just get a good sized blob of solder on the tip of your soldering iron so you can heat up the whole resistor at once. You want enough solder so both sides of the resistor are in contact with the melted solder. Once the solder holding the resistor has melted, push the resistor and solder off to one side.I've removed many smt resistors this way and I think it's not very hard to do so.An easy way around this on the AD0 lines is to pull the line high to 3.3V and use the Arduino to pull the line low. You wouldn't need to ever set the line high from the Arduino. The I/O pin would be limited to two possible states, an input pulled high to 3.3V and as an output set low to 0V.