-
Notifications
You must be signed in to change notification settings - Fork 94
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
could this project interface with pulseview in any way? #29
Comments
I'm sorry, I'm not familiar with PulseView. As far as I know it is open-source signal analysis software, but I've never looked into its code. I'd be glad if someone is willing to do so and find new ways of using it. |
Yes, it's possible. You would need to implement a SCPI interface over TCP, and a libsigrok driver for it. |
Well, I can participate from my side to write a TCP SCPI interface. But, honestly, I don't think I have time to dig into SCPI and PulseView. So, if you are willing to do this job, I can do my part. |
Yes, I'm happy to handle the Pulseview side. |
So, how shall we start? Will you suggest what the communication protocol should look like? |
The communication is essentially a Telnet connection on port 5025 with human readable commands and responses. Each command ends with an "enter" or "return". A command with a question mark is a request.
|
Telnet is not a problem. Could you also write an example of commands vit values? And what should a reply look like? Maybe something simple for the start? |
... "with" .. |
I've been loosely basing it off the SCPI implementation on my Siglent oscope, but I added some things they seem to have forgotten and left out a bunch of things that don't apply. Command: Command: Command Command: Command: Command: Command: |
Thank you. Since there are all 3 servers involved I suggest we start with a complete package ( https://github.com/BojanJurca/Multitasking-Esp32-HTTP-FTP-Telnet-servers-for-Arduino ) and only deal with Pulseview specialities. I'm not very familiar with Github. Could you create a fork or something? We need some space for the development files ... |
Ok. I made a scpi branch. https://github.com/BojanJurca/Esp32_oscilloscope/tree/scpi |
Great. Please give me a few days so I can compose the latest versions of
the files into something that is working within existing functionalities
and add the Telnet server as well.
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
Virus-free.www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
V V tor., 30. apr. 2024 ob 16:39 je oseba Marshal Horn <
***@***.***> napisala:
… Sure. I'll make a branch.
—
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKF3FLONJ2G323LKQULEH4DY76UIRAVCNFSM6AAAAABGLCF2XOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBVGUZDONZYGQ>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
I have uploaded the latest version of files and added a Telnet server running on port 5025 as well. I also implemented a simulation of SCPI command interpreter. Could you, please, check if this is how it is meant to be before we continue? I would also need information when to start sampling and how to send samples back to the client? Thank you. B. |
Thanks for the quick work! I will try it out tonight. |
I can already see some problems. PulseView probably expects samples to be coming in at a fixed rate which may be a problem for ESP32. If I2S interface is used everything would be OK, but I2S can only sampe one channel at a time. When two channel sampling is used there may be interruptions during samples, for the processor has also to do some other things, like WiFi, ... especially with the boards with only one core. I suppose this would cause some difficulties for Pulseview. So, a quality signal can be obtained only through single channel I2S sampling or when sampling rate is relatively low. |
I believe you are correct that Pulseview expects a constant sample interval. I haven't dug into that part of the code yet. |
It is. With I2C. Single channel only, if the board supports it.
It is not so bad. But not perfect either.
V sre., 1. maj 2024, 23:05 je oseba Marshal Horn ***@***.***>
napisala:
… I believe you are correct that Pulseview expects a constant sample
interval. I haven't dug into that part of the code yet.
On the other hand, ESP32-IDF does support DMA transfer from the ADC. I am
not sure if this is possible within the Arduino framework.
https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/peripherals/adc_continuous.html
—
Reply to this email directly, view it on GitHub
<#29 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKF3FLNX2Z3J77QRVVB6WYDZAFKJZAVCNFSM6AAAAABGLCF2XOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOBZGEZTSMBQHE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
I have logged on to the telnet server, but could not get it to respond to any commands, even |
It was close only to the (simulation of) commands you provided. Now I opened it for other implemented Telnet commands as well. They are implemented in telnetCommandHandlerCallback function. Are you getting any reply or nothing at all? This is how it should look like:
|
The issue is on my end. It works fine with Putty in Windows, but not with the inetutils telnet client in Linux. I will look for a different client. Speaking of trigger settings, it looks like there's only two settings: rising threshold and falling threshold. This means the command can be as simple as |
Oh. There's Putty for Linux too. That's an easy solution. |
I'm going to make a dummy SCPI server in Python to test against Pulseview, which should both clarify the SCPI command behavior for Esp32_oscilloscope and help me develop the driver within libsigrok. I will link it here when it's ready. |
https://github.com/kamocat/fake_scpi Now to dig into Pulseview... |
Thank you. I'll try to do something tomorrow. |
No hurry. I'm still trying to compile a new version of Pulseview. |
Hello, I just wanted to let you know that I', still working on this. Besides being busy the last few days it turned out that the PulseView interface is more complicated than I anticipated. It may take a little longer to develop. |
I have uploaded the new code that is roughly working. There is still a lot to do yet but perhaps you could test if the protocol is OK and perhaps correct pulseViewCommandHandlerCallback function? |
Nice work! It looks mostly complete. I see you simplified the trigger options to be only rising OR falling. This was probably a good choice. |
I'm having trouble with the trigger settings command.
I don't see that response in the Arduino code
The other features seem to work, although my data is all zeros at the moment. I guess I should actually hook this up to a function generator instead of the LED I've been using as an analog source. |
Hi, You are right, I wanted TRSE FALLING 200 to work.
As for the builtin LED pin, there are many different ESP32 boards and you can probably not analog-read builtin LED pin with all of them. If you just leave some ADC pin unconnected you should at least read some noise. You can also generate a PWM signal on one pin and connect it with a wire to some ADC pin:
Oscilloscope can perform both digital-read (0, 1) and analog-read (0 - 4095). I assumed that Pulse View would use only analog values, but I can easily change the code so that digital-reads would work as well. Just tell me what the command would look like in this case. |
Thanks for the quick reply. Adding |
Hello, I have just pushed the latest changes to your branch. From the content part there is nothing new. While working on PulseVIew integration Arduino ported ESP32 boards to IDF 5.x which caused me quite some trouble. Besides that, Linux Telnet command should now also work as expected. |
Is there something I can test? If so, I would love some guidance on how to try your code. |
Hi Victor, |
Hello both. I must apologize at the beginning for not being very active on this topic lately. I've been busy and didn't find much time for my hobby project. I promise I will do my best. If you are already aware of some problems that I can fix please, let me know. |
No description provided.
The text was updated successfully, but these errors were encountered: