Download Print this page
Great Scott Gadgets Cynthion User Documentation
Hide thumbs Also See for Cynthion:

Advertisement

Quick Links

Cynthion
Great Scott Gadgets
Aug 16, 2024

Advertisement

loading
Need help?

Need help?

Do you have a question about the Cynthion and is the answer not in the manual?

Questions and answers

Summary of Contents for Great Scott Gadgets Cynthion

  • Page 1 Cynthion Great Scott Gadgets Aug 16, 2024...
  • Page 3: Table Of Contents

    ........Updating Cynthion Microcontroller Firmware and FPGA configuration flash .
  • Page 4 ..........10 The apollo command line utility 11 Getting Help 12 Cynthion Projects and Mentions 13 Safety Information 13.1 Warnings .
  • Page 5 Cynthion USER DOCUMENTATION...
  • Page 6 Cynthion USER DOCUMENTATION...
  • Page 7: Cynthion Project Description

    As a result, it can act as a no-compromise High-Speed USB protocol analyzer, a USB-hacking multi-tool, or a USB development platform. Out-of-the-box, Cynthion acts as a USB protocol analyzer capable of capturing and analyzing traffic between a host and any Low-, Full-, or High-Speed (“USB 2.0”) USB device. It works seamlessly with our...
  • Page 8 Cynthion Chapter 1. Cynthion Project Description...
  • Page 9: Getting Started With Cynthion

    CHAPTER GETTING STARTED WITH CYNTHION 2.1 Prerequisites To use Cynthion you will need to ensure the following software is installed: • Python v3.8, or later. 2.2 Cynthion Host Software Installation The Cynthion host software distribution can be obtained from the...
  • Page 10: Test Installation

    Homebrew, MacPorts or some other route. If you are not using a Python distribution from Homebrew you may be able to direct Cynthion to the correct location by explicitly setting DYLD_FALLBACK_LIBRARY_PATH to the location of the libusb native library.
  • Page 11: Updating Cynthion Host Software

    --upgrade cynthion 2.5 Updating Cynthion Microcontroller Firmware and FPGA configu- ration flash To upgrade the Cynthion Microcontroller firmware and FPGA configuration flash to the latest versions run: cynthion update You can update the Microcontroller firmware separately with: cynthion update --mcu-firmware...
  • Page 12 Cynthion Chapter 2. Getting Started with Cynthion...
  • Page 13: Using Cynthion With Packetry

    Packetry 3.2 USB Analyzer Bitstream Cynthion ships from the factory with the USB Analyzer as the default bitstream for the FPGA. If you have previously flashed a different default bitstream you can run the USB Analyzer bitstream with: cynthion run analyzer...
  • Page 14: Connect Hardware

    Cynthion 3.3 Connect Hardware Chapter 3. Using Cynthion with Packetry...
  • Page 15: Using Cynthion With Facedancer

    CHAPTER FOUR USING CYNTHION WITH FACEDANCER Warning: Facedancer is not currently supported on Windows. Attempting to use Facedancer on Windows may cause USB analysis to stop working. For more information please see the tracking issue: #170 Before proceeding, please ensure you have completed all steps in the section.
  • Page 16: Load Facedancer Bitstream And Firmware

    # Type a string with the device await device.type_string("echo hello, facedancer\n") main(device, type_letters()) Open a terminal and run: python ./rubber-ducky.py If all goes well, you should see the string hello, facedancer typed into the target host. Chapter 4. Using Cynthion with Facedancer...
  • Page 17: More Information

    Cynthion 4.5 More Information For further information, see the Facedancer documentation. 4.5. More Information...
  • Page 18 Cynthion Chapter 4. Using Cynthion with Facedancer...
  • Page 19: Using Cynthion With Usb Proxy

    CHAPTER FIVE USING CYNTHION WITH USB PROXY Warning: USBProxy is not currently supported on Windows. Attempting to use USB Proxy on Windows may cause USB analysis to stop working. For more information please see the tracking issue: #170 Before proceeding, please ensure you have completed all steps in the...
  • Page 20: More Information

    If all goes well you should see the output from device enumeration in your terminal and the proxied USB device should be detected by the target computer. 5.3 More Information For further information, see the Facedancer USB Proxy documentation. Chapter 5. Using Cynthion with USB Proxy...
  • Page 21: The Cynthion Command Line Interface

    Display Cynthion Microcontroller information: cynthion info --force-offline Note: Once you have switched to the Cynthion Microcontroller by pressing the PROGRAM button or the --force-offline option you will need to press the RESET button to return control to the FPGA.
  • Page 22 Remove all files installed during set up: cynthion setup --uninstall 6.1.3 Update Cynthion Update both the Cynthion Debug Microcontroller firmware and USB Analyzer bitstream to the latest installed factory versions: cynthion update Update Cynthion Debug Microcontroller firmware to the latest installed factory version:...
  • Page 23 Cynthion cynthion flash --mcu-firmware <filename> Overwrite the SoC firmware with the one specified by <filename>: cynthion flash --soc-firmware <filename> 6.1. Command Documentation...
  • Page 24 Cynthion Chapter 6. The cynthion command line interface...
  • Page 25: Introduction

    CHAPTER SEVEN INTRODUCTION...
  • Page 26: Cynthion Hardware

    Cynthion 7.1 Cynthion Hardware Chapter 7. Introduction...
  • Page 27: Device Overview

    • TARGET C - USB Type-C connector for Packetry traffic capture and Facedancer device emulation. • TARGET A - USB Type-A connector shared with the TARGET C connector. • RESET - Press this button to reset Cynthion’s debug microcontroller and reconfigure the FPGA from flash.
  • Page 28: Front View

    Cynthion 8.4 Front View • A & B - Two Digilent Pmod™ Compatible I/O connectors for a total of 16 high-speed FPGA user IOs. – B can also be configured to act as a serial port and JTAG connector for debugging SoC designs: ∗...
  • Page 29: Self-Made Hardware Bringup

    SELF-MADE HARDWARE BRINGUP This guide is intended to help you bring up a Cynthion board you’ve built yourself. If you’ve received your board from Great Scott Gadgets, it should already be set up, and you shouldn’t need to follow these steps.
  • Page 30 Cynthion saturn-v $ make If you’re building a board that predates r0.3 hardware, you’ll need to specify the board you’re building for: saturn-v $ make BOARD=luna_d21 The build should yield two useful build products: bootloader.elf and bootloader.bin; your SWD programmer will likely consume one of these two files.
  • Page 31: Build/Upload Apollo

    "Flash" If your device shows up as a Cynthion board, congratulations! You’re ready to move on to the next step. 9.3.1 Optional: Bootloader Locking Optionally, you can reversibly lock the bootloader region of the Debug Controller, preventing you from accidentally overwriting the bootloader.
  • Page 32: Running Self-Tests

    Before you can run the applet, you’ll need to have a working cynthion development environment. See Introduction to get your environment set up. Next, we can check to make sure your Cynthion board is recognized by the Cynthion toolchain. Running the apollo info command will list any detected devices: $ apollo info Detected a Cynthion device! Hardware: Cynthion r1.4...
  • Page 33: The Apollo Command Line Utility

    CHAPTER THE APOLLO COMMAND LINE UTILITY The cynthion distribution provides the apollo command-line utility, that can be used to perform various simple functions useful in development; including simple JTAG operations, SVF playback, manipulating the board’s flash, and debug communications. $ apollo usage: apollo [-h] command ...
  • Page 34 Cynthion Chapter 10. The apollo command line utility...
  • Page 35: Getting Help

    CHAPTER ELEVEN GETTING HELP Before asking for help with Cynthion, check to see if your question is answered in this documentation, or addressed in Cynthion GitHub repository issues. For assistance with Cynthion general use or development, please look at the issues on the GitHub project.
  • Page 36 Cynthion Chapter 11. Getting Help...
  • Page 37: Cynthion Projects And Mentions

    CHAPTER TWELVE CYNTHION PROJECTS AND MENTIONS Have you done something cool with Cynthion or mentioned Cynthion in one of your papers or presentations? Email us at info@greatscottgadgets.com with a link to what you’ve done and we might post it here!
  • Page 38 Cynthion Chapter 12. Cynthion Projects and Mentions...
  • Page 39: Safety Information

    • A pass-through power supply connected to Cynthion must supply at least 5 V DC and no more than 20 V DC. The pass-through power supply must be rated for the current drawn by the pass-through device connected to Cynthion.
  • Page 40 Cynthion Chapter 13. Safety Information...
  • Page 41: Introduction

    CHAPTER FOURTEEN INTRODUCTION 14.1 Setting up a Development Environment This guide highlights the installation and setup process for setting up a local copy of the Cynthion source code for development. 14.2 Prerequisites • Python v3.8, or later. • A working FPGA toolchain. We only officially support a toolchain composed of the...
  • Page 42 Cynthion Use git to clone the repository: git clone https://github.com/greatscottgadgets/cynthion.git Note: To install the cynthion Python package and allow for in-place editing of the sources you can use the pip --editable command: # change to the 'cynthion' Python package directory...
  • Page 43: Bitstream Generation

    • analyzer – USB analyzer for using Cynthion with Packetry. • soc – System-on-Chip for using Cynthion with Facedancer. Bitstreams can be generated from the cynthion Python package sub-directory as follows: 15.1.1 Analyzer Gateware # change to the 'cynthion' Python package directory...
  • Page 44 Cynthion 15.1.3 Additional Options Additional options for bitstream generation can be listed by appending --help to the command: $ python3 -m cynthion.gateware.analyzer.top --help usage: top.py [-h] [--output filename] [--erase] [--upload] [--flash] [--dry-run] [--keep-files] [--fpga part_number] [--console port] Gateware generation/upload script for USBAnalyzerApplet gateware.
  • Page 45: Soc Firmware Compilation

    16.3 Building and Running Firmware for the Cynthion SoC can be found in the firmware/moondancer/ sub-directory. You can rebuild the firmware using cargo as follows: # change to the Cynthion firmware directory cd firmware/moondancer/...
  • Page 46: Running Firmware Unit Tests

    Once the firmware is running on the SoC you can execute some unit tests to exercise the firmware. In order to do this you will need to connect both the CONTROL and AUX ports of the Cynthion to the host and then...