• Stars
    star
    975
  • Rank 46,967 (Top 1.0 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created about 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Amaranth HDL framework for monitoring, hacking, and developing USB devices

LUNA: a USB multitool & Amaranth HDL library Simulation Status Documentation Status

LUNA r0.2 side view

LUNA Library

LUNA is a full toolkit for working with USB using FPGA technology; and provides hardware, gateware, and software to enable USB applications.

Some things you can use LUNA for, currently:

  • Protocol analysis for Low-, Full-, or High- speed USB. LUNA provides both hardware designs and gateware that allow passive USB monitoring. When combined with the ViewSB USB analyzer toolkit, LUNA hardware+gateware can be used as a full-featured USB analyzer.
  • 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.
  • 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 library provides simple automation for developing simple SoC designs.

Some things you'll be able to use LUNA for in the future:

  • Man-in-the-middle'ing USB communications. The LUNA toolkit will be able to act as a USB proxy, transparently modifying USB data as it flows between a host and a device.
  • USB reverse engineering and security research. The LUNA toolkit will serve as an ideal backend for tools like FaceDancer; allowing easy emulation and rapid prototyping of compliant and non-compliant USB devices.

LUNA Hardware

The LUNA project also includes eponymous multi-tool hardware. This hardware isn't yet suited for end-users; but hardware development has reached a point where current-revision boards (r0.2+) make good development platforms for early community developers.

Building this board yourself isn't for the faint of heart -- as it requires placing two BGA components, including a large FPGA. Still, if you're proficient with rework and FPGA development, feel free to join in the fun!

Project Structure

This project is broken down into several directories:

  • luna -- the primary LUNA python toolkit; generates gateware and provides USB functionality
    • luna/gateware -- the core gateware components for LUNA; and utilities for stitching them together
  • examples -- simple LUNA-related examples; mostly gateware-targeted, currently
  • docs -- sources for the LUNA Sphinx documentation
  • contrib -- contributed/non-core components; such as udev rules
  • applets -- pre-made gateware applications that provide useful functionality on their own (e.g., are more than examples)

Project Documentation

LUNA's documentation is captured on Read the Docs. Raw documentation sources are in the docs folder.

Related Projects

LUNA hardware is supported by two firmware projects:

  • Apollo, the firmware that runs on LUNA hardware's debug controller, and which is responsible for configuring its FPGA.
  • Saturn-V, a DFU bootloader created for LUNA hardware.

More Repositories

1

hackrf

low cost software radio platform
C
6,522
star
2

ubertooth

Software, firmware, and hardware designs for Ubertooth
C
1,932
star
3

facedancer

Implement your own USB device in Python, supported by a hardware peripheral such as Cynthion or GreatFET
Python
771
star
4

ViewSB

[Archived] open-source USB analyzer toolkit with support for a variety of capture hardware
Python
342
star
5

greatfet

GreatFET firmware and host software
C
309
star
6

yardstick

Yet Another Radio Dongle
258
star
7

daisho

SuperSpeed USB 3.0 FPGA platform
Eagle
253
star
8

gr-bluetooth

[Archived] A Bluetooth receiver implementation for GNU Radio
C++
200
star
9

libbtbb

A Bluetooth baseband decoding library
C
184
star
10

packetry

A fast, intuitive USB 2.0 protocol analysis application for use with Cynthion.
Rust
135
star
11

greatfet-hardware

This repository is deprecated. Go to:
116
star
12

throwing-star-lan-tap

A passive tap for monitoring 10/100 Ethernet.
111
star
13

cynthion

USB test instrument
Rust
83
star
14

lab-notes

notes, test reports, and other documentation for projects in progress
Python
81
star
15

apollo

microcontroller-based FPGA / JTAG programmer
C
63
star
16

cynthion-hardware

USB test instrument
61
star
17

greatfet-tutorials

Learn to do something new with GreatFET!
60
star
18

python-usb-protocol

python library providing utilities, data structures, constants, parsers, and tools for working with USB data
Python
54
star
19

gsg-kicad-lib

GSG's schematic symbols and modules for KiCad
49
star
20

amalthea

an experimental SDR platform
Python
42
star
21

bucatini

a noodly Amaranth HDL-wrapper for FPGA SerDes' presenting a PIPE PHY interface
Python
31
star
22

hackrf-nightly

Nightly build repository for HackRF - builds everything pushed to mossmann/hackrf master branch.
HTML
31
star
23

libgreat

a library to help you do Great things
C
31
star
24

plotsweep

A tool to plot spectrogram images using hackrf_sweep, soapy_power, or rtl_power output.
Rust
30
star
25

urti-mainboard

Mainboard of URTI, the Universal Radio Test Instrument
24
star
26

pyfwup

Python FirmWare UPgrader -- a DFU (and similar) utility for python
Python
22
star
27

saturn-v

DFU bootloader for SAMD11 and SAMD21 microcontrollers
C
20
star
28

misc

miscellaneous Great Scott Gadgets projects
13
star
29

luna-soc

Amaranth HDL libary for building USB-capable SoC designs.
Verilog
13
star
30

toorcamp2018badge

badge for ToorCamp 2018, an electronic jar of fireflies
C
11
star
31

ubertooth-nightly

Nightly build repository for Ubertooth - builds everything pushed to greatscottgadgets/ubertooth master branch.
HTML
10
star
32

greatfet-pinout

Simple repository hosting an interactive GreatFET pinout table.
JavaScript
7
star
33

amalthea-hardware

experimental SDR platform
7
star
34

LNA3030

LNA3030 is an in-line SMA Low Noise Amplifier with SAW filter
7
star
35

cydonia

a 2.4 GHz receiver front-end
7
star
36

LNA1109

LNA with SAW filter
5
star
37

sous-vide

Let Them Eat Crème Brûlée!
C
5
star
38

urti-ui-board

User Interface board of URTI, the Universal Radio Test Instrument
5
star
39

tycho

Production test jig for Cynthion
4
star
40

luna-analyzer-capture

Experimental native host code for LUNA USB analyzer capture
C
4
star
41

cynthion-test

Test software for Cynthion hardware
Python
3
star
42

cynthion-analyzer

Integration repository for developing Cynthion's USB analyzer mode
Makefile
2
star
43

demo-kit

1
star
44

luna-boards

Board definitions for LUNA
Python
1
star