{"id":16581843,"url":"https://github.com/mfg92/hantek1008py","last_synced_at":"2025-06-10T08:34:40.097Z","repository":{"id":92328821,"uuid":"96022447","full_name":"mfg92/hantek1008py","owner":"mfg92","description":"A driver for the Hantek 1008 (c?) USB-oscilloscope","archived":false,"fork":false,"pushed_at":"2024-07-19T20:32:28.000Z","size":125,"stargazers_count":20,"open_issues_count":0,"forks_count":15,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-03T21:08:24.683Z","etag":null,"topics":["api","csv","driver","hantek","hantek1008c","linux","oscilloscope","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mfg92.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-07-02T12:39:22.000Z","updated_at":"2025-03-28T06:16:34.000Z","dependencies_parsed_at":"2024-07-19T23:42:57.005Z","dependency_job_id":null,"html_url":"https://github.com/mfg92/hantek1008py","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfg92%2Fhantek1008py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfg92%2Fhantek1008py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfg92%2Fhantek1008py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfg92%2Fhantek1008py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfg92","download_url":"https://codeload.github.com/mfg92/hantek1008py/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfg92%2Fhantek1008py/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259038645,"owners_count":22796663,"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","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":["api","csv","driver","hantek","hantek1008c","linux","oscilloscope","python"],"created_at":"2024-10-11T22:30:00.276Z","updated_at":"2025-06-10T08:34:40.076Z","avatar_url":"https://github.com/mfg92.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hantek1008Driver\n\nThis project provides tooling for using Hantek 1008 USB-oscilloscopes\nwithout proprietary software on Linux and Windows (not tested).\nYou can include the Hantek1008 class from 'hantek1008.py' in your project\nto get access to the features of the device.\nAlternatively use the csvexport.py Python application to gain data and save it to a file.\n\nThis project is based on careful reverse engineering of the device's USB protocol.\nThe reverse engineering was only done to the extent necessary to obtain data for my master's thesis and\ndoes not cover all the features and configuration options of the device.\nTherefore, no guarantees can be made as to the reliability or accuracy of the data collected.\n\n### Usageexample of csvexport.py:\n`python3 csvexport.py mydata.csv -s 1 2`\nThis will write the measured data of channel 1 and 2 to 'mydata.csv' until you press CTRL+C to stop the measurement.\n\n### Help Options:\n`python3 csvexport.py --help`\nThis will show you all the available options/parameters and explains them in-depth.\n\n### Notes:\n* Requires Python \u003e= 3.6\n* Requires *pyusb* and *overrides* (install it using pip: `pip3 install pyusb overrides`)\n* If the software can not access the usb device because of lacking accessright, do the following (tested on linux/fedora):\n  1. Create file \"/etc/udev/rules.d/99-hantek1008.rules\" with content:\n     ACTION==\"add\", SUBSYSTEM==\"usb\", ATTRS{idVendor}==\"0783\", ATTR{idProduct}==\"5725\", MODE=\"0666\"\n  2. Then `sudo udevadm control -R`\n  3. Replug the device\n* The code contains many assert statements.\n  They exist because I noticed at the time that the respective responses on my device were always the same.\n  I was not able (nor was there any need) to find out what these responses meant,\n  but I wanted to be notified if the response changed for any reason, hence the assert statements.\n  With a different copy of the device, you might get different answers. So some asserts may fail.\n  Therefore, it might be necessary to remove or adapt these assert statements.\n\n### Contribution\n\nThis project is open for contributions.\nUnfortunately, I have no longer access to a Hantek 1008 device,\nso I cannot test contributions.\nAlso giving support in case of a problem is difficult under these\ncircumstances, but I will try my best.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfg92%2Fhantek1008py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfg92%2Fhantek1008py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfg92%2Fhantek1008py/lists"}