aioscilloscope / Requests / neverendingstudent

Automatic protocol detection: which buses are in use and their settings, watched as they change, and found in saved waveforms

Suggested by neverendingstudent on the EEVblog forum. Thank you!

being built · MHO900, DHO800/900

What's new

Identify
Watch
Auto set-up
Saved data

How it works

Identify

Tap Identify on the history strip: the card names each bus on the channels and logic lines with its settings -- UART with the baud rate it measured and its frame, CAN, LIN, 1-Wire, FlexRay, 1553B, I2C, SPI and I2S -- and Decode sets a decoder up for it with one tap. A bus a decoder already decodes is not offered again: the tap goes to the next bus, on a free decoder.

Watch

The card's Watch chip keeps Identify running on the acquisitions as they come, at most twice a second and never more than a twentieth of the screen's time. When a bus appears that no decoder is set up for, or a line's protocol or baud rate changes, a toast says so and the card offers the set-up. A bus must read the same way in three captures before it is said, so a noisy line does not flap, and a capture where the bus is quiet does not count against it.

Auto set-up

With Auto set-up on as well, the watch sets the decoder up itself, on a free decoder, and follows a bus whose settings change on the decoder it set up. A decoder you set up is never changed or turned off. Over SCPI: :NOVAos:IDENtify:WATCh ON|OFF, :NOVAos:IDENtify:WATCh:AUTO ON|OFF, and :NOVAos:IDENtify:WATCh:FOUNd? lists what the watch found and which decoder decodes each.

Saved data

On the scope, a waveform recalled from a saved .bin, .csv, .wfm or .ref as a reference is identified with the live channels, as R1 to R10 (and :NOVAos:IDENtify? REF1 over SCPI); a capture from the history strip is identified as the live trace is. On a PC, dho identify --in FILE names the protocols in a saved or exported waveform with their settings and the decoder settings to use, and --decode prints each bus decoded with them.

Where it stands

  1. DoneBuilt

    Watch mode and its automatic set-up on the screen and over SCPI, Identify on references, and dho identify for saved files on a PC, all on the same identification code.

  2. DoneChecked on test signals

    A UART appearing, a second bus appearing, a baud rate change, a noisy line and a line alternating between two readings (neither said), the automatic set-up leaving the user's decoder alone, and saved .bin and .csv files with a UART and an I2C bus identified and decoded on a PC.

  3. NextOn the scopes

    It reaches the scopes with the next release.

What we need from you

What neverendingstudent asked for

An auto protocol detect, like the Auto button: look at the signals, say which protocols are in use with their settings (baud rate and the rest), show and decode them; and a switch, off by default, that keeps looking and says when a new or different protocol turns up (neverendingstudent, msg6378429); The same detection and decoding on waveforms saved earlier, on the scope or exported to a PC or network storage (neverendingstudent, msg6378429).

a default-off toggle to keep the auto function on and check on an ongoing basis, not just to keep decoding what is coming in, but to check if other / different protocols get used
prior stored waveform data offloaded to network storage or exported be accessed by such a feature to do protocol analysis / identification / translation from stored data

Try it and tell us what to change: reply on NovaOS's thread on the EEVblog forum.