Because the scope has to dedicate most of its screen real estate to displaying waveforms, a lot of information and settings must, by necessity, be restricted to small information areas or buried in menus.
Personally, I've always found that somewhat "sub-optimal". It often took several actions to dig something out, it was easy to miss that something wasn't quite set right, and there were features I simply didn't bother using because it wasn't worth the effort of going to battle with the interface to beat it into submission.
So I got to thinking: what if I could extend the scope interface onto a full 1920 x 1080 monitor, where I could not only see its current settings and state at a glance, but control it as well?
Then the idea expanded. What if I could also back up and restore preferred configurations, copy screenshots straight to the clipboard or save them to a file in one or two clicks, provide programmable setups and labels, expose commonly used controls directly, and generally make much more of the scope accessible without constantly diving through menus?
It's also evolved into rather more than a remote front panel. It continuously interrogates the scope so that the dashboard reflects its actual state, and can flag settings that differ from either my normal defaults or a state I've explicitly told it to regard as "normal". There are multiple configurable views and control styles, programmable setups, states and labels, quick access to measurements and cursors, reversible reset and undo operations, and quite a lot of functionality aimed simply at making repetitive bench work faster.
It can save, recall and transfer scope setups, make a verified backup of the scope's entire user-accessible file system and restore it later, and grab screenshots directly to the clipboard or a file. There are also different presentation modes so I can choose between a fairly traditional control layout, rotary controls, more compact layouts, or a more physical front-panel style arrangement depending on what I'm doing.
And thus began the trip down the rabbit hole.
Some 500+ iterations and around 40,000 lines of Python later, which is not a misprint, I think it's reached the point where it's worth introducing it to the world and getting some constructive feedback. From there I'll probably choose a handful of interested people to beta test it.
For now I'll start with some screenshots.
As with any project like this, there are competing design requirements. There is a LOT of functionality available, but simply putting everything on screen at once would defeat the purpose. I've therefore tried to make both what is displayed and how it is displayed highly configurable.
There is also a master tooltip control, so the interface can explain itself when required without constantly getting in the way. The tooltip system has become quite comprehensive because, with this much functionality, I wanted someone to be able to explore the interface without having to continually refer to a manual.
The dashboard communicates with the scope primarily using Standard Commands for Programmable Instruments (SCPI) over the network, with Server Message Block (SMB) file access for things such as setup files, screenshots, backup and restore.
If people find the idea useful, the same general concept could obviously be applied to other oscilloscopes and other pieces of test equipment, whether by me or someone else.
Interested to hear your thoughts. Happy to answer questions.