The “Wow” of Web support for Adafruit TinyUSB

The “Wow” of Web support for
Adafruit TinyUSB

Emily Twines
7 August 2019

So remember about 2 months ago when the Adafruit TinyUSB library made it possible to drag and drop files directly onto your Arduino as if it were a disk drive?

Instead of plugging away, changing your files in the Arduino IDE on a line-by-line basis, this library made your device simply appear as an external drive onto which you could subsequently drag the files of your choice.

Well, on Monday, an update to the library came out. Now we can easily change files for the Arduino output, as the original library allowed, and also interact with the Arduino’s output data without touching the code — and this has significant implications for performance.

As many of you will know, WebUSB tech promises big things in software development, as it offers a standard Javascript API for web-to-device (and vice versa) exchanges. This means that developers can easily build cross-platform interfaces using the web frameworks they’re already familiar with (React Native, Semantic UI, etc.) and that consequently, they can build faster and more responsively to community needs and opportunities.

But it’s not just on the development side that WebUSB can offer progressive steps. In academic and business settings, WebUSB support might be beneficial as a way to decrease software barriers; no more pop up “updates necessary” messages; WebUSB enabled devices can directly access the right information from the web, no middle-man software required. This makes using WebUSB devices faster and easier to implement than traditional options, and more accessible in school or conference room settings where the tech may need to be used across several different machines, all with different specs.

And what does this mean for Arduino?

The Adafruit TinyUSB library update uses WebUSB tech to expand ease and methods of user input. Even the example code is interesting: on your computer or mobile device, you move your mouse/finger to green, and, if it’s set up to do lights, the Arduino produces a green light. Aqua to Aqua. Vermillion to I bet you can’t guess what… And this update has huge implications for wearables, for example, or for other instances of Arduino use in performance.

Take this example of the color picker. Say, I’m a performer, and I want to wear an interactive LED dress for my solo. Previously, I would have had to stand at the computer changing the RGB values throughout the whole performance. To be sure, this has a certain charm, but it may not be what I’m going for in this performance. With this Adafruit update, without buying or downloading any additional software, I can maneuver intuitively through colors with just the swipe of my finger, and that’s a whole lot easier to work into a dance routine than the clacking of a keyboard.

But that’s not even the best part. Perhaps you want someone not familiar with Arduino or coding at all — say, an audience member — to use your creation. You can set up the UI of your choice for them to see, using your favorite web user interface framework, and they never even have to know the code exists. That way, you can also control what the user sees, so that they only effect the things that you want them to change. It’s a new level of accessibility for Arduino, with performance (and business) potential to spare.

So that’s my personal “wow” factor for Adafruit TinyUSB Library update 0.6.0 — it’s easy to use, easy to share, and opens up new doors for performance. Maybe it’ll inspire you as well.

Check out the WebUSB support and the rest of the updates to the library here!

Happy Building!