Home

Awesome

USB-Thing

Generic USB interface device for driver development and hardware testing.

This consists of a hardware device with a number of common embedded interfaces exposed (see status section for more details) paired with a LibUSB based driver library that provides a set of fairly standard set of functions to interface with embedded peripherals.

Example

Status

Very early alpha. Firmware working, library has restricted functionality.

Build Status

ModuleStatus
GPIOWorking - no interrupts
ADCWorking - single sample
SPIWorking
DACIn Progress
I2CIn Progress
UARTUnimplemented

Goals

Hardware

Example

Schematics

Board schematics are available here and will be updated as new hardware is released.

Requirements

Getting Started

First, initialize the project with the following:

  1. Checkout this repository
  2. Initialize submodules with git submodule update --init --recursive
  3. Build all components with make all

Library installation

  1. Switch to the firmware/library directory
  2. Install with make install

Firmware development

  1. Switch to the firmware/build directory
  2. Build the firmware with make
  3. Flash the firmware to the device with make flash

Software Development

  1. Switch to the software/build directory
  2. Build the software with make
  3. Run with ./usb-thing

Folders

Licensing

TODO


If you have any questions, comments, or suggestions, feel free to open an issue or a pull request.