while (i2c_ll_is_bus_busy(hal->dev)) {} Suggestion: Do not spin forever. Ideally this code would: spin for only CONFIG_ESP_INT_WDT_TIMEOUT_MS / 2 exit the ISR set i2c_master->status to ESP_ERR_INVALID_STATE, and abort the transaction I started to workup a patch for this, bu...