• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 9 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Qt assistant for Rigol DS1000 series scopes

qrigol - A control program for the Rigol DS1xxxE series oscilloscopes

Copyright 2015 by Al Williams WD5GNR http://www.awce.com [email protected] All Rights Reserved

Platform: Linux

License: GPL2

Note: This program is not affiliated in any way with Rigol. Rigol is doubtless trademarked and it, along with other trademarks, are the property of their respective owners.

Features:

  • Uses USB communications with Scope
  • Allows keyboard to be unlocked so you can use both the panel and the software
  • Allows easy reading of all measurements as well as logging of all measurements
  • Control of common scope functions
  • Saves waveforms in CSV format
  • Integrates with external plot software like gnuplot to qtiplot
  • Diagnostic mode to send raw commands to scope

Known Limitations

  • Does not manage the display, digital features, or some basic setup items (not planned)
  • Does not handle Video or ALT trigger (Video would be easy to add; ALT is a lot of screens)
  • Does not always set limits correctly for some controls (will fix)
  • Some cosmetic defects on layouts (will fix)
  • Tab order and other keyboard usability features not right (will fix)
  • No Icon (will fix)
  • Not all tool tip help is in place (will fix)
  • No help system (will fix)
  • Does not do XY, Delayed, or Roll mode
  • Does not correctly handle floating point if your locale uses "," as a separator (will fix)

Binary packages

In the packages directory is a 64-bit DEB and RPM. This is currently at version 0.1 which is older than what you would get by cloning off of github and building.

Notes

If you have older firmware, read below. You need permissions on your scope's device (read below). To avoid confusion: the PC connects to the BACK of the Rigol scope, not the port in the front.

Screen Shots

The interface consists of tabs. This one lets you connect to the device and exercise basic control:

Screenshot

Here's the vertical tab:

Screenshot

The Horizontal tab:

Screenshot

The trigger tab mutates depending on the type of trigger (EDGE, PULSE, and SLOPE currently supported)

Screenshot

You can read all measurements and also log them to CSV format in a variety of way on demand or on a timer

Screenshot

This tab lets you export the data buffers or plot them with an external tool, including Open Logic Sniffer or Sigrok.

Screenshot

Building

Use QtCreator and load the .pro file as a project. Select a kit for your configuration and build.

Might work on Windows, although you'd almost surely have to change the port selection and there might be a few other things that don't work. No idea. Use Linux!

Permissions

You need to have read/write permissions on the usbtmc file you are using for your scope. One easy way to do this is to install sigrok which has definitions for many common scopes including your Rigol. The setup there puts read write permission in the plugdev group, so you need to be a member of that group. If your distribution's package of Sigrok doesn't include the udev setup, you might want to read this: http://sigrok.org/wiki/Fx2lafw#Install_the_udev_rules_file.

If you prefer, you can try the following file (save as /etc/udev/rules.d/40-rigol.rules)

ACTION!="add|change", GOTO="rigol_rules_end"
SUBSYSTEM!="usb|usbmisc|usb_device", GOTO="rigol_rules_end"

# Rigol DS1000 series
ATTRS{idVendor}=="1ab1", ATTRS{idProduct}=="0588", MODE="664", GROUP="plugdev"

# Rigol DS2000 series
ATTRS{idVendor}=="1ab1", ATTRS{idProduct}=="04b0", MODE="664", GROUP="plugdev"

# Rigol DG4000 series
ATTRS{idVendor}=="1ab1", ATTRS{idProduct}=="0641", MODE="664", GROUP="plugdev"

LABEL="rigol_rules_end"

After you fix udev, you need to restart udev (or reboot the PC if you are lazy). You probably need a command like "sudo /etc/init.d/udev restart"

Another alternative (not suggested) is to run the program as root. Or, issue "sudo chmod 666 /dev/usbtmc0" (using whatever number your device is in place of 0, of course). You'd have to do this on every reboot or put it (without the sudo) in local.rc or some other autostart location.

A Note About Firmware Versions

I tried to make the program compatible with the old and new format of data. However, there is at least one report of it not working on an old (pre 4.0) version of the firmware (in particular, the export functions will fail). Please report this behavior and I will send you a test version. I will remove this part of the README if and when this is resolved.

More Repositories

1

bashrc

System to organize and synchronize bash startup files and other files in your home directory
Shell
77
star
2

qtl866

GUI driver for minipro software found at https://github.com/vdudouyt/minipro
C
65
star
3

mhs5200a

Shell script and awk program (and spreadsheet) to allow custom wave settings for MHS-5200A signal generator
Shell
50
star
4

axasm

Universal Cross Assembler
C++
37
star
5

clambda

Sort of Lambdas for gcc
C
33
star
6

gblend

Simple code to blend multiple G code files into one file for 3d printing by layer.
C
31
star
7

verifla

Fork of OpenVeriFla - FPGA debugging logic analyzer to use with your designs - examples (so far) for ice40/IceStorm
Verilog
31
star
8

icestickPWM

Simple USB to PWM Peripheral using Lattice iCEStick (Hackaday demo)
Verilog
22
star
9

icestick

Simple demo for Lattice iCEstick board as seen on Hackaday
Verilog
21
star
10

scopesnap

Simple shell script to capture screen shots from a Rigol DS1xx4Z scope (and possibly others)
Shell
21
star
11

1802UNO

An RCA COSMAC 1802 simulation for the Arduino mostly aimed at the KIM UNO hardware. Will work without it though.
C
19
star
12

SerialMux

Serial Multiplexer for Linux and Microcontrollers
Assembly
19
star
13

rigol-panel

Python
16
star
14

sshmount

Mount remote directory locally as logging in
Shell
16
star
15

perceptron

C++
14
star
16

circuitvr

LT Spice Files from Circuit VR on Hackaday
AGS Script
14
star
17

regx

Literate regular expressions for bash/grep
Shell
11
star
18

ice40flow

Workflow for icestorm Lattice ice40 FPGA tools
Shell
10
star
19

sshddns

Dynamic DNS using only ssh on client (bind on server)
Shell
9
star
20

cwbeacon

CW Beacon using GNURadio and AD Pluto SDR
C
9
star
21

bashelp

Context sensitive command help for Bash (sort of)
Shell
8
star
22

OpenSCAD-Flange-for-3D-Printing

Example of adding flanges to half parts to allow for gluing and alignment later
OpenSCAD
8
star
23

ESP8266Joy

Two axis RC controller using Blynk and ESP8266
Arduino
7
star
24

HackadayDisp

Display the last Hackaday Post Title on a Smart Display
Python
7
star
25

ExcelCircuit

Circuit design models in Excel
7
star
26

statecompress

Sending Compressed State with Regular Updates
C
6
star
27

DensePackDecimal

Need to fit 3 decimal digits in 10 bits with no multiplying or dividing? Here you go...
Verilog
6
star
28

WCH4SDriver

Linux driver for WCH multiport serial with Kernel 3.x.
C
5
star
29

pico-badge

Simple badge system with RPI Pico and an LCD
C
5
star
30

MbedQuadratureEncoder

Simple Interrupt Encoder class for MBed OS and STM32
Assembly
5
star
31

scbind

Shell script "compiler"
Groff
5
star
32

litasm

Literate Assembly Language Proof of Concept with RCA 1802 Example
4
star
33

awkparse

Use these awk functions to create a regular expression that picks apart a line into named fields.
Awk
4
star
34

pathedit

Quick hack to allow editing your path from a bash prompt
Shell
4
star
35

motd-hackaday

Shows Hackaday.com RSS feed in your message of the day (MOTD) for Ubuntu/Kubuntu and probably most other Linux
Shell
4
star
36

ExcelTuring

Turing Machine Simulation in Excel Spreadhseet
4
star
37

trappist

A Bash function for managing signal traps easily
Shell
4
star
38

tensorflowjsdemo

Very simple, very dumb tensor flow JS demo
HTML
3
star
39

MbedMediaVolume

Use Mbed and a Blackpill (STM32F411) to control PC volume over uSB.
Assembly
3
star
40

hadmod

Simple LKM in C for Hackaday
Batchfile
2
star
41

gocuda

Simple CUDA example for Hackaday
Cuda
2
star
42

DJISparkRTHFlowchart

Flowchart for DJI Spark RTH Logic
2
star
43

1802black

1802Uno Emulator Running on Blackpill (no front panel, but 32K or RAM and 32K of ROM)
Assembly
2
star
44

GNURadioDemo-HAD

GNU Radio Examples for Hack a Day
2
star
45

SonicLeap

A sonic motion controller based on an HC-SR04 (or similar) and an Arduino Leonardo
Arduino
2
star
46

colorssh

Simple script to change ssh sessions different colors
Shell
2
star
47

lwos

Light weight OS for Arduino and similar
HTML
2
star
48

linux-fu-mmap

MMap Examples for Linux-Fu at http://www.hackaday.com
C
2
star
49

cmdparse

C++ class to parse command lines
C++
1
star
50

diskcvt

Disk converter to convert Briel MicroAltair 8800 "disk" files to a format cmptools can read
C
1
star
51

Base40Packing

Base 40 Packing example for Hackaday
C
1
star
52

binaryscript

Examples of manipulating binary files with scripts using xxd and t2b
Shell
1
star
53

1802pc

Linux Emulation of RCA COSMAC 1802 with ELF/OS, Basic, Lisp, Forth, more...
C
1
star
54

simuide-demo

Simple Demo of the SimuIDE Arduino/PIC/Analog Simulator
C++
1
star
55

x11web

Run Web Pages as X11 Apps with Chrome-ish web browsers
1
star
56

shellcs

Critical Sections for Shell Script Examples for Hackaday Linux-Fu
Shell
1
star
57

bootcamp6-uartrx

Uart for FPGA Bootcamp #6
Verilog
1
star
58

balooctl

Control and monitor Baloo operations
C++
1
star
59

mbed-swo

Mbed class for writing debug output to SWO
Assembly
1
star
60

jupyter

Jupyter Notebook Example(s)
Jupyter Notebook
1
star
61

bootcamp5-uart

UART for FPGA Bootcamp #5
Verilog
1
star
62

hashsearch

Example hash search algorithm for Hackaday
C
1
star
63

blackpill-mbed-stdio

Assembly
1
star