diff --git a/klippy/extras/bus.py b/klippy/extras/bus.py index 4121c1c8..4490efe4 100644 --- a/klippy/extras/bus.py +++ b/klippy/extras/bus.py @@ -180,6 +180,13 @@ class MCU_I2C: self.cmd_queue = self.mcu.alloc_command_queue() self.mcu.register_config_callback(self.build_config) self.i2c_write_cmd = self.i2c_read_cmd = None + printer = self.mcu.get_printer() + printer.register_event_handler("klippy:connect", self._handle_connect) + # backward support i2c_write inside the init section + self._to_write = [] + def _handle_connect(self): + for data in self._to_write: + self.i2c_write(data) def get_oid(self): return self.oid def get_mcu(self): @@ -207,10 +214,7 @@ class MCU_I2C: cq=self.cmd_queue) def i2c_write(self, data, minclock=0, reqclock=0): if self.i2c_write_cmd is None: - # Send setup message via mcu initialization - data_msg = "".join(["%02x" % (x,) for x in data]) - self.mcu.add_config_cmd("i2c_write oid=%d data=%s" % ( - self.oid, data_msg), is_init=True) + self._to_write.append(data) return self.i2c_write_cmd.send([self.oid, data], minclock=minclock, reqclock=reqclock)