Skip to content

WIP: Rigol oscilloscope refactor#1017

Open
diggit wants to merge 65 commits into
ngscopeclient:masterfrom
diggit:rigol_oscilloscope_refactor
Open

WIP: Rigol oscilloscope refactor#1017
diggit wants to merge 65 commits into
ngscopeclient:masterfrom
diggit:rigol_oscilloscope_refactor

Conversation

@diggit

@diggit diggit commented Nov 15, 2025

Copy link
Copy Markdown

This is a Rigol Oscilloscope driver refactor.
Related issues #943

I need testers for most scope families (see below).

Refactor

  • each family has it's own identifier and can be easily handled individually
  • use STL containers instead of plain C arrays
  • use RAII for safe(r) resource management

Supported devices and new features

  • DS1000: Broken ❎
    • times out on some commands and FW crashes, needs more investigation
  • MSO/DS1000Z: tested ✔️ (DS1054Z with all options, MSO1104Z with all options)
    • LA: ✔️ (MSO1000Z only)
    • implemented memory/samplerate configuration: ✔️
    • improved download speed: ✔️
    • improved trigger poll performance/robustness: ✔️
  • MSO5000: fixed trigger polling, added LA support
    • analog, samplerate control, triggering, polling, data acq.: ✔️
    • LA: ✔️
  • DHO800:
    • analog, samplerate control, triggering, polling, data acq.: ✔️
    • switched download to single block, doubled the download speed
  • DHO900: no intended changes, but untested (I can borrow one to validate my changes) 🙏
    • should be the same as DHO800
    • LA: untested
  • DHO1000: no intended changes, but untested 🙏
  • DHO4000: no intended changes, but untested 🙏

Known issues (TBD):

  • Memory depth does not update (in ngscopesclient) when channels are added to the capture. Timebase info may become outdated scopehal-apps#920
  • MSO5000 trigger detection is unreliable (on 8 gs/s we may completely miss the non "STOP" state)
  • Driver uses it's own sample conversion function, instead of one from core
  • use SetADCMode/GetADCMode for devices which support multiple sample resolutions (at least DHOs - those current use custom settings property)

non device specific

  • Some trigger offset fixes (keep in place and in valid range on samplerate/memory depthy changes)

Triggers

