diff --git a/adafruit_esp32spi/adafruit_esp32spi.py b/adafruit_esp32spi/adafruit_esp32spi.py index 76e6cc8..421cdd1 100644 --- a/adafruit_esp32spi/adafruit_esp32spi.py +++ b/adafruit_esp32spi/adafruit_esp32spi.py @@ -527,11 +527,14 @@ def socket_write(self, socket_num, buffer): if self._debug: print("Writing:", buffer) self._socknum_ll[0][0] = socket_num - resp = self._send_command_get_response(_SEND_DATA_TCP_CMD, - (self._socknum_ll[0], buffer), - sent_param_len_16=True) + sent = 0 + for chunk in range((len(buffer) // 64)+1): + resp = self._send_command_get_response(_SEND_DATA_TCP_CMD, + (self._socknum_ll[0], + memoryview(buffer)[(chunk*64):((chunk+1)*64)]), + sent_param_len_16=True) + sent += resp[0][0] - sent = resp[0][0] if sent != len(buffer): raise RuntimeError("Failed to send %d bytes (sent %d)" % (len(buffer), sent))