Fronteers, 11th Fronteers Conference, Amsterdam, 4-5 October 2018

Workshop: Web USB and Web Bluetooth, with Lars Knudsen and Kenneth Christiansen

31 August 2018: The Fronteers Conference 2018 workshops will not take place. All participants have been notified and reimbursed. Should you have any questions, please get in touch with us at conference@fronteers.nl.

Lars Knudsen running a workshop for a group of seven programmers

Look mom - no drivers!

Until recently, it has been quite hard for legacy enterprises to consider web a serious platform for production. With the introduction of Web Components, Progressive Web Apps, Web USB and Web Bluetooth, this is no longer the case. Come join us for a workshop on hardware connectivity for the web and get hands-on experience with Web Bluetooth and Web USB.

If you would like to learn how to connect hardware to the browser, no matter if it’s for small hobby projects or mass market enterprise solutions, this workshop is for you!

What you will learn

  • How hardware can be connected directly to web applications and why this new opportunity is a big deal for anything from small prototypes and indie projects to large scale enterprise systems
  • How to Web USB enable hardware - including existing legacy hardware already out in the field
  • What Bluetooth Smart devices are and how to connect to them from a browser
  • A brief overview of other options like Web MIDI, Gamepad API and Native Messaging, for alternative solutions when Web Bluetooth etc isn’t available

Hands-on coding

Pair (or solo if preferred) programming, extending a web app that will communicate with either Thingy:52 via Web Bluetooth or an FRDM-KL25Z with empiriKit firmware via Web USB - or both, if you’re fast and adventurous!
The web applications provided are using lit-html for simplicity and compactness, but you are free to choose a larger framework and we will assist to the best of our abilities.

Web Bluetooth

The browser can connect directly to Bluetooth Smart devices using the Generic Attribute Profile (GATT). During the workshop, attendees who choose to work with Web Bluetooth will do hands-on work, extending a small web application that interacts with a Thingy:52 device from Nordic Semiconductor. The device has a wide range of sensors and actuators and help will be provided to do some cool solutions.

Web USB

If stable, high-bandwidth connections are required - or even when exploring viable options to web enable existing legacy hardware, Web USB is a great option to consider. In the workshop, a limited number of FRDM-KL25Z boards with empiriKit firmware will be available for those who want to explore this field. The boards have an accelerometer and touch sensor as well as an RGB LED that can be controlled from a web application. Although not in the scope of the workshop, advanced embedded developers are welcome to dive into the firmware code and do changes there as well.

What you will need

No prior experience with low level firmware, hardware drivers and similar is required to interact with the provided hardware from the web application you will extend. Understanding of basic software development is required. Familiarity with JavaScript is recommended but not strictly required.

Web Bluetooth development: Chrome running on a recent Mac or Linux machine with Bluetooth 4+ for direct communication with a Bluetooth Smart device. Alternatively, an attached Android 6.0+ device (remote debugging from Chrome over USB) is required. Web Bluetooth support is not fully supported on Windows at the time of writing (2018.06).

Web USB development: An available USB port (on Linux, also root access to do changes to /etc/udev rules).

Required software
  • Node (and npm) from https://nodejs.org
  • Chrome from https://www.google.com/chrome/
  • Http-server (npm install -g http-server) - to run/host examples locally
Optional
  • VS Code from https://code.visualstudio.com/
  • Polymer-cli (npm install -g polymer-cli) - bootstrapping/build env for Polymer
Repos with web app examples and FRDM-KL25Z empiriKit firmware
  • https://github.com/larsgk/webbluetooth-tester
  • https://github.com/larsgk/webusb-tester
  • https://github.com/larsgk/usbtronica
  • https://github.com/empirikit

31 August 2018: The Fronteers Conference 2018 workshops will not take place. All participants have been notified and reimbursed. Should you have any questions, please get in touch with us at conference@fronteers.nl.