scottprahl / RigolWFM

Parsers for .wfm binary files created by a wide range of Rigol oscilloscopes
BSD 3-Clause "New" or "Revised" License
46 stars 6 forks source link

DS1000Z .wfm files with current firmware #5

Open scottprahl opened 4 years ago

scottprahl commented 4 years ago

The files in the repository are pretty old. The calculated voltages a close to, but do not match the values from the .csv files. The parsing of the header files looks solid and the voltage calculation is the same as that used by all the other Rigol scopes. My hope is that the problem rests in old firmware used to generate the .wfm/.csv files.

The latest scope firmware is at https://www.rigolna.com/firmware/ and a few .wfm/.csv files are needed to test this theory.

JensRestemeier commented 4 years ago

Test.zip Attached one capture made with a Rigol DS1054Z I bought a few weeks ago. Firmware 00.04.04.SP4 Board Version: 0.1.4

VisaDSO shows more sensible values, so you can compare the results. I can make more measurements with different settings, and make screenshots to compare.

Feel free to keep/share these files, there is no confidential info in them.

scottprahl commented 4 years ago

Thanks Jens!

This was very helpful. I fixed a bunch of things and the settings seem correct. (The voltage offsets are currently the negative of what they should be because the conversion for this scope doesn't seem to match that of all the other scopes.)

Anyhow, you can look at https://github.com/scottprahl/RigolWFM/blob/master/doc/1-DS1000Z-Waveforms.ipynb to see how things are working. Having all four channels was nice.

It seems that the .wfm and .csv files you sent are somewhat inconsistent. So please submit another group, but make sure that

  1. .wfm and .csv are for the same signals. The scope should be in the STOP state across both saves
  2. when saving the .csv file you set DataSrc to Memory and not Screen.
JensRestemeier commented 4 years ago

Test.zip I made a new capture. The scope is in "Stop" state and the csv save is set to Memory. Additionally I connected the second channel to the calibration pin.

scottprahl commented 4 years ago

Thanks again. The calibration pin is a super idea. Hopefully I can get this sorted out today.

scottprahl commented 4 years ago

@JensRestemeier I definitely improved the algorithm for calculating voltages for the 1000Z scope, but the offset still does not seem quite right. You can see this the notebooks devoted to the First or Second attempts.

So, will you verify that you are using the latest firmware 00.04.04.04.03 from https://www.rigolna.com/firmware/ (it is easy to update, download the firmware to a USB drive, plug it into the scope and agree to update the firmware.)

The next thing that might shed some light on the proper algorithm is to capture the same waveform across all four channels with each channel having a different V/div setting and vertical offset.

Thanks again for your help

JensRestemeier commented 4 years ago

I downloaded that firmware update on Sunday, though it said something along the lines of "update to same firmware". As the update requires a re-calibration I'd like to avoid that until I have either a specific bug or a specific feature that requires an update. I can double-check the system status page and record the waveforms, though.

ghost commented 4 years ago

so if i wanted to help capture this data for you, what exactly do you need me to do? put 4 probes on calibration point and capture?

scottprahl commented 4 years ago

Yes. All four probes to the calibration point would be fine.

  1. Set each channel to have a different V/div and with a different vertical offset.
  2. DC coupling would probably be best for all the channels.
  3. Set DataSrc to Memory and not Screen.
  4. Make sure that Para Save is ON so .txt files are created
  5. Save the same waveform in both .csv and .wfm formats to a USB flash drive
ghost commented 4 years ago

does it matter if i have used the keygen to unlock all features and 100mhz?

scottprahl commented 4 years ago

I don't think so. I really have no idea though. (The goal is to eliminate firmware from the list of issue in converting raw bytes to volts.)

ghost commented 4 years ago

https://mega.nz/#F!LMVGCKpL!XVG6exOz3_Du0szO5g6ALg i hope this file host is okay for you.

ghost commented 4 years ago

i dont know if it matters to you but channel 4 is set to 1X mode and the others set to 10X. i figured you might want the variation.

scottprahl commented 4 years ago

Got the files. Hopefully this data from a scope with 00.04.04.SP4 firmware will finally make sense.

The probe stuff is sort of on the back burner (along with triggering). I don't expect it to confound these results.

Thanks again.

ghost commented 4 years ago

youre welcome and good luck

JensRestemeier commented 4 years ago

NewFolder1.zip And here is another capture of the calibration pin with my firmware. I randomly tweaked the scale and position. I hope this helps.

scottprahl commented 4 years ago

Thanks Jens. Hopefully I will have time to sort out all the results in the next few days.

scottprahl commented 4 years ago

Well, I ran through all contributed 1000Z .wfm files and summarized the results in a Jupyter notebook. The final result is that the relative value of the converted voltage is roughly correct, but the offset is still a mystery.

Thanks again @JensRestemeier and @electronoob.