This repository contains an Arduino library for WebUSB-enabling your sketches. Example sketches and JavaScript code are available in the demos directory.
WebUSB requires an Arduino model that gives the sketch complete control over the USB hardware. This library has been tested with the following models:
- Arduino Leonardo
- Arduino/Genuino Micro
These boards are both based on the ATmega32U4.
-
Make sure you are running the latest dev-channel release of Google Chrome.
-
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.)
-
Install at least version 1.6.11 of the Arduino IDE.
-
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 change0x200
to0x210
. That's 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
-
Copy (or symlink) the
library/WebUSB
directory from this repository into thelibraries
folder in your sketchbooks directory. -
Launch the Arduino IDE. You should see "WebUSB" as an option under "Sketch > Include Library".
-
Load up
demos/rgb/sketch/sketch.ino
and program it to your device. -
When the sketch is finished uploading you should see a notification from Chrome: "Go to https://webusb.github.io/arduino/demos/ to connect." Try it out!