Author Topic: PicoScope 2000  (Read 40136 times)

0 Members and 1 Guest are viewing this topic.

Offline alank2

  • Super Contributor
  • ***
  • Posts: 2183
Re: PicoScope 2000
« Reply #25 on: May 09, 2017, 05:30:34 pm »
Thanks :) Feel free to add some chapter here if like. I decided to check hardware first because if thats no good - little point to dig into software features. But luckily hardware is well engineered so software feature testing has green light.

I too am impressed with the hardware.  I know a lot of people gripe about the pricing when compared to some of the low budget standalone scopes, but I find the UI much easier to navigate on the PC, and good quality is something that tends to cost a bit more.

Here are some of my notes when testing the 2205A and 2207B.  I was originally looking only at a 2CH model, so I don't talk about the 4CH/MSO's here:

The 2200 series might as well be two different series because you have the A models (2204A=10 MHz, 2205A=25 MHz) and you have the B models (2206B=50 MHz, 2207B=70 MHz, 2208B=100 MHz).  Interestingly, it looks in the pictures like the B models are in a larger enclosure, but they are actually using the same enclosure with the connectors on the long side instead of the short side!  The A models and B models also differ quite a bit in terms of features, but they also differ in terms of price!

I went with the 2207B originally because it has the 1GS/s sample rate I really wanted.  Had I been looking at the 4 channel ones, I might have noticed which I had missed until now and that is that th 2406B also has the 1GS/s sample rate at 50 MHz for 4 channels.  This is the one I was set on ordering yesterday, but after the eevblog discount at tequipment, I pushed it up to the 2407B so I could get the nicer probes like the 2207B came with.

2207B bandwidth testing:  I connected my Siglent SDG2082X (upgraded to 120 Mhz) to channel A of the picoscope with a 50 ohm cable and a 50 ohm passthrough terminator.  The 2200 series does NOT have a 50 ohm termination option, but I think some of Pico's other models do.  Here is a list of the peak to peak measurements from 10 to 120 MHz:  10=990mV, 20=970mV, 30=947mV, 40=917mV, 50=888mV, 60=854mV, 70=822mV, 80=801mV, 90=792mV, 100=783mV, 110=777mV, 120=762mV.  I can't go any higher than 120 Mhz and it is still above the -3 dB point of 707mV!  I then connected it up to the fast edge signal coming out of a DS4014 and measured rise/fall times of 1.81 nS on CH A and 1.87 nS on CH B, so around 190 Mhz using the 350/x formula.  I also tested the SDG2082X 120 Mhz signal through the 10X supplied probes and it was 738 mV with the probes, still above -3 dB. The probe fall time on the fast edge was 1.1 nS.  All of this was very impressive given it is only rated for 70 Mhz!

2205A bandwidth testing:  Same connections and before, SDG2082X to channel A with 50 ohm cable/50 ohm passthrough terminator.  Here is a list of peak to peaks measurements from 5 to 45 MHz:  5=1000mV, 10=988mV, 15=970mV, 20=933mV, 25=893mV, 30=866mV, 35=826mV, 40=720mV, 45=699mV.  The fast edge rise time from the DS4014 is 6.9 nS on CH A, so around 51 MHz.  I also tested the SDG2082X 120 Mhz signal using the 10X supplied probes and it got to 29 MHz before hitting the -3 dB point, not as exciting, but still better than specification.  As the 2205A is available for sale without probes, I'd order it that way and get some nicer probes.

ONE BIG DISAPPOINTMENT:

The fast timebase you can set the 2205A to is 50 ns/div in regular triggering modes and 5 ns/div only in equivalent time sampling mode.  In contrast, the 2207B allows you to go to 1 ns/div in regular modes, and in ETS mode to 50 ps/div.  The issue here is that if you are viewing a 25 MHz waveform on the 2205A, you can't set the time base to see just one or two waves, you will see 12.5 cycles and can't choose a faster time base in any normal triggering modes.  Watching a YouTube video someone posted about the 2204A, I can see that the 2204A only had 100 ns/div as an option!  The datasheet says 5 ns, and it will be very lame if they come back and say that is for ETS mode only.  It doesn't work that way on the 2207B and honestly if it had, it would have been going back.  You can use the option at the top to widen the screen by 2x, 4x, etc, which seems to accomplish the same thing, but it really doesn't, because you are capturing more waves with less detail than if you could just choose the 5 ns/div that in the first place that datasheet specifies.  I have brought this to Pico's attention and we've had a dialog back and forth about it, but it is still not resolved in the latest version of the software.  I don't see a hardware reason why they can't do this, and it is in their spec, but who knows.


FEATURES:

Sample Memory:  If you are just looking at waveforms, probably the 8k or 16k sample memory that comes with the 2204A/2205A is going to get the job done.  The B models with megabytes of sample memory give extra options and capability.  First, you can capture a waveform and zoom into it and still have detail.  This is more beneficial at slower timebases where you aren't already pushing the sample rate to the maximum.  Another thing you can do is use the rapid triggering mode which works like segmented memory on desktop scopes.  It can capture X number of waveforms back to back with X amount of sample memory for each waveform which is very cool.  You can step through them one by one and zoom into them as needed to look at detail.  Another benefit of larger sample memory is for the decoding features because you can capture many packets, again each with enough samples to decode them properly, and then review/decode them.  One nice thing is that the software still has a waveform buffer that can capture/review multiple waveforms even if you have an A model - the difference is that they aren't captured immediately after each other, but captured as they are brought to the PC.  I admit I underestimated the value of the extra memory, during use it has proven much more useful than I thought in various conditions.

