From ff4aae6fc7c4a332a410f8329f0a386bda44ac5f Mon Sep 17 00:00:00 2001 From: Reilly Grant Date: Tue, 11 Apr 2017 15:05:41 -0700 Subject: [PATCH] Add a warning about USB 2.1 devices and Windows Resolves #25. --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 110ea35..49a00e9 100644 --- a/README.md +++ b/README.md @@ -16,20 +16,20 @@ These boards are both based on the ATmega32U4. Getting Started --------------- -1. Make sure you are running the [latest dev-channel release of Google Chrome](https://www.google.com/chrome/browser/desktop/index.html?extra=devchannel). +1. Make sure the "Experimental Web Platform Features" flag is enabled in chrome://flags/#enable-experimental-web-platform-features. (Sorry, I can't link to it. You need to copy and paste it manually into the omnibox.) -2. Make sure the "Experimental Web Platform Features" flag is enabled in chrome://flags/#enable-experimental-web-platform-features. (Sorry, I can't link to it. You need to copy and paste it manually into the omnibox.) +2. Install at least version 1.6.11 of the [Arduino IDE](https://www.arduino.cc/en/Main/Software). -3. Install at least version 1.6.11 of the [Arduino IDE](https://www.arduino.cc/en/Main/Software). +3. The WebUSB library provides all the extra low-level USB code necessary for WebUSB support except for one thing: Your device must be upgraded from USB 2.0 to USB 2.1. To do this go into the SDK installation directory and open `hardware/arduino/avr/cores/arduino/USBCore.h`. Then find the line `#define USB_VERSION 0x200` and change `0x200` to `0x210`. That's it! -4. The WebUSB library provides all the extra low-level USB code necessary for WebUSB support except for one thing: Your device must be upgraded from USB 2.0 to USB 2.1. To do this go into the SDK installation directory and open `hardware/arduino/avr/cores/arduino/USBCore.h`. Then find the line `#define USB_VERSION 0x200` and change `0x200` to `0x210`. That's it! + **macOS:** Right click on the Ardunio application icon and then click on show package contents menu item. Navigate to `Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.h` + + **Warning:** Windows requires USB 2.1 devices to present a Binary Object Store (BOS) descriptor when they are enumerated. The code to support this is added by including the "WebUSB" library in your sketch. If you do not include this library after making this change to the SDK then Windows will no longer be able to recognize your device and you will not be able to upload new sketches to it. - **OSX:** Right click on the Ardunio application icon and then click on show package contents menu item. Navigate to `Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.h` +4. Copy (or symlink) the `library/WebUSB` directory from this repository into the `libraries` folder in your sketchbooks directory. -5. Copy (or symlink) the `library/WebUSB` directory from this repository into the `libraries` folder in your sketchbooks directory. +5. Launch the Arduino IDE. You should see "WebUSB" as an option under "Sketch > Include Library". -6. Launch the Arduino IDE. You should see "WebUSB" as an option under "Sketch > Include Library". +6. Load up `demos/rgb/sketch/sketch.ino` and program it to your device. -7. Load up `demos/rgb/sketch/sketch.ino` and program it to your device. - -8. When the sketch is finished uploading you should see a notification from Chrome: "Go to [https://webusb.github.io/arduino/demos/](https://webusb.github.io/arduino/demos/) to connect." Try it out! +7. When the sketch is finished uploading you should see a notification from Chrome: "Go to [https://webusb.github.io/arduino/demos/](https://webusb.github.io/arduino/demos/) to connect." Try it out!