-
Notifications
You must be signed in to change notification settings - Fork 397
Add Siglent SDS E-series Support #247
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mike42
wants to merge
4
commits into
sigrokproject:master
Choose a base branch
from
mike42:siglent-sds
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit re-implements the whole acquisition logic for the Siglent E-series (SDS1000X-E, SDS1000X-U, SDS2000X-E). The acquisition is based on a state machine to keep the logic simple and robust. Additionally this improves maintainability as the E-series acquisition logic is now isolated from the older models which follow a partially different logic and have other constraints when compared to the E-series.
|
Hi, any plans to get this merged soon? |
|
I can confirm that it works on Windows with a Siglent SDS1104X-E If you would like to test in Windows 32bit or 64bit you can find the binaries for this PR here |
|
@abraxa is there anything else we need to do before this PR can be merged? |
|
@abraxa any updates on this pull request? I'm using this version with my Siglent SDS-1204X-E almost daily and it works perfectly. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
mainbranch oflibsigrokis 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-sdsdriver 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-sdsdriver. 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-javais 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
libsigrokcommit 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
udevrules 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
masterbranch, 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-sdsdriver 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.