MSO:  My units do not have the MSO feature, but I did test decoding some UART using an analog channel and it worked fine.  Like most desktop scopes, it will handle decoding by using segmented memory or capturing multiple triggered waveforms.  You then step through those waveforms and it decodes each one.  It is important therefore to select a timebase that allows an entire packet of what you are trying to capture to fit in a single waveform capture.  Again a plus is that decoding of 17 types is included at no extra charge.  If this feature is important to you, I would heavily recommend the B models and perhaps even one of the MSO models.  The reason for the B is because it won't miss any of your packets using segmented/rapid triggering mode.  One of my tests was setting up a microcontroller that output a line of text every 100 mS.  Rapid mode catches them all as expected, but relying on the waveform buffer to capture them (all you have on the A models) meant there were missed ones because it didn't trigger fast enough.  It is a personal thing, but I prefer the way Saleae handles captures by doing a single trigger and then one long waveform you can scroll around in.  This style might be better if you need to trigger on each event.

USB:  The device is a USB 2 device which concerned me a little bit, but I didn't find it to be slow or laggy at all.  Even when I told it to capture a lot of waveforms using the segmented (rapid) mode, it still seemed very fast.  I think Pico's 3000 series offers USB 3 if that is important to you.  I've had some devices with USB 3 that are bit more sensitive than I'd like in terms of cable length and signal integrity so I'm perfectly fine with USB 2 as long as it performs well, and it seems to.

Power Usage:  The 2207B used 10mA when plugged in, but not connected to the software.  It then goes to 450mA when in 500MS mode and 480mA in 1GS mode.  The 2205A used 40mA when plugged in, but not connected to the software.  It then goes to 420mA when in 200MS mode and 360mA when in 100MS mode.  The thing to keep in mind here is that it never lowers the power if you are in the picoscope software - doesn't matter if it is running or stopped.  They have a power management in the software, but it doesn't seem to reduce power management of the device, but rather is about the CPU consumption of the PC.

AWG:  The AWG is a nice extra if you don't already have one.  The good is that it has almost a dozen or so waveforms, supports arbitrary waves, and is included in the units at on extra charge.  The downside is that for the A models, it is limited to 100 kHz, and for the B models, it is limited to 1 Mhz.  All models only have a 2V peak to peak amplitude and 600 ohm output impedance.  The B models also have a trigger capability in their AWG.

DC Offset:  While I am pleased with the fact that the 50/70/100 B models do have this capability, the way it is implemented in the software greatly disappointed me.  On a normal scope you just adjust the vertical to get the signal where you want it, but adjusting that in the pico software is really just changing your view or zoom.  You aren't moving the signal in or out of the best ADC measurement zone by doing that.  That is where the DC analog offset steps in and allows you to.  The problem is that it is implemented in such as way as to change the incoming signal, but not reflect that change in the voltage reported or measurements reported.  If that wasn't bad enough, it doesn't even indicate that this feature is enabled (and altering) the signal anywhere even thought there is a perfect place in the view-properties to do it.  I do understand the confusion between zooming/panning and this feature and wonder if that is why it has been implemented the way it has, but it just isn't right.  I always want to see the legend and the measurements reflect the actual signal, not the signal plus an offset applied to it.

Software Low Pass Filter:  The B models have a channel option for a software low pass filter, but the resolution enhancement feature on the A models can likely be used to accomplish a similar result.  I do prefer the low pass though to the resolution enhancement.

No color coding:  Most of Pico's other scopes have blue, red, green, and yellow color coding on the channels and it would have been nice to use along with the probe color markers on the unit itself, even if it is just a small colored box on top of the channel to know which probe goes with which channel instead of remembering blue first=CH A, red=CH B.


SOFTWARE:

Their software is shared all across their test and measuring scope product line.  The benefit here is especially good for their lower cost product line like the 2200 series because you get the advantage of the investment they make in the software all across their product line.  It also means there will be continual updates as well which is nice.  Nothing is worse than buying a piece of test equipment than finding that the company has moved on to a different model and no fixes or improvements will be made.  While there are no guarantees, I read that their current version software still works with units that are 10-15 years old!

Software:  It has a few modes you can use it in:  Scope, persistence, or spectrum.  The scope mode is both regular and X/Y and probably what you will use most.  Persistence is meant to show changes between waveforms by using fading colors on a black background.  I get what they are trying to do with it, but I really don't see myself using it.  It certainly isn't the same as an intensity graduated display.  The spectrum is a spectrum analzyer mode and I've played with it and it seems to work fine.  I've read that you can change some of the parameters to larger numbers than typically found on a desktop scope, so that may make it more capable than many desktop scopes as far as the FFT goes.  I'm going to focus mostly on the scope mode because it is the most important:

Buffer:  It automatically keeps a buffer of recent waveforms that you can review or go back to.  As mentioned above this is not the same thing as segmented/rapid triggering mode.  That can also be used to feed the buffer if you need waveforms to be captured immediately after each other however on the 2206B and above models.  You can configure how many waveforms to keep in the preferences.  It is easy to navigate through them and find glitches, etc.  For some reason, the number of buffers on the PC side is limited to the size of the capture, it even suggests this in help.  I'm not sure why that is, but 8MS captures will only fit 5 buffers in memory, etc.

Zooming:  Something that is extremely cool is that you can zoom into a signal without changing the time base - there is a separate zoom adjustment.  I wish desktop scopes worked this way.  The zoom features are amazing.  You can zoom in or out, draw a box for zooming to a specific area, undo many zoom levels, and view the entire waveform very easily.  It can even stay running while you stay zoomed showing you a small piece of the waveform in realtime as it runs.  There is a zoom overview window that shows you where you in the overall waveform and you can move the zoomed area around easily and even resize it.  This feature really sets it apart from desktop scopes because it is so flexible.

