Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current
main
branch oflibsigrok
is not able to retrieve samples from Siglent SDS E-series oscilloscopes. This change adds support.Background
This was previously submitted as sigrokproject/libsigrok#118, but the PR was withdrawn by the author as there was no maintainer interest at the time.
Per the original PR, the following bugs are related to the change.
Various rebases of this change have been confirmed to work by different users, with a variety of scopes:
These affordable devices are quite popular with hobbyists, so you wont have a problem finding somebody to test
siglent-sds
driver changes for regressions on this hardware in future.Lastly, noting that this PR has failed to gain traction before, I'd like to mention that there is considerable interest in these devices from prospective Sigrok contributors, but this is not matched by actual movement in the
siglent-sds
driver. If those with commit access are still not in a position to enhance/maintain this driver, then that's absolutely fine, but I would like to respectfully request that you expand the group of committers to ensure that the community is able to take this driver forward.Testing the change
I tested this on Linux (Debian testing).
This setup can be replicated by installing build dependencies, cloning sigrok-util, then building from source using the sigrok-cross-linux script, with the added step of patching some URL's to point to forks before running the build (patch: siglent-sds.txt)
Note:
disable-java
is to work around bug 1827, and the alternative PulseView URL is just so that I don't need to ignore test failures, see sigrokproject/pulseview#72. Neither of these are related to this change.Then running:
And confirming
libsigrok
commit ID matches this PR.Testing via network connection
I'm able to scan/connect to my SDS1104X-E using Raw TCP, port 5025.
On the scope, I have connected channels 1 & 3 to the calibration signal and pressed 'Auto Setup'. The screen looks like this:
In sigrok, I can then press 'Run', and it retrieves the information.
Testing USB connectivity
I don't have my
udev
rules working so I'm running as root (sorry).I had to reboot my scope here because it got stuck in a weird state, but the same capture works, just slowly.
Contrast with current behaviour
I want to emphasise that this change does not implement every possible improvement, but does fix compatibility issues which prevent users from acquiring samples from this type of device.
In the current
master
branch, connecting over Ethernet allows data to be shown for the first channel (albeit very slowly), but the capture never completes, channels other than the first channel are never loaded, and stdout shows zillions of warnings in the formWARNING: Received analog packet with 0 samples
.The device can be discovered over USB, but similarly a capture never completes, with the only feedback being the message
sr: scpi_usbtmc: USBTMC invalid bulk in header.
appearing on stdout.How you can help
siglent-sds
driver apparently supports SDS1000X and SDS2000X series devices. If you own one of these older devices (not "-E", "-U," or "HD"), then I would appreciate a comment as to whether the changes in this branch cause any regressions compared to the currentlibsigrok
-master
.