Skip to main content

Process Rigol oscilloscope waveform files (DHO800 series focus)

Project description

by ai.moda (Fork of RigolWFM by Scott Prahl)

A utility to process Rigol DHO800 series oscilloscope .wfm files

pypi github kaitai-struct

License Downloads

Note: This is a fork of scottprahl/RigolWFM focused on DHO800 series support (DHO804, DHO814, DHO824, DHO914, DHO924). For the original project supporting other Rigol oscilloscope series, visit RigolWFM.

This project provides tools to interpret waveform .wfm files created by Rigol DHO800 series oscilloscopes. It leverages kaitai struct, a domain specific language to represent binary files. Once a binary file has been described in this text format, parsers can be generated for a wide range of languages (C++/STL, C#, Go, Java, JavaScript, Lua, Perl, PHP, Python, and Ruby).

Original documentation: <https://RigolWFM.readthedocs.io>

Installation

You can install locally using pip:

pip install --user rigolwfm-dho800

or analyze your files using the kaitai struct IDE (you will need to manually upload the appropriate .ksy file and your .wfm to the IDE). This allows one to interactively reverse engineer binary file formats directly in your browser. This is super helpful for those Rigol .wfm formats that are undocumented or not parsing correctly.

Usage

Once RigolWFM is installed, you can plot the signals from binary Rigol .wfm files by:

import matplotlib.pyplot as plt
import RigolWFM.wfm as rigol

filename = 'example.wfm'
scope = 'DS1000E'

w = rigol.Wfm.from_file(filename, scope)
w.plot()
plt.show()

Alternatively, wfmconvert can be used from the command line. For example, the following should convert all the DS1000E files in the current directory to the .csv format:

prompt> wfmconvert E csv *.wfm

If you just wanted to convert channel 1 from a single file to .csv then:

prompt> wfmconvert --channel 1 E csv DS1102E.wfm

If you wanted to a signal .wav file using the second channel waveform (for use with LTspice) then:

prompt> wfmconvert --channel 2 E wav *.wfm

If you want to create a .wav file with channels one and four as signals (and autoscale for use with Audacity or Sigrok Pulseview):

prompt> wfmconvert --autoscale --channel 14 E wav *.wfm

Status

There is a bit of work remaining (testing, validation, repackaging) but there are binary file descriptions for .wfm files created by the following scopes:

  • DS1000B tested

  • DS1000C tested (two files only)

  • DS1000D tested (one file only)

  • DS1000E tested

  • DS1000Z tested, but with wonky voltage offsets

  • DS2000 tested

  • DS4000 tested

  • DS6000 untested

Resources

This has been a bit of an adventure. In the process of nailing down the basic formats, I have gleaned information from a wide range of projects started by others.

Source code repository

<https://github.com/aimoda/rigolwfm-dho800>

Original upstream project

<https://github.com/scottprahl/RigolWFM>

License

BSD 3-clause – see the file LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rigolwfm_dho800-2.0.534.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rigolwfm_dho800-2.0.534-py3-none-any.whl (33.4 kB view details)

Uploaded Python 3

File details

Details for the file rigolwfm_dho800-2.0.534.tar.gz.

File metadata

  • Download URL: rigolwfm_dho800-2.0.534.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rigolwfm_dho800-2.0.534.tar.gz
Algorithm Hash digest
SHA256 6ed5eb856e126e4ff13931cd44d5ba6941effcccc9a9d6a617abb5d57e037aae
MD5 fdc3d480f37c1ac865c4ea2e9c7b5b58
BLAKE2b-256 f50f0e818e3e5e7bd544c573ccfe6f86aed4881b6b70e7f1e6901dae03362340

See more details on using hashes here.

Provenance

The following attestation bundles were made for rigolwfm_dho800-2.0.534.tar.gz:

Publisher: publish-to-pypi.yml on aimoda/rigolwfm-dho800

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rigolwfm_dho800-2.0.534-py3-none-any.whl.

File metadata

File hashes

Hashes for rigolwfm_dho800-2.0.534-py3-none-any.whl
Algorithm Hash digest
SHA256 1cf229271ac1e2824f89dad76a615d42ab11ee9cb2602d210e9fdac77df2185e
MD5 a63ebb6e44074f0b807f2ce72b378873
BLAKE2b-256 e56e7cb3f68f3611de3011a498bec25b4c44f36208f18de3a3b874494cbb036e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rigolwfm_dho800-2.0.534-py3-none-any.whl:

Publisher: publish-to-pypi.yml on aimoda/rigolwfm-dho800

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page