{"id":50527893,"url":"https://github.com/zerotonin/ximea_tools","last_synced_at":"2026-06-03T09:31:39.419Z","repository":{"id":358582493,"uuid":"1225299875","full_name":"zerotonin/ximea_tools","owner":"zerotonin","description":"Migrated from gitlab.gwdg.de/bgeurte/ximea_tools","archived":false,"fork":false,"pushed_at":"2026-05-18T04:19:18.000Z","size":627,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T04:57:31.219Z","etag":null,"topics":[],"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/zerotonin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T06:30:20.000Z","updated_at":"2026-05-18T04:19:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zerotonin/ximea_tools","commit_stats":null,"previous_names":["zerotonin/ximea_tools"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zerotonin/ximea_tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotonin%2Fximea_tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotonin%2Fximea_tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotonin%2Fximea_tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotonin%2Fximea_tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zerotonin","download_url":"https://codeload.github.com/zerotonin/ximea_tools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zerotonin%2Fximea_tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33858571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-03T02:00:06.370Z","response_time":59,"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":[],"created_at":"2026-06-03T09:31:36.467Z","updated_at":"2026-06-03T09:31:39.411Z","avatar_url":"https://github.com/zerotonin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ximea_tools\n\n*« Linux toolbox for XIMEA industrial cameras »*\n\nA research-grade recorder, a PyQt5 GUI, and an external hardware-trigger\n(\"CueWire\") integration for XIMEA xiC / xiQ industrial cameras.\n\n[![tests](https://github.com/zerotonin/ximea_tools/actions/workflows/tests.yml/badge.svg)](https://github.com/zerotonin/ximea_tools/actions/workflows/tests.yml)\n[![docs](https://github.com/zerotonin/ximea_tools/actions/workflows/docs.yml/badge.svg)](https://github.com/zerotonin/ximea_tools/actions/workflows/docs.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n\n## Status\n\n| Sprint | Scope | State |\n|---|---|---|\n| 1 | Package scaffold, CI, docs skeleton, `_legacy/` archive | in progress |\n| 2 | Core recorder rewrite — `camera`, `writer`, `recorder`, CLI | planned |\n| 3 | PyQt5 GUI: live preview, ROI rubber-band, settings persistence | planned |\n| 4 | CueWire external hardware trigger integration | planned |\n\n\n## Installation\n\nTested on Linux (Ubuntu 22.04+), Python 3.11+.\n\n**1. Install the XIMEA Linux SDK** (provides the native `libm3api` and the\n`ximea` Python module):\n\n```bash\n# Download from https://www.ximea.com/support/wiki/apis/Python\ntar xzf XIMEA_Linux_SP.tgz\ncd package\nsudo ./install\n```\n\n**2. Install `ximea_tools`:**\n\n```bash\ngit clone https://github.com/zerotonin/ximea_tools.git\ncd ximea_tools\npip install -e \".[dev]\"\n```\n\n\n## Quickstart\n\nCLI (lands in v0.2):\n\n```bash\nximea-record --exposure 10000 --fps 30 --duration 5 \\\n             --roi 1200x1000+424+44 --output /media/dataSSD\n```\n\nGUI (lands in v0.3):\n\n```bash\nximea-gui\n```\n\n\n## Hitting the camera's full framerate (UVC quirks)\n\nTwo Linux behaviours frequently throttle UVC webcams (we hit both with\nthe Microsoft LifeCam Cinema in development):\n\n**1. Auto-exposure mode.** Forcing the camera into manual exposure\n(`V4L2_CID_EXPOSURE_AUTO = 1`) often clamps fps far below what the\ncamera reports.  `ximea_tools` defaults `auto_exposure=True` for that\nreason — toggle the *Auto exposure* checkbox in the Camera dock only\nwhen you actually need a fixed exposure (and accept the slower fps).\n\n**2. USB autosuspend.**  Linux will park idle USB devices to save\npower; some webcams never quite wake back up to full bandwidth.  Check:\n\n```bash\nls /sys/bus/usb/devices/*/product            # find your camera bus path\ncat /sys/bus/usb/devices/1-13/power/control   # 'auto' means it'll suspend\n```\n\nDisable temporarily (until reboot):\n\n```bash\necho on | sudo tee /sys/bus/usb/devices/1-13/power/control\n```\n\nPersistent fix — drop a udev rule (replace VID/PID with your camera's,\nvisible in `lsusb`):\n\n```bash\nsudo tee /etc/udev/rules.d/99-webcam-no-autosuspend.rules \u003c\u003c'EOF'\nSUBSYSTEM==\"usb\", ATTR{idVendor}==\"045e\", ATTR{idProduct}==\"0812\", \\\n    TEST==\"power/control\", ATTR{power/control}=\"on\"\nEOF\nsudo udevadm control --reload-rules \u0026\u0026 sudo udevadm trigger\n```\n\n\n## Citation\n\n\n## Citation\n\nIf you use this software, please cite the metadata in `CITATION.cff`. A\nZenodo DOI is minted on each tagged release.\n\n\n## License\n\nMIT — see `LICENSE`.\n\n\n## Author\n\nBart R.H. Geurten · Department of Zoology, University of Otago, Dunedin,\nNew Zealand · [ORCID 0000-0002-1816-3241](https://orcid.org/0000-0002-1816-3241)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotonin%2Fximea_tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzerotonin%2Fximea_tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzerotonin%2Fximea_tools/lists"}