Rigol Read Memory TestThis is a small utility for testing if your Rigol DS2000 series scope can have it's sample memory read correctly by the PC.
Directions: First try button #1 - if it works, then try button #2 with different memory depth settings - if they work successfully, your DSO has passed the test (lucky you
). If it doesn't you can try button #3 (use "Break" if stuck in a loop - but for memory depths <= 140k, the loop will usually end with a successful read after a few times).
1) "Rigol Display Memory Read - NORM Mode"
This button attempts to read only the display memory (1400 bytes per channel) using the Rigol technique as described in the programming manual. When finished, "Total bytes read" should equal the sample size shown up above (except in ASCII mode).
This should work on all Rigol scopes.2) "Rigol Full Sample Memory Read - MAX/RAW mode":
This button attempts to read the full sample length (56 bytes to 56MB per channel - depending on Acquire/Record settings) using the Rigol technique as described in the programming manual (perhaps it's outdated - that's one thing I'm trying to determine). When finished, "Total bytes read" should equal the sample size shown up above (except in ASCII mode).
This doesn't appear to work on Rigol scopes with firmware v.01.00.05.3) "Wait Until Bytes Read >= Sample Memory Size"
Forces the routine to keep trying to read data until bytes read >= memory depth size (ignoring IDLE command from Rigol unless followed by "0").
This usually works for small memory depths (<= 140k) on my scope.4) "Break"
Breaks out of reading memory. Click once and wait.
5) "Channel 1 / 2 "
Selects channel(s) to read.
6) "Byte / Word / ASCII -> [] Show"
Selects format for memory read - and shows the data if ASCII selected and Show is checked (careful when using this for > 1.4MPts mem. depths).
7) "MAX / RAW"
Selects Rigol command to use for memory 'type'.
Please report back your results. Any strange results can be copied and pasted here from the output window.
NOTE: The VISA session is set to timeout after 3 seconds - so don't worry if there is a couple of seconds of inactivity - in case of a non-response from the Rigol firmware, the software will automatically timeout and break. The Break button is used for exiting when reading large memory depths - or when forcing the reading using button #3.There is definitely a bug in the IDLE -> READ response sequence - which is the final response for the final packet when reading memory. You can see how this works by setting your memory depth to 14MPts, then running my software and clicking "Rigol Full Sample Memory Read - MAX/RAW mode". The PC will read the entire memory - but fail on the final packet. Unfortunately, for small memory depths (< 14MPts in non-ASCII mode), there is only one packet - so read attempts at 14kB and 140kB and 1.4MB fail using Rigol's technique. Using my "Wait Until Bytes Read >= Sample Memory Size" button will usually force my DSO into finally sending the final packet at smaller memory depths (<= 140k) - but it's a wonky workaround. It seems like it might be a timing issue.
It's very easy to check if Rigol's reading sequence works on your DSO - just:
Set Memory Depth to 14kPts.
Run my software.
Click "Rigol Full Sample Memory Read - MAX/RAW mode"
If you get "Total bytes read: 0" - it didn't work. If you get "Total bytes read: 14000", the bug is not present in your scope.
Then try the same thing again with a few other memory depths.
EDIT: This download is without VISA runtime or DLLs! If you haven't installed NI-VISA on your system, get the DLLs from the RUU download.