Bug 1597

Summary: Random write drop on serial made ols compatible hardware unusable
Product: libsigrok Reporter: iamseer
Component: Driver: openbench-logic-snifferAssignee: Nobody <nobody>
Status: CONFIRMED ---    
Severity: blocker    
Priority: Normal    
Version: 0.5.1   
Target Milestone: ---   
Hardware: x86   
OS: Windows   
Attachments: reset send failed.
02 command failed but actually sent

Description iamseer 2020-08-29 06:47:02 CEST
Created attachment 667 [details]
reset send failed.

Hi.

I tried to create a SUMP protocol logic analyzer with a $2 hardware. It worked perfectly well with pulseview in MacOS. 

https://github.com/DeqingSun/ch55xduino/tree/ch55xduino/ch55xduino/ch55x/libraries/Generic_Examples/examples/04.Communication/SumpLogicAnalyzer

However, when I tried windows, pulseview can not scan it successfully every time. Even when it is connected, the capture only work about once in 5 times. And there is a high change it will throw a general error and crash.

So I tried sigrok-cli to get more info with CH552 (ACM-CDC), Arduino Leonardo (ACM-CDC) and Arduino Duemilanove (FT232R), they all have similar issues. Here are some screen capture and USB packets I captured. 

Sometimes the reset command is not delivered (Wrote 0/1 bytes). And the scan got terminated.
Comment 1 iamseer 2020-08-29 06:49:17 CEST
Created attachment 668 [details]
02 command failed but actually sent
Comment 2 iamseer 2020-08-29 06:52:44 CEST
And sometimes the 02 command seems failed and the next 04 got sent in application. however, USB packet shows 02 was sent but 04 wasn't. The attachment shows a screenshot.

I wish I can rebuild the application to perform more test, but MXE didn't compile on my computer.
Comment 3 iamseer 2020-09-03 11:15:03 CEST
OK, with pulseview and sigrok-cli both compiled. It seems the transmission works fine, but receiving is not working on pulseview.

wait_ovl got signalled in sigrok-cli, but not in pulseview