code: def _write_new_chunk(self):
          
          # Figure out the length of the next request
          new_len = len(self._data)
          if new_len > _WriteRequest.MAX_DATA_LENGTH:
              new_len = _WriteRequest.MAX_DATA_LENGTH
  
          logger.debug('Writing new chunk of {}bytes at 0x{:X}'.format(
              new_len, self._current_addr))
  
          data = self._data[:new_len]
          self._data = self._data[new_len:]
  
          pk = CRTPPacket()
          pk.set_header(CRTPPort.MEM, CHAN_WRITE)
          pk.data = struct.pack('<BI', self.mem.id, self._current_addr)
          # Create a tuple used for matching the reply using id and address
          reply = struct.unpack('<BBBBB', pk.data)
          self._sent_reply = reply
          # Add the data
          pk.data += struct.pack('B' * len(data), *data)
          self._sent_packet = pk
          self.cf.send_packet(pk, expected_reply=reply, timeout=1)
  
          self._addr_add = len(data)
docs: Called to request a new chunk of data to be read from the Crazyflie