There are a couple ways to look at this, depending on how much precision you need. Assuming that we can neglect the small processing overhead of the FuserCore, you can simply parse the timestamp packets in the FIFO, and assume that the IRQ timestamp is equal to the last timestamp.
Doing so with our sample code, you could simply set a timestamp callback to automatically update a global variable. Once all the bytes are processed, you are good to go.
If you want this delay taken into account, you can read it 2 ways: either through registers 0x6C to 0x6F, or via Page 1, Parameter 30, bytes 0-3. Both values should be equal.
For data consistency, I recommend that you read the Host IRQ register after clearing the iterrupts, or to wait 1ms after the interrupt to read it so make sure all 4 bytes are written to the registers.
... View more
"[...]and carry out the orientation algorithms myself." The BHI160 built-in orientation algorithm at a low power number is a key feature of the BHI160 architecture. Therefore the whole design is built for that purpose. If you do have access to sensor fusion algorithms with a good enough performance for your application, indeed a standalone sensor makes more sense, especially if you do not have big power consumption constraints.
"Is it correct that the BMG250 and BMI270 can both be continuously read out through the FIFO at 3200 Hz sample rate over SPI? I ask because I was surprised that the BHI160 is limited to 200 Hz sample rate." Yes. Both parts can continuously output up to 6.4kHz gyroscope data. The BHI160 limitation is mainly due to the small processing power of the built-in Hub. It can only process the sensor fusion at a maximum rate of 200Hz, so the internal framework has not been optimized to provide higher data rates (even for raw data).
"Is there any significant benefit to the BMG250 over the BMI270 if I am only interested in the gyroscope?" The only added benefit for BMG250 that I would see, is that it does not required an 8kB configuration file upload at every power-on. In terms of sensro performance and current consumption, BMI270 would be the better choice. If pure performance is the key, the BMI085 would typically be part of choice.
"Will either of these sensors have an issue in high shock environments, up to 500 g?" Both parts have the same mechanical robustness rating of 2000g (<1.0ms) and 10000g (<200us)
"Are there plans to add orientation algorithm to the BMI270?" No.
"Are there plans to create a BHI160 with a higher output rate?" BHI260 series of devices will enable an output data rate of up 400Hz at normal clock speed, 800Hz with turbo clock. Additionally, with BHI260 the secondary interface is exposed to the package, so a seconde host (or a second interface on the same host) can read 6.4kHz raw data from this interface, while the sensor Hub runs a sensor fusion algorithm at a lower data rate simultaneously.
... View more
The BHI160 feature automatic gyroscope offset calibration. It is always enabled. Whenever it detects that the device is static due to a constant acceleration, the gyroscope offset is calibrated. In your case since the device is in freefall, the acceleration must have been ~constant.
... View more