RIGOL MSO5000 Live Monitor (Hacked FW Compatible)

  • 2.5K Views
  • Last Post 1 weeks ago
baerndorfer posted this 12 July 2025

Hi all,

because i was not very satisfied with Web-View from Rigol for my MSO5000 i build my own one.

This tool provides a live view and SCPI-based data extraction from a **Rigol MSO5000** oscilloscope with **hacked firmware** via VNC and VISA (SCPI) interfaces.

The script displays:
- Live screenshots from the oscilloscope (via VNC)
- Channel information including coupling, bandwidth, scale, offset, and probe settings
- Trigger and timebase settings
- Raw waveform statistics (Vpp, Vavg, Vrms) for up to 4 channels
- A scrollable debug log for diagnostics

## Requirements

This script is written in Python 3 and depends on the following libraries:

| Library    | Purpose                            |
|------------|------------------------------------|
| `tkinter`  | GUI interface                      |
| `Pillow`   | Image processing for screenshots   |
| `numpy`    | Numerical processing of waveforms  |
| `pyvisa`   | SCPI communication over TCP/IP     |
| `vncdo`    | VNC client to capture screen image |

### Install dependencies

Make sure you have Python 3 installed, then:

```bash
sudo apt install python3-tk python3-pip
pip3 install pillow numpy pyvisa
sudo apt install vncdo
```

> Note: On Debian/Ubuntu systems, `vncdo` is often available as a package. If not, install it via `pip install vncdo`.

##How to Use

```bash
python3 rigol_vnc_liveview4.py
```

You will be prompted in the terminal to enter the IP address of your RIGOL MSO5000.

Make sure:
- The oscilloscope is on the same network.
- VNC is enabled on the oscilloscope.
- The oscilloscope responds to SCPI commands over TCP/IP.

##Hacked Firmware Notice

This script is optimized to **avoid crashing or hanging** when used with unofficial / hacked firmware:
- Timeouts are reduced
- Some known problematic SCPI queries are skipped or blacklisted after failure

##Screenshot Path

By default, screenshots are saved temporarily at:
```
/tmp/oszi_screenshot.png
```

##Customization

You can adjust these in the script:
- `INTERVALL_BILD`: How often to update the screenshot (seconds)
- `INTERVALL_SCPI`: How often to fetch SCPI data (seconds)
- `WAV_POINTS`: Number of waveform points to request per channel

##License

This project is for **personal use only**. Use at your own risk. Not affiliated with Rigol Technologies.

Attached Files

YoElMiCrO posted this 15 July 2025

Hello everyone.

I will definitely buy that Rigol oscilloscope as soon as I can.

That way I can update my two and stop using MathLab along with VI to perform all the complex calculations that this Rigol is capable of doing.

Thanks for sharing it baerndorfer.

YoElMiCrO.

baerndorfer posted this 15 July 2025

finally i made MATH-channels accessible within Live Viewer. 

the new version with clean installation instructions are on github

Fighter posted this 15 July 2025

Baerndorfer, you're hacking the heck of that scope, you better contact Rigol and tell them "See guys, that's how you should do it !". ๐Ÿ˜„

Fighter

"If you want to find the secrets of the universe, think in terms of energy, frequency and vibration."
Nikola Tesla
baerndorfer posted this 15 July 2025

to make things easier you can pull a pre-build image from docker hub

docker pull aridev1/mso5000_liveview:v0.9.4

then run:

docker run -it --rm \
  -e DISPLAY=$DISPLAY \
  -v /tmp/.X11-unix:/tmp/.X11-unix \
  -v $HOME/oszi_csv:/app/oszi_csv \
  --network host \
  aridev1/mso5000_liveview:v0.9.4

that's it.

regards

B

 

AlteredUnity posted this 15 July 2025

This is perfect, I will try it tonight if I have time, though I believe I will have to change 3-4 files or functions in files to connect through usb. Are you able to add that option?

baerndorfer posted this 17 July 2025

found out, that connecting via usb cannot transfer the image, but can transfer data. i will see how this can fit in the ongoing development. 

baerndorfer posted this 17 July 2025

because things get complicated i made a SCPI toolkit for Rigol MSO5000 series. goal is to find all possible SCPI commands. this tool works via LAN and USB.

when i found new interesting commands i will integrate them in the Viewer.

Actually i published v0.9.3 which got a lots of upgrades in background.

Doom -> https://github.com/ariDev1/MSO5000_scpi_doom

Viewer -> https://github.com/ariDev1/MSO5000_liveview

regards

B

baerndorfer posted this 19 July 2025

## v0.9.4 (2025-07-19)

- ๐Ÿงช **New SCPI Tab**
  - Added a dedicated SCPI tab with manual command input
  - Response output area with scrollback and timestamped logs
  - Optional right-side command list (`scpi_command_list.txt`) lets users select known SCPI commands
  - Double-click or “โžก Insert into Input” button to load from list
  - Handles I/O errors safely and logs all SCPI activity

- ๐Ÿงฑ **UI Improvements**
  - Fixed vertical overflow in SCPI tab — output box no longer hides buttons
  - Sidebar list resizes correctly with window

- ๐Ÿž **Debug Log Integration**
  - All SCPI commands and errors now appear in the Debug tab
  - Uses `log_debug()` for traceability

- ๐Ÿงผ Minor cleanup:
  - Removed layout duplication from button handlers
  - Improved resilience against missing files (e.g., `scpi_command_list.txt`)

with this new version you can throw scpi commands to the scope and see if it respond. this is great for testing...

Jagau posted this 20 July 2025

Hi Bearndorfer

Lots of work you did here.
I'll have to get on with it.
Thank you
Jagau

baerndorfer posted this 20 July 2025

the new version will have a Power Analysis. Goal is to perform better than the build-in Rigol stuff actually i am pretty impressed with the result.

the script grab RAW data and compute it accordingly. we can see where the 'load' is placed inside the 4 quadrant plot which is important. 
when it runs solid and data can be exported in csv for further processing i will release this new version.

if you have ideas please tell me

regards

B

Close