Sign in to follow this  
gmarull

Example custom application using OpenScope : thanks Digilent!

Recommended Posts

Hi,

I'd like to share an application we've been working on for the last few months using OpenScope. We used 6 OpenScope together for monitoring signals of power equipment (real-time and SD data-logs). We have developed everything in Python, from the protocol parser to the multiplatform Desktop app (PyQt). While we have faced a few issues and limitations with OpenScope, we have been able to achieve everything we wanted. So we'd like to thank Digilent for their products and encourage to continue promoting such a great community! 🙂

desktop-app.thumb.jpeg.898a26ed66ad6ee1c91399df27f105ce.jpeg

Share this post


Link to post
Share on other sites

Thank you for sharing this @gmarull!

It looks very cool. And since our OpenScope MZ and WaveForms Live team will likely want to know, do you have a project site that goes into detail for what all is done behind the scenes or is this just a project that your team did?

Thanks,

JColvin

Share this post


Link to post
Share on other sites

Hi @JColvin,

I'll write a detailed article on our website during next month (with more screenshots/video). Below some more details:

- OpenScopes are connected to a BeagleBone via a powered hub. On the same board there's a service that connects to the 3 scopes and exposes them via a REST API. The service basically forwards commands (Digilent Instrumentation Protocol) to the scope via USB and sends back the responses, making sure valid responses are sent/received before forwarding. The REST API also offers some control commands (e.g. check status). The idea is similar to the "Digilent Agent", but it it is multidevice and it is written all in Python. aiohttp (asyncio) is used for the server code. The firmware has been slightly adapted so that trigger from device 1 is sent to LA of device 2 and 3, the trigger from device 2 to 1 and 3, etc. This allows to configure any device analog channel as a trigger source for all devices.

- The desktop application interacts with the REST API (also via aiohttp), but offering a unified experience so that the user feels there's a single device with 6 channels. It is written in Python, using PyQt/PySide for the GUI part. It offers two functionalities, the "scope view" (screenshot above) and the "recorder view" (we're still polishing the last bits of it). It also has a dark/light theme and it's multilanguage.

Best regards,

Gerard

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this