diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..183524e --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +# USB2BTLE + +Convert boot-protocol from USB to Bluetooth LE. + +# Board support. + +The code is divided into a USB controller (in the `samd` directory) +and a Bluetooth LE controller (in `nrf52`). + +The USB controller acts as an I²C master sending to the BTLE +controller. + +## USB Controller (samd) + + * Adafruit Trinket M0 + * Adafruit Feather M4 + +## BTLE Controller (nrf52) + + * Adafruit Feather 52832 + * Adafruit Feather 52840 + +# Wiring + +| USB | BTLE | +| ---------------- | ----------- | +| USB Voltage | USB Voltage | +| Ground | Ground | +| SDA | SDA | +| SCL | SCL | +| Reset (optional) | Reset | + +![Trinket M0 and Feather 52840 wired together on a breadboard.][breadboard] + +[breadboard]: usb2btle-breadboard.jpg + +# Compiling/Flashing + +## This is only tested on Linux. You will need to make changes for other platforms. + +Edit the `Makefile` in `nrf52` and `samd` to select the appropriate +include for your board. You may also need to edit `Makefile.common` in +the root to specify paths to gcc-arm and various Arduino bits. + +You should follow the arduino setup instructions for your +boards. While we're not using the Arduino IDE, we do rely on +board support packages being installed. + +You will also need the SimplyAtomic library, available +[here](https://github.com/wizard97/SimplyAtomic.git). + +Once everything's set up, you'll need to build and flash the images to +your board. The instructions are the same for both: + +### Bluetooth controller: +1. `cd nrf52` +2. `make all flash` + +### USB controller: +1. `cd samd` +2. `make all flash` + +# TODO + + * `samd`/`nrf` directory names should be changed. + + * Makefile dependencies fixed so `make all` doesn't require a + `clean` when a non-ino file is changed. + + * `find-serial-port` is Linux-only. + + * `bossac` tool path isn't conditionalized sanely. + + * Consumer key support. + + * Report protocol support. |