code: def _Write(self, data, length, progress_callback=None):
          
          if progress_callback:
              progress = self._HandleProgress(length, progress_callback)
              next(progress)
          while length:
              tmp = data.read(self.chunk_kb * 1024)
              length -= len(tmp)
              self.usb.BulkWrite(tmp)
  
              if progress_callback and progress:
                  progress.send(len(tmp))
docs: Sends the data to the device, tracking progress with the callback.