macOS port of DSRemote, with LAN and experimental USB-TMC connections to supported Rigol oscilloscopes. The macOS USB backend uses libusb and has simulated transport tests; physical USB validation is still pending. See USB support and limitations.
Install Xcode Command Line Tools (xcode-select --install) and Homebrew, then:
brew install qtbase libusb pkgconf
git clone https://github.com/femaphore/DSRemote-macOS.git
cd DSRemote-macOS
mkdir -p build
cd build
"$(brew --prefix qtbase)/bin/qmake" ../dsremote.pro
make -j"$(sysctl -n hw.logicalcpu)"
open dsremote.appQt 6 is recommended; Qt 5.15 also builds by substituting qt@5 for qtbase. Using the explicit qmake path avoids linking Qt into Homebrew's global bin directory. For a relocatable application bundle, run:
"$(brew --prefix qtbase)/bin/macdeployqt" dsremote.appYou can then copy dsremote.app to Applications. This produces a local unsigned build, not a notarized distribution. The minimum runnable macOS version also depends on the installed Qt and libusb libraries; Homebrew bottles may require a newer OS than the source deployment target.
Upstream is https://gitlab.com/Teuniz/DSRemote.git, branch master; this fork uses main. Preserve fork history by merging upstream instead of resetting or rebasing published commits:
git remote add upstream https://gitlab.com/Teuniz/DSRemote.git # once per checkout
git fetch upstream
git merge upstream/masterThe portability patchset uses pow(10, n) instead of GNU exp10, selects a separate libusb USB-TMC backend on macOS, and scopes compiler/install settings to their platforms. Review it with git diff upstream/master -- ':!README.md' ':!README'. Build and run the port tests after each update; real oscilloscope communication requires hardware validation.
QMAKE="$(brew --prefix qtbase)/bin/qmake" ./tests/run.shThe following requirements and support policy describe upstream, not this macOS fork.
webpage and info: https://www.teuniz.net/DSRemote/
DSRemote is a GNU/Linux & GCC & GNU Make project. Other platforms, tools or compilers are not supported. This is not going to change. I mean it.
DSRemote requires a little-endian system. DSRemote does not work with a CPU with a big-endian architecture. This is also not going to change.
This is a private project made available to the public. No pullrequests! If you believe you found a bug or want to add some feature, open an issue on Gitlab or send me an email. In case you want to add some code, send me a diff, no pull requests, they will be ignored. Also, all requests regarding to support other platforms and/or other tools will be ignored. Again, this a Linux & GCC & Make project. That means no Mac/windows/Clang/CMake etc.
sudo apt update sudo apt install build-essential g++ make git qtbase5-dev-tools qtbase5-dev git clone https://gitlab.com/Teuniz/DSRemote.git cd DSRemote qmake make -j8 sudo make install dsremote
sudo dnf update sudo dnf group install "development-tools" sudo dnf install g++ qt5-qtbase qt5-qtbase-devel git clone https://gitlab.com/Teuniz/DSRemote.git cd DSRemote qmake make -j8 sudo make install dsremote
sudo zypper refresh sudo zypper install -t pattern devel_basis devel_C_C++ devel_qt5 git clone https://gitlab.com/Teuniz/DSRemote.git cd DSRemote qmake-qt5 make -j8 sudo make install dsremote
sudo groupadd usbtmc sudo usermod -a -G usbtmc reboot
Now you can run the program by typing: dsremote
(USB connection does not work on modern USB host controllers thanks to a bug in the scopes' firmware that Rigol does not want to fix.)
Read also the file readme_usbtcm_driver.txt and the file notes.txt.
DS6000 and DS1000Z series oscilloscopes.
There is some basic support like capturing screenshots.
Not tested yet:
- Record & Playback function
- Wave Inspector
- serial decoding.