Channel Settings:  You can select the probe (1X, 10X, custom ones you can create).  There is also an area for resolution enhancement and low pass filtering.  The low pass filtering might be for the 2206B and above, but honestly both resolution enhancement and low pass filtering seem to do a very similar thing it is just that you select one by enhanced resolution bits and the other by a low pass filter ceiling bandwidth.  You can adjust the DC offset for scopes that support this feature (2206B and above).  The axis scaling and position can be adjusted as well, and there is a zero offset channel feature which allows you to rezero a channel.  One really cool thing is the Auto vertical setting.  It will automatically choose the correct vertical based on the signal it is receiving so you don't have to fiddle with it to get it right.  If you don't want it bouncing around, then you can set it to a specific vertical and it will stay.  You can also choose DC or AC coupling.

Measurements:  It has 18 measurements you can add to each channel and they can be for the entire waveform, between cursors, or for the cycle at a particular cursor.  There are also cursors you can manually drag as you would typically expect as well and they also have phase cursors.

View Properties:  Under the view menu is a view properties which opens a dialog at the right to show you the configuration and many properties of the scope state.  It will tell you the sample interval, sample rate, number of samples, channel information for each channel, the state of the AWG, and capture information.  This is worth keeping on screen all the time.

Triggering:  The run/stop option is in the lower left corner along with the trigger options.  The trigger can be none, auto, repeat, single, rapid, and ETS (channel A only for some reason).  Rapid trigger mode is the segmented feature and you can tell it how many to capture.  I tried 10000 and it worked very fast.  You can set the trigger level, position, and time delay.  Many desktop scopes no longer have the ETS feature, so it is nice to have it as an option here.

Other Goodies:  It has a lot of flexibility in how you can configure the view and windows, putting a scope view in one and a spectrum view in another, or one channel in one and another channel in another.  You can export bitmaps or the points as text.  You can setup custom probes, math channels with functions, see reference waveforms, set alarms, create masks, or use a macro recorder.

Preferences:  The preferences allow you to customize many of the features.  You can change the waveform buffer amount, adjust the number of captures used in measurements, adjust the number of waveforms displayed per second, sin (x)/x settings, assign keys to almost any task (this is what allows people to make a rotary encoder type of board), etc.


FINAL THOUGHTS:

I love the 2207B I ordered.  It does everything I want it to, I only wish it had color coded channels, but you can't have it all.  I would like to see the software improve the way it handles the analog offset, but other than that I am happy with it.

I'm a little less excited about the 2204A/2205A because of the minimum timebase issue.  I didn't love the probes so I would order it without the probes since there is an option to.  They need to improve the 50 nS/div minimum timebase issue.  I like the price for the capability you get though, you really can't go without having one in your bag...
« Last Edit: May 09, 2017, 05:33:50 pm by alank2 »
 
The following users thanked this post: vmax

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #26 on: May 09, 2017, 08:11:11 pm »
I don't see a hardware reason why they can't do this, and it is in their spec, but who knows.

Think found reason why 2205A timebase limited to 50ns/...

I have old 2205 which should have identical specs: 25MHz, 200MSa/s, 16kSa shared memory. Even found that old spec (attached). There it states 500ns "timebase range", which translates to 50ns/, which is indeed max for RTS. New online spec is not strictly wrong but yes, they should spec it sperately for RTS/ETS.

However you do not loose detail because of this! 2205(A) maxes out at 200MSa/s 1ch & 100MSa/s 2ch. Memory is shared / sample count aligned with timebase. Consequently you get max detail (=sampling rate) already at:

1Ch 5us/ 200MSa/s 10,000 samples in Ch1 buffer.
2Ch 5us/ 100MSa/s 5,000+5,000 samples in Ch1+Ch2 buffer.

So at 5us/ and smaller timebases its already sits at max possible detail = sampling rate for given hardware RTS mode (if not manually limit memory amount).

But think I know why they do not want to enable small timebase for these old models. Trigger / sampling / Sin(x)/x jitter - it "smudges" persistence mode that you would probably use for edge inspection (besides ETS). Observe screenshots below, 2205 vs 2408B under otherwise identical settings:

2205@200MSa/s


2408B@250MSa/s


2408B@1GSa/s


Ignore overshoot - its due to poor probing setup. Im on the move and have very limited hardware at hand... Edge is from Arduino.
« Last Edit: May 09, 2017, 08:52:37 pm by MrW0lf »
 

Offline alank2

  • Super Contributor
  • ***
  • Posts: 2183
Re: PicoScope 2000
« Reply #27 on: May 09, 2017, 08:30:12 pm »
However you do not loose detail because of this! 2205(A) maxes out at 200MSa/s 1ch & 100MSa/s 2ch. Memory is shared / sample count aligned with timebase. Consequently you get max detail (=sampling rate) already at:

1Ch 5us/ 200MSa/s 10,000 samples in Ch1 buffer.
2Ch 5us/ 100MSa/s 5,000+5,000 samples in Ch1+Ch2 buffer.
So at 5us/ and smaller timebases its already sits at max possible detail = sampling rate for given hardware RTS mode (if not manually limit memory amount).

You are absolutely right.

But think I know why they do not want to enable small timebase for these old models. Trigger / sampling / Sin(x)/x jitter - it "smudges" persistence mode that you would probably use for edge inspection (besides ETS). Observe screenshots below, 2205 vs 2408B under otherwise identical settings:

I think you are probably right about this too - it does jump around pretty good when I use the horizontal zoom to zoom it in.  This makes sense as I pressed them pretty hard about this and they didn't want to budge on changing it.  I do think they should redo their spec however.
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #28 on: May 09, 2017, 08:47:38 pm »
I do think they should redo their spec however.

