aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: b72b6ab07baa48f5a6723b701115a7742c75e834 (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
# 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 and, at least on my
Logitech G105 keyboard, will get boot protocol keyboard reports and
print them out to the UART.

# 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).