Babel-USB: USB drive with every file

Published: (June 10, 2026 at 12:28 PM EDT)
2 min read

Source: Hacker News

About

This project turns an ESP32-S3 development board into an infinite filesystem inspired by the digital Library of Babel.

Usage

  • Buy an ESP32-S3 development board - ideally one shaped as a USB stick for maximum bewilderment. This is the one I got, though you don’t necessarily need this exact variant. That said, make sure you’re getting an ESP32-S3. That’s the only one I’ve tested. Others may not have hardware USB support. S2 might work, but I make no promises.

  • Get Visual Studio Code and set up PlatformIO. Refer to Google or YouTube if you don’t know how.

  • Clone this repository with submodules. Again, if you don’t know what that means, look it up.

  • Open the cloned folder in VScode, wait for it to set up the project.

  • While holding the “BOOT” button, plug the microcontroller into your PC.

  • Click the ”→” icon in VScode to compile and flash the project. Once that’s done, disconnect and reconnect the microcontroller.

  • Explore! You might have to copy files off of the MTP share before reading them, as most programs don’t support reading directly from MTP.

Finding specific files

  • Install Bun.

  • Navigate to the cloned folder and use the command bun run file-to-path.js , where “ is a path to the file you wish to find. Note that files larger than a couple hundred bytes will take a very long time to generate.

  • Copy the path it returns and paste it into your file browser after disk/.

  • Find the file, copy it off of the drive, and verify that it is in fact the same file.

Credits

The hardware-facing bits of this project are loosely cobbled on top of RigoLigoRLC’s work on esp32s3-tusb-mtp and their fork of espressif-tinyusb-component.

0 views
Back to Blog

Related posts

Read more »