Upgrade Notes
- Update your boxes. The Rigol MSO5000 support, the DFU error message and the
lager installchange run on the box. Runlager update --box <box-name>after you upgrade the CLI. The first update builds the oscilloscope daemon on every box, so it takes longer than usual. - A Rigol MSO5000 names its channels A to D. Before, the trigger source read back as
CHAN1. Now it reads back asA, as on a PicoScope. Change any script that compares the trigger source with aCHANname. - A command that a Rigol MSO5000 refuses is now an error. Before, the scope put the refusal in its error queue, and the command reported success. A script that sent a refused command and passed before now stops with the scope’s error.
Features
- A Rigol MSO5000 has the same live view and controls as a PicoScope. The web scope page,
lager scope NET stream, status, acquisition, holdoff, display, FFT and cursors all work on a Rigol net. The live view comes from the scope’s HDMI output through a USB HDMI capture card.- Pair the scope with its card once with
lager nets set-capture. - Turn on the scope’s HDMI output under Utility > IO > HDMI. A power cycle can turn it off again. Every command still works without it, and the live view returns when the output is back on and acquisition starts again.
- A scope with no card, or with no picture on its HDMI output, can use its own screenshot over
USB instead. Pair it with
lager nets set-capture <net> --screen. This live view runs at a few frames a second. stream startandstream configtake channels C and D as well as A and B.
- Pair the scope with its card once with
- A Rigol scope net in a Python script answers the same calls as a PicoScope net.
measurement.all()returns all of the scope’s own measurements in one call.capture()returns the scope’s exact record.stream_start(),stream_frames()andstream_capture()need a live view fromlager nets set-capture, and they say so when there is none. lager uart -i --no-echosupports devices that do not echo commands. Interactive mode then shows every line that it receives. The default,--echo, still hides the device’s echo of each command. See thelager uartreference.
Bug Fixes
- A failed DFU run did not report why it failed. The error from
POST /usb/dfuquoted only the last 3 lines of stderr. It quoted stdout only when stderr was empty. The DFU suffix warnings fromdfu-utilhid the device status lines that a raw download writes to stdout. The error now quotes the end of both streams, each with a label and its own size limit. lager uart -ihid the reply of a device that does not echo commands. After each command, it dropped the first line that it received as the device’s echo. A device that answered without an echo showed a blank line instead of its reply. The CLI now drops that line only when it is the command itself.- Rigol MSO5000 commands that the scope refused reported success. This hid several faults,
which are now fixed:
lager logic <net> enableanddisablesent a form of the command that the firmware refuses.- A measurement on a logic net did not show the digital channel first. The scope measures a digital channel only while it is on the screen.
- The trigger mode, coupling and edge slope from Python went to the scope in a form that it refuses.
- Cursors used the commands of older Rigol scopes. They now use the MSO5000 commands. An x position counts from the center of the 1000-pixel grid, not from pixel 240.
- Viewer links on an access-gated Lager Box claimed a lifetime that they do not have.
lager webcam start,start-allandurl, andlager scope NET stream startandstream web, said that the link “stays valid for about N minutes”. N was the time left on the cached sign-in token. The token must be valid only when you open the link.- After you open it, the gateway sets how long the viewer lasts. A current gateway allows up to 24 hours.
- The note now tells how long you can still open the link. It also tells what to run if the link expires or the viewer asks you to sign in again.
- The CLI renews the sign-in before it prints a link when less than half of the token’s lifetime is left. You can then open the link for about 15 minutes.
- The link is on a line of its own, with the note under it and the stop command last.
stream startnow prints the stop command too.
lager installof a branch or commit took the box down for the whole build. The box stopped the running container before it built the new image. A cold build takes about 15 minutes. The box now builds the image first, so it is down for seconds. A failed build leaves the previous container running.- A scope command that a PicoScope refused while it opened showed failure prefixes. A message
such as “opening the oscilloscope (25 s so far)” appeared as
Error: Hardware error: Function call failed: ..., although the open was still in progress. The CLI now shows the reason on its own. The same applies to “no oscilloscope available” and to a request that the box dropped when the unit was unplugged. Other hardware errors keep their prefix.
Improvements
- A Rigol MSO5000 runs through the oscilloscope daemon. The daemon holds the scope’s only
connection.
lager scope,lager logic, Python scripts and the web page no longer compete for its USB interface. The scope itself still takes the measurements. - Every Lager Box builds the oscilloscope daemon, with or without the PicoTech SDK headers. Without the headers, the daemon drives Rigol scopes only.
- The bench workflows release their own box lock again. The cleanup step asked
lager hellowho held the lock.hellodoes not report a lock under the caller’s own CI identity, so the step left the lock in place. It now asks as a separate holder, so it finds the lock and releases it.

