Despite its popularity, the developments of USB-based devices are characterized by diverse challenges ranging from specialized and expensive tools to complicated software. To solve this, Colorado-based open-source hardware manufacture; Great Scott Gadgets, recently started working on LUNA; a multi-purpose tool for USB devices development.
Designed as a “swiss army knife” solution for all things USB devices, LUNA is a multi-tool for building, monitoring, hacking, and analyzing USB devices. It features a unique, FPGA-based, digital hardware architecture, which, combined with the remarkable nMigen gateware-generation library along with several supported ultra-fast open FPGA tools, puts in the hand of users, a device that can automatically customize itself to suit the task hand.
On the Hardware level, LUNA features the Lattice Semiconductor LFE5U-12F ECP5 FPGA with the Microchip SAMD11 debug controller which provides access for configuration of the FPGA along with a number of interfaces for diagnosis. For connection of USB devices, LUNA features 3 High-Speed USB ports(2 Type-C and 1 Type-A), each connected to a USB3343 PHY with up to 480Mbps speed, and defined for specific communication mode/usage. An onboard 64MB RAM aids buffering of USB traffic while a 32MBit SPI-connected flash is available for PC-less FPGA configurations. These hardware features and functionalities put LUNA on a close enough pedestal as some expensive commercial USB analyzers like the TotalPhase Beagle 480.
On the software Side, LUNA uses the open-source ViewSB analyzer frontend with a FaceDancer Backend. ViewSB makes USB traffic more human-readable at any abstraction level, while FaceDancer makes it quick and easy to create or tamper with real USB devices even if you don’t have experience with digital-hardware design, using just a few lines of Python. The combination of these two, along with their open-source nature, makes LUNA one of the most versatile USB hacking and development tools.
Beyond its use by experienced developers to craft new solutions, LUNA also prides itself as an education platform for those looking to learn about developing USB devices. The team at LUNA has a long history of USB education and the resources from the several open-source training and workshops developed in the past, along with more LUNA-specific, fully open-source materials, are available to walk beginners through the basics of working and hacking with USB.