Author Topic: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG  (Read 6242 times)

0 Members and 1 Guest are viewing this topic.

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
At a certain point after getting the SDG1204X-E oscilloscope I started to wonder if it might be possible to use the Bode plot function with a non-Siglent waveform generator. After some hours of researching and reverse engineering I wrote this Python program. It is a small server which emulates Siglent arbitrary waveform generator connected to LAN.

While drawing a Bode plot, the oscilloscope sends the commands to PC instead of the AWG and my program is what makes the oscilloscope think that it communicates with a genuine Siglent signal generator. The program extracts the commands sent to the generator, parses them and translates to the commands, which can be understood by the connected to the PC non-Siglent generator.

The program is written in Python. I tested it only under Linux. Later I'll test it under Windows too.

The source code and the explanations about running it are located here:

https://github.com/4x1md/sds1004x_bode

Here is a video which shows how the program works:



You are welcome to discuss the program here.
« Last Edit: November 25, 2018, 05:44:21 pm by 4x1md »
 

Offline bluejedi

  • Contributor
  • Posts: 34
  • Country: nl
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #1 on: July 29, 2018, 03:52:26 pm »
At a certain point after getting the SDG1204X-E oscilloscope I started to wonder if it might be possible to use the Bode plot function with a non-Siglent waveform generator. After some hours of researching and reverse engineering I wrote this Python program. It is a small server which emulates Siglent arbitrary waveform generator connected to LAN.

While drawing a Bode plot, the oscilloscope sends the commands to PC instead of the AWG and my program is what makes the oscilloscope think that it communicates with a genuine Siglent signal generator. The program extracts the commands sent to the generator, parses them and translates to the commands, which can be understood by the connected to the PC non-Siglent generator.

Do you have any plans to add support for the MHS-5200A?
https://www.eevblog.com/forum/testgear/mhs-5200a-serial-protocol-reverse-engineered/

Except for the UI and max. frequency the MHS-5200A looks functionally similar to the JDS6600 (but I'm unaware if their interface command language / format is similar).
« Last Edit: July 29, 2018, 04:03:08 pm by bluejedi »
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #2 on: July 29, 2018, 07:18:24 pm »
Currently I support only the devices I have. I'll add one more model which is very similar to BK4075.

It would be nice to add more generators but currently I have no idea how to do it without having the specific model. Maybe I'll have to work together with somebody who has it and can test my code.

Offline xenganier

  • Newbie
  • Posts: 1
  • Country: us
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #3 on: August 07, 2018, 09:56:57 pm »
Thanks for doing this.  I have it working with an RPi3 running Dietpi and it works well except for a few glitches.  Especially on medium and high resolution modes the JDS6600 goes to zero frequency once in awhile, maybe three times on a 20-20k sweep.   In your video near the end on high res yours does it too.  I tried raising Sleeptime in steps up to 100ms but it didn't seem to make a difference.  Any idea what might be going on? 
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #4 on: August 11, 2018, 09:20:47 pm »
Thanks for doing this.  I have it working with an RPi3 running Dietpi and it works well except for a few glitches.  Especially on medium and high resolution modes the JDS6600 goes to zero frequency once in awhile, maybe three times on a 20-20k sweep.   In your video near the end on high res yours does it too.  I tried raising Sleeptime in steps up to 100ms but it didn't seem to make a difference.  Any idea what might be going on?
No. I'll try to understand when I have free time.

Offline ltwin8

  • Newbie
  • Posts: 2
  • Country: de
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #5 on: November 05, 2018, 07:03:36 pm »
Would be cool to just add a RPi into the JDS6600 Case and use LAN of it, but without display etc. is that possible? and yes how?

I have a RPi B, would it be enough?

thanks for the answers
 

Offline Dundarave

  • Regular Contributor
  • *
  • Posts: 106
  • Country: ca
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #6 on: November 21, 2018, 03:08:12 am »
Excellent work making the non-Siglent AWGs work with the SDS1004X-E!  :clap:  It's been fun to play with: I loaded the script up on a Raspberry PI and it worked brilliantly with the scope and my AWG.

Following your JDS6600.py driver file as a template, I've managed to modify it to support the FeelTech FY6600 AWG using a copy of the FY6600 comm protocol that I found somewhere on the net.  It works pretty well, but I had to crank the inter-command Sleeptime up to 500ms in order to reliably pass your test script:  It doesn't seem to affect anything with the actual Bode plotting activity, as the commands from the scope come relatively slowly.

I've tested it as much as I could, and I'd now like to make the driver file available to all: Can I email it to you for inclusion in your Git repository? Or is there a better way to make it available?  Note - Jan. 27/19: Added fy6600.py & the FY6600 comm protocol here per a reader request.

Cheers -
« Last Edit: January 28, 2019, 05:36:08 am by Dundarave »
 

Online tautech

  • Super Contributor
  • ***
  • Posts: 16211
  • Country: nz
  • Taupaki Technologies Ltd. NZ Siglent Distributor
    • Taupaki Technologies Ltd.
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #7 on: November 21, 2018, 04:47:58 am »
Excellent work making the non-Siglent AWGs work with the SDS1004X-E!  :clap:  It's been fun to play with: I loaded the script up on a Raspberry PI and it worked brilliantly with the scope and my AWG.

Following your JDS6600.py driver file as a template, I've managed to modify it to support the FeelTech FY6600 AWG using a copy of the FY6600 comm protocol that I found somewhere on the net.  It works pretty well, but I had to crank the inter-command Sleeptime up to 500ms in order to reliably pass your test script:  It doesn't seem to affect anything with the actual Bode plotting activity, as the commands from the scope come relatively slowly.

I've tested it as much as I could, and I'd now like to make the driver file available to all: Can I email it to you for inclusion in your Git repository? Or is there a better way to make it available?

Cheers -
Welcome to the forum.

How large is it ? Up to 1 Mb you can attach it to a reply/post even if it's not a permitted file type by just adding .(dot)<permitted type> and mentioning to remove .dot<permitted type>.

Avid Rabid Hobbyist
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #8 on: November 21, 2018, 06:51:01 am »
Excellent work making the non-Siglent AWGs work with the SDS1004X-E!  :clap:  It's been fun to play with: I loaded the script up on a Raspberry PI and it worked brilliantly with the scope and my AWG.

Following your JDS6600.py driver file as a template, I've managed to modify it to support the FeelTech FY6600 AWG using a copy of the FY6600 comm protocol that I found somewhere on the net.  It works pretty well, but I had to crank the inter-command Sleeptime up to 500ms in order to reliably pass your test script:  It doesn't seem to affect anything with the actual Bode plotting activity, as the commands from the scope come relatively slowly.

I've tested it as much as I could, and I'd now like to make the driver file available to all: Can I email it to you for inclusion in your Git repository? Or is there a better way to make it available?

Cheers -
My script is open source. You can open a pull request on GitHub and I'll merge the changes with the main repository. If you don't want to deal with GitHub you can just send me your version of the script and I'll add your changes myself.

The only thing I'll ask you is to test your driver as good as possible, because I don't own a FY6600 and therefore I'm not able to test it myself.

Thanks for your work.
« Last Edit: November 21, 2018, 12:47:10 pm by 4x1md »
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #9 on: November 21, 2018, 06:54:22 am »
Would be cool to just add a RPi into the JDS6600 Case and use LAN of it, but without display etc. is that possible? and yes how?

I have a RPi B, would it be enough?

thanks for the answers
It seems possible. You'll have to connect its UART to the JDS6600. If you want to work directly with the scope without using the LAN, the RPi must also run a DHCP server. You'll also need a power supply which can provide enough power to both AWG and RPi.

Offline ltwin8

  • Newbie
  • Posts: 2
  • Country: de
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with non-Siglent AWG
« Reply #10 on: November 21, 2018, 07:58:30 pm »
Can someone post a guide on facebook on how to run this on a raspberry and how to connect? (unidentified AWG, unable to connect to AWG) I dont get my scope to connect to the Raspberry.

Maybe someone can upload an image of the SD card for the raspberry? I have no experience in raspberry and linux with respect to this task.

Would be very lucky if someone could help me. Thanks
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #11 on: January 30, 2019, 10:09:46 pm »
I uploaded the FY6600 driver to the main repository on GitHub. Sorry for such a long delay.

Dundarave, thanks for your contribution.

Offline Andreax1985

  • Regular Contributor
  • *
  • Posts: 64
  • Country: it
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #12 on: January 31, 2019, 09:34:26 am »
Is this good also for FY6800 AWG model?
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #13 on: January 31, 2019, 09:39:33 am »
Is this good also for FY6800 AWG model?
I'm not familiar with FY6800. You can try to run the awg_tests.py and see if it works.

Offline gamerpaddy

  • Contributor
  • Posts: 8
  • Country: de
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #14 on: February 06, 2019, 01:24:40 pm »
Could this be ported onto a Microcontroller with networking?
Like a Arduino with Network shield or ESP8266/32 over wifi?
<i may have asked this a while ago on one of your youtube videos, cant remember>

Unfourtainly i lack the skills to do this, but it seems more cost effective than using a raspberry pi.
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #15 on: February 07, 2019, 08:51:03 am »
Could this be ported onto a Microcontroller with networking?
Like a Arduino with Network shield or ESP8266/32 over wifi?
<i may have asked this a while ago on one of your youtube videos, cant remember>

Unfourtainly i lack the skills to do this, but it seems more cost effective than using a raspberry pi.
It may be possible but I can't say anything about ESP8266/32 because I've never worked with them and I don't know if they have enough ROM and RAM for such program.

Offline Rerouter

  • Super Contributor
  • ***
  • Posts: 4371
  • Country: au
  • Question Everything... Except This Statement
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #16 on: February 07, 2019, 09:02:30 am »
Defiantly can be emulated, you just need to emulated a few commands, Basicwave, Output and IDN

For the IDN String you can look into the earlier python project for converting the commands for another brand AWG,

The scope uses output to turn on the AWG output, then justs broadcasts basicwave with different fixed frequencies for each measurement step.

I should also mention you don't need anything as grand as a VI library to deal with SCPI messages, just treat them like standard packets
« Last Edit: February 07, 2019, 09:04:01 am by Rerouter »
 
The following users thanked this post: 4x1md

Offline gamerpaddy

  • Contributor
  • Posts: 8
  • Country: de
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #17 on: February 08, 2019, 07:09:12 am »
there's certainly enough ram/flash available for this kind of stuff.
i tried my best but after 6 hours and headache im only halfway there, but at the most inefficient way possible. i bet this gets the worst code 2019 award.

I managed to make the "test connection" thing succeed and the siglent allready sent me some AWG parameters.
im using a arduino leonardo with a Ethernet shield, LAN cable directly into the scope.



 
The following users thanked this post: 4x1md

Offline MrTick

  • Contributor
  • Posts: 5
  • Country: pl
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #18 on: April 23, 2019, 11:26:55 am »
Hi this is my very first message on eevblog, so hello everybody! :)

I've just recently got my hands on SDS1104X-E and I was looking for the solution to connect it to FY6800 AWG.
Thanks 4x1md for reverse engineering the Siglent communication protocol and your very nice solution.
But as I think using pc/raspberry to just translate the messages is an overkill, I've implemented similar code for ESP8266.

FY6800 has a nice uart connector on the back, the logic levels are 3,3V, the VCC is 5V however, so you need to find some way to drop it to 3.3V.
(I've realized that just when writing this post, fortunately my ESP-01 survived all tests fed directly from 5v. Currently I just soldered yellow LED in series, it seems to be dropping the voltage to ~3.2V)

I've used the simplest ESP-01 module.

Currently only FY6800 is supported, FY6600 and clones should work also.

https://github.com/PanKaczka/espBode

To compile the code I'm using the standard Arduino-ESP library: https://github.com/esp8266/Arduino

To use it in your own environment you need to edit esp_config.h, so WiFi mode, network name and password matches your network configuration.
 
The following users thanked this post: 4x1md, MikeLud

Offline tinhead

  • Super Contributor
  • ***
  • Posts: 1905
  • Country: 00
    • If you like my hacks, send me a donation
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #19 on: April 23, 2019, 11:44:29 am »
Hi this is my very first message on eevblog, so hello everybody! :)

Hi ho

I've implemented similar code for ESP8266

cool, dzieki/thanks Jakub
I don't want to be human! I want to see gamma rays, I want to hear X-rays, and I want to smell dark matter ...
I want to reach out with something other than these prehensile paws and feel the solar wind of a supernova flowing over me.
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #20 on: April 23, 2019, 06:09:15 pm »
I've just recently got my hands on SDS1104X-E and I was looking for the solution to connect it to FY6800 AWG.
Thanks 4x1md for reverse engineering the Siglent communication protocol and your very nice solution.
But as I think using pc/raspberry to just translate the messages is an overkill, I've implemented similar code for ESP8266.

FY6800 has a nice uart connector on the back, the logic levels are 3,3V, the VCC is 5V however, so you need to find some way to drop it to 3.3V.
(I've realized that just when writing this post, fortunately my ESP-01 survived all tests fed directly from 5v. Currently I just soldered yellow LED in series, it seems to be dropping the voltage to ~3.2V)

I've used the simplest ESP-01 module.

Currently only FY6800 is supported, FY6600 and clones should work also.
Welcome and thank you very much for sharing this project.

It can be a good idea to develop a small PCB with a simple circuitry for voltage and logic level conversion. It can even be made like a plug which fits the rear connector of the AWG.

Offline imo

  • Super Contributor
  • ***
  • Posts: 1954
  • Country: 00
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #21 on: April 23, 2019, 06:42:23 pm »
Would it be possible to create following setup:
- ESP8266 module
- DDS 0-60MHz 2Vpp out, wired to the ESP module
and use it with 1104X-E as the AWG?
 

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #22 on: April 23, 2019, 06:44:47 pm »
Would it be possible to create following setup:
- ESP8266 module
- DDS 0-60MHz 2Vpp out, wired to the ESP module
and use it with 1104X-E as the AWG?
I think yes. 2Vpp out must be defined in Bode settings of the oscilloscope.

Offline 4x1md

  • Contributor
  • Posts: 48
  • Country: il
    • 4X1MD on Github
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #23 on: April 23, 2019, 06:46:10 pm »
The PCB I'm speaking about can be something like this one but with a female header connector which can be plugged directly into FY6600/JDS6600.
 
The following users thanked this post: helloitsme

Offline MikeLud

  • Contributor
  • Posts: 32
  • Country: us
Re: Siglent SDS1104X-E and SDS1204X-E: Bode plot with a non-Siglent AWG
« Reply #24 on: April 24, 2019, 03:35:52 am »
I just ordered some ESP-01 and goodies to see if I can get my FY6800 and SDS1104X-E play nice.
« Last Edit: April 24, 2019, 03:56:43 am by MikeLud »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf