OOS: an open operating system for the Rigol DHO800/DHO900
OOS replaces the software of a Rigol Scope (right now Supported DHO800/DHO900) with a Linux 6.12 kernel and a new scope application written in Rust. It runs from the scope's own SD card, next to the stock system, and you can switch back at any time. Source, releases and guides: github.com/deckerjulian/oos (GPL).
All pictures are screenshots of a DHO924S running OOS.
Experimental software. So far OOS has run on one DHO924S only, and some functions have never run on real hardware. Measurements made with OOS are not calibrated to any standard. You use it at your own risk; please read the disclaimer before you install it.
What OOS never touches: the FPGA flash, the factory calibration in
/rigol/data, and the
uboot,
trustand
parameterpartitions. Its own self-calibration goes into its own files.
What is in it
Acquisition and trigger
- Normal, peak detect, average, high resolution; memory depth up to 125 M points; 1 ns/div up to roll and scan mode
- Hardware trigger: edge, pulse, slope, video, pattern, duration, timeout, runt, window, delay, setup/hold, Nth edge
- Protocol trigger on decoded bus events, zone trigger with boxes or polygons
Measurement and maths
- 35 automatic measurements with statistics, delay and phase, cursors, DVM and counter
- A second pane under the plot: spectrum with peak list, results table, decoder events, or trends of two measurements
- 8 math channels with free formulas (sqrt(CH1^2+CH2^2)), filters, FFT; reference waveforms, mask test, CSV data logger
Protocol decoders (25)
UART, I2C, SPI, Quad-SPI, I3C, 1-Wire, SWD, JTAG, CAN, CAN-FD, LIN, FlexRay, SENT, ARINC 429, MIL-STD-1553, I2S, S/PDIF, DMX512, Modbus, USB LS/FS, USB PD, parallel and more; four at once, with an event table.
Analysers
- Spectrum analyser with harmonics, THD, SNR, SFDR, waterfall
- Eye diagram and jitter (TJ/RJ/DJ, DCD, DDJ, PJ), power analysis, Bode plot with the built-in or an external generator
- Bandwidth test from a fast edge. OOS does not limit the bandwidth to the rated value
Logic analyser (PLA2216, DHO900), generator (S models: sine, square, ramp, pulse, noise, DC, arbitrary, AM/FM/PM), HDMI as mirror or second workspace.
Remote control over Ethernet or a WLAN stick: SCPI on port 5555 (Rigol-style subset,
:WAV:MODE RAWreads every sample), VXI-11, a web remote with live screen and touch on port 8080, LXI identification, MCP for AI assistants, and telnet (a root shell without password: keep the scope on a network you trust).
System: its own cold boot of the hardware (stock never has to run first), self-calibration, signed updates with trial start and automatic rollback, experimental overclocking of the sample clock.
Models
OOS reads the model from the unit and adapts channels, logic analyser, generator and EXT trigger to it.
| Model | Channels | LA | Generator | Run OOS? |
| DHO802 / DHO812 | 2 | - | - | not yet |
| DHO804 / DHO814 / DHO824 | 4 | - | - | a DHO804 runs it (user report) |
| DHO914 / DHO924 (also EDU) | 4 | yes | - | not yet |
| DHO914S | 4 | yes | yes | not yet |
| DHO924S | 4 | yes | yes | yes, the development unit |
DHO1000, HDO and MHO are different boards and not supported.
Installing
Everything is in the latest release; you do not have to build anything.
- From a USB stick, scope closed: DHO800_DHO900_OOS_Install.GEL through Storage > Upgrade of the stock system. Do the dry run first. So far only accepted on the DHO924S.
- On a second SD card, scope opened: back up the original card, clone it, install oos-<version>.img. The original card stays in a drawer. A second card a few MB smaller than the original works too (tools/sdcard-clone.sh fit).
- Updates of a running OOS: the .oosupd file through http://<scope>:8080/update.
Step by step: wiki: Installation. Going back to stock is one power cycle, or putting the original card back: wiki: Updates and Going Back.
Building it yourself works on macOS (Apple silicon) and on Linux, arm64 and x86-64; on a normal PC the kernel is cross-compiled in Docker: wiki: Building. You can also run the GUI on your computer without a scope, with simulated signals.
What would help
- Reports from other models than the DHO924S: what works, what does not, the start-up screen and oos-fpgad model
- Real signals for the protocol decoders, most were only tested with simulated ones
- Bugs and ideas as GitHub issues, or here in this thread
Thanks
OOS builds on the work of others. In particular: NovaOS by Olympian LED, Inc., for publishing the GPL source of its Linux port to this hardware, which showed what a kernel needs here and where OOS started (the OOS kernel patches, device tree and configuration are written anew); Norbert Kiszka for the modified firmware and the findings he shared in public; Linux and Rockchip, the Xilinx XDMA driver, BusyBox, e2fsprogs, wpa_supplicant, Rust. The full list is in the README.
Links
- Repository: github.com/deckerjulian/oos
- Releases: latest release
- Wiki: guides
- How the hardware works: hardware overview