Multiplatform USB:How to Communicate Seamlessly
summary
Multiplatform pipeline that turns images into a zipped base64 payload, sends it over USB/serial and runs on Android, desktop, terminal and a web frontend; uses Kotlin Multiplatform with a common dithering library (implements Floyd Steinberg dithering), JVM platform modules, Ktor server and a browser client using the web serial API. Automated flashing script prepares 100 badges flashed at the conference, desktop uses Compose and iSerial on macOS, the end‑to‑end flow works locally and a zbatch.cloud deployment is in progress (SSL pending).
AI-written summary · about
chapters (17)
- 0:00Introduction and setup
- 1:56Digital badge communication
- 4:44Dithering and image processing
- 6:12Kotlin Multiplatform introduction
- 8:23Platform-specific USB handling
- 11:33Android batch manager details
- 13:41Mac batch manager implementation
- 15:52Linux and Mac abstraction
- 17:18Gradle source sets and dependencies
- 18:42Desktop app with Compose
- 21:55Terminal app and command-line args
- 23:40Current limitations and challenges
- 24:45Web Serial API and browser integration
- 27:16Server architecture and API design
- 30:51Website and user interface
- 32:59Deployment and Zbatch.cloud
- 34:05Future ideas and closing
related talks
31mMultiplatform USB- How to Communicate Seamlessly
35mI'm Afraid Your Browser Has Been Talking to the Robots Again - A Gentle Intro to WebUSB
32mI'm afraid your browser has been talking to the robots again a gentle intro to WebUSB
31mZeBadge: The community badge - what?
55mThe Universal Serial Web
56mThe Universal Serial Web
45mQt, multimedia, and computer vision – a great match for Embedded Linux
03mBooth Highlights