Not yet supported devices

  • MSO/DS2000: not supported yet
  • MSO/DS4000: not supported yet (I have access to this device and can work on the support)
  • MHO900/MHO098: not supported yet, device available via network (Rigol MHO900/MHO98 support #1022)

Differentiate between scope families and
then group their common behavior in switch statements.
This is more flexible approach and allow more fine tuned,
per family behavior than immediately grouping them by protocol.

- use smart pointers where it makes sense
- use vector/array rather than C arrays

DS1000Z
- implemented memory/samplerate configuration
- improved download speed
- improved trigger poll performance/robustness

Other families should have same handling as before.
to make sure all scope families are handled everywhere
When trigger offset was beyond memory range,
at least DS1000Z never received trigger.
This is necessary, because samplerate changes timebase.
While TB changes, Rigol oscilloscopes keep the trigger position constant
relative to the capture mid point.
Because scopehal reference point is at start, the trigger has to be updated
to keep it constant from scopehal's POV.
As interleaving done automatically by scope is not considered
to be an interleaving feature, see ngscopeclient#1014
@preamp-org

Copy link
Copy Markdown
Contributor

Known issues (TBD):

  • Memory depth does not update (in ngscopesclient) when channels are added to the capture.

This is happening with the pico-bridge, too, so probably a bug of ngscopeclient itself and not specific to any make or model of 'scopes.

Initial tests with 1 channel and 1 MB chunks worked fine.
Later tests with 2 channels failed, but 500 kB chunk size worked fine,
but failed for 3 or 4 channels. It looks like the chunk size (maxpoints),
also depends on the amount of enabled channels.
There may be still some margin, but it's not worth chaseing it.
Proper resource locking was missing at multiple places.
It may not be 100% complete yet.
- change verbose logs to trace
- add more trace logs
- print detected options
- remove purely development logs
There are DHO4000 series scopes, which support 250 MHZ BW limit.
- all the series/model -> limiters logic is now in `GetChannelBandwidthLimiters`
- `SetChannelBandwidthLimit` uses values from `GetChannelBandwidthLimiters` and uses nearest higher limit
it is more complicated than expected, no obvious rules
- deduce whole trigger state from data preamble rather than status
- resilient against fast triggers skipping transitions
- properly handles busy(wait)/armed(run) states
…ies::MSODS1000Z as there are also MSO scopes
MSODS1000Z was the only exception and it works there.
- recognize MSO1000Z as MSODS1000Z (tested)
- recognize DHO800/DHO900/DHO1000/DHO4000 (untested)
only `double` for now, but templating allows easy addition of more
…nnel configuration

- it may touch channels and it caused bugs when adding LA support
most of necessary includes are already included indirectly
- developed with MSO1000Z series
- MSO5000/DHO900 implemented, but not tested
@diggit

diggit commented Dec 26, 2025

Copy link
Copy Markdown
Author

@Wiljan1 new commit 20864ba should address 4CH option detection. Please give it a shot on some MSO5xx2 device (preferably with and without this option).
This check is only done for MSO5xx2 scopes. We assume 4 channels on MSO5xx4 models.

@Wiljan1

Wiljan1 commented Dec 27, 2025

Copy link
Copy Markdown

@diggit thx I need to know how add the commit to the build on windows in the MSYS2 so I can test it, right now I can compile the main git source.

@diggit

diggit commented Dec 27, 2025

Copy link
Copy Markdown
Author

@Wiljan1 if you have the environment to build scopehal-apps, you are 99% done.
Assuming you are in directory of the scopehal-apps

  1. cd lib
  2. git fetch origin pull/1017/head:rigol_oscilloscope_refactor
  3. git switch rigol_oscilloscope_refactor
  4. cd ..
  5. build in the same way you did previously

@Wiljan1

Wiljan1 commented Dec 28, 2025

Copy link
Copy Markdown

@diggit when I add your instructions above and do a build it unfortunate fails:

`[201/542] Building CXX object lib/scopehal/CMakeFiles/scopehal.dir/RigolOscilloscope.cpp.obj
FAILED: [code=1] lib/scopehal/CMakeFiles/scopehal.dir/RigolOscilloscope.cpp.obj

In file included from C:/msys64/home/Jan Jakobsen/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:31:
C:/msys64/home/Jan Jakobsen/scopehal-apps/lib/scopehal/RigolOscilloscope.h:128:17: warning: declaration of 'BYTE' shadows a global declaration [-Wshadow]
128 | BYTE = 0, // a waveform point occupies one byte (namely 8 bits).
| ^~~~
In file included from C:/msys64/ucrt64/include/windef.h:9,
from C:/msys64/ucrt64/include/windows.h:69,
from C:/msys64/ucrt64/include/winsock2.h:23,
from C:/msys64/ucrt64/include/ws2tcpip.h:17,
from C:/msys64/home/Jan Jakobsen/scopehal-apps/lib/scopehal/scopehal.h:42,
from C:/msys64/home/Jan Jakobsen/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:30:
C:/msys64/ucrt64/include/minwindef.h:139:25: note: shadowed declaration is here
139 | typedef unsigned char BYTE;
| ^~~~

and a lot more warnings and finally

cc1plus.exe: all warnings being treated as errors
[204/542] Building CXX object lib/scopehal/CM...es/scopehal.dir/TektronixOscilloscope.cpp.ob
ninja: build stopped: subcommand failed.`

@diggit

diggit commented Dec 28, 2025

Copy link
Copy Markdown
Author

Eh, Windows environment never disappoints. Please pull changes and retry. cd lib; git pull

@Wiljan1

Wiljan1 commented Dec 30, 2025

Copy link
Copy Markdown

Still having trouble with the git pull / compile, now I'm next to my scope and did connect by a terminal program

*IDN?
RIGOL TECHNOLOGIES,MSO5072,MS5A241xxxxxxx,00.01.03.02.02

:SYSTem:RAMount?
4

Syntax :SYSTem:RAMount?
Description Queries the number of analog channels of the current instrument.
Return
Format
The query returns the number of analog channels of the current instrument in integer.

The :SYSTem:OPTion:STATus? did noit respond for the 4CH

@diggit

diggit commented Dec 30, 2025

Copy link
Copy Markdown
Author

Ok, this looks straightforward. I will implement channel detestion this way.
Please share the failing build output. We want working builds for Windows too.

@Wiljan1

Wiljan1 commented Dec 30, 2025

Copy link
Copy Markdown

It's the same error when build since the cmd you suggestgit pulldoes not work correctly

$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> rigol_oscilloscope_refactor

I'm new to use git so have to learn :-)

@diggit

diggit commented Dec 30, 2025

Copy link
Copy Markdown
Author

My bad, pull request are not branches, so local branch can't track it. instead of pulling changes (git pull), use git fetch origin pull/1017/head in lib. That will fetch all latest changes into current local branch.

I've also simplified analog channel detection to use :SYST:RAM?

@Wiljan1

Wiljan1 commented Dec 31, 2025

Copy link
Copy Markdown

@diggit
I used

Jan Jakobsen@LAPTOP-JJ UCRT64 ~/scopehal-apps/lib
$ git fetch origin pull/1017/head
From https://github.com/ngscopeclient/scopehal
 * branch              refs/pull/1017/head -> FETCH_HEAD

Jan Jakobsen@LAPTOP-JJ UCRT64 ~/scopehal-apps/lib
$ cd ..

Jan Jakobsen@LAPTOP-JJ UCRT64 ~/scopehal-apps
$ cd build

Jan Jakobsen@LAPTOP-JJ UCRT64 ~/scopehal-apps/build
$ ninja -j4
[11/11] Copying icons...

when running the ./ngscopeclient.exe and adding the scope I only see 2 channels and 1 is disabled
when using wireshark and sniffing I do not see the :SYST:RAM? send over network so I doubt the patch are actually done
rigol_02

@Wiljan1

Wiljan1 commented Jan 7, 2026

Copy link
Copy Markdown

@diggit any comment on that I do not see the :SYST:RAM? in Wireshark?

@diggit

diggit commented Jan 7, 2026

Copy link
Copy Markdown
Author

The code is there and it's pretty straightforward (you have to click to display the RigolOscilloscope.cpp diff)

  1. check your current commit hash cd lib; git rev-parse HEAD is current latest one bb36776cd48e758b436fe5098a739b25530c1f17
  2. fetch and rebuild if needed
  3. use path/to/ngscopeclient --debug --trace SCPISocketTransport --trace SCPITransport --trace RigolOscilloscope to get much more info about what is happening (I assume you are using raw TCP socket - port 5555)
  4. save the output into file and upload it here (you may want to redact your device serial number)

This is my output, I've overridden channels detected from model to be 2 to try it on MS5074.

Connecting to SCPI device at 10.0.0.219:5555
[SCPISocketTransport::SendCommand] [10.0.0.219] Sending *IDN?
[SCPISocketTransport::ReadReply] [10.0.0.219] Got RIGOL TECHNOLOGIES,MSO5074,REDACTEDREDAC,00.01.03.03.00
[RigolOscilloscope::DecodeDeviceSeries] Decoding device series
[RigolOscilloscope::AnalyzeDeviceCapabilities] Analyzing scope capabilities
[SCPISocketTransport::SendCommand] [10.0.0.219] Sending SYST:RAM?
[SCPISocketTransport::ReadReply] [10.0.0.219] Got 4

And I get 4 channels in the ngscopeclient in the end.

EDIT: some clarifications

@Wiljan1

Wiljan1 commented Jan 9, 2026

Copy link
Copy Markdown

@diggit still having trouble and tried on another win PC but see same issue

Build manually
cd scopehal-apps
mkdir build
cd build
cmake ..
ninja -j4

Works fine for original sourcecode

but not for the #1017 patch

cd lib
git fetch origin pull/1017/head:rigol_oscilloscope_refactor
git switch rigol_oscilloscope_refactor
cd ..

git fetch origin pull/1017/head in lib

cd lib
Jan@Jan-PC-SSD UCRT64 ~/scopehal-apps/lib
$ git rev-parse HEAD
bb36776cd48e758b436fe5098a739b25530c1f17

But when compiling it false with the BYTE error again

Jan@Jan-PC-SSD UCRT64 ~/scopehal-apps/build
$ cmake ..
Git reports scopehal-apps version v0.1.1-28-g6f336ba0
-- Found glslc: C:/msys64/ucrt64/bin/glslc.exe
-- Using gcc on windows, setting -mwindows to use win32 subsystem
Skipping MSI package build; define WIXPATH to enable
nfd Platform: PLATFORM_WIN32
nfd Compiler: COMPILER_GNU
Found FFTW3, enabling unit tests which depend on it
-- Configuring done (1.2s)
-- Generating done (0.5s)
-- Build files have been written to: C:/msys64/home/Jan/scopehal-apps/build

Jan@Jan-PC-SSD UCRT64 ~/scopehal-apps/build
$ ninja -j4
[14/306] Building CXX object lib/scopehal/CMakeFiles/scopehal.dir/RigolOscilloscope.cpp.obj
**FAILED: [code=1] lib/scopehal/CMakeFiles/scopehal.dir/RigolOscilloscope.cpp.obj**
C:\msys64\ucrt64\bin\c++.exe -DGLFW_DLL -DGLSLANG_IS_SHARED_LIBRARY=1 -D__USE_MINGW_ANSI_STDIO=1 -Ds
copehal_EXPORTS -IC:/msys64/home/Jan/scopehal-apps/cmake -IC:/msys64/ucrt64/include/glslang/Include
-IC:/msys64/home/Jan/scopehal-apps/lib/scopehal -IC:/msys64/home/Jan/scopehal-apps/build/lib/scopeha
l -IC:/msys64/home/Jan/scopehal-apps/lib/log -isystem C:/msys64/home/Jan/scopehal-apps/lib/scopehal/
../VkFFT/vkFFT -isystem C:/msys64/ucrt64/include/hidapi -isystem C:/msys64/ucrt64/include/sigc++-2.0
 -isystem C:/msys64/ucrt64/lib/sigc++-2.0/include -O3 -DNDEBUG -std=c++20 -Wall -Wextra -Wuninitiali
zed -Wshadow -Wpedantic -Wcast-align -Wwrite-strings -Wmissing-declarations -Wvla -Werror -Wno-error
=deprecated-declarations -Wno-error=unused-parameter -Wno-error=unused-variable -Wno-error=unused-re
sult -Wno-error=shadow -Woverloaded-virtual=1 -mtune=native -O3 -D_USE_MATH_DEFINES -D_POSIX_THREAD_
SAFE_FUNCTIONS -fopenmp -Winvalid-pch -include C:/msys64/home/Jan/scopehal-apps/build/lib/scopehal/C
MakeFiles/scopehal.dir/cmake_pch.hxx -MD -MT lib/scopehal/CMakeFiles/scopehal.dir/RigolOscilloscope.
cpp.obj -MF lib\scopehal\CMakeFiles\scopehal.dir\RigolOscilloscope.cpp.obj.d -o lib/scopehal/CMakeFi
les/scopehal.dir/RigolOscilloscope.cpp.obj -c C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOsc
illoscope.cpp
**In file included from C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:31:
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.h:129:17: warning: declaration of 'W
ORD' shadows a global declaration [-Wshadow]**
  129 |                 WORD = 1, // a waveform point occupies two bytes (namely 16 bits) in which t
he lower 8 bits are valid and the higher 8 bits are 0.
      |                 ^~~~
In file included from C:/msys64/ucrt64/include/windef.h:9,
                 from C:/msys64/ucrt64/include/windows.h:69,
                 from C:/msys64/ucrt64/include/winsock2.h:23,
                 from C:/msys64/ucrt64/include/ws2tcpip.h:17,
                 from C:/msys64/home/Jan/scopehal-apps/lib/scopehal/scopehal.h:42,
                 from C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:30:
C:/msys64/ucrt64/include/minwindef.h:140:26: note: shadowed declaration is here
  140 |   typedef unsigned short WORD;
      |                          ^~~~
In file included from C:/msys64/home/Jan/scopehal-apps/lib/scopehal/scopehal.h:64:
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp: In member function 'virtual boo
l RigolOscilloscope::AcquireData()':
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2207:26: error: format '%ld' exp
ects argument of type 'long int', but argument 4 has type 'std::chrono::duration<long long int, std:
:ratio<1, 1000> >::rep' {aka 'long long int'} [-Werror=format=]
 2207 |                 LogTrace("Channel %s download took %ld ms\n", GetChannel(channelIdx)->GetDis
playName().c_str(), chrono::duration_cast<chrono::milliseconds>(ts_channel_download_end - ts_channel
_download_start).count());
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~
      |

                      |
      |

                      std::chrono::duration<long long int, std::ratio<1, 1000> >::rep {aka long long
 int}
C:/msys64/home/Jan/scopehal-apps/lib/log/log.h:246:60: note: in definition of macro 'LogTrace'
  246 | #define LogTrace(...) LogDebugTrace(__PRETTY_FUNCTION__, ##__VA_ARGS__)
      |                                                            ^~~~~~~~~~~
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2207:54: note: format string is
defined here
 2207 |                 LogTrace("Channel %s download took %ld ms\n", GetChannel(channelIdx)->GetDis
playName().c_str(), chrono::duration_cast<chrono::milliseconds>(ts_channel_download_end - ts_channel
_download_start).count());
      |                                                    ~~^
      |                                                      |
      |                                                      long int
      |                                                    %lld
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2439:26: error: format '%ld' exp
ects argument of type 'long int', but argument 4 has type 'std::chrono::duration<long long int, std:
:ratio<1, 1000> >::rep' {aka 'long long int'} [-Werror=format=]
 2439 |                 LogTrace("Digital bank %zd download took %ld ms\n", bankIdx, chrono::duratio
n_cast<chrono::milliseconds>(ts_bank_download_end - ts_bank_download_start).count());
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           ~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |
                                                                                 |
      |
                                                                                 std::chrono::durati
on<long long int, std::ratio<1, 1000> >::rep {aka long long int}
C:/msys64/home/Jan/scopehal-apps/lib/log/log.h:246:60: note: in definition of macro 'LogTrace'
  246 | #define LogTrace(...) LogDebugTrace(__PRETTY_FUNCTION__, ##__VA_ARGS__)
      |                                                            ^~~~~~~~~~~
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2439:60: note: format string is
defined here
 2439 |                 LogTrace("Digital bank %zd download took %ld ms\n", bankIdx, chrono::duratio
n_cast<chrono::milliseconds>(ts_bank_download_end - ts_bank_download_start).count());
      |                                                          ~~^
      |                                                            |
      |                                                            long int
      |                                                          %lld
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2463:18: error: format '%ld' exp
ects argument of type 'long int', but argument 3 has type 'std::chrono::duration<long long int, std:
:ratio<1, 1000> >::rep' {aka 'long long int'} [-Werror=format=]
 2463 |         LogTrace("Whole download took %ld ms\n", chrono::duration_cast<chrono::milliseconds>
(ts_download_end - ts_download_start).count());
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |
                                           |
      |
                                           std::chrono::duration<long long int, std::ratio<1, 1000>
>::rep {aka long long int}
C:/msys64/home/Jan/scopehal-apps/lib/log/log.h:246:60: note: in definition of macro 'LogTrace'
  246 | #define LogTrace(...) LogDebugTrace(__PRETTY_FUNCTION__, ##__VA_ARGS__)
      |                                                            ^~~~~~~~~~~
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:2463:41: note: format string is
defined here
 2463 |         LogTrace("Whole download took %ld ms\n", chrono::duration_cast<chrono::milliseconds>
(ts_download_end - ts_download_start).count());
      |                                       ~~^
      |                                         |
      |                                         long int
      |                                       %lld
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp: In member function 'virtual voi
d RigolOscilloscope::SetSampleRate(uint64_t)':
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:3208:34: error: format '%lu' exp
ects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsign
ed int'} [-Werror=format=]
 3208 |                         LogTrace("setting target samplerate %lu\n", rate);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~
      |                                                                     |
      |                                                                     uint64_t {aka long long
unsigned int}
C:/msys64/home/Jan/scopehal-apps/lib/log/log.h:246:60: note: in definition of macro 'LogTrace'
  246 | #define LogTrace(...) LogDebugTrace(__PRETTY_FUNCTION__, ##__VA_ARGS__)
      |                                                            ^~~~~~~~~~~
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:3208:63: note: format string is
defined here
 3208 |                         LogTrace("setting target samplerate %lu\n", rate);
      |                                                             ~~^
      |                                                               |
      |                                                               long unsigned int
      |                                                             %llu
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:3247:34: error: format '%lu' exp
ects argument of type 'long unsigned int', but argument 3 has type 'uint64_t' {aka 'long long unsign
ed int'} [-Werror=format=]
 3247 |                         LogTrace("setting target samplerate %lu, divisor %zu\n", rate, divis
or);
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~
      |                                                                                  |
      |                                                                                  uint64_t {a
ka long long unsigned int}
C:/msys64/home/Jan/scopehal-apps/lib/log/log.h:246:60: note: in definition of macro 'LogTrace'
  246 | #define LogTrace(...) LogDebugTrace(__PRETTY_FUNCTION__, ##__VA_ARGS__)
      |                                                            ^~~~~~~~~~~
C:/msys64/home/Jan/scopehal-apps/lib/scopehal/RigolOscilloscope.cpp:3247:63: note: format string is
defined here
 3247 |                         LogTrace("setting target samplerate %lu, divisor %zu\n", rate, divis
or);
      |                                                             ~~^
      |                                                               |
      |                                                               long unsigned int
      |                                                             %llu
cc1plus.exe: all warnings being treated as errors
[17/306] Building CXX object lib/scopehal/CMakeFiles/scopehal.dir/VulkanFFTPlan.cpp.obj
ninja: build stopped: subcommand failed.

@diggit

diggit commented Jan 9, 2026

Copy link
Copy Markdown
Author

@Wiljan1 should be fixed in e548c46

cd lib
git fetch origin pull/1017/head
git reset FETCH_HEAD

I've forgot about the last line which will move your local branch to last fetched commit.
In case you don't have local branch and you work in detached head mode (git status will the you), use git checkout FETCH_HEAD instead.

@aWZHY0yQH81uOYvH

Copy link
Copy Markdown

Some work I've been doing on the DS1000E: https://github.com/aWZHY0yQH81uOYvH/scopehal/tree/DS1102E-fixes
Just found this PR, so may not be compatible with your refactoring. But generally have been fixing slight differences in the way it handles commands versus the newer models.

Currently, it's able to display the waveform and adjust some settings, though it still seems possible to get it into a weird glitchy state.

@azonenberg

Copy link
Copy Markdown
Collaborator

Hi, checking in on this... I see merge conflicts. Are you planning to get this merged in time for the v0.2 release? What's left to do if anything?

@diggit

diggit commented Jun 6, 2026

Copy link
Copy Markdown
Author

Hi @azonenberg, I am busy with other high prio project until July. This driver overhaul is so major, that it should be merged soon, otherwise it will be pain to merge due to growing merge conflicts.

I tried to keep the first post updated, so testing with higher tier DHOs is missing (I don't have these available).

I can develop and test support for MSO2000 too, but I'd rather leave it for the future PR.

@azonenberg

Copy link
Copy Markdown
Collaborator

I don't understand your changes well enough at this stage to be confident resolving the merge conflicts and more importantly I don't have a Rigol scope on hand to test if a merge I did broke anything. I don't think anyone else is planning to change the Rigol driver in the near future, so how about I push this to v0.3, you resolve the conflicts in July when you're free, then we merge?

@azonenberg azonenberg modified the milestones: v0.2, v0.3 Jun 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants