Hi,I’m the author. Thesis: storage should obey the owner, not the host. Over the last decade we’ve let the host OS become the sovereign of removable media; most “policies” live in user space and can be bypassed. I wanted something minimal that lets the device owner set non-negotiable boundaries in hardware.
So I built a tiny USB “hardware proxy” between host and flash. It’s standard Mass Storage Class (no drivers). At enumeration it presents multiple logical disks, and then a sector mapper constrains every SCSI READ/WRITE by LBA. One stick shows up as four independent disks; the host can format each as it likes.
It’s plain Mass-Storage-Class and driver-free across Windows, macOS, Linux, iOS/iPadOS, and Android. Because it operates beneath the filesystem, you can format each logical disk as you like (FAT32, APFS, EXT4, etc.). Extras I show in the write-up: a hardware read-only switch (reported via MODE SENSE), transparent on-the-fly encryption, DIP-switch-revealed hidden volumes, LEDs that expose SCSI READ/WRITE activity, and a simple guard that rejects non-MSC identities (so it won’t act as a HID keyboard — the classic BadUSB trick). The current board runs on a 120 MHz MCU at USB 2.0 High-Speed.
Full technical explanation and a demo are in the post. Happy to answer questions here.
xusbnet•31m ago
So I built a tiny USB “hardware proxy” between host and flash. It’s standard Mass Storage Class (no drivers). At enumeration it presents multiple logical disks, and then a sector mapper constrains every SCSI READ/WRITE by LBA. One stick shows up as four independent disks; the host can format each as it likes.
It’s plain Mass-Storage-Class and driver-free across Windows, macOS, Linux, iOS/iPadOS, and Android. Because it operates beneath the filesystem, you can format each logical disk as you like (FAT32, APFS, EXT4, etc.). Extras I show in the write-up: a hardware read-only switch (reported via MODE SENSE), transparent on-the-fly encryption, DIP-switch-revealed hidden volumes, LEDs that expose SCSI READ/WRITE activity, and a simple guard that rejects non-MSC identities (so it won’t act as a HID keyboard — the classic BadUSB trick). The current board runs on a 120 MHz MCU at USB 2.0 High-Speed.
Full technical explanation and a demo are in the post. Happy to answer questions here.