Multiplatform USB- How to Communicate Seamlessly
summary
Kotlin Multiplatform code sends binary images over USB to a Badger 2040 e‑ink badge, using expect/actual boundaries and an int‑buffer image abstraction so the same dithering and payload logic runs on Android, macOS and Linux. Device discovery uses Android UsbManager and desktop /dev CU or TTY entries with the JSerial library for serial comms. The build flashes 100+ badges at events, gets 160 people contributed code in Berlin, provides a Compose desktop UI and tests, while iOS doesn't work due to USB/host limitations.
AI-written summary · about
chapters (14)
- 0:00Introduction and setup
- 3:10Problem with platform limitations
- 4:35Kotlin Multiplatform solution
- 7:01Expect/actual mechanics
- 9:08Android platform specifics
- 12:16Mac and Linux implementations
- 15:08Gradle build setup
- 17:36Development approach and learning
- 20:48Abstracting image processing
- 23:18Desktop app development
- 25:47UI challenges and workarounds
- 27:12iOS limitations and attempts
- 28:36Future possibilities and feedback
- 30:03Summary and conclusion
related talks
36mMultiplatform USB:How to Communicate Seamlessly
31mZeBadge: The community badge - what?
29mBuilding Industrial-Grade RFID Systems with Android and Ko…
25mZePass: Digital Badges communicating
27mPrinted Circuit Boards and Android: A Love Story Between Two Engineering Disciplines
32mI'm afraid your browser has been talking to the robots again a gentle intro to WebUSB
35mI'm Afraid Your Browser Has Been Talking to the Robots Again - A Gentle Intro to WebUSB
36mBest Practices for Developing Amazing Kotlin Multiplatform Apps
