Changelog
1.5.0 (2026-04-05)
add web based viewer of .wfm files
extend
wfmviewto support Agilent / KeysightAG01/AG03/AG10.binfilesextend
wfmviewto support Rohde & Schwarz RTP XML.binfiles with companion.Wfm.binpayloadsextend
wfmviewto support Siglent.binfiles for documented revisions V0.1, V0.2, V1.0, V2.0, V3.0, V4.0, V5.0, and V6.0extend
wfmviewto support Rigol RG01 logic channels and DS1000Z digital traces, including scope-style stepped renderingfix
wfmviewfile-picker filters to advertise supported.trcand.isffilesimprove browser-side LeCroy detection by scanning for
WAVEDESCbeyond short prefixesfix timing issue for DHO800.wfm files
added autodetect to eliminate need to give file type
add Rigol MSO5000 binary waveform support
add Rigol MSO7000/MSO8000 binary waveform support via shared
RigolWFM.mso7000_8000adapteradd MSO5074-specific adapter to work around firmware bugs (wrong metadata, uint8 ADC counts, concatenated per-channel blocks)
treat standard
MSO5074-C.bincaptures as part of the MSO5000 / RG01 family, expose their logic channels, and drop support for broken concatenated MSO5074 exportsfix
IndexErrorinChannel.__str__when a channel has fewer than 5 pointsfix
wav()crash when no channels are enabledfix
csv()andsigrokcsv()to use the shortest channel when channels have mismatched point countsfix
from_url()to preserveRead_WFM_Error,Parse_WFM_Error, andUnknown_Scope_Errorinstead of wrapping themadd missing newer-family
wfmconvert --modelchoices and aliases, including7,8, and5074as an alias for5remove unreachable
len(selected) > 4dead-code guard inwfmconvertadd user-visible warning when MSO5074 voltages are read (no calibration data in file)
warn to stderr when the model string in the file disagrees with the user-supplied scope type
add Rigol DHO800 and DHO1000 support for both official
.binexports and proprietary.wfmcapturesadd Kaitai Struct descriptions for DHO binary and proprietary formats
add Kaitai Struct descriptions and normalized adapters for Agilent / Keysight
AGxx.binfilesadd Kaitai Struct descriptions and normalized adapters for Rohde & Schwarz RTP XML
.binmetadata plus companion.Wfm.binpayloadsadd Kaitai Struct descriptions for Siglent documented
.binrevisions plus browser-side generated parsers forwfmviewrename Kaitai schemas, generated parser modules, and browser parser assets to family-specific names, clean up schema titles / source metadata, and add generated schema tables plus
scripts/ksy_to_table.pyto the docs workflowadd
RigolWFM.dhoadapter logic so DHO.binand.wfmfiles matchWfmandChannelinterfacesadd
RigolWFM.agilentadapter logic so Agilent / Keysight.binfiles matchWfmandChannelinterfacesadd
RigolWFM.rohde_schwarzadapter logic so supported Rohde & Schwarz RTP exports matchWfmandChannelinterfacesadd
RigolWFM.siglentadapter logic so supported Siglent.binrevisions matchWfmandChannelinterfacesextend DHO
.wfmdecoding for DHO800 differences and DHO1000 multichannel capturesfail fast on unsupported DHO
.binbuffer types instead of silently misinterpreting non-analog payloadsadd Yokogawa
.wfmsupport viaRigolWFM.yokogawaand autodetect integrationadd Yokogawa
.hdrcompanion-metadata parsing for.hdr+.wvfwaveform packages viaRigolWFM.yokogawa_hdradd legacy Tektronix
LLWFMsupport alongside modernWFM#001/WFM#002/WFM#003parsingfix Tektronix
WFM#003parsing by reading user-viewpoint_densityfields at their correct 8-byte layoutreject unsupported Tektronix FastFrame, multi-curve, and unknown-version
.wfmfiles more explicitlypreserve Tektronix
WFIDand waveform labels as trace metadata instead of reporting them as instrument modelsimprove LeCroy
.trcdetection by scanning forWAVEDESCbeyond short SCPI / transport prefixesalign Agilent / Keysight parsing with vendor docs and reference readers: use
x_origin, expose multi-buffer waveforms in the low-level parser, preserve segment metadata, and reject unsupported segmented or Peak Detect normalization pathsfix Agilent / Keysight channel timing with new InfiniiVision test coverage
add DS1000Z / MSO1000Z digital-trace inference, expose named logic channels through
Wfm, and keep analog + digital mixed captures alignedadd test coverage in
tests/test_dho1000.pyandtests/test_dho800.pyadd regression coverage for Agilent / Keysight, Siglent, Yokogawa, Tektronix
WFM#003/LLWFM, Tektronix.isflabel handling, and LeCroy SCPI-prefixed.trcfilesadd regression coverage for
wfmviewbrowser helpers, schema-table generation, Z-series logic decoding, RG01 logic, Yokogawa.hdrparsing, and new Agilent / Rohde & Schwarz fixturesadd smoke tests for
wfmviewassets plus CLI coverage for newer waveform families using checked-in and synthetic fixturesrun real tests and lint in GitHub Actions instead of only checking
wfmconvert --versionscope default
pytestdiscovery to the repository test suite and ignore vendored test trees underdocs/vendorsexpand
wfmconvert --modelto accept newer families and their aliases explicitlyadd notebooks
1-DHO1000-Waveforms.ipynband1-DHO800-Waveforms.ipynband include the new waveform docs in the notebook test suiteignore generated parser modules in Ruff and Pylint to keep lint results focused on handwritten code
update README, docs index, Makefile targets, and manifest entries for the new DHO parser and documentation workflow
refresh README installation text, notebook examples, and generated docs to match renamed schemas, updated sources, and new sample files
migrate package metadata and dependencies fully into
pyproject.tomlswitch Makefile workflows to uv-based tooling and shared command wrappers
add consistent
RM/RMRcleanup variables and remove hardcodedrmusageupdate supported Python policy to 3.10 through 3.14 in package metadata and CI
remove
from __future__ import annotationsnow that Python 3.10+ is required, and fix the resulting import-time and mypy regressionsupdate docs and lite dependency ranges, including
rstcheck[toml,sphinx]add JupyterLite build/serve/deploy tooling and configuration
modernize Read the Docs install/runtime configuration
improve docs configuration and project automation/help targets
make
rcheck/htmlclean again, including doc-lint false positives and notebook syntax-highlighting warningsfix badges and default branch references
improve testing structure
broaden README and package metadata to describe the current multi-vendor scope of the project
add
mypytype checking: annotate all hand-writtenRigolWFM/modulesfix
wav()to usewave.Wave_writedirectly instead ofwave.open(..., "wb")extend
csv()export to include digital channelscomplete
.sr/ sigrok export for analog and digital waveformsremove
vcsvCLI actionadd
npzandmatexport formatsrename and simplify the notebook docs
1.0.0 (2023-10-06)
fix wfmconvert –version so there is no error
remove all lfs files in dist. they’re expensive
0.9.9 (2023-10-05)
don’t include large git lfs files!
0.9.8 (2023-10-05)
no new features, just updating packaging
add conda-forge support
add zenodo DOI citation support
add github action workflows
add tests for wfmconvert
improve readme
v0.9.7 (2023-08-18)
include DS1102D test files (Karl Palsson)
bump python versions to 3.8 through 3.11
add notebook for 1000D files
remove unnecessary .rst testing
v0.9.6 (2022-08-26)
fix DS2072 CH2 wide memory fixes (James Pitts)
get html docs building under nbsphinx again
v0.9.5 (2022-03-17)
use __version__ in __init__.py
v0.9.4 (2021-12-12)
improve handling of 1000C files
add .readthedocs.yaml so docs build correctly
v0.9.3 (2021-11-24)
processing of E type files is less restrictive
use nbsphinx 0.8.5 so docs build
improve docs
v0.9.2 (2021-08-06)
create pure python packaging
include wheel file
package as python3 only
v0.9.1 (2021-07-28)
fix for 1204B files with 0x4000 bytes
v0.9.0 (2021-07-25)
support 1000B scopes
automate notebook testing
add pypi badges
add flake8 testing
v0.8.1 (2021-03-21)
fixed swapped channels for DS1000Z files (2 channel case only)
advise pip install –user RigolWFM to avoid permission errors
v0.8.0 (2021-03-20)
significantly speed parsing of large .wfm files
fix bug with selection of channels in DS1000Z files
v0.7.4 (2021-03-14)
fix version consistency across docs and package metadata
v0.7.3 (2021-03-14)
fix hyperlinks for colab in docs at https://readthedocs.io
v0.7.2 (2021-03-14)
fix bug with selecting channels
fix bug with autoscaling
add links to google colaboratory to documentation
describe parameters for a few functions
modify message to install RigolWFM when missing
v0.7.1 (2021-03-09)
add support for selecting channels
add autoscaling support for .wav files
improve help message for wfmconvert
v0.7.0 (2021-02-14)
add basic support for DS1000CA files
add new model D (untested) out of the E model list
v0.6.7 (2020-10-31)
add vcsv conversion (just volts, not µV or mV)
add support for sigrok exporting (requires sigrok-cli)
v0.6.6 (2020-10-10)
use probe scaling with DS1000E files
v0.6.5 (2020-08-03)
fix DS2000 to convert CSV files
add more testing to tox
v0.6.4 (2020-05-16)
fix DS4000 to work with two channels
fix DS2000 to work with recent DS2072A firmware
add DS2072A test files to repository
v0.6.3 (2020-03-29)
use sphinx for documentation
host docs on https://rigolwfm.readthedocs.io
remove unneeded files from pip installation
start using tox for testing
v0.6.2 (2020-03-27)
trying to get console_scripts right
v0.6.1 (2020-03-27)
use portable install for console_scripts
v0.6.0 (2020-03-26)
add support for DS2000
add command-line utility wfmconvert
improve support for DS1000Z
fix DS4000
add .csv export
add .wav export
v0.4.1 (2020-03-01)
fix requirement for enum by just requiring python > 3.4
v0.4.0 (2020-03-01)
huge change. Now using kaitai struct exclusively
added support for 1000C, 4000, 6000 .wfm formats
much more testing
many api changes.
v0.3.0 (2020-01-12)
fix exception handling, support parsing URLs
v0.2.0 (2020-01-09)
improve README and package long description metadata
v0.1.3 (2020-01-09)
fix package classifiers
v0.1.2 (2020-01-09)
fix URL and other infelicities
v0.1.1 (2020-01-09)
add missing files needed for release
v0.1.0 (2020-01-09)
initial commit