{"id":23451505,"url":"https://github.com/hstarmans/hexastorm","last_synced_at":"2026-03-07T01:37:17.367Z","repository":{"id":46099385,"uuid":"229112152","full_name":"hstarmans/hexastorm","owner":"hstarmans","description":"Amaranth HDL framework for laser scanner with motion control","archived":false,"fork":false,"pushed_at":"2025-07-31T10:53:25.000Z","size":4855,"stargazers_count":30,"open_issues_count":1,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-31T14:22:48.532Z","etag":null,"topics":["amaranth-hdl","cnc-machine","esp32-s3","fpga","laser","laser-scanner","micropython","raspberry"],"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/hstarmans.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,"zenodo":null}},"created_at":"2019-12-19T18:06:34.000Z","updated_at":"2025-07-31T10:53:29.000Z","dependencies_parsed_at":"2023-12-06T12:30:35.315Z","dependency_job_id":"15d1309c-3a66-443d-b12b-b32d58d95a4e","html_url":"https://github.com/hstarmans/hexastorm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hstarmans/hexastorm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstarmans%2Fhexastorm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstarmans%2Fhexastorm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstarmans%2Fhexastorm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstarmans%2Fhexastorm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hstarmans","download_url":"https://codeload.github.com/hstarmans/hexastorm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hstarmans%2Fhexastorm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272209883,"owners_count":24892444,"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-26T02:00:07.904Z","response_time":60,"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":["amaranth-hdl","cnc-machine","esp32-s3","fpga","laser","laser-scanner","micropython","raspberry"],"created_at":"2024-12-24T00:26:11.834Z","updated_at":"2026-03-07T01:37:12.327Z","avatar_url":"https://github.com/hstarmans.png","language":"Python","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"readme":"# Laser scanner\r\n[Laser scanning](https://en.wikipedia.org/wiki/Laser_scanning) is the controlled deflection of laser beams, visible or invisible.\r\nIn a high-speed polygon scanner system, the laser is deflected by a rotating prism or mirror. \r\nThe position of the laser is determined via a photodiode.  \r\nHexastorm is a full toolkit for working with polygon lasers scanners using FPGA technology and provides hardware, gateware, and software \r\nto enable laser scanning applications.  \r\n\u003cimg src=\"https://cdn.hackaday.io/images/490011635348687883.jpg\" align=\"center\" height=\"300\"/\u003e  \r\nCode is tested on the system shown above, branded as [Hexastorm](https://www.hexastorm.com). \r\nThe FreeCAD design is shared [here](https://github.com/hstarmans/hexastorm_design) \r\nand PCB designs are found [here](https://github.com/hstarmans/firestarter).\r\nA blog can be found on [Hackaday](https://hackaday.io/project/21933-open-hardware-fast-high-resolution-laser).\r\nThe code took most inspiration from [LDGraphy](https://github.com/hzeller/ldgraphy).  \r\nMaking a PCB with scanner is shown in the video;  \r\n[![video in action not showing](https://img.youtube.com/vi/dR09Tev0cPk/0.jpg)](http://www.youtube.com/watch?v=dR09Tev0cPk \"Making PCB with Laser Direct Imaging\").\r\n\r\nThe alignment procedure is shown in the following video.\r\n\r\n[![Alignment procedure image not showing](http://img.youtube.com/vi/Ri6DAneEzw4/0.jpg)](http://www.youtube.com/watch?v=Ri6DAneEzw4 \"Alignment procedure\")\r\n\r\n## Requirements\r\nCode can be deployed on microcontroller ESP32S3 and FPGA UP5K.  \r\nThis requires additional library [esp32_hexastorm](https://github.com/hstarmans/esp32_hexastorm).\r\nPart of the code can be run on Micropython, rest is Python only. \r\n\r\n# Install\r\nInstall the dependency manager uv.\r\n```console\r\nsudo apt install pipx\r\npipx ensurepath\r\npipx install uv\r\n```\r\nUse uv to install the dependencies in pyproject.toml.\r\n```console\r\nuv sync\r\n```\r\nCode can be executed as follows. \r\n```console\r\nuv sync --group dev \r\nuv run pdm run test\r\nuv sync --group plot\r\nuv run python -m hexastorm.interpolator.patterns.create\r\nuv run python -m hexastorm.interpolator.interpolator\r\n```\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhstarmans%2Fhexastorm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhstarmans%2Fhexastorm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhstarmans%2Fhexastorm/lists"}