{"id":13648201,"url":"https://github.com/greatscottgadgets/luna","last_synced_at":"2025-05-14T03:07:44.977Z","repository":{"id":38235844,"uuid":"215722076","full_name":"greatscottgadgets/luna","owner":"greatscottgadgets","description":"Amaranth HDL framework for monitoring, hacking, and developing USB devices","archived":false,"fork":false,"pushed_at":"2025-03-06T14:25:09.000Z","size":14772,"stargazers_count":1018,"open_issues_count":24,"forks_count":171,"subscribers_count":50,"default_branch":"main","last_synced_at":"2025-04-11T23:54:44.021Z","etag":null,"topics":["fpga","hardware","usb"],"latest_commit_sha":null,"homepage":"https://greatscottgadgets.com/cynthion/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/greatscottgadgets.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"code_of_conduct.md","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":"2019-10-17T06:45:30.000Z","updated_at":"2025-04-11T20:30:45.000Z","dependencies_parsed_at":"2023-12-14T13:27:22.844Z","dependency_job_id":"182adb8a-f5c0-4694-9df4-736b9d41b413","html_url":"https://github.com/greatscottgadgets/luna","commit_stats":{"total_commits":762,"total_committers":37,"mean_commits":"20.594594594594593","dds":0.5577427821522309,"last_synced_commit":"ccc9cacae9a1ed621c3285297d7eb73361c7042a"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greatscottgadgets%2Fluna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greatscottgadgets%2Fluna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greatscottgadgets%2Fluna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/greatscottgadgets%2Fluna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/greatscottgadgets","download_url":"https://codeload.github.com/greatscottgadgets/luna/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248497813,"owners_count":21113984,"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":["fpga","hardware","usb"],"created_at":"2024-08-02T01:04:03.319Z","updated_at":"2025-04-11T23:54:51.151Z","avatar_url":"https://github.com/greatscottgadgets.png","language":"Python","funding_links":[],"categories":["Python","Uncategorized","ECP5"],"sub_categories":["Uncategorized"],"readme":"# LUNA: an Amaranth HDL library for USB ![Simulation Status](https://github.com/greatscottgadgets/luna/workflows/simulations/badge.svg) [![Documentation Status](https://readthedocs.org/projects/luna/badge/?version=latest)](https://luna.readthedocs.io/en/latest/?badge=latest)\n\nLUNA is a toolkit for working with USB using FPGA technology, providing gateware and software to enable USB applications.\n\nSome things you can use LUNA for, currently:\n\n- **Protocol analysis for Low-, Full-, or High- speed USB.** LUNA provides gateware that allow passive USB monitoring when combined with [Cynthion](https://github.com/greatscottgadgets/cynthion-hardware) and [Packetry](https://github.com/greatscottgadgets/packetry).\n- **Creating your own Low-, Full-, High-, or (experimentally) Super- speed USB device.** LUNA provides a collection of Amaranth gateware that allows you to easily create USB devices in gateware, software, or a combination of the two.\n- **Building USB functionality into a new or existing System-on-a-Chip (SoC).** LUNA is capable of generating custom peripherals targeting the common Wishbone bus; allowing it to easily be integrated into SoC designs; and the [luna-soc](https://github.com/greatscottgadgets/luna-soc) library provides simple automation for developing simple SoC designs.\n\nSome things you'll be able to use LUNA for in the future:\n\n- **Man-in-the-middle'ing USB communications.** The LUNA toolkit will be able to act\n  as a *USB proxy*, transparently modifying USB data as it flows between a host and a device.\n- **USB reverse engineering and security research.** The LUNA toolkit will serve as an ideal\n  backend for tools like [Facedancer](https://github.com/usb-tools/facedancer); allowing easy\n  emulation and rapid prototyping of compliant and non-compliant USB devices.\n\n## Project Structure\n\nThis project is broken down into several directories:\n\n* `luna` -- the primary LUNA python toolkit; generates gateware and provides USB functionality\n  * `luna/gateware` -- the core gateware components for LUNA; and utilities for stitching them together\n* `examples` -- simple LUNA-related examples; mostly gateware-targeted, currently\n* `docs` -- sources for the LUNA Sphinx documentation\n* `contrib` -- contributed/non-core components; such as udev rules\n* `applets` -- pre-made gateware applications that provide useful functionality on their own (e.g., are more than examples)\n\n## Project Documentation\n\nLUNA's documentation is captured on [Read the Docs](https://luna.readthedocs.io/en/latest/). Raw documentation sources\nare in the `docs` folder.\n\n## Related Projects\n\n* [Cynthion](https://github.com/greatscottgadgets/cynthion-hardware): an open source hardware USB test instrument\n* [Apollo](https://github.com/greatscottgadgets/apollo): the firmware that runs on Cynthion's debug controller and which is responsible for configuring its FPGA\n* [Saturn-V](https://github.com/greatscottgadgets/saturn-v): a DFU bootloader created for Cynthion\n* [Packetry](https://github.com/greatscottgadgets/packetry): software for USB analysis\n* [Facedancer](https://github.com/greatscottgadgets/facedancer): software to create USB devices in Python\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreatscottgadgets%2Fluna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgreatscottgadgets%2Fluna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgreatscottgadgets%2Fluna/lists"}