aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 1d2d59dde93b224539630d3a5c32bca4726c3a3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# SAMD21 demo

This is mostly a proof-of-concept of a USB Host driver on the SAMD21
platform.

The code is also a complete mess, but is hopefully understandable
enough. At some point I intend to separate this into architecture
dependent and independent stuff with a HAL layer. However, right now,
this is mostly just slapped together as I tried to figure out how to
get stuff to work at all.

# Features

Basically none. It'll go through enumeration up to the point of
assigning an address, but that's it right now. Short term priority is
getting the system to a point where it can host a boot-protocol
keyboard.

# Board support

Uses trinket-m0, but should be fairly easy to port to other samd
architectures.

# Building

Normal cargo stuff works. There's a `Makefile` which has a target for
flashing an Adafruit Trinket M0 on Linux.

You'll need to tweak the atsamd-hal to remove the feature requirements
for generating the USB padcal code. You'll also need to add
definitions for the 1kHz SOF pad, and (optionally) the USB Host Enable
PIN. You can find a version of the HAL that does this [on my github
branch](https://github.com/bjc/atsamd/tree/unflag-usb-calibration).