All Projects → kevinmehall → usb

kevinmehall / usb

Licence: MIT License
Minimalist portable USB device stack for SAMD21, LPC1800, LPC4300, Xmega

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to usb

tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (-58.89%)
Mutual labels:  microcontroller, samd21
BioBalanceDetector
Bio Balance Detector's products aim to show the weak electromagnetic fields around every living being (including plants, animals and humans) and display it in a heat-map like hyper-spectral image.
Stars: ✭ 18 (-80%)
Mutual labels:  microcontroller, driver
Vigembus
Windows kernel-mode driver emulating well-known USB game controllers.
Stars: ✭ 721 (+701.11%)
Mutual labels:  usb, driver
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+9975.56%)
Mutual labels:  microcontroller, samd21
ch552tool
An open sourced python tool for flashing WCH CH55x series USB microcontroller with bootloader v2.30, v2.31 & v2.40.
Stars: ✭ 98 (+8.89%)
Mutual labels:  microcontroller, usb
Lv drivers
TFT and touch pad drivers for LVGL embedded GUI library
Stars: ✭ 84 (-6.67%)
Mutual labels:  microcontroller, driver
Hidguardian
Windows kernel-mode driver for controlling access to various input devices.
Stars: ✭ 138 (+53.33%)
Mutual labels:  usb, driver
arduino
required (and optional) source files for the Arduino development environment, specifically the hardware/arduino sub-directory, to support xmega processors
Stars: ✭ 18 (-80%)
Mutual labels:  microcontroller, usb
libusb-win32
libusb-win32 project official github repo
Stars: ✭ 44 (-51.11%)
Mutual labels:  usb, driver
ArduinoSpritzCipher
Spritz encryption system portable C library, CSPRNG, cryptographic hash and MAC functions, symmetric-key data encryption, and general-purpose functions. It's also an Arduino library.
Stars: ✭ 67 (-25.56%)
Mutual labels:  microcontroller
SerialProxy
🖱️⌨️ Arduino Input Proxying for PC (.NET Core)
Stars: ✭ 39 (-56.67%)
Mutual labels:  usb
mongodb-go-tutorial
Example using the MongoDB Go Driver
Stars: ✭ 114 (+26.67%)
Mutual labels:  driver
generic-linked-in-driver
A generic non-blocking linked-in driver for interfacing Erlang and C
Stars: ✭ 46 (-48.89%)
Mutual labels:  driver
rnk
rnk is a RTOS targeting ARM architecture.
Stars: ✭ 22 (-75.56%)
Mutual labels:  microcontroller
usb stack
Tiny and portable USB device/host stack for embedded system with USB IP
Stars: ✭ 175 (+94.44%)
Mutual labels:  usb
libx52
Saitek X52/X52pro drivers & controller mapping software for Linux
Stars: ✭ 85 (-5.56%)
Mutual labels:  driver
dizzy-legacy
Network and USB protocol fuzzing toolkit.
Stars: ✭ 35 (-61.11%)
Mutual labels:  usb
WindowsIoTEverywhere
Images & drivers to get WIndows 10 IoT running on off-the-shelf tablets, mini-pcs, and various computers.
Stars: ✭ 23 (-74.44%)
Mutual labels:  driver
PIC18F4550-TUTORIAL
PIC18F4550 - TUTORIAL
Stars: ✭ 31 (-65.56%)
Mutual labels:  microcontroller
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (-44.44%)
Mutual labels:  usb

Minimal, portable USB stack

  • Hardware drivers for Atmel SAM D, NXP LPC18xx/LPC43xx, and Atmel Xmega USB device peripherals
  • Cross-device API for manipulating endpoints
  • Descriptors and constants for USB core
  • Implementation of required control transfers and enumeration
  • Descriptors and implementation for DFU (firmware update) class
  • Descriptors for CDC (serial) class
  • Supports WCID automatic driver installation on Windows
  • MIT license

A USB DFU bootloader for SAMD21 (Cortex M0) uses under 4KB of flash and 1KB of RAM.

Compared to vendor USB stacks (Atmel ASF, Keil), it is much lighter weight, provides you the tools to build a fully-custom USB device, perhaps with multiple interfaces and endpoints, rather than implementing a fixed class. It uses structures instead of byte arrays to make descriptors more readable, and interrupt-context callbacks to integrate with your bare-metal code or RTOS scheduler.

Compared to LUFA, it has better support for Cortex-M devices, is better suited for modern DMA-integrated USB controllers, and more interrupt-driven, but does not provide as many class drivers.

Open source firmware using this code

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].