diff --git a/patches/fix_mpremote.py b/patches/fix_mpremote.py new file mode 100644 index 00000000..1b5896ac --- /dev/null +++ b/patches/fix_mpremote.py @@ -0,0 +1,27 @@ +diff --git a/tools/mpremote/mpremote/main.py b/tools/mpremote/mpremote/main.py +index b30a1a213..015a31114 100644 +--- a/tools/mpremote/mpremote/main.py ++++ b/tools/mpremote/mpremote/main.py +@@ -508,7 +508,7 @@ class State: + self.ensure_connected() + soft_reset = self._auto_soft_reset if soft_reset is None else soft_reset + if soft_reset or not self.transport.in_raw_repl: +- self.transport.enter_raw_repl(soft_reset=soft_reset) ++ self.transport.enter_raw_repl(soft_reset=False) + self._auto_soft_reset = False + + def ensure_friendly_repl(self): +diff --git a/tools/mpremote/mpremote/transport_serial.py b/tools/mpremote/mpremote/transport_serial.py +index 6aed0bb49..b74bb68a0 100644 +--- a/tools/mpremote/mpremote/transport_serial.py ++++ b/tools/mpremote/mpremote/transport_serial.py +@@ -139,7 +139,7 @@ class SerialTransport(Transport): + time.sleep(0.01) + return data + +- def enter_raw_repl(self, soft_reset=True, timeout_overall=10): ++ def enter_raw_repl(self, soft_reset=False, timeout_overall=10): + self.serial.write(b"\r\x03") # ctrl-C: interrupt any running program + + # flush input (without relying on serial.flushInput()) + diff --git a/patches/i2c_ng.patch b/patches/i2c_ng.patch new file mode 100644 index 00000000..69118397 --- /dev/null +++ b/patches/i2c_ng.patch @@ -0,0 +1,13 @@ +--- lib/esp-idf/components/driver/i2c/i2c.c.orig 2025-11-23 11:54:37.321320078 +0100 ++++ lib/esp-idf/components/driver/i2c/i2c.c 2025-11-23 11:54:54.681590547 +0100 +@@ -1715,8 +1715,8 @@ + // So if the new I2C driver is not linked in, then `i2c_acquire_bus_handle()` should be NULL at runtime. + extern __attribute__((weak)) esp_err_t i2c_acquire_bus_handle(int port_num, void *i2c_new_bus, int mode); + if ((void *)i2c_acquire_bus_handle != NULL) { +- ESP_EARLY_LOGE(I2C_TAG, "CONFLICT! driver_ng is not allowed to be used with this old driver"); +- abort(); ++ ESP_EARLY_LOGE(I2C_TAG, "CONFLICT! driver_ng is not allowed to be used with this old driver BUT abort is disabled!"); ++ //abort(); + } + ESP_EARLY_LOGW(I2C_TAG, "This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h`"); + }