Yep. Not only thing weird with their spec. For example they are on strong position that 2408B is not worthy of 20GSa/s ETS spec, and spec it only as 10GSa/s... despite software allowing 20GSa/s. While I have compared accuracy and 16 & 20 GSa/s do improve accuracy.

BTW got interested how much jitter is due to software processing... actual performance should be better than this persistence mode blur... Some quick tests with 2408B RTS & ETS under 50x50 zoom:

RTS 1GSa/s Sin(x)/x interpolation


RTS 1GSa/s linear interpolation


ETS 20GSa/s linear interpolation


Note that I formally do not know anything about signal processing theory and just observe... Maybe experts can comment if Sinc moving lines slightly (-20...-60ps in this case) off trigger point is normal or they should improve implementation.
« Last Edit: May 09, 2017, 08:55:34 pm by MrW0lf »
 

Offline alank2

  • Super Contributor
  • ***
  • Posts: 2183
Re: PicoScope 2000
« Reply #29 on: May 10, 2017, 07:29:31 pm »
Here are my measurements using the fast edge output from a Rigol DS4014 (I think it is supposed to be <600ps or something):

BNC cable directly to picoscope input with 50 ohm terminator.

2207B:

chA rise 1.80ns, fall 1.79ns   
chA rise 2.02ns, fall 2.01ns   

2205A:

chA rise 6.17ns, fall 6.29ns   (ets 7.02/7.02)
chB rise 9.01ns, fall 9.12ns   (ets 7.15/7.05, channel B can only do 100MS/s not 200MS/s like ChA)

2407B (similar results to the DS2207B as expected):

chA rise 1.90ns, fall 1.86ns
chB rise 1.96ns, fall 1.89ns
chC rise 1.91ns, fall 1.85ns
chD rise 1.99ns, fall 1.95ns

« Last Edit: July 15, 2017, 07:15:10 pm by alank2 »
 

Offline alank2

  • Super Contributor
  • ***
  • Posts: 2183
Re: PicoScope 2000
« Reply #30 on: May 19, 2017, 04:30:08 am »
Here is another reason I love the picoscope:  Their support of custom probes and the software lowpass filtering.  I have a PDI 20A/60A small current clamp and it is so noisy.  I've been meaning to ask if the hantek one I see has about the same level of noise.  See the noise.png, it looks like 100mA wide!  custom_probe.png shows me selecting the custom probe I setup for the PDI current clamp.  Picoscope has a great feature (custom_ranges.png) where you can automatically map up the scope's vertical ranges.  You can even specify the probe's limits so you will get an over range warning for the probe itself which is why it shows 60% of the scope's range being mapped to the maximum current the probe can handle.  I can settle the noise considerably with the low pass filter (lowpass.png) which finally gives me something I can make some sense of (low_pass_filtered.png).  Even holding down the "zero" button on the scope though does not get me as close to zero as I would like.  Then, even though I am in my lowest scope range and can't go lower, I can use scaling to zoom vertically by 10x (scaling.png).  Now it looks like off is averageing -2mA or so, and when I power up the device I am monitoring with the clamp (LCD backlight), it jumps from -2mA to probably around +22mA average, giving me a current use of 24mA for the backlight.  I didn't think with all the noise this clamp has that I could use it to measure low currents as well as I can.
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #31 on: June 15, 2017, 12:52:03 pm »
Wanted to comment on little feature finding good use lately. One can share entire workspace with all traces, reference waveforms, mathchannels and whatnot. Transport file to another PC and make offline postprocessing & thinking without actual scope present but with exact look & feel as doing real testing.

Example: I commute a lot between 2 cities. Along the way lives inventor-friend who has shed. In the shed weird and wonderful things are being built. For example this:







Currently it's using hardcore mechanical commutation with fireworks and EMI that can kill small animals on spot. Decided to built solid state driver for it. So when driving by took measurements in 15 min. Analysis later at home in peace & quiet w/o lightning strike risk...



Attached file with entire workspace. Main challenge was to decide how combine coils for driver, since signals are all out-of-phase and non sinusoidal. Currently seems combining 2 coils for each "cylinder" in series will yield more-less sinusoidal, so 2 independent drivers needed.
« Last Edit: June 15, 2017, 12:56:24 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #32 on: July 15, 2017, 10:19:55 am »
Inspired by alank2 post about custom probes managed to improve some old tricks. Developed them long time ago when had only 2ch analog 2205 and often shortage of channels. General is idea is to "tunnel" (discrete) information thru scope analog channel and display after math-based reconstruction. This can be useful when monitoring some process governed by MCU. Either to monitor some single signal that cannot be directly monitored or even use discrete stepped analog for "tunneling" some state or error codes = true digital comms.

Very simple setup to start experimenting with is Arduino Uno + MCP4725 12bit DAC breakout. This will push nowhere near scope speed capability but good for proof-of-concept.



DAC setup info can be found here. Then just connect DAC output to regular probe on 1X setting.

Next need some test signal. To maximize scope ADC range w/o risk of overrange due to noise I did choose +-2V with -2.5V analog offset. On Arduino (sketch attached) mapped DAC to 0...16 values using
Code: [Select]
dac.setVoltage(map(dLevel, 0, 15, 485, 3560), false);
Result on scope:



Now we have seed for simple 4bit "comms signal". Possibly could push for higher bit count, but I'm currently in very noisy environment (CCCP-style electrical system w/o grounding) so will go for 100% reliability. How to convert this noisy analog signal to true digital will be shown in future posts.

« Last Edit: July 15, 2017, 10:25:12 am by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #33 on: July 15, 2017, 10:58:28 am »
Next step is to to configure custom probe to start closing in on true digital:

Custom Probes => [New Probe...]
Check "Use the custom unit defined below."
Full name: digits
Short name: D
For scaling method use linear equation: y=4x+8
Choose manual management of probe ranges.
Click [New Range...]
Fix hardware input range to +-2V
Set scaled range limits from 0D to 16D.
Do not enable filtering (or resolution enhancement)!
Name for probe MCP4725

Now signal is having nice 1D step instead of some non-human-readable voltage variation:



« Last Edit: July 15, 2017, 11:02:06 am by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #34 on: July 15, 2017, 11:24:36 am »
Now time for uncharted territory. How to get rid of noise and remains of analog part? floor(x) function would certainly help. But PicoScope 6 software AFAIK does not have floor function. But it does have trigonometric functions! So here goes:

Define math channel floor(D)
Set long name as digit, short name as D. Override automatic range, set min=0, max=16.
Now we have true discrete/digital comms estabilished:



This can be used to channel error codes, state codes or any other purely digital data to DSO having only analog channels, sacrificing only single analog channel. Or maybe even create virtual MSO (explained later).

Note that doing RT trigonometry on full record may slow down refresh rate so makes sense to lower sampling rate to avoid excessive processing and match actual need.
« Last Edit: March 26, 2023, 07:34:44 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #35 on: July 15, 2017, 11:58:53 am »
Now all left to do for achieving virtual MSO capability is to define trigonometric "bit extractor" functions making use of previously described floor(D) function:

B0 as
(cos((-((((floor(D)/(2^(0)))+(atan(1/tan(pi*(floor(D)/(2^(0)))))/pi))-0.5)+(((((-floor(D)-1)/(2^((0)+1)))+(atan(1/tan(pi*((-floor(D)-1)/(2^((0)+1)))))/pi))-0.5)*2))-1)*pi)+1)/2

B1 as
(cos((-((((floor(D)/(2^(1)))+(atan(1/tan(pi*(floor(D)/(2^(1)))))/pi))-0.5)+(((((-floor(D)-1)/(2^((1)+1)))+(atan(1/tan(pi*((-floor(D)-1)/(2^((1)+1)))))/pi))-0.5)*2))-1)*pi)+1)/2

B2 as
(cos((-((((floor(D)/(2^(2)))+(atan(1/tan(pi*(floor(D)/(2^(2)))))/pi))-0.5)+(((((-floor(D)-1)/(2^((2)+1)))+(atan(1/tan(pi*((-floor(D)-1)/(2^((2)+1)))))/pi))-0.5)*2))-1)*pi)+1)/2

B3 as
(cos((-((((floor(D)/(2^(3)))+(atan(1/tan(pi*(floor(D)/(2^(3)))))/pi))-0.5)+(((((-floor(D)-1)/(2^((3)+1)))+(atan(1/tan(pi*((-floor(D)-1)/(2^((3)+1)))))/pi))-0.5)*2))-1)*pi)+1)/2

Set units as long name = bit, short name=B. Override range as min = 0, max=1. Fiddle with GUI to align traces:


PSDATA file with environment on screenshot attached here.

Found pic of some early experiment on 2205 MSO. Very clean 100kHz sine on ChB. Full 8bit AD conversion. Tech bit raw so signal is inverted and no custom probe defined. Combined with "real MSO" channels this gave 32 digitals:


Might be of interest that "virtual MSO" signals = math channels can be also used as protocol decoder inputs.

Note that this work is prior published on my own website:
http://lab.fyi/oscilloscope_math_channels/dadc_for_picoscope_dso/index.html
under CC BY-NC-SA 4.0.
« Last Edit: July 15, 2017, 06:25:44 pm by MrW0lf »
 
The following users thanked this post: saturation, vmax

Offline Vtile

  • Super Contributor
  • ***
  • Posts: 1144
  • Country: fi
  • Ingineer
Re: PicoScope 2000
« Reply #36 on: July 15, 2017, 11:04:22 pm »
Can you run some test through the PicoLog software. I have old 2203 and I'm interested how far the logging software can run with current hardware.
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #37 on: July 16, 2017, 05:34:08 pm »
PicoLog does not seem to support new 2000, but works with my old 2205. Of course new 2000 has quite large memory but still...
Simplistic PicoLog supports unlimited recording*, while PicoScope has advanced features, but no unlimited recording. Think they should add unlimited recording and logger support to both PicoLog/PicoScope, especially since TC-08 has current/voltage sensing adapter. Whole situation seems bit artificial. Like having a car with permanently locked trunk :-//
*actually limitation is there, just obscured in PicoLog recording settings :( I just did never run into it with my TC-08. So I stand corrected as of today PicoScopes and some loggers that work with PicoScope software support longer logging (up to 100M or scope memory I guess).
« Last Edit: July 21, 2017, 08:56:07 am by MrW0lf »
 
The following users thanked this post: saturation, Vtile, vmax

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #38 on: September 05, 2017, 09:21:24 pm »
Normalized amplitude and phase plot 0...100MHz on coax stub notch filter:



External sweep gen used. Connoisseurs may like sample/mem settings ::) Phase unsigned much like with XY mode but no prob if have general idea whats under test. Notches bit blunted with averaging. Works fast - about 10Hz. ms=Mhz.

Edit: Some x-checks...

"Traditional" Pico freq response plot obtained with FFT, no phase data this way but amplitude minimums accuracy better:


RFExplorer trying the same. Have no suitable attenuator so had to crank down signal gen, which may account for some little differences:


Overall seems new method is usable. Can obtain general picture with phase data and then more accurate amplitude with FFT afterwards, if needed. Shall contrapt some more x-checks and then explain how new method works.

« Last Edit: September 06, 2017, 08:30:58 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #39 on: September 08, 2017, 05:20:32 pm »
Further dev of math based bode plotter using ext gen. Check against actual bode plotter software:

First did download helpful SDK-based utility called FRA4PicoScope that employs internal gen on 2000.

Plot on some DIY BPF from 20kHz to 1MHz, 10dBm in. Works well, all by the book:



Next same using external gen (Siglent SDG2000X) with MCFRA (Math Channel FRA), all params same:



Since cannot force log time on horizontal used freq plot (green) and cursors instead. Pick freq on green trace with horizontal cursor. Place vertical. Place further horizontal ones to get all the readings. Cross check on actual trace on the right confirms all correct.

Toying with severe subsampling to gain speed sometimes works sometimes not. Easy to detect by "ghosts" on phase plot (not pictured in this example).

Phase unsigned as usual.

Overall seems success then. Good enough for DIY extra functionality. Now some tests at the top of analog bw and then finally explain procedure...
« Last Edit: September 08, 2017, 05:24:12 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #40 on: September 10, 2017, 11:17:30 am »
Ok, after fighting with some tech nuances more-less optimal procedure has emerged:

For whole concept to work need signal gen with two channels that can do phase synced sweep over freq range of interest. My SDG2000X can do 0...120MHz so covers 100MHz Pico 2408B range well. Choice of cabling (probes, 50 ohm system, etc) depends on DUT.

In this example investigate FM notch filter 88-108MHz, so 50 ohm system.

Disclaimer: AFAIK not all best practices of RF testing followed :P

1) Need to calibrate channels so ChA & ChB would absolutely match. Levels could be different due to signal gen, scope, cabling etc. ChA would serve as reference later, DUT on ChB. So need calibrate ChB.
- set up sweep: 10ms, 80...120MHz, -11dBm, load 50ohm, Trig Out=ON, lock Ch1-Ch2
- connect Gen-Ch1=>Scope-ChA, Gen-Ch2=>Scope-ChB, Gen-Trig=>Scope-ChD



- create math function eval(B)=max(B)/max(A), range 0...2
- set timebase to 1 ms/, memory to 2kS, trigger on ChD. Do not pay attention to aliasing, soon there will be ok line for eval(B).
- if intrested may add Min, Max auto-measurements, in my case it can be seen that correction ranges from 1.031 to 1.076.



- save eval(B) math trace as reference channel
- turn off math trace eval(B)
- create math trace cal(B)=B/{eval(B) (2)} (ref channel name may vary)
- disable visual of ChB, can now observe that sweep level completely identical on ChA vs cal(B), if interested can confirm with auto-measurements



2) Plot magnitude trace.
- create math channel dBm(B-A)=LowPass((10+20*log(max(abs(B/{eval(B) (2)})))) - (10+20*log(max(abs(A))));32000)
- may add auto-measurements to confirm Min/Max which should be very near 0dBm
- if magnitude trace gets jerky time to time tweak trigger level on ChD, because there needs to be some jitter for max() traces to converge as continuous line
- connect DUT between Gen-Ch2 and Scope-ChB
- plot is instantly generated, tweak smooth/coarse with math channel LowPass setting to match personal taste
- auto measurements show Min/Max etc, may investigate with cursors and so on
- if all ok set dBm(B-A) as ref trace and disable actual math channel

3) Plot unsigned phase trace.
- create math channel graph(phase(A;B))=LowPass(average(duty(((((atan(1/tan(pi*(A/10000)))/pi)+(A/10000))*-((atan(1/tan(pi*(B/10000)))/pi)+(B/10000))) + 0.25))/0.555555555);10000)
- phase trace may look as expected because formula is quite tolerant of subsampling, however if "strange phenomenon" present go conventional and increase memory depth to level when there is no subsampling. In this case 3MS does the trick.
- now have quite clear unsigned phase plot

4) Plot frequency sweep trace.
- with subsampling etc freq() math function does not work so better stick to linear sweeps and plot graph with simple math function _freq=norm(T)*40000000+80000000.

Almost all set. Now tweak wfm scaling a bit for best fit in viewport and observe good approximation to real spectrum analyzer plot in magnitudes. Only bottom end suffers because switching ranges would be quite a hassle. If phase trace should, but does not reach 0-180º extremums may want to raise LowPass frequency on phase trace (slight problem on my screenshot).





5) If interested confirm phase manually for single freq:
- set all active traces as refs, disable math channels
- disable sweep, set freq to 110MHz
- disable ChD (no need for sweep trigger anymore)
- create math channel phase(A;B)=((((atan(1/tan(pi*(A/10000)))/pi)+(A/10000))*-((atan(1/tan(pi*(B/10000)))/pi)+(B/10000)))+ 0.25)/0.00277 (will convert phase to PWM, so can apply DC average measurement on it).
- reading is ~117º, close enough



6) If still in doubt visual check on different timebase with 20 GSa/s ETS & cursors.



Described above of course lack convenience of real bode plotter software but with simple filters etc where can "decipher" phase data can go far above scope nominal bw. Would have gone further but SDG2000X limited to 120MHz. Alternate for this crude magnitude plotting is of course FFT but on Picos it is limited at scope nominal bw, which in my scope case is 100MHz, so fully characterizing of specific filter with FFT is impossible.

« Last Edit: September 10, 2017, 03:26:16 pm by MrW0lf »
 
The following users thanked this post: vmax

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #41 on: September 10, 2017, 05:08:25 pm »
To demonstrate most severe conditions that MCFRA can handle and still give some meaningful output did run 0-100MHz sweep on coax stub filter from previous tests using my old PicoScope 2205 (25MHz analog):



Despite setting eval(B)=average(max(B)/max(A)) cal trace is still mess near 100MHz, but since it substantially improves things <50MHz will use it:



Since scope has only 16k of memory all it can do is severely undersample at this timebase, but overall picture readable:



Did leave visual of cal(B) enabled to demonstrate on what this poor puppy has to chew on...
« Last Edit: September 10, 2017, 05:23:46 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #42 on: October 14, 2017, 02:39:01 pm »
Reflections on some experiments related to bode plotting and TDR. Got nice little 50ps pulse gen from Leo Bodnar:
http://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=124&products_id=295

First experiments sparked some discussion here:
https://www.eevblog.com/forum/projects/yet-another-fast-edge-pulse-generator/msg1322739/#msg1322739

Since it turned into yet another PicoScope 6 software hacking session better continue here...

First good, as usual it is hardware:

According to this analog bw is 144MHz (0.35/2.427ns)

Next bad: Wanted to try fft(derivative(signal)) for bw estimation TDR style, since after all 2408B can do 20GSa/s ETS. This failed because software bugs handicap most functionality related to math channels gone thru time related processing (integrals, derivatives, time shift, filters, ...). Also FFT does not work in ETS mode at all, which is by design :-// At least it can export to MatLab format so had some go at it there, see original discussion.

Since it is painfully obvious what kind of bug breaks fft(derivative(signal)) functionality I hacked around it with DIY derivative function:


green - A: raw trace
cyan - derivative(A): built in diff on A
brown - average(A[0.000000001]): A time advanced by 1 sample point, averaged
yellow - average(A[0.000000001]-A)/0.000000001: DIY diff on A, averaged

This kind of DIY derivative is only one that seems to allow for FFT under specific condition: RTS trace gone thru Sinc interpolation. With that in mind can do some limited experiments. For these ideally need averaging of some kind on FFT to obtain reference trace. Averaging is there but another bug will set as ref not averaged trace, but current raw, which is useless. To work around that I use following setup:

Signal generator (SDG2000X) set to generate 1.1MHz 0dBm square. Arb/DDS mode for sharp rise. Same signal on both channels.
Ch1=>coax=>T_with_2m_coax_stub_filter=>50ohm_passthru=>ChA
Ch2=>coax=>50ohm_passthru=>ChC

Interpolation switching off at >2000 samples limits effort only to 512 FFT bins but it's real deal! Only when zooming in can see that detail is very limited:


Now for cross check tried another method, set signal gen to output noise and cranked FFT up to 128k bins. Big picture exactly same. Only detail much better.


So what can conclude? Failure at basic Q&A has handicapped software with quite powerful architecture. If you would like to unlock full power of your PicoScope suggest to demand following:
- fix math on time-manipulated channels, all need to do is handle boundary conditions properly when sample count <> nominal, scope should be able to pass integral(derivative(signal)) test.
- allow FFT on ETS
- unlock FFT from scope official bandwith. On 2408B it is limited to 100MHz, while actual analog bw is ~140MHz, and usable bw way higher
- fix creating ref traces from processed channels (averaged etc)
- allow Sinc on recordsets >2kPts




« Last Edit: October 14, 2017, 02:59:40 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #43 on: November 05, 2017, 01:14:51 pm »
Founds these helper tools for bode plotting type activity, maybe useful to someone:

PicoMeasure
http://pmz.gtkc.net/
It will chew thru CLI ouput of PS6 software:
Code: [Select]
picoscope.com /a Measurements.CSV?and feed into
Graphtool
http://graphtool.gtkc.net/


 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #44 on: October 19, 2018, 12:32:15 pm »
In PS6 max number of stats you can have is 1000. Clearly not enough for long time observation of measurements. Did write "infinite measurements" Python script that more-less fixes this. It uses this CLI command:

Code: [Select]
PicoScope.com /a Measurements.CSV?
It returns human-readable garbage which must be parsed. Since the command will run at around 2Hz max on my PC it does not make sense to use Value of measurement, instead I use Average and tune PS6 count to get more-less reasonable chain reaction.

CLI command is wrapped in bat because it did not work directly for some reason. Just unpack script and bat. Run script. Resize CLI window to nice size. In beginning of script there is self-explanatory config block:

Code: [Select]
# CONTROL
# [Esc] - exit
# [Space] - reset

# CONFIG
rate = 1            # x=Loop_time_in_s; 0=Loop_rate_disabled
avg_source = 5      # 2=Value; 5=Average
round_input = 15    # decimal places
round_output = 6    # decimal places
round_hz = 1        # decimal places
show_header = True
pad_lines = 4       # pad display to X lines to avoid resizing window

It should be trivial to expand this for writing long term measurements data to CSV, perhaps better type of post-averaging etc. Should it turn out nice please post your version here also.

« Last Edit: October 19, 2018, 12:37:25 pm by MrW0lf »
 
The following users thanked this post: 2N3055

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #45 on: November 04, 2018, 09:06:52 pm »


Due to something that probably has to do with sample counts fft(derivative(x)) and some other math tends to work only on Sinc'ed data. Also need custom derivative like (A[0.000000002]-A)/0.000000002) where number is sample interval. Since Sinc is by default applicable on max 2000Sa record one is limited to very low resolution FFT on complex math. Picture below is however with 1M bins. ;)



Another annoyance is buffers limited to max 10k. Now 64k.



And of course biggest annoyance of all - measurements stats on max 1k wfms. Now 100M (max tested ~300k).

Default mode: No Sinc, limited resolution on measurements, RT measurement does not work, stats limited to 1k:



Hacked: All above fixed:



Nothing exotic, just fiddled with config file a little :-/O All this of course purely educational & experimental & at your own risk etc. New Sinc limit of 100k seemed optimal on my PC, more gets slow.

C:\Users\%user%\AppData\Local\Pico Technology\%hash%\preferences.xml

Code: [Select]
...
<category name="resampleActive">
<preference name="resampleActive" value="True" />
</category>
...
<category name="waveformbuffer">
<preference name="maxcount" value="65534" />
</category>
<category name="measurementstorebuffer">
<preference name="maximumBufferSize" value="100000000" />
</category>
...
<category name="resampleSizeBuffer">
<preference name="reSampleSize" value="100010" />
</category>
...
« Last Edit: November 04, 2018, 09:11:05 pm by MrW0lf »
 
The following users thanked this post: Performa01, 2N3055, vmax

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #46 on: November 06, 2018, 12:20:05 pm »
Someone did point out that "hacked" measurements may go into overflow with large readings number and especially on high bit scope. In fact I did run long term test to find this out and presumed count would either stop or software would crash. As seen buffers did go into overflow at 65534 which is almost 2^16 eg 65536. Measurements count continued and I stopped test at 275319. It took about 4h to get there if remember correctly and frame rate had indeed dropped so physical limit might have been in sight. 100M value in config was just largest value I tried that did not lead to crash at startup. So if someone needs that feature it makes sense to do functional test first over desired time period.

Meanwhile I had idea to try out PicoScope 5 software that I've never used, but which supports my oldest 2205. It turns out sometimes one must indeed go back in time to go forward...

Measurements count limit max 10k vs 1k in PS6.

FFT limit in PS5 is official bw * 2 (50MHz) instead of official bw (25MHz) in PS6. In fact even bw * 2 is limited because scope can to 200MSa/s. But... why would anyone want FFT on more than official bw, surely confusing because of amplitude drop?! Hmm... aliasing perhaps? :popcorn:

PS5: First lets determine what the analog bw is:



PS5: Now lets look at 40MHz signal. Very predictable and useful, can get correct amplitude value from analog bw graph.



PS6: Nice trap for young players, eh?



Edit: Of course there is workaround, but very non-obvious for young player - create Spectrum viewport in Scope mode instead, there they cannot cut you out of full sample rate because it would cripple the scope. This helps very much with alias, but everything above 25MHz is still not processed / visible:



And that's just the start of it, PS5 had many more useful differences which will cover sometime later.
« Last Edit: November 06, 2018, 05:38:35 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #47 on: November 06, 2018, 07:30:58 pm »
It turns out that PS5 had persistence (DPO and color grading) in regular Scope mode. PS6 has only dedicated Persistence mode with hardware support which was probably supposed to replace old options, because regular Scope mode is now lacking these features. So did it turn out well?

To find out good case would be something complex and slow with random errors. There is main wfm with distinct discrete steps and very poor "triggerability". Some very seldom occurring errors (spikes) induced. To have good look - best find some triggerable part and browse around with zoom. Errors can be distinguished from main wfm by spike width, so need enough sample rate for that (good time resolution).

PS5: 100us/div, 12.5MSa/s, 12.5kSa, 10x zoom, color graded persistence. As can see no problem spotting the errors collecting over time.



PS6: 100us/div, 781.3kSa/s, 781Sa, 5x zoom, color graded persistence. It looks like gates of hell have opened :scared:. Hardware supported DPO is limited to about 1kSa and despite having higher wfm/s rate completely useless for such tasks. Max 5x zoom, no math, no measurements. It cant trigger properly because of insufficient sample rate and all visual detail lost.



PS6: 100us/div, 12.5MSa/s, 12.5kSa, 10x zoom, as workaround math function peak() used to provide pseudo-persistence mode. Can only choose single color for peak() but somewhat works. No DPO or color grading. Suppose quite non-obvious way to achieve (sort of) persistence for many users.



So replacing, not complementing Scope mode persistence with weird Persistence mode that can be used only for high speed stuff seems no the best idea.
« Last Edit: November 06, 2018, 07:40:02 pm by MrW0lf »
 

Offline MrW0lfTopic starter

  • Frequent Contributor
  • **
  • Posts: 922
  • Country: ee
    • lab!fyi
Re: PicoScope 2000
« Reply #48 on: November 06, 2018, 08:24:27 pm »
However if move from old 2205 back to 2408B then there is at least very neat trick. After collecting buffers one can apply one of buffered math functions: min, max, average, peak. For pseudo-persistence can use min, max, peak. So now if combine with Rapid trigger (~1Mwfm/s capability) can achieve this:

Theoretical maximum trigger rate for given wfm is ~763Hz. When configure Rapid trigger to 10k buffers it will display result after 14 seconds. To collect at maximum possible rate would take ~13.1s. So can assume that indeed there was 0% of trigger misses + some time do download result from scope memory.

Initially it will display just one wfm with no indication that something useful is still going on, but after ~20 seconds (until PC crunches through 10k wfms) this is displayed:



Sadly it will not process buffers on subject of auto-measurements. One would need DeepMeasure for that (USB3 scopes). Also some indication that processing is ongoing would be very helpful. Another shortcoming is that despite all spikes shown, one has still no idea in which exact buffer of 10k total given spike appeared.

Collecting same amount of data with Repeat trigger took 284s, which converts to 35wfm/s eg ~95% of trigger misses.

Edit: Forgot to mention drawback of Rapid trigger mode: Buffers are not time-stamped, they get single timestamp of the final download - so no idea when something occurred. There is ongoing discussion on this here:
https://www.picotech.com/support/topic17321.html?&start=15#p140390


« Last Edit: November 06, 2018, 08:53:24 pm by MrW0lf »
 

Offline _Wim_

  • Super Contributor
  • ***
  • Posts: 1514
  • Country: be
Re: PicoScope 2000
« Reply #49 on: November 06, 2018, 08:31:28 pm »
Meanwhile I had idea to try out PicoScope 5 software that I've never used, but which supports my oldest 2205. It turns out sometimes one must indeed go back in time to go forward...

Were you able to install both PS5 and PS6 on 1 pc?
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf