{"id":46364499,"url":"https://github.com/tspspi/pysdg1032x","last_synced_at":"2026-03-05T02:03:06.666Z","repository":{"id":62591127,"uuid":"478987290","full_name":"tspspi/pysdg1032x","owner":"tspspi","description":"Python library to control Siglent SDG 1032X arbitrary waveform generator","archived":false,"fork":false,"pushed_at":"2025-11-25T11:00:30.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-28T16:48:00.634Z","etag":null,"topics":["functiongenerator","physics","scpi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tspspi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-07T13:01:25.000Z","updated_at":"2025-07-18T10:30:51.000Z","dependencies_parsed_at":"2022-11-04T07:48:23.684Z","dependency_job_id":null,"html_url":"https://github.com/tspspi/pysdg1032x","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/tspspi/pysdg1032x","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tspspi%2Fpysdg1032x","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tspspi%2Fpysdg1032x/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tspspi%2Fpysdg1032x/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tspspi%2Fpysdg1032x/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tspspi","download_url":"https://codeload.github.com/tspspi/pysdg1032x/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tspspi%2Fpysdg1032x/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30106153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"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":["functiongenerator","physics","scpi"],"created_at":"2026-03-05T02:03:03.285Z","updated_at":"2026-03-05T02:03:06.656Z","avatar_url":"https://github.com/tspspi.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SDG1032X Python library\n\nThis (unofficial) library allows one to control __some__ functions of the\nSDG1032X arbitrary waveform generator using Python in a simple way via\nEthernet.\n\nExposed functionality:\n\n| Functionality        | Function                                                           | Implemented | Tested | Comments                                      |\n| -------------------- | ------------------------------------------------------------------ | ----------- | ------ | --------------------------------------------- |\n| Identify             | ```identify()```                                                   | y           | y      | Queries the output of IDN, raw binary output  |\n| Factory defaults     | ```factoryDefaults()```                                            | y           |        | Resets all device state to factory defaults   |\n| Enable output        | ```outputEnable(channel=1, polarity=POLARITY_NORMAL, load=\"HZ\")``` | y           | y      | Enabled the output of the function generator  |\n| Disable output       | ```outputDisable(channel=1)```                                     | y           | y      | Disables the output of the function generator |\n| Set duty cycle       | ```setDutyCycle(dutycycle, channel=1)```                           | y           | y      | Sets duty cycle                               |\n| Enabling burst mode  | ```setBurstModeEnable(channel=1)```                                | y           | y      |                                               |\n| Disabling burst mode | ```setBurstModeDisable(channel=1)```                               | y           | y      |                                               |\n| Setting burst period | ```setBurstPeriod(period, channel=1)```                            | y           | y      | Burst period                                  |\n| Setting burst delay  | ```setBurstDelay(delay, channel=1)```                              | y           | y      |                                               |\n| Setting burst tigger | ```setBurstTriggerSource(triggerSource, channel=1)```              | y           | y      | Sets internal, external or manual trigger     |\n| Setting burst mode   | ```setBurstMode(burstMode, channel=1)```                           | y           | y      |                                               |\n| Triggering burst     | ```triggerBurst(channel=1)```                                      | y           | y      |                                               |\n| Set waveform         | ```setWaveType(waveform, channel=1)```                             | y           | y      | Sets the waveform of the signal               |\n| Set frequency        | ```setWaveFrequency(frequency, channel=1)```                       | y           | y      | Sets the waves frequency                      |\n| Set period           | ```setWavePeriod(period, channel=1)```                             | y           | y      | Sets the waves period                         |\n| Set wave amplitude   | ```setWaveAmplitude(vpp, channel=1)```                             | y           | y      | Sets the amplitude of the wave in Vpp         |\n| Set wave offset      | ```setWaveOffset(offsetV, channel=1)```                            | y           | y      | Sets the offset of the wave in V              |\n\n## Usage example\n\n```\nfrom sdg1032x.sdg1032x import SDG1032X\n\nwith SDG1032X(\"10.0.0.14\") as sdg:\n    print(\"Identify returns: {}\".format(sdg.identify()))\n\n    sdg.setWaveType(sdg.WAVEFORM_SINE)\n\n    for f in range(100, 1100, 100):\n        sdg.setWavePeriod(f)\n```\n\n## Installation\n\nThere are two ways of simply installing the library. One can install\nif via ```pip``` from PyPi:\n\n```\npip install pysdg1032x-tspspi\n```\n\nOr one can install it from the downloaded ```tar.gz``` file from the [Releases section](https://github.com/tspspi/pysdg1032x/releases)\nby using pip (substituting ```X.Y.Z``` by the desired version number):\n\n```\npip install pysdg1032x-tspspi-X.Y.Z.tar.gz\n```\n\nTo install the latest package one can just leave the version number:\n\n```\npip install sdg1032x-tspspi\n```\n\nThe ```pip``` packages and the release packages are automatically generated whenever\na new tag is pushed by a Jenkins instance.\n\n## The CLI utility\n\nThere is a simple CLI utility that allows one to control the function generator\nfrom the commandline or via scripts. This tool is called ```sdg1032x```:\n\n```\nSDG1032X signal generator remote control utility\n\nNote: This tool is an inofficial tool and in no way associated\nwith Siglent\n\nUsage:\n\tsdg1032x [settings] \u003ccommands\u003e\n\nSettings:\n\t--host ADDRESS\t\tSets the remote hostname or IP\n\nCommands:\n\tid\t\t\tAsks the SDG for it's identity\n\tdefaults\t\tResets the SDG to it's factory defaults\n\nSimple channel commands:\n\ton N\t\t\tEnabled the channel N\n\toff N\t\t\tDisabled the channel N\n\nWaveform commands:\n\twavetype N WTYPE\tSets the selected wave type. Valid options are:\n\t\t\t\tsine\tSinusoidal waveform\n\t\t\t\tsquare\tSquare wave\n\t\t\t\tramp\tRamping\n\t\t\t\tpulse\tPulsing\n\t\t\t\tnoise\tNoise generator\n\t\t\t\tarbitrary\tArbitrary waveform from WAV\n\t\t\t\tdc\tDiscrete current\n\t\t\t\tprbs\tPseudo random binary sequence\n\tfrq N FREQ\t\tSet frequency of channel N to FREQ Hz\n\tperiod N PERIOD\t\tSet period of channel N to PERIOD seconds\n\tamp N AMP\t\tSet amplitude of wave for channel N to AMP Vpp\n\toffset N OFF\t\tSet offset of channel N to OFF V\n\nBurst mode commands (per channel):\n\tduty N CYCLE\t\tSets the burst duty cycle for channel N to CYCLE percent\n\tburston N\t\tEnables burst mode for channel N\n\tburstoff N\t\tDisables burst mode for channel N\n\tburstperiod N PERIOD\tSets the burst period for channel N to PERIOD seconds\n\tburstdelay N DELAY\tSets the burst delay for channel N to DELAY seconds\n\tbursttrigsource N SRC\tSets the given trigger source. Valid options are:\n\t\t\t\tint\tinternal trigger source\n\t\t\t\text\texternal trigger source\n\t\t\t\tman\tmanual trigger source\n\tburstmode N MODE\tSets the burst mode. Valid modes are:\n\t\t\t\tgate\tGated burst mode\n\t\t\t\tncyc\tNumber of cycles burst mode\n\tburst N\t\t\tTrigger burst on channel N\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftspspi%2Fpysdg1032x","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftspspi%2Fpysdg1032x","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftspspi%2Fpysdg1032x/lists"}