Siglent SDS1102X Serial decoder not decoding properly - Page 1
Forum section: electronics / testgear

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 20, 2017, 01:29:52 pm
content: Hi, I'm playing with my new SDS1102X and it's refusing to decode, see the pictures, both scopes are connected to the same signal. Any ideas why?Also there are a few things that I don't get:1) Why is the memory depth just 1.4MB (and won't let me set it to 14MB) ?2) Why such a low sample rate 5MSa/s @ 20ms/div ? There are 14 divs/screen, @ 20ms/div= 0,28s, @10MSa/s= 2,8MB, and even @ 50MSa/s 0,28s*50MSa/s= 14MB and it should fit.3) When horizontal is > 20 ms/div it shuts down for good the serial decoder, why??The firmware is the latest version. Is it broken or this is just the way it is?

author: rf-loop
author_rank: Super Contributor
timestamp: March 20, 2017, 02:00:01 pm
content: Quote from: GeorgeOfTheJungle on March 20, 2017, 01:29:52 pmWhen decode is in use:maximum acquisition length is 1.4Mlowest horizontal speed is 20ms/divThese are limits (in last FW versions - why, I do not know, 20ms/div also surprise for me).I have not checked but is it so that this Agilent have hardware decoders?What is your signal accurate speed (115k ?) and parameters?(some day I can perhaps also look it bit...)Old FW canNOTE, Attached image is obsolete! (Old FW !!! (Perhaps P06)

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 20, 2017, 03:15:38 pm
content: Hi rf-loop,Thanks for the quick response!Yes, the baud rate is 115200.So yours can decode @ 50ms/div??? But surely not @ 115Kbaud, have you tried? I need to decode a frame that's almost 2s long, and I need to do that with both channels on. Is that possible with this Siglent?Why is mem depth just 1.4MB with decode on? What a bugger!Mine seems to need 10MSa/s to be able o decode properly @115Kbaud which is strange, really, IIRC there were UARTs that did it well with just 16 samples per bit-slot, I don't get why does the siglent need hundreds of points per bit-slot to decode properly. Is it a bug? What do you think?I'm afraid I'm going to have to return it, if that's the way it is it's useless for me. A pity because I like it very much.Thanks,

author: rf-loop
author_rank: Super Contributor
timestamp: March 20, 2017, 05:46:23 pm
content: Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmNo, it was very old obsolete FW version. Now 20ms/div is limit.Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmnot with this acq. speed.Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmNo, it is not.Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmMemory settings are 14k, 140k, 1.4M, 14M (for one channel in use). I do not know reason why max for Decode is 1.4M.Perhapslack of processing power and it go too slow?Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmAll scopes do not meet all users specified needs. If youneed~>2second 115k speed Rx Tx decoded, this scope is not at all right tool (if you need do this using oscilloscope). If this is Go - NoGo question - it is end of game with this and you really need something other.Most important is that you get tools what meet your individual needs.

author: nctnico
author_rank: Super Contributor
timestamp: March 20, 2017, 06:17:14 pm
content: If the purpose is to purely look at the data and not timing then a PC with a serial port monitoring program (there are many of them so spend some time testing a couple of them) is a much better tool. At some point the buffer for decoded data in an oscilloscope will be full and it doesn't matter if the oscilloscope costs $400 or $25000 for that to happen.

author: rf-loop
author_rank: Super Contributor
timestamp: March 20, 2017, 06:28:43 pm
content: Quote from: nctnico on March 20, 2017, 06:17:14 pmThese PC tools + oscilloscope for signal signal integrity and form analyzing is good combination for many this kind of things.

author: tautech
author_rank: Super Contributor
timestamp: March 20, 2017, 06:34:45 pm
content: GeorgeYou can improve results by using the correct protocol trigger from the Trigger suite. Be sure to set the correct baud rate too.As advised 20ms/div is the slowest decode speed, slower and the scope drops decode functionality and enters Roll mode.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 20, 2017, 07:02:48 pm
content: @rf-loop, thank you very much. The thing is that I bought this siglent to replace a 2 years old 1074Z that's doing exactly that just fine and just because I don't like its UI nor its overall sluggishness. (and to get a new toy :-) I saw videos on youtube and thought wow, that thing flies (comparatively), has serial decode and 14MB is about right for this... but no :-(@nctnico The other channel is sensing the current into the DUT, the code spits bytes at certain points to correlate execution with power input, the DUT is sleeping most of the time, only awakes every now and then and for less than ~2 seconds.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 20, 2017, 07:27:20 pm
content: Quote from: tautech on March 20, 2017, 06:34:45 pmI believe that's ok as it is (falling edge), I tried trigger/uart/condition start and it makes no difference, only switching horizontal to 5 ms/div or less makes it decode ok. See the pictures.EDIT: This are the wrong pictures (triggering on rising edge), haven't got at hand the right ones, but it makes no difference.

author: nctnico
author_rank: Super Contributor
timestamp: March 20, 2017, 07:37:37 pm
content: Quote from: GeorgeOfTheJungle on March 20, 2017, 07:02:48 pmThen I guess your only option is to get a different oscilloscope with more memory and better decoding. Segmented recording won't be helpfull either for these kind of measurements.

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 20, 2017, 08:34:27 pm
content: Quote from: GeorgeOfTheJungle on March 20, 2017, 03:15:38 pmDo no suffer unneeded pain. Look at this as opportunity get even more gear. Just use your new scope for simple debugging and serialtriggerfor some large memory USB device that can capture and decode mega, if not gigabits in single shot and analyze in proper manner with search, sorting etc.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 20, 2017, 09:51:16 pm
content: Quote from: nctnico on March 20, 2017, 07:37:37 pmThe funny thing is the 1000z that's cheaper can do it well, huh, I wasn't expecting that.

author: tautech
author_rank: Super Contributor
timestamp: March 21, 2017, 08:14:38 am
content: Brand new unit straight out of the box, UART from Siglent test board, STB3http://siglentamerica.com/prodcut-fjxx.aspx?fjid=4990&id=4688&tid=1&T=2Decode and Serial trigger in use.EditOh yeah, 10x probes used but 1x set on inputs.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 08:49:12 am
content: @tautech: Please try that @ 115200 baud

author: tautech
author_rank: Super Contributor
timestamp: March 21, 2017, 08:55:51 am
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 08:49:12 amThe UART source I have is 9600 baud only, sorry.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 09:04:34 am
content: Quote from: MrW0lf on March 20, 2017, 08:34:27 pmThat sounds good ! :-) Any particular device do you have in mind?

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 09:05:48 am
content: Quote from: tautech on March 21, 2017, 08:55:51 amNo problem, I have an espruino here, let me check it out, one second...

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 21, 2017, 09:46:41 am
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 09:04:34 amIf you want additional 2 analog channels + digitals then there is scope/analyzer hybrid 2206B MSO from Pico (first model with large memory of 32MB, Pico MSOs go up to 512MB). If want only large mem digitals then look DigilentDigitalDiscovery andSaleae stuff*. DigilentAnalogDiscovery (2) is not suitable because of only tiny memory.*Looking at the specs Saleae does not have oboard mem spec anywhere to be seen... Streaming only? That would explain why sample rates drop heavily when enabling many channels.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 10:16:31 am
content: All goes well up to 38400 baud, any more than that and it misbehaves.var baud= 38400;var str= "George"+ baud;Serial4.setup(baud);setInterval(function () { Serial4.write(str); }, 500);

author: ebastler
author_rank: Super Contributor
timestamp: March 21, 2017, 10:43:59 am
content: Quote from: GeorgeOfTheJungle on March 20, 2017, 07:02:48 pmWhat?! The "it's-useless-because-it-only-decodes-from-the-screen-buffer" Rigol can do something in the decoding department which the "only-way-to-do-it-right" Siglent can't?! Heresy!Kidding aside, this seems to be a nice example that design decisions usually imply some trade-offs. In this particular use case, the Rigol's approach (capture it all, then decode piecemeal what is displayed on the screen) turns out to be less limiting. In other scenarios, the Siglent is ahead.A good one to remember when the next round of "scope wars" unfurls in some other thread...(And yes -- I still like my DS1054Z very much, but agree that its user interface can become annoyingly slow with decodes, math, etc. enabled!)

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 21, 2017, 10:52:12 am
content: Seems I was giving wrong advice regarding Saleae analyzers. Seems they do not have onboard memory, at that price!?"All data is streamed in real time over USB. The maximum sample rates depends on the number of digital and analog channels used."Pretty small list then remains.

author: nctnico
author_rank: Super Contributor
timestamp: March 21, 2017, 11:13:40 am
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 10:16:31 amThe problem is clearly in the amount of oversampling needed by Siglent's decoding algorithm. It is one of the things I tested when I got the GW Instek GDS2204E and 13 samples per bit seemed to be the limit.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 12:30:38 pm
content: Quote from: nctnico on March 21, 2017, 11:13:40 amYes, that to me sounds about right, a paleolithic 6551 UART sampled (IIRC) 16 times per bit but this siglent seems to need hundreds to do it right.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 12:36:00 pm
content: Quote from: MrW0lf on March 21, 2017, 09:46:41 amCorrect me if I'm wrong, but isn't it that most of these USB scopes come with Windows only software? And I'm a Mac-man. I wonder why don't they provide a web interface, browsers nowadays have websockets and that would make them chooch fine everywhere (Linux, Mac and Windows).

author: JPortici
author_rank: Super Contributor
timestamp: March 21, 2017, 12:39:50 pm
content: not those three.you have osx software for pico, digilent, selae.pico is a bit behind in terms of updates, unfortunately.

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 21, 2017, 12:48:39 pm
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 12:36:00 pmhttps://www.picotech.com/downloadsI can see Mac, Linux betas.Web interface would assume that processing is in the box, like with regular DSO. With Picos box has standalone memory and triggering, but no (full) processing. This has pros and cons depending on application.I'm doing rolling review on non-MSO version here:https://www.eevblog.com/forum/testgear/picoscope-2000/But have not yet gotten to triggering and decoding, it turned out they have come up with several tricks to circumvent USB-bottleneck and takes time to fully understand it all. Only little post here so far:https://www.eevblog.com/forum/testgear/why-do-i-want-serial-decode-on-a-digital-scope/msg1162253/#msg1162253As for Digilent DD it just come out no end-user info yet. Suppose it's somewhere in the middle. Pico is more-scope like (segmented mem etc), while Saleae is "dumb (A)DC" style with no onboard memory.

author: JPortici
author_rank: Super Contributor
timestamp: March 21, 2017, 12:50:20 pm
content: it should be the beta that added SENT decoding. it crashed A LOT on our computers here

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 21, 2017, 12:59:31 pm
content: Quote from: JPortici on March 21, 2017, 12:50:20 pmPackage as whole or only SENT decoding part? I have gotten latest PC version to crash but mostly with limits-of-possible testing on math channels.

author: JPortici
author_rank: Super Contributor
timestamp: March 21, 2017, 01:12:30 pm
content: the software as a whole. it's been ages though because i have windows on the work pc, that one has the most recent version of course

author: djnz
author_rank: Regular Contributor
timestamp: March 21, 2017, 01:30:07 pm
content: Before you reject the Saleae...The Saleae Logic Pro 8 will will do up to 4 channels at 500 MS/s with USB 3. It can do this for ridiculously long times - the only limit is your computer's RAM. The flip side is it does not show signals in real-time. You set the record length, start the capture, wait for it to finish with no signals showing on screen while it is capturing, and then it shows stuff on screen after it is done. I just did a 3s test capture at 115200 baud rate, no problems.BTW, their software is cross-platform and works on linux, but it is not open-source.Edit: You can also set some channels as analog inputs (12-bit ADC) but they are limited to 50 MS/s. So if you don't need real-time, this could possibly work.

author: nctnico
author_rank: Super Contributor
timestamp: March 21, 2017, 01:33:49 pm
content: Quote from: djnz on March 21, 2017, 01:30:07 pmThe OP wants to see an analog signal related to the decoded data (which seems to be a firmware state indicator) so any kind of logic analyser isn't going to work for the problem at hand.

author: djnz
author_rank: Regular Contributor
timestamp: March 21, 2017, 01:46:10 pm
content: @nctnico Edited my post to say that some Saleae also have analog inputs. 12 bit ADC, actually!

author: MrW0lf
author_rank: Frequent Contributor
timestamp: March 21, 2017, 01:50:40 pm
content: Quote from: nctnico on March 21, 2017, 01:33:49 pmHm, I was proposing mixed use scope + second device. Scope will just trigger on protocol using serial trigger,put edge on Trig Out+ display analog stuff, LA-style device willtrigger on Trig Outand absorb stuff to be decoded + additional analog functionality depending on device. Making primary scope essentially "trigger slave".This way OP can keep scope he likes + get additional toy. No need always seek ultimate do-it-all-perfectly, IMHO there is none currently. On the other hand mating many devices is fun

author: rf-loop
author_rank: Super Contributor
timestamp: March 21, 2017, 02:26:35 pm
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 10:16:31 amPlease make tiny test.Use 115200 tx speed.Set oscilloscope for Custom Baud: 124500 (half way of 118k and 131k these both limits start generate around same amount errors, but my source is crap USB/UART so not accurate at all)20ms/div.My suspect is that there is some errors in FW(also I wonder why decode is blocked >20ms/div in new FW, old FW it was possible (if turn scroll off) .)EDIT:Tested more. With longer data stream, errors.(looks like for 115k baud need really some more deep FW repair more than just baud speed)

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 03:19:22 pm
content: Quote from: rf-loop on March 21, 2017, 02:26:35 pmOk, wait a second.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 21, 2017, 07:19:56 pm
content: Quote from: rf-loop on March 21, 2017, 02:26:35 pmHi rf-loop, see the pictures. :-)I tried with the serial threshold too, from just above the bottom of the signal to barely below the top and that did not help, but manually adjusting the baud rate does the trick.Thank you very much!var baud= 115200;var ctr= 0;Serial4.setup(baud);setInterval(function () {ctr+= 1;Serial4.write("Pati"+ctr);}, 3);

author: nctnico
author_rank: Super Contributor
timestamp: March 21, 2017, 10:46:27 pm
content: That almost seems like the baudrate generator in the microcontroller is too far off! Did you check that?

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 22, 2017, 08:04:16 am
content: Quote from: nctnico on March 21, 2017, 10:46:27 pmNo, I did not, it may be off, perhaps, but:1) This happens with both the espruino and the DUT (which is not a espruino).2) Switching the Siglent to 5ms/div makes it chooch.3) The Agilent decodes everything well, always.4) A small % off should always be allowed.

author: rf-loop
author_rank: Super Contributor
timestamp: March 22, 2017, 08:08:53 am
content: Using signal generator and example 100 cycle burst, square wave 11.52kHz it works rock solid. (decoded as F0 (115.2k 8N1)(this is going more weird)

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 22, 2017, 09:16:11 am
content: Quote from: rf-loop on March 22, 2017, 08:08:53 amHi rf-loop,What's with the message you deleted? Why?A square wave is not the best way to test this, tx chars need not be (and usually are not) one right after the other without gaps, a UART has to be able to resynchronize at every chars' start bit no matter when it happens to appear. So a (square wave) stream made of 0xf0s without any gaps in between is an abnormal case, of course it should be able to decode that too, but also, of course, and more importantly, everything else as well.Your previous message, the one you have deleted, was much more informative and close to the truth, what a shame that you deleted it.

author: rf-loop
author_rank: Super Contributor
timestamp: March 22, 2017, 11:08:35 am
content: Quote from: GeorgeOfTheJungle on March 22, 2017, 09:16:11 amI delete it because I rearrange my some tests and during this I get some very strange results. Then I have no time to finalize tests (very busy) and I do not know what time I can continue. Because my suspect was there was possible wrong information it was better delete - better to tell nothing than wrong information due to too sloppy work."Silence is better than lie"

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 22, 2017, 12:30:50 pm
content: Hi @rf-loop and @tautech,I've been playing with the previous firmware, see the picture old_fw, there you have a few chars @ 115200, horizontal is set to 50ms/div and sample rate was 2MSa/s (*), that gives us 2e6(Sa/s)*50e-6(s) = 100 Sa/div (in the zoomed window @ 50µs/div). At that baud rate there are less than 6 bit-slots per div (again looking at the zoomed window), and that means slightly more than 16 samples per bit: that ought to be enough to decode properly (it was enough 40 years ago with a 6551), but it isn't.WRT the new fw update, please see the picture new_fw, horizontal was set 10 ms/div, sample rate was 10MSa/s, so we've got 5 times more samples per div, or about 10e6(Sa/s)*50e-6(s)/6= 83.3 samples per bit, but again it isn't decoding properly.So there is something wrong with the decode algorithm they are using, or there are still bugs somewhere.I'm returning this scope, but I were the owner of an SDS1000X I wouldn't be happy at all if in order to "fix" a serial decoder bug, the solution was to remove functionality as in shutting down for good the serial decoder above 20 ms/div.I have tested this with 2 different serial sources, and the Agilent next to the Siglent has been able to decode everything always, so I don't think the problem is in the serial streams. I don't have the Rigol 1000Z at hand right now, but I found no problems whatsoever when it was here, doing the same.You or tautech or somebody should escalate this, ain't chooch, not skookum!Thanks,

author: rf-loop
author_rank: Super Contributor
timestamp: March 22, 2017, 02:09:36 pm
content: If there is example from 1GSa/s or 500MSa/s ADC raw samples decimated samplerate 10MS/s in use, least I do not know if this is decoder input or if there is some second decimation for decoder. I do not have any quess or knowlege how many samples decoder use.1Gsa/s is fastest samplerate. If this samplerate is in use, I have "light" suspect that decoder do not decode from 1GSa/s .Only I can say: Unknown so far

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 22, 2017, 03:15:51 pm
content: There's no need to guess when you can see and count them: in the worst case (old firmware 50ms/div 2MSa/s) there are 18 and that ought to be plenty enough.

author: rf-loop
author_rank: Super Contributor
timestamp: March 22, 2017, 04:27:22 pm
content: Quote from: GeorgeOfTheJungle on March 22, 2017, 03:15:51 pmDisplayed samples do not proof what is decoder input with all samplerates.We can believe what ever but least I do not know.

author: JPortici
author_rank: Super Contributor
timestamp: March 22, 2017, 04:53:17 pm
content: didn't siglent decode on acquisition memory?

author: rf-loop
author_rank: Super Contributor
timestamp: March 22, 2017, 05:58:01 pm
content: Quote from: JPortici on March 22, 2017, 04:53:17 pmAll sampled data is in acquisition memory. But who knows how Decode process read data from there.Feels bit strange if it need in some cases hundreds of samples for one serial data bit.But so or so. Decoder have problems with 115kb with low speed timebases.Also ASCII display need improve/repair. It must not show empty if there is example normal standard control bytes like SOH, STX, EOT, ACK, LF, CR etc etc.

author: rf-loop
author_rank: Super Contributor
timestamp: March 23, 2017, 08:46:11 am
content: Quote from: GeorgeOfTheJungle on March 22, 2017, 09:16:11 amNo need any gaps between bytes. If it fails in this, serial decoder is not ok. Also there can be random time gap and also if it do not decode it right decoder is not ok. And, what I have now tested using time accurate signals it looks more and more that baud rate setting is wrong. More or less depending samplerate and t/div.Example with continuous 0x55 without gaps or example 5 bytes bursts it decode rock solid when custom baud rate is set for ~133k instead of 115.2k and timebase 20ms/div when memory set is 1.4M (samplerate 5MSa/s).But, this is just preliminary tests and need more different tests (without total junk crab RS232 source as example Belkin USB-UART what is total shit) for reliable data.

author: GeorgeOfTheJungle
author_rank: Super Contributor
timestamp: March 23, 2017, 10:13:58 am
content: Hey, rf-loop, get one of these: espruino.com/order you won't regret it, no need to compile anything, it's a purely text based interface/console in which you write javascript in an event/callback oriented style very much like Node.js. The original is better for prototypes/experiments than the pico, imho.

author: ebastler
author_rank: Super Contributor
timestamp: March 25, 2017, 11:34:21 am
content: Quote from: GeorgeOfTheJungle on March 21, 2017, 12:36:00 pmI assume that the PC performs a significant amount of data processing, which the USB scopes cannot do on board. Hence, a simple browser-based viewer is not enough.

author: janoc
author_rank: Super Contributor
timestamp: March 25, 2017, 06:48:00 pm
content: Quote from: nctnico on March 21, 2017, 01:33:49 pmAFAIK, the Saleae has an analog input too:Quotehttps://www.adafruit.com/product/2313