The complete schematics, source code, and description of the project is at http://www.pittnerovi.com/jiri/hobby/electronics/avionics Originally I connected the SEEED BMI088 module (which contains 3v3/5v level shifters and 3v3 regulator) to 5V-level I2C bus, connector P806. I have then seen that the level shifters on the module are a bit slow, so I removed and jumped them them, as well as the 3v3 regulator from the module and connected it to 3V3-level I2C bus, connector P803. Since it did not help, I was afraid the SEEED module might contain a Chinese clone and I purchased the shuttle board from Mouser and connected it for I2C communication exactly according to the datasheed and to the 3V3-level I2C bus, connector P803. Both modules have the same problem - communication with accelerometer works perfectly, while gyroscope gives already bad chip_id and garbage. It could be that gyroscope is more sensitive to exact timing or other signal integrity issues on the I2C bus, while for accelerator it is OK. I have understood that BMI088 are basically 2 totally independent chips in one package. Another component on the same I2C bus which I succesfully tested was magnetometer HMC5883, connected to P801, so it must be something rather subtle. I plan to look in detail on the signals with my old rigol scope (unfortunatelly I have no professional logic analyzer for easy decoding of busses like I2C). I may try also to connect the module to a different CPU, like raspberry pi, and try I2C there, or I could try SPI communication (but this I do not like since I would need 2 chipselect signals not available at my present board). Anyway I would be thankful for any hints for debugging, in particular if you happen to have a STM32(F37) development board and could try I2C communication with this particular MCU to reproduce the issue.
... View more