Hallo,

die i2c-twi lib würde ich auf jeden Fall verwenden, denn damit wird das TWI verwendet, so wie ich das im Prinzip im Wiki manuell gamacht habe.
Man kann damit genauso die Bascom-I2C-Befehle verwenden wie in der Sub für den SRF02 auch, ist etwas übersichtlicher als alles per Hand zu bauen

Diese Do..Loop-Schleife wartet bis ein Byte über TWI raus- oder rein ging, und die wartet solange bis der Strom ausgeht
Wenn hier wirklich etwas stört kanns schon vorkommen, das der Slave die Daten nicht mitbekommt, und sich der Master zu Stromende wartet. In so einem Fall müsste eigentlich in der Do-Loop-Schleife eine weitere Abbruch-Bedingung rein, damit sich nix aufhängt.

Hast Du etwas zum messen, also ein Oszi, um die Signale auf den I2C-Leitungen zu kontrollieren ?

Du kannst auch mal den I2C langsamer machen, bei Config TWI zB. 20000 angeben.