Rusty USB Gadgets Make Barking BeagleBones

By Andrew P. Lentvorski

Talks - Saturday, 18th July

Making a USB device speak is a pain–Rust with a BeagleBone can have your device barking sooner than expected.

Rust users often chant “We can have nice things”–and USB device development with Rust is absolutely nicer.

Each embedded USB stack is unhappy in its own way–a BeagleBone with Rust is standard Linux and all the tools that go with it.

Failures in an embedded USB stack often take down the entire board–Linux USB gadgets run in user space and Rust makes even userspace crashes far less likely.

Host software development is hampered by a lack of device hardware and firmware–Rust can make the BeagleBone look like the USB device the host software developers need immediately.

Unfortunately, all of this goodness is buried underneath a pile of prerequisite tasks that are neither particularly Rusty nor that well documented.

This talk demonstrates how to cut through the prerequisites and then gets down to the task at hand-decoding and creating USB packets with Rust.


Andrew P. Lentvorski

Andrew Lentvorski is Vice-President of Engineering for Thirdwayv, an IoT company specializing in FDA-cleared security and tracking solutions. He can normally be found with his team wrangling recalcitrant Bluetooth and Cellular Narrowband-IoT devices into submission. Before Thirdwayv, Andrew has built microprocessors that need 1000 cold cranking amps per clock, constructed wireless systems capable of frying eggs at twenty feet, and designed machines to make RF transistors explode spectacularly.