You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If recording is done at a rate of 5 MB/s (on STM32H743 running at 400 MHz with USB HS) there are occasionally gaps between USB transactions for more than 50 ms which causes embedded application to fill in the buffer preventing further writes to the buffer.
SDSIO-Server should provide timely USB transfers to allow sustainable recording.
Screenshot below shows this gap between 2 USB IN transactions:
The text was updated successfully, but these errors were encountered:
I've done an initial investigation and based on our findings, it appears that the root cause is not within the SDSIO-Server itself, but rather related to how USB Virtual COM ports are handled on the Windows side.
To isolate the problem, I ran a test setup without the SDS framework or SDSIO-Server:
On the device (STM32H743), I used the USB Device CDC stack, calling USBD_CDC_ACM_WriteData() in a loop to continuously transmit data. On the Windows PC, I used Tera Term to log the incoming data to a file.
Using a USB analyzer, I observed similar gaps between IN transactions (over 50 ms) as reported in this issue. This confirms that the issue likely originates from the Windows CDC driver or how Windows buffers and handles USB VCOM communication.
We should try using PyUSB or WinUsbCDC python packages and avoid using usbserial.sys Windows driver which seems to have issues with loosing packets also.
It is not clear if 50 ms gap between polling IN data on the USB would be resolved by using mentioned packages or if that is inherently a problem of Windows when handling USB.
If recording is done at a rate of 5 MB/s (on STM32H743 running at 400 MHz with USB HS) there are occasionally gaps between USB transactions for more than 50 ms which causes embedded application to fill in the buffer preventing further writes to the buffer.
SDSIO-Server
should provide timely USB transfers to allow sustainable recording.Screenshot below shows this gap between 2 USB IN transactions:
The text was updated successfully, but these errors were encountered: