{"id":20942242,"url":"https://github.com/jbtronics/ds1054_bodeplotter","last_synced_at":"2026-02-26T00:34:08.985Z","repository":{"id":40675566,"uuid":"182318629","full_name":"jbtronics/DS1054_BodePlotter","owner":"jbtronics","description":"A Python program that plots Bode diagrams of a component using a Rigol DS1054Z and a JDS6600","archived":false,"fork":false,"pushed_at":"2020-12-15T08:44:47.000Z","size":271,"stargazers_count":36,"open_issues_count":2,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-14T00:10:26.379Z","etag":null,"topics":["bode-plot","ds1054z","jds6600","python","rigol"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jbtronics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-19T19:57:58.000Z","updated_at":"2025-04-06T21:20:16.000Z","dependencies_parsed_at":"2022-09-02T13:21:02.977Z","dependency_job_id":null,"html_url":"https://github.com/jbtronics/DS1054_BodePlotter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jbtronics/DS1054_BodePlotter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FDS1054_BodePlotter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FDS1054_BodePlotter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FDS1054_BodePlotter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FDS1054_BodePlotter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jbtronics","download_url":"https://codeload.github.com/jbtronics/DS1054_BodePlotter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jbtronics%2FDS1054_BodePlotter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271248888,"owners_count":24726215,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bode-plot","ds1054z","jds6600","python","rigol"],"created_at":"2024-11-18T23:24:56.368Z","updated_at":"2026-02-26T00:34:08.960Z","avatar_url":"https://github.com/jbtronics.png","language":"Python","readme":"# DS1054Z_BodePlotter\r\nA Python program that plots Bode plots of a component using a Rigol DS1054Z Oscilloscope and a JDS6600 DDS Generator.\r\n\r\nA [Bode plot](https://en.wikipedia.org/wiki/Bode_plot) shows the  frequency response of a system plotted in a phase and a amplitude graph.\r\n\r\n# Requirements\r\nDS1054Z_BodePlotter needs a numpy/scipy/matplotlib environment. Under Linux Distros you can install these via package manager ([See here](https://www.scipy.org/install.html) for more informations).\r\nUnder Windows you can use [Anaconda](https://www.anaconda.com/).\r\n\r\nFurther you will need to install pyserial, DS1054Z, and (optional) zeroconf. You can do this via pip:\r\n``` pip install pyserial ds1054z zeroconf ```\r\n\r\n# Hardware setup\r\nConnect your JDS6600 via USB with you computer and connect the DS1054Z to network (via Ethernet port).\r\n\r\nConnect the Channel 1 output of the JDS6600 to CH1 of the DS1054Z and to the input of the component you want to test (DUT = Device under test). Connect CH2 of the DS1054Z to the output of the DUT.\r\n\r\n![Schematic](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/BodePlotter_schematic.svg?sanitize=true)\r\n\r\n# Usage\r\nThe basic syntax is `python bode.py MIN_FREQ MAX_FREQ [FREQ_COUNT]`, so if you, for example, want to test your DUT between 1kHz and 2.2Mhz, with 100 steps (default is 50),\r\nyou can do it like this: `python bode.py 1e3 2.2e6 100`.\r\n\r\nIf you have installed zeroconf, the program will try to find your Oscilloscope automatically, if not you will have to specify the IP via the `--ds_ip` option. Mostl likely you will also have to specify the serial port of the JDS6600, you can do this with `--awg-port`.\r\n\r\nBy default only the Amplitude diagram is measured and plotted. If you also want to get the Phase diagram, you will have to specify the `--phase` flag.\r\n\r\nIf you want to use the measured data in another software like OriginLab or Matlab, you can export it to a semicolon-seperated CSV file with the `--output` option.\r\n\r\nSo a typical command line would like this: ```python bode.py 1e3 2.2e6 100 --ds_ip 192.168.1.108 --awg_port /dev/ttyUSB0 --phase --output out.csv```\r\n\r\nBy default the amplitude plots are shown with linear voltage scale. If you want to get logarithmic axis you can switch this in the plot windows under Figure options.\r\n\r\nTo see the full list of possible options call `python bode.py --help`.\r\n\r\n# Output examples\r\nHere are some example measurements:\r\n## LC Parallel Resonance Circuit\r\n![LC Amplitude Diagram](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/LC_Amplitude.png)\r\n![LC Phase Diagram](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/LC_PHASE.png)\r\n\r\n## RL high pass\r\n![RL Amplitude](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/RL_Amplitude.png)\r\n![RL Phase](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/RL_Phase.png)\r\n\r\n## RC low pass\r\n![RC Amplitude](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/RC_Amplitude.png)\r\n![RL Phase](https://github.com/jbtronics/DS1054_BodePlotter/raw/master/examples/RC_Phase.png)\r\n\r\n# License\r\nThis program is licensed under the MIT License. See [LICENSE](https://github.com/jbtronics/DS1054_BodePlotter/blob/master/LICENSE) file for more info.\r\n\r\nThe jds6600.py library was taken from [here](https://github.com/on1arf/jds6600_python)\r\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbtronics%2Fds1054_bodeplotter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjbtronics%2Fds1054_bodeplotter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjbtronics%2Fds1054_bodeplotter/lists"}