The problem is solved. Shuttle board does not have a hardwired pull-up, however, has an integrated one. As I understood, while you are in bootloader mode, internal pull-up is active, but on software boot, it disables, leaving I2C without any pull-up. So I enabled pull up on my STM32WB, and it solved the problem. Looks like a stupid mistake, but it is unreal to debug knowing that I2C works properly on a startup It would be cool to have hardwired pull up as soon as it has no impact on SPI performance but helps a lot during the "breadboard" testing phase. I hope it helps someone.
... View more