NanoNAS-S3 setup guide
Turn an ESP32-S3 into a wireless NAS with a Material web UI. Repo ↗
Hardware
Any ESP32-S3 dev board works. For full capacity choose 8 MB PSRAM with 16 MB flash, which the flasher turns into a large storage partition.
You also need a micro-USB cable for the first flash and a 2.4 GHz Wi-Fi network the board can join.
Flash
Clone the repo, copy the secrets template, and fill in your Wi-Fi networks plus the admin login for the web interface.
The flasher detects the serial port, configures PSRAM, and generates the 16 MB partition table when you select that flash size.
Note: secrets.h holds real Wi-Fi passwords. Never commit it or paste it into issues.
git clone https://github.com/pdev-labs/NanoNAS-S3.git
cd NanoNAS-S3
cp secrets.h.example secrets.h
python flasher.pyUse the NAS
Watch the serial monitor for the board's IP address, then open it in any browser on the same network and log in as admin.
Upload files or whole folders by drag and drop, manage them with copy, move, rename, and delete, and check the analytics modal for a storage breakdown by file type.
Create guest users from Settings for family or friends. Guests can read and play but cannot modify or delete.
Maintain
Configure several Wi-Fi networks and the board joins the strongest one automatically.
Push firmware updates over the air straight from the web interface once the board is on your network.
Storage planning
The 16 MB flash layout reserves space for firmware, OTA slot, and a large LittleFS partition for files. Smaller boards shrink the file area first, so check the analytics modal when uploads start failing.
Keep large media as few files rather than thousands of small ones. Each file costs directory entries and lookup time on a microcontroller filesystem.
Recovery
Bad flash or wrong partition table: re-run python flasher.py over USB and select the correct flash size. This rewrites bootloader, partitions, and firmware cleanly.
Board unreachable on Wi-Fi: check the serial monitor. No IP means wrong credentials in secrets.h or a 5 GHz-only network the ESP32-S3 radio cannot see. It needs 2.4 GHz.