Hi Thanks for sharing your detailed info. I don't have a portenta device yet, but here are some info (based on experience) that hopefully could give you some hints to pin-point where the problem is. 1. not sure how long the ESLOV (black cable) is, if it's too long (some of the eariler shipped Nicla boards), then it's more prone to I2C errors, then the ESLOV routible might be stuck somewhere (and hence the BHY2.update() will also be stuck), to confirm it's because of the I2C errors, you could monitor the SDA & SCL lines (also exposed through the headers on Nicla) to see if the lines are pulled to low and do not recover 2. if it's confirmed that the stuck is with the I2C bus (ESLOV), and if the cable is really long, you could try to shorten the cable length (e.g.: to within 4 inches, 4 here is just an emprical number) to see the issue persists 3. if you don't want to fiddle with the rework of the long ESLOV cable or if the cable is not crazily long (e.g.: less than 4 inches), you could add more debugging probes (like LED or printf) in to the Arduino_BHY2 library code to locate the stucking point 4. an easier way (rather than using LED or printf) to pinpoint the stuck code is to use a debugger, the Nicla board has on-board CMSIS-DAP debugger adapter, and all you need is a set of compatible software tools such as (pyocd + arm-none-eabi-gdb), if you are not comfortable using the Command Line interfaces from (pyocd + gdb), you could try the Arduino Pro IDE or platform.io IDE which offers GUI debugging. 5. if 1-3 does not work for you, another backup option is to use Nicla as a shield. I could find some time testing using your code to see if I can reproduce the same issue using Nicla Sense and another board (such as MKR), before I have some results, you could check the above info is useful at all. Curious to learn your update.
... View more