{"id":19072878,"url":"https://github.com/roopej/dps-control","last_synced_at":"2026-02-24T21:34:42.306Z","repository":{"id":261774315,"uuid":"871113191","full_name":"roopej/dps-control","owner":"roopej","description":"Simple application to control DPS-type power supply though Modbus","archived":false,"fork":false,"pushed_at":"2024-11-12T18:06:03.000Z","size":739,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-12T09:31:58.225Z","etag":null,"topics":["dps","dps5005","linux","mac","modbus","powersupply","windows"],"latest_commit_sha":null,"homepage":"","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/roopej.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-11T09:46:37.000Z","updated_at":"2025-01-22T10:59:30.000Z","dependencies_parsed_at":"2024-11-08T11:31:10.711Z","dependency_job_id":"8e965908-4650-4354-b143-6dbb13840e27","html_url":"https://github.com/roopej/dps-control","commit_stats":null,"previous_names":["roopej/dps-control"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/roopej/dps-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roopej%2Fdps-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roopej%2Fdps-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roopej%2Fdps-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roopej%2Fdps-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roopej","download_url":"https://codeload.github.com/roopej/dps-control/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roopej%2Fdps-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29801036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T21:02:39.706Z","status":"ssl_error","status_checked_at":"2026-02-24T21:02:21.834Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["dps","dps5005","linux","mac","modbus","powersupply","windows"],"created_at":"2024-11-09T01:44:29.672Z","updated_at":"2026-02-24T21:34:42.292Z","avatar_url":"https://github.com/roopej.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dps-control\n## DPS5005 Control Application\n\nSimple application with GUI and CLI to control DPS5005 power supply unit. CLI version does not require X or graphical \nenvironment, you can use it in terminal-only hosts. The application has been developed and tested in *Linux* environment.\nThere should be no problem to run it on macOS and maybe even Windows is possible as the communication with DPS5005\ndevice is handled by the simple minimalmodbus library.\n\n![](./images/dps-control-gui.png)\n\n## Configuration\n### Requirements\nThe application has been tested with Python 3.11.9. It will run (probably) on any version where PySide6 dependency can \nbe installed. The latest Python 3.13 has still problems with PySide and will be supported in near future.\n\n### General\nPlease check first `dps_control.cfg` file. It has very few settings but they are important as you need to tell the \nCLI in which tty port your DPS5005 device is and what its slave number is.  Configuration file also includes setting for used \nbaud rate. It is *highly recommended* to use 9600 as other values may not work properly.\n\nAlso, please set the maximum voltage and current according to your power supply specs.\n\nThere is setting `start_power_off` which is True by default. This ensures that starting the dps-control application\nfirst switches power off for safety reasons.\n\n### Linux\nIn Ubuntu the port is usually `/dev/ttyUSB0`\nor `/dev/ttyUSB1` or similar. If you do not know which port your device is in, you can plug it in and \ncheck `sudo dmesg` log which shows you where it mounted the device.\n\nIf you get permission errors about your tty port it might be that your user needs to be added to the `dialout` group.\n`sudo usermod -aG dialout $(whoami)`\n\nOther Linux distributions may use different tty naming scheme and default user groups, please adjust accordingly.\n\n### macOS\n\nmacOS has not been tested yet. Will test in near future.\n\n### Windows\n\nWindows has not been tested yet. Most probably it will require some changes to Modbus communication, mainly closing\nport after each call. Will look into it if there is demand for Windows functionality.\n\n## Running\n\nYou can run the GUI in virtual python environment with script `./setup.sh` in Linux.\n\nThis will create `virtualenv` folder, install requirements there run the application. Once your environment is\nset up correctly you can also run the application by\n\n### GUI\n\n`python main.py`\n\n### CLI\n\n`python main.py --cli`\n\n## Usage\n\n### GUI\n\nThe leftmost panel is for connectivity settings and status display. Connectivity fields are not editable in GUI, they \nshould be set in `dps_control.cfg` configuration file before application launch. The middle panel is for controlling\nthe output values. You can either turn the dials, drag the bar display up or down or enter the desired value in\nthe edit box. However, the change is not committed to the DPS5005 device in real-time, you need to hit the *Set* button\nto commit the values. Values cannot be set if there is no verified connection to the device.\n\nOn the right hand side panel the current output voltage, current and power are shown in addition on input voltage.\n\n*Power* button switches DPS5005 output on or off. \n\n### CLI\n\nType `h` to get help, while there are very few commands available. You can control the voltage and current of the \ndevice by running commands:\n\n`v 2.32` This will set the output voltage to 2.32 V\n\n`a 4.23` This will set the output current to 4.23 A\n\n`va 1.2 0.5` This will set the output voltage to 1.2 V and current to 0.5 A\n \nYou can toggle power output ON and OFF by `x` command.  \nIf you want to start live monitoring, you can use `l` command \nwhich shows you identical readings as you have on your DPS5005 device screen.\n\n## Feedback\n\nFeedback through Github Issues is highly encouraged. \n\n## Disclaimer\n\nYou should be familiar with your own power supply and what output settings it is able to withstand. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froopej%2Fdps-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froopej%2Fdps-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froopej%2Fdps-control/lists"}