Technology
Babel-USB: USB drive with every file
Key Points
This project turns an ESP32-S3 development board into an infinite filesystem inspired by the digital Library of Babel. - 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.
This project turns an ESP32-S3 development board into an infinite filesystem inspired by the digital Library of Babel.
- 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.
- 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.
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.