Custom IIO data source and Scopy

Just getting started w/Scopy and could use some pointers for researching a solution to by problem.  I have a custom AD7177 circuit that I would like to run through Scopy in oscilloscope mode.  It needs to be remote, so using the remote networked input model seems like the obvious way to go.  I can build whatever I need on the remote end to get a TCP connection  for data exchange - probably using an embedded linux environment.  As a start, two questions come to mind....once I get going, I'm sure I will have others....but getting answers to these will greatly help.

First, I'm guessing the cleanest way to start will be to create an instance of the IIO daemon (IIOD) that is customized to interface to my hardware.  Although I've seen descriptions of IIOD - and libiio - I haven't yet located examples of an IIOD instance I can modify for my purpose.  Having a couple of examples will be a great help in understanding and configuring the context I need to set up for publishing my data stream.......any pointers would be appreciated.

Second, what does the scopy oscilloscope input stream look like?  For each A/D channel I collect, I have a value and a timestamp.  So, my input is a stream of timestamped values.  I can reformat the timestamp field as needed; but can scopy use that info to display a correct waveform?  Timestamps are reasonably regular, but the sample rate can change during a measurement.  If the scopy input stream assumes the input is structured as a single value that is time-sampled at a rate known to it, then, sooner or later, changes in my configuration will clearly confuse it. Given that I know what my input time structure looks like, I can probably mock up a stream that will make sense in all cases.  But, I have not found a description of what the data stream into scopy (in oscilloscope mode) consists of......again a pointer to the project code or a few words of description would be appreciated.



  • 0
    •  Analog Employees 
    on Jul 20, 2020 5:43 PM 4 months ago

    Scopy is not currently flexible enough to support generic IIO drivers/devices. It's being modularized to do this but it is not there yet. We cannot provide any support for adding other devices at the moment.

    I would recommend using IIO-Scope, which does have spectrum and time domain plots. If you have an IIO driver it will simply work out of the box. This does not require modifying libiio or its daemon iiod. You just need to write an IIO driver.