Missing 1 bit shift Bitbang I2C Atmega328p
I just using Master Wire.h then compare the waveform then stretching and it work :) :) Only 2us difference

{
    uint8_t byte = 0;
    uint8_t bit = 0;

    _delay_us(12); &lt;---- From 10 to 12us
    SET_SDA_IN(); &lt;--- Already release the SDA so Slave can pull down the SDA line 

    for (bit = 0; bit &lt; 8; bit++)
    {
        byte &lt;&lt;= 1;
        do
        {```