Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Live integration with PulseView/sigrok for Husky's streaming capture mode (and logic analyzer mode maybe) #425

Open
hiviah opened this issue Nov 20, 2022 · 1 comment

Comments

@hiviah
Copy link
Contributor

hiviah commented Nov 20, 2022

PulseView is GUI for sigrok which makes especially experimenting with live captures/traces and triggers comfortable, allowing to stack mathematical expressions and protocol decoders (both in python).

It would be really nice to have integration of Husky into sigrok/PulseView for live capture.

I quite understand that given the sophistication of Husky's triggers+parameters and other settings it'd be non-trivial work, but it could just be with simplest triggers at beginning (maybe trick around more complex parts could be additional entry of python code for PulseView scope setup?)

Three examples of how I used it to stack analog and digital functions/decoders, or multi-traces (Proxmark 3, Hantek DSO-2090; general math functions are only in Nightly builds at the moment) :

PulseView_T55xx_stacked_decoder_on_analog_input
(T55xx via Proxmark3, convert analog signal via schmidt trigger and apply stacked decoder)

Hantek_Pulseview_01
(example with 96 traces recorded)

Hantek_Pulseview_03_trying_math_now_working
(stacking arbitrary math expressions in nightly builds)

PulseView is in my experience much more pleasant for live experimenting than any Jupyter client (includes default web one, Qt one, even paid ones like PyCharm Pro).

@colinoflynn
Copy link
Contributor

Haven't looked at live sigrok before - we talked about using it for decoding at least at one point.

I think the main complexity will be around our current interface - basically it's most likely you need the existing USB interface to do configuration etc. This means then a small daemon or something needs to funnel the 'raw' capture data out to sigrok most likely. We did experiment a bit with this, but it quickly got complex trying to interact from both the Python "configuration" script & pushing data out.

However something as a first test that might work is a simple mode where from within Python/Jupyter you simply enter 'sigrok mode', that basically spawns the daemon which is funneling data out to a e.g. UDP port or something similar that pulseview listens on.

The current 'streaming mode' functionality often requires a capture thread anyway, so it's not totally alien basically if we tried something like that first.

Not sure on timeline, but will leave this open so we can discuss updates (or if someone is gung-ho and sees the topic...). Thanks for starting the idea